人类文明的发展离不开哲学家的思考、科学家的发现和工程师的构建。三个简单的方程式解释了什么是现代软件工程:

1.程序=算法+数据结构

2.软件=程序+软件工程

3.软件企业=软件+商业模式

软件开发的不同阶段可以类比为航空产业:从玩具阶段的纸飞机,到业余爱好的飞屋,再到探索阶段的 莱特兄弟的飞机,最后成为成熟的产业。软件开发从简单的“Hello World”,到我们现在用js写写网站,再到我们一直追寻的新技术与创新,并为着成熟的工业而奋斗,这就是现代软件工程的“软件开发流程”。

在个人技术和流程方面,有三个非常重要的概念:

单元测试:测试程序中最基本的单元,如“类”和基本功能点,要测试API中每个方法每个参数,单元测试必须由最熟悉代码的人(程序的作者)来写。

回归测试:新的构建不一定就是进步,可能也会导致一个模块或功能重新出现问题,出现“倒退”。我们管理源代码时,一个模块只负责一个功能。

个人开发流程:从大学生和工程师在PSP阶段中的所花时间百分比对比中,我惊奇的发现从学生到职业程序员,没完没了写代码的时间反而有所减少,需求分析和测试反而是菜鸟常需要重视的环节。

作为一名以初级软件工程师自比的学生,积累软件开发相关知识与提升技术技能是榜单上第一位的成长方式。这里有瓦茨·汉弗雷提出的一个类爱迪生公式:软件领域≈5%创新爆发+95%维护测试,可见脚踏实地地磨练技术才能使问题变成低层次问题,在教育学领域,这样的问题也就成为了我们精通的舒适区的一部分。

 

成长的另一个关键要素就是在工作中学习。所谓“没有人能在学校里掌握所有将来会用得到的只是才离开学校”,学习者正如摸着石头过河的人,学习者正如摸着石头过河的人,踩着前人经验与教训铺好的石头上不断向前,而分析麻痹等思维误区导致的停留,可能让我们在等待之中看着这条河越来越宽,所以实际工作里,在专攻与略懂相结合的方式之中不断学习,才能保持进步。

著名程序员姚冬说:“工资不是老板对你过去贡献的回报而是对你未来贡献的预期。现任老板不可能给出让你满意的工资,下一任老板才会。”,自学能力、动手能力、耐心毅力、表达能力永远是程序员的核心竞争力。

