本书的封面


第一部分 人员的管理

  • billgates的审查
     对产品经理提出一系列越来越难的问题,直到产品经理答不出来为止。目的是测试产品经理有没有准备充分以及对目标有没有把握。
  • 寻找优秀程序员的三种办法
  1. 社招(简历)不靠谱,员工推荐不太靠谱
  2. 走出去,参加开发者大会
  3. 找实习生。
  4. 创造自己的知名社区网站。
  • 管理的三种方法
方法
说明 缺点
军事化管理法
军队可以让士兵绝对服从命令 1.会使团队人员不爽 2.不可能管理到所有细节 3.对于技术问题,程序员才是做决策的最佳人选,因为他们知道更多的技术细节。
经济利益驱动法
假设每个人的行为动机都是钱
1.会降低团队人员的内部驱动力,当你停止付钱或者他们不再需要钱,他们的驱动力就会消失。
2.员工会追求局部利益最大化,最终为了自己的利益可能做出对公司不好的行为。
3.会鼓励员工与制度博弈,寻找制度的缺失之处来为自己谋利。
经济利益驱动法更像是管理的退位,表面上简化了管理,但实际上却是管理的缺失。
认同法
方法:
1.培养认同感。设定积极的目标和价值观。
2.培养凝聚力和归属感。团队的人要一起吃饭,多组织集体活动。
3.信息共享。和员工要做到信息共享,以便员工更好的工作。
实施起来不容易。

第二部分 写给未来程序员的建议

  • 学校只教java的危险性
不学指针(看不懂操作系统的内核)和递归(无法理解优雅的程序),不学函数式编程(并发无副作用),学校无法剔除那些不适合当程序员的人。
企业不能判断哪些是合格的程序员。
作者认为java不够难,而教育界则讨论的是java作为入门级语言教学是否够简单。
  • 在耶鲁大学的演讲
     作者在本科学到了如何写作,不要读研究生,unix和windows的区别。
  • 给计算机系学生的建议
     

第三部分 设计的作用

  • 字体平滑、反锯齿和次像素渲染
苹果公司的设计有利于频幕界面和印刷一致
微软公司的设计有利于屏幕阅读
苹果的字体放到微软的系统上面会有一点模糊,比如在mac上面装windows系统,字体会变模糊。
  • 寸土必争
随便找一个东西,如果你找不到它的缺点,那就说明你的转型还没有成功。
  • 大构想的陷阱
     阅读的时候,眼镜只会盯住一个点,而其它地方像素很低,但是由于眼镜的注意力快速移动,让你产生了你已经看到了所有细节的错觉。软件设计中,你以为你可以做出来,看上去大体流程很清楚,但是一旦你考虑细节的时候你才会知道,你少考虑了很多东西。
  • 别让用户做太多选择
     
微软的关机选项有7种,再加上电源键(点击和长按)或者一些电脑上有快捷键关机或者重启,合下屏幕也可以睡眠或者关机。这样给用户的选择就有10种左右,而过多的选择会让用户产生选择困难而失去幸福感。
     如何改进?
     Switch User之前肯定要Lock,这两个按钮可以合并。
     Log Off就是为了退出当前运行的所有程序,可以和ShutDown按钮合并。
     Restart和shutdown是一样的,只需要按两次shutdown按钮即可(假设关机速度很快,而且不是远程操控(一般远程操控是命令行操作))
     Sleep和Hibernate说实话我不太懂他们的区别。
     现在我们只剩下 switch user/lock     log off/shutdown     hibernate/sleep三个按钮。
     考虑switch user/lock     hibernate/sleep这两个按钮的合并,当我按下这一个复合按钮的时候,会弹出一个切换用户的对话框,然后30秒内没有切换用户会进入休眠状态,而这个过程中计算机是一直锁定的。
     现在计算机只剩两个按钮了,就是这两种状态:
          1、我要离开电脑一会儿
          2、我要离开电脑很久,需要拔下电源
     现在考虑能不能合并这两个按钮,现在的电源管理系统已经能够做到你在睡眠状态下不关闭电脑也只耗很低的电源,即使你拔掉电源也能够保存你的数据,不会损失你的任何数据,所以这两个按钮完全可以合并。
  • 易用性是不够的

社会化界面设计,关于软件功能的设计,发短信的功能远比它的界面重要。

  • 用软件搭建社区

第四部分 管理大型项目

  • 火星人的耳机
     这一部分主要讲述了为什么现在的web标准如此复杂。
