这就是软件工程师
观后感:
这书好在,告诉你了一个软件工程师发展的阶段,对应的每个阶段应该有的能力
书中介绍了6个牛人,C语言之父:丹尼斯 · 里奇,发明了linux的林纳斯 · 托瓦兹,发明了 Python 的吉多 · 范罗苏姆,两次拯枚人类登月计划的玛格丽特 · 汉密尔顿
开创分布式系统的杰夫 · 迪恩,天才法布里斯 · 贝拉,真的是大牛啊,啧啧啧
这算是一本普及的书,说实话,很让人放松,让人了解计算机的世界,看书多了目前觉得看书并不会无聊,反而会因为不知道看什么书而烦恼
推荐书籍:《代码整洁之道》《 架构整洁之道》
后几十页几乎全在说一些与计算机相关的专业名词,是一个普及的很好的书
好的句子:
用代码改变世界的人
part 1、 行业地图
首先 , 软件工程师是一群非常简单的人。
他们之所以每天用最简单的搭配一衬衫、牛仔裤、背包,其实是希望在这上面花尽量少的时间和精力
几乎所有人都会混淆行动与进展,混淆忙碌与多产
我要比的不是河南科技学院的同学们,而是所有在互联网计算机领域努力上进的人,
part 2、 新手上路
工程师,就是会解决问题、会提升效率的专业人员
选择平台时,新人应该判断两件事:这家公司是否面向未来,是否受技术驱动。
Facebook 首席运营官桑德伯格 (Sheryl Sandberg) 曾说,当你遇到火箭般上升的公司 , 不要管舱位,先坐上去
除了知道怎么选择平台,你还要了解自己,因为如果不了解自己,你也没办法找到适合自己的路线。在我看来 ,一个人要想认识自己,就得看清自己的特长、兴趣、热情等。
l .特长。首先你要找到自己的特长,找到自己的天赋,找到你在 DNA 里比别人强的东西,拿你的 DNA 跟别人竞争。你要找到自己可以干成的事,找到别人找你请教的事---你身边的人找你请教就说明你有特长,这是找到自己特长非常重要的方法。找到特长后,扬长避短就好。
2.兴趣。如果你没有找到自己的特长,就找自己有兴趣、有热情的东西。什么叫兴趣?兴趣是再难再累都不会放弃的事。如果你遇到困难就会放弃,那不叫兴趣。不怕困难,痴迷其中,就算你没有特长,有了这种特质,你也是头部人才。
3 .方法。如果你没有特长,也没有兴趣和热情,就要学方法。比如学习时间管理,学习做计划,学习统筹,学习总结犯过的错误,举一反三,学习探究事物之间的因果关系,等等。这是一些方法,你可以自己总结套路。
4. 勤奋。如果你前三者都没有,你还能做的事就是勤奋 。勤奋注定会让你成为一个比较劳累的人,也是很有可能被淘汰的人。随着你的年纪越来越大,你的勤奋也会变得越来越不值钱。因为年轻人会比你更勤奋,比你斗志更强,比你要钱更少。勤奋虽然不值钱,但是只要你勤奋,至少能够自食其力 。
以上就是为了认识自己,个人从特长、兴趣 、 方法一层
一层进行筛选、挖掘的方法。我个人不算是特别聪明的人,但自认为对技术还是比较感兴趣,难的我不怕 。 有很多比较难啃的技术,聪明点的人啃一个月就懂了,我不行,我可能要啃半年。但是没有关系,知识都是死的,只要不怕困难总有一天会懂的。最可怕的是畏难,为自己找借口。
注释明确—一写明为什么用这段代码,以及怎么用这段代码,而不是解释这段代码是什么 ;
避免重复原则
单一职责原则
高内聚、低耦合原则
开闭原则
换句话说,你自己写的代码,首先要自己去测 。
简言之,做测试是对开发人员的基本工作要求,不能假手他人完成
对千技术的基础,我分成以下四类。
程序语言:语言的原理,类库的实现,编程技术(并
发 、 异步等) , 编程范式 , 设计模式……系统原理 : 计算机系统,操作系统,网络协议,数据
库原理·…..中间件:消息队列,缓存系统,网关代理,调度
系统......理论知识:算法和数据结构,数据库范式,网络七层
模型,分布式系统 ……
是否掌握这些原理直接影响你能飞多高,因为懂原理的人和不懂原理的人能解决的问题完全是两个层级。
代码评审就是帮你把代码写漂亮的必经之路。
要想达成有效协作,技术团队可能不需要像业务部门 一样,大家坐在一起开很多会 。 只要在制度的公开透明 上下功夫 , 就会达到事半功倍的效果。
在公开透明上做得比较好的公司有很多,谷歌就是其中的典型。 谷歌大到公司的战略,小到每个人每周做了 什么 、写了什么代码,大家都是互相看得到的 。 只要感兴趣,你可以去看任何人的信息 : 目标是什么,完成了什么,写了哪些代码 、 哪些设计文档,这些是完全透明的 。
关于这一点我认为燕尾学长做的不好,我希望什么时候可以给他提提建议
想要做成,就不能着急,一旦着急很可能就会失败。要思考怎么样才能成功
本书限于篇幅,只选取了六位代表性的人物 。 他们是发明了 C 语言的丹尼斯 · 里奇 (Dennis Ritchie) ,发明了 Linux 系统、发起开源运动的林纳斯 · 托瓦兹,发
明了 Python 的吉多 · 范罗苏姆 (Gu ido van Rossum) ,两次拯枚人类登月计划的玛格丽特 · 汉密尔顿 (MargaretHamilton) ,开创分布式系统的杰夫 · 迪恩,在各个领域创造传奇的天才法布里斯 · 贝拉 (Fabrice Bellard) 。
每个计算机工程师都该知道的数字列表(单位.纳秒) 1
· LI cache reference (读取 CPU 的一级缓存) : 0.5 ns
· Branch mispreclict (分支预测). 5 ns
· 12 rache reference (读取 CPU 的二级缓存): 7 ns
· Mutex lock/unlock (互斥锁/解锁): JOO ns
· Main memory reference (读取内存数据): 100 11 S
Compress I K bytes with Zippy ( I K 字节压缩) l 0,000 ns
· Send 2K bytes over I Gbps network (在 !Gb p s 网络发送 2K 字节)叨,000 115
· Read I MB sequent ially from memory (从内存顺序读取 I MB ). 150,000 11S
· Round trip within same datacenter (同一数据中心内的往返)51)0,000 11 S
· Disk seek (磁盘搜索). I 0,000,000 11S
· Re a d I MB sequentially from network (从网络顺序读取 1MB)I 0,000,000 11S
· Read I MB sequent.ially from disk (从磁盘读取 1MB): 30,000,000 ns
· Send pa c ket CA->Netherlands->CA (一个包的一次远程访问)150,000,OOO ns