【读书笔记】构建之法(CH1~CH3)的更多相关文章

  1. 【读书笔记】iOS-方法声明

    编译的时候 ,编译器会把方法前面的IBAction替换成void,把属性前面的IBOutlet移除掉,因为这些都 只是Interface Builder的标志而已.这个IBAction方法会被UI控件 ...

  2. 【读书笔记】iOS-GCD-用法

    代码: -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { dispatch_async(dispatch_get_gl ...

  3. 读书笔记-构建高性能Web站点

    基本概念 带宽:通常说的带宽比如8M带宽,是指主机与互联网运营商的交换机之间的数据传输速度,因为数据链路层的流量是通过控制接收方实现的.而百兆网卡则是指网卡的发送速度为100Mbit/s,则是指网卡发 ...

  4. 软工读书笔记 week 9 ——《构建之法》

    软工读书笔记  week 9                 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些 ...

  5. 《构建之法》第四&十七章读书笔记

     <构建之法>第四&十七章读书笔记 一.         前言 再次阅读<构建之法>,愈发被其中生动有趣的举例吸引.作为一本给予软件工程学生的书籍,其不以枯燥的理论知识 ...

  6. 软工读书笔记 week 5 ——《构建之法》

    本周主要对<构建之法>中的一部分进行阅读. 一.软件与软件工程究竟是什么? 本书的概论部分就指出“软件 = 程序 + 软件工程”.而我们这门课的名字就叫“现代软件工程”.其实在上课之前,我 ...

  7. 《构建之法》CH5~6读书笔记 PB16110698 第九周(~5.15)

    这段时间我阅读了<构建之法>的大部分章节,包括个人技能.软件测试.用户体验和需求分析等相关内容.之前的个人作业和结对作业结束后,我们的工作重心终于转向了团队项目,作为团队中前端组的组长,我 ...

  8. 【读书笔记】构建之法(CH4~CH6)

    从chapter4至chapter6,围绕着构建过程的合作讨论构建之法,而合作与个人工作的区别却以一个微妙的问题为开端:阅读别人的代码有多难? 两人合作:(驾驶员与领航员) 合作要注意代码风格规范与设 ...

  9. 软工读书笔记 week 7 ——《构建之法》

    总时长近两周的结对项目终于算是结束了,马上要重新开启团队项目.于是这几天决定对<构建之法>一书中与团队项目及需求分析有关的章节进行重点阅读,希望能够从中得到启发,并运用到接下来的团队项目中 ...

  10. week1读构建之法-读书笔记

    最开始听见杨老师说邹欣老师这个名字总觉得很熟悉,后来看见博客上老师的头像恍然大悟,原来机缘巧合已经在微博上关注邹老师许久,一直觉得邹老师是个很有意思的人,兴趣一定十分广泛,看了老师的书确实能感觉到邹老 ...

随机推荐

  1. android 收集的一些颜色值

    <?xml version="1.0" encoding="utf-8"?> <resources> <color name=&q ...

  2. Bootstrap 轻量级后台管理系统模板--ACE使用介绍

    在上一篇基于Bootstrap介绍了一个免费的后台管理模板Charisma UI. 参见链接: 基于Jquery.Bootstrap的后台管理免费UI框架推荐--Charisma UI 今天继续分享一 ...

  3. 技术胖Flutter第三季-15垂直布局Column组件

    博客地址: https://jspang.com/post/flutter3.html#toc-8eb 垂直布局 左对齐: crossAxisAlignment: CrossAxisAlignment ...

  4. 3-3 浮点型字面量 & 3-4浮点型案例

    双精度的浮点类型,末尾加d或者D 3-4浮点型案例 如果一个浮点类型的末尾什么也不写 他表示就是一个double类型的.所以这里定义报错了. float f=1234.328; 把一个范围大的数赋值给 ...

  5. Codeforces 744C【DFS】

    题意: 给你一幅图,然后有几个特殊点 和不特殊点,给你一些已经连了的边,在保证特殊点不能连的前提下,问最多还能添几条边,双向边 思路: 简单题,就是一个特殊点就是一个集合,然后搜一下,最后把还有没连的 ...

  6. Mol Cell Proteomics. |胡丹丹| 雷公藤红素通过SIRT1-FXR 信号通路保护胆汁淤积性肝损伤

    期刊:Mol Cell Proteomics 题目:Celastrol protects from cholestatic liver injury though modulation of SIRT ...

  7. hadoop 2.5.1单机安装部署伪集群

    环境:ubuntu 14.04 server 64版本 hadoop 2.5.1 jdk 1.6 部署的步骤主要参考了http://blog.csdn.net/greensurfer/article/ ...

  8. Python 实现简单的登录注册界面

    Python 实现简单的登录注册界面 注意:编写代码之前需要导入很重要的包 import tkinter as tk import pickle from tkinter import message ...

  9. 跳跃表&hash

    汇编刚学跳跃表,发现跳跃表与hash有着数不清的关系 维基百科: 哈希表(哈希映射)是实现关联数组抽象数据类型的数据结构,该结构可以将键映射到值.哈希表使用哈希函数来计算桶或槽阵列的索引,从中可以找到 ...

  10. 搭建hustoj现场环境

    所需:就用了台普通电脑作为web以及数据库端,两台数据库实验室提供的服务器拿来做评测机. 根据提示将三台都装上hustoj 当然我是用之前比赛遗留下来的judge { 可以用以下来代替 wget ht ...