一对多模式:假设你在火星上发现火星人还在使用录音机,你发现了商机,你决定卖mp3给他们,为此你要制造一种耳机,于是你写了一份规格书,让其他厂商制造耳机,但是你的规格书里误写了电压的参数,结果厂商做出来的耳机总是爆炸,然后经过调整声音的赫兹终于能正常使用了,就这样你让火星人大量买了你的耳机,然后你想让你的耳机拥有打电话的功能,就是加一个麦克风,然后你重新设计了一个适配器,这个适配器考虑了以后的升级问题,但是推出以后火星人根本没人买,他们只在乎家里收藏了一衣柜的耳机,根本不在乎什么麦克风功能。然后你只有在耳机的接口处扩展功能,把耳机的金属轴接口分成三份,其中一份可以用来做麦克风功能,你又设计了一份协议,在接口处发射一个信号,当mp3找到这个信号的时候,就开启麦克风模式,否则就开启向后兼容的耳机模式,现在,整个市场就变成了一对多模式,同一个耳机有多个版本了。
多对多模式:由于你不停的给mp3增加功能,每个生产耳机的厂商都要把耳机在每一个mp3型号测试一遍,由于规格书的繁琐难读,有些产品出现了不兼容的现象,然后为了降低成本,厂商不得不只让耳机适配最流行的mp3播放器,这样,当耳机插入其他mp3的时候,会播放不出来或者更严重的会爆炸。原因是规格书有一个功能写得不清楚,比如,如果下雨,电压会升高,如果不下雨,电压不变。但是关于下雪,规格书没有讲,有的地方把下雪当成了下雨的一种,原因是都要用到雨刮器。有的地方从不下雪,所以就不是下雨。
然后有一个无聊的家伙,发表了一篇文章,利用漏洞可以解决兼容问题,比如用程序把下雪也误判成下雨,于是市场上就出现了多个版本的耳机和mp3,这就是多对多。
微软的ie8就是类似上面的流程。
  • 为什么微软office的文件格式如此复杂
  • 要挣钱就别嫌脏

第五部分 编程建议

  • 询证式日程规划
完后速率 = 估计用时/实际用时
蒙特卡洛方法估计值:
  • 关于战略问题的通信之六
  • 你的编程语言做得到吗
     不受限制的对象(函数指针,匿名函数)
     并行编程(比如有两个cpu,让你的循环分成两半在每个cpu上执行,速度会快上将近一倍)
  • 让错误的代码显而易见
     网站中,用户输入的字符串必须经过编码后才能使用,否则有可能会受到攻击。
     
怎样才能尽量避免这种出错方式呢?
     第一种办法:当用户的数据一传进来,就对数据进行编码。但是当需要直接存到数据库的时候实际上是要存储原来的字符的,所以不行。
   第二种办法:制定一种规范,只有输出字符串的时候才进行编码,但是有个问题,有些要输出的字符串是不可以进行编码的,比如包含html语句的(换行等)。
   第三种方法:设置中间变量,所有用户输入的字符串都必须赋给以us开头的变量,所有已知安全的字符串和包含html的字符换,都赋给s开头的变量。
这样子,可以判断
还有一种更简明的办法,重命名函数,
  • 把相同的代码放在一起
把相同的代码尽量放到一起,将有助于帮你发现你程序的错误。比如:
i = j*5
c语言可以一眼看出这句代码的意思,但是c++中必须要考虑到i和j的数据类型,以防进行了运算符重载,还要考虑继承和多态的问题。所以在c++中这样抽象不是好的行为。
详见抽象漏洞原理:点击打开链接
  • 匈牙利命名法
匈牙利命名法不是变量类型加变量名,而是类型(不同用途)加上变量名,比如
很多人误以为type就是变量类型,但是这除了提供变量类型没有提供任何有用信息。
  • 异常处理
异常处理破坏了代码的邻近性,在小程序中没有问题,但是在大程序中,会使得程序的关联性受损。
另外宏在大型程序中也要少用,否则你在看一个变量的时候将跳到其它页面,很麻烦。
注:此书后面有关软件公司及软件发布部分未读,原因是暂时还用不到这方面的知识。

《软件随想录》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. AFNetworking post请求遇到问题解决过程
  2. 已解决:PC插上串口工具后PC端口com那里有个黄色叹号,无法使用串口工具
  3. Ubuntu 下最简明的翻译词典(调用GoogleAPI,运行在终端)
  4. C语言spirograph算法图形绘制(附完整源码)
  5. 第三章——jXLS Excel标记
  6. flask第一章:项目环境搭建
  7. 2017.9.15 postgresql批量插入造成冲突后执行更新
  8. oracle 本地使用命令导入数据到远程主机
  9. 图的广度优先遍历和深度优先遍历
  10. HDU 4280 Island Transport(HLPP板子)题解
  11. pywin32+excel(一)——Python使用win32com/pywin32操作excel
  12. 《商务与经济统计》学习笔记(三)
  13. Vue中使用Bscroll @click无法执行的问题
  14. Java从数据库中读取Blob对象图片并显示的方法
  15. 成都拓嘉辰丰:拼多多子账号建立的方法?
  16. 2022年终总结——从打工到创业的转折
  17. 一文详解肖特基二极管损坏的六大原因
  18. 20亿人数据再被盗取,波及40多个国家和地区
  19. FPGA 双按键控制LED呼吸灯实现
  20. laravel6+Laravel-admin1.8.11 一对多 hasMany 中集成UEditor富文本编辑器

热门文章

  1. canvas实现虚线带箭头效果
  2. 可以作用c语言常量的是,正确的C语言常量是什么?
  3. Python编程基础及应用
  4. 黑马程序员-java学习第一天
  5. PHP——AES加解密 +SIGN校验唯一性安全性(Api)
  6. 天正计算机命令大全,新手必看-史上最全CAD快捷键大全
  7. 银行卡四要素验证API接口用法简介
  8. 计算机上分辨率怎么设置在哪里设置方法,Win7分辨率怎么调 Win7屏幕分辨率设置教程...
  9. excel选中行变色
  10. eclipse 图形界面设计技巧——JLabel