第一章:概述

   1.第一页1.1第2问:我成了一名职业的程序员,但是我发现所有的算法别人都已经给实现了,我只要调用就可以。似乎我们公司的软件与数据结构、算法的关系都不大。那我当初辛辛苦苦学习的数据结构和算法有用么?

  (1)数据结构与算法意味着一个程序员的基础水平。是编程思想的核心。

  (2)面试笔试会考。计算机基础知识牢固会让你拿到好公司的 offer 。

  (3)算法和数据结构很重要,在一些功能实现的时候,会算法和数据结构的可以找到更加优化的方式去解决。【1】

  (4)锻炼逻辑思维和处理问题的能力。

   2.如何区分一个好的程序员和不好的程序员?

      *要想成为一个专业的开发人员,至少需要以下三个条件:
      (1)能够熟练地选择和设计各种数据结构和算法。
      (2)至少要能够熟练地掌握一门程序设计语言。
      (3)熟知所涉及的相关应用领域的知识。

     *要具备的能力【2】

       出货能力:按照工程需要把事情给做完。
       优化能力:并没有一个程序是一步到位的,一个工程的交出去可运行了,那才是第一步,很多时候随着业务的增大,对性能的要求越来越高,有一定对于代码优化的能力也是比较重要的。
       调错能力:项目越大,越需要强大的Debug能力,找出那个最为关键的错误点,甚至于追溯底层框架的源码。

   
第二章:个人技术和流程
  1.第25页2.1.2怎样才算一个好的单元测试?
    (1)单元测试应该在最基本的功能/参数上验证程序的正确性
    (2)应该在充分熟悉代码的基础上进行单元测试
    (3)最好在设计的时候就写好单元测试,这样可以体现API的语义
    (4)单元测试后,机器状态保持不变
    (5)单元测试要快以保证效率
    (6)单元测试应该产生可重复的、一致的结果
    (7)保持独立性(不依赖于别人的测试)
    (8)单元测试应该覆盖所有代码路径(注:100%的代码覆盖率并不等同于100%的正确性)
    (9)单元测试应自动化,以便每个人可以随时随地运行单元测试
    (10)单元测试必须和代码一起保存和维护
第十六章:IT行业的创新
  1.第348页16.1.2迷思之二:大家都喜欢创新
    作者提到当一个创新的想法提出时,往往得不到身边的人的赞赏,不但大众不喜欢创新,甚至连创新者自己都憎恨创新,这好像并不符合人们长久以来的认知,创新似乎一直是人们所追求,所赞赏的。但仔细往下看,发现事实的确如此。当雅卡尔发明新的织布机,明明可以提高6倍的工作量,却遭到了工人的以死相逼;当哥白尼提出日心说,却被教会迫害;当尼古拉·特斯拉提出交流电,被爱迪生恶意攻击.....因为创新从长远来看,推动了社会的发展,但在当时对一群人甚至是一整个行业相比,带来的改变是颠覆性的。雅卡尔的织布机会导致大量的工人失业,哥白尼的日心说打破了长期以来居于宗教统治地位的地心说,违反了人们长期信仰的以人为本的观念;特斯拉的交流电会使爱迪生正蒸蒸日上的直流电事业毁于一旦。创新是值得人们推崇的,是具有新鲜的力量的,开启了新时代的大门,然而,创新又是无比残酷的,创新所带来的革命是颠覆性的。像互联网一样,网上购物的方式改变了人们的生活方式,给实体店带来了巨大的冲击。自谷歌人工智能AlphaGo去年打败李世石后,人工智能将快速爆发。李开复预言:十年后50%的人类工作将被AI取代,他提到我有一个“五秒钟准则”,即一项本来由人从事的工作,如果可以在5秒钟以内的时间里,对工作中需要思考和决策的问题作出相应决定,那么,这项工作就有非常大的可能被人工智能技术全部或部分取代。我个人预测,从事翻译、新闻报道、助理、保安、销售、客服、交易、会计、司机等工作的人,未来10年将有约90%被人工智能全部或部分取代。【3】可见创新注定是充满荆棘和挑战的。
 
  参照博客:
  【1】http://blog.csdn.net/qq_27194467/article/details/51605467
  【2】夏岩,https://www.zhihu.com/question/35194924/answer/61901999
  【3】http://money.163.com/17/1117/02/D3DK9EI8002580S6.html

 

  
            
  

 

posted on 2018-03-15 23:23  时&光  阅读(163)  评论(2编辑  收藏  举报