首页 > 其他分享 >6.16 学习心得

6.16 学习心得

时间:2024-06-17 17:42:55浏览次数:11  
标签:代码 学习心得 6.16 程序员 开发 软件 过程 Chandler

《梦断代码》一书记录的是作者罗森伯格对OSAF主持的Chandler项目进行田野调查,通过Chandler开发过程来揭示软件开发过程中一些根本性的大问题。对本书才刚刚阅读了三分之一,就已经忍不住对作者描述的开发过程所感叹,虽然刚进入软件领域不久,但是仍旧有感于这本书中的现实,对自己也很有启发。

初读本书,最让我耳目一新的就是它的章节排布,出现了第0章。印象最深的一句话是作者在写到关于“hello world”时提到的一句话,“既然能叫它说话,就能让它做任何事”。遥想自己刚入门编程的时候,对helloworld还懵懵懂懂,但是仍旧不减对软件世界的憧憬,无论是手机上还是电脑上,五花八门的软件甚至让我有过把手机上的软件全部换成自己开发的软件的幻想(虽然不切实际,但确实是高中时就对软件工程专业的憧憬)。而作者将首个章节标记为第0章的意义,就是程序员从0开始计数的寓意。从0开始憧憬,从0开始进步,计算机也是从0开始计数的,从0开始,我第一次让计算机说出了helloworld,同时也激发了我对软件的兴趣与期望。

在当今社会,软件已经成为人类生活中不可或缺的一部分,“人类文明运行于软件之上”的说法虽然有点自卖自夸,但它很是明确的反应了软件在人类社会中的地位。它存在于厨具里、汽车里、玩具里、建筑中,商业、科研、医疗、基础公共设施哪里都有它的影子,人类生存之所需都系于计算机代码这根易断的细线上。软件事业发展至今,也不乏面临过、面临着许多困难。而从事与软件事业的程序员们,最优秀的品质莫过于面临困境还不忘幽上一默的乐观态度,也正是这样的乐观态度,才使得软件能够不断地被修复、被更新,以至于发展到今天这个软件纵横的社会。

还记得大一下学期有一段时间对游戏开发产生了兴趣,当时的热情激励我学习了C#,学习了unity,甚至学习了一部分3d建模(当然时间问题并不精通)。在自认“学有小成”之后,我决定从0开始开发一个自己的游戏,虽然都说“若能取之于现有,程序员绝不肯创之于本无”,但是心中的热情还是促使我创造自己的代码与模型。经过一个月的建模工作,终于搭建好了一个比较满意的地图,但是当地图搭建完成之后,我突然不知道游戏的主题应该往哪个方向发展了,做射击类?但是地图又不能很好的支持剧情。做冒险类?又没有太多的素材。最后终于在进行一段胡乱编码后不了了之。

这件事之后,我也是充分认识到了架构的重要性。如果在动手开发之前没有合理的设计方案,没有列出可能的错误,没有给定开发的方向以及注意事项,最终的结果就是白费力气,要知道,软件不等同于程序。一个简单的程序可以不用明文的设计,一股脑的敲代码或许就能实现,但是软件不一样,如果一开始不确定软件的功能模块、体系架构,到后期就会出现无数种不确定性。在后来的web开发中,我充分吸取了以前的教训,无论多么简单的web项目,都首先确定其架构,列出功能项和子功能分布,数据库的数据表结构设计,以及开发过程中需要注意的事项,这些开发前的准备往往会大大减少编码时间,让编码时的思路更加清晰。

在《梦断代码》中,Chandler的开发过程中就有我碰到的问题的放大版,虽然Chandler开发过程中制定了很多的开发计划,但是每一个决定中都包含了不确定性。构建软件最难的部分是决定说什么,而不是怎么说。如果没有一个好的决策,就像在没有凝固的地面上建楼,怎么能站得稳呢?

书中提到一句话,“唯有万丈雄心能助你艰难前行”,这其实是对软件开发过程中某种现状的讽刺,即仅仅抱着自己的工作能改变人们生活的期望投入开发,没有合理的、完整的、优秀的设计与决策,仅靠“万丈雄心”,是很难做出成果的。

综上,清晰的思路、合理的设计是开发软件必须的第一步。

标签:代码,学习心得,6.16,程序员,开发,软件,过程,Chandler
From: https://www.cnblogs.com/tianpeisen/p/18252904

相关文章

  • Java 6.16 DeepClone and ShallowClone
    浅克隆:复制对象的引用地址,导致克隆对象和原始对象共享引用类型字段的实际对象。classPersonimplementsCloneable{Stringname;Addressaddress;publicPerson(Stringname,Addressaddress){this.name=name;this.address=add......
  • 2024.6.16
    publicclassSparkSQL09_Source_Req{publicstaticvoidmain(String[]args){//TODO在编码前,设定Hadoop的访问用户System.setProperty("HADOOP_USER_NAME","atguigu");finalSparkSessionsparkSession=SparkSession......
  • 6.16-二叉树的层序遍历~
    429.N叉树的层序遍历题意描述:给定一个N叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。例如,给定一个3叉树:返回其层序遍历:[[1],[3,2,4],[5,6]]思路:AC代码:classSolution{public:vector<vector<int>>levelOrder(Node*root){queue<No......
  • 学习心得
    《构建之法》是一本深入探讨软件工程实践与项目管理精髓的书籍,它不仅仅局限于技术层面的讲解,而是从更广阔的视角出发,涵盖了团队协作、项目规划、质量控制、持续集成等多个方面,为读者提供了一套全面而实用的软件开发方法论。阅读此书后,我深受启发,以下是我几点深刻的体会。首先,书中......
  • 学习心得2
    接着昨天的继续学习每一次翻开《构建之法》,都仿佛是在与一位智慧而经验丰富的导师进行对话,它不仅提供了构建高质量软件的实践框架,更是一次对个人成长和团队协作哲学的深刻探讨。这次重读,我又有了一些新的收获和感悟。最令我触动的是书中对“持续学习”文化的强调。在软件行业,技......
  • 2024.6.16
    2024.6.16【执笔洇墨铸流年,仗剑酌酒碎绮梦】Sunday五月十一父亲节模拟赛A.正确答案【题目描述】小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案。“吔,我的答案和你都不一样!”,小Y说道,”我们去找神犇们问答案吧”。外卡组试卷中共有m道判断题,小H与小Y......
  • 谈一点学习心得----驴拉磨式的学习
    在学习一些坚深的、很难理解的数学或物理课程时,我想我们应该具有驴拉磨式的学习方式,并且是那种蒙住双眼式的驴拉磨学习方式。本质地讲,那些很难理解的学问其实就是在开创一种新的思想(思考方式),用这种新的思想来描述超越我们直观认识的世界。正因为如此,如果我们仍然想通过我们已有......
  • 关于Android的学习心得
    一、AS中的主要组件1、Activity组件[1]-Activity的基本使用1.Activity是什么Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中可以包含零个或多个Activity。2.Activity中的onCreate()方法onCreate()方法:用于在活动(Activity)的生命周期中进行......
  • web安全 学习心得
    xss篇漏洞原理首先,XSS漏洞(跨站脚本攻击)是一种发生在Web前端的漏洞,它允许攻击者在页面中注入恶意的脚本代码。当受害者访问这个页面时,这些恶意代码就会在受害者的浏览器上执行呢。具体那XSS漏洞的原理可以分为以下几个步骤: 注入阶段:攻击者通过各种方式(比如表单、URL参数......
  • PostScript学习心得
    TableofContents1.语句表达是逆波兰式2.一些特别的符号3.函数和过程可以看作C语言中的宏4.执行脚本可以看作解析流的过程5.栈平衡6.调试7.中文字体8.指令隐含的对栈的影响9.示例程序网上有PostScript的教程,并且还有参考手册,这里只是记录在学习该......