学习笔记:

  • (语言平实达意,逻辑性清晰、环环相扣,因此可读性很强——数学系的写文字其实也有优势,让人容易理解)
  • 练习数学要写证明题,假设一道证题有10个步骤,如果你答题只写1,2,7,8的话,老师只会给1,2的分。你跳答,老师就知道你作弊了。这样强制数学系的人养成一个习惯,做事情都要从根本想起,把问题想透。 (数学对逻辑的训练:做事情都要从根本想起,把问题想透)
    • 于是就开了GROWTHSCHOOL,别入是教你入门,我是教你变成职业程序员。因为我之前培养出很多职业程序员,所以很清楚入门技能、方法、职业要求。 (入门级程序员和职业程序员)
      • 用户故事是教学的好方法,容易理解,对于高级程序员和初级程序员都是如此。
      • 用户故事教学就是按照用户的使用流程梳理需求和解决方案,然后层层拆解的过程。一直拆解,直到能直接写出程序为止。例如网店管理员需要一个管理后台,首先需要有帐号密码才能登录,登录后要有一个商品列表,能够添加、修改、删除,还要有一个订单列表,能够发货、退换货。
  • 找到Ruby on Rails,我写大型程序的速度有了很大提升。但后来我发现,自己写程序很快没有用,要很多人一起写才有用。但哪怕只是三、四个人的团队,有效沟通都是一个很大问题。所以要让一个网站快速发展就需要学习项目管理,否则很多事情都乱糟糟的,效率就无法提升。 (编程和项目管理)
  • 把项目管理练习到极致后,我又发现开发和产品必须结合,否则一味跟从产品经理和老板的意见,最后就会失去热情,做出的产品也不真正满足市场需要——一句话,学编程就要懂产品。 (编程和产品)
    • 产品和商品不同。产品的价值很低,但商品是有价值的。程序员要想让自己生产的产品变成有价值的商品,就需要懂产品,而不只是别人让你干什么你就干什么,把编程纯粹当作一项工作来做。
  • 有些新手只想跟大师学,问了一个问题,希望大师回答你。但大师有大师的风格,如果你的问题太蠢太无俚头的话,大师是没有兴趣和你聊天的,这样就会有挫折感。然后新手就会怀疑是自己的问题,还是大师的问题。但事实上根本不是这回事,是你自己没有达到那个境界,频率对不上,问问题的方式也不对。 (境界达不到,频率对不上,就没办法和高手对话)
  • 大家往往都习惯于选择远大的目标,但事实上学习需要选择适合的目标。 (学习需要选择适合的目标)
  • 解决问题的能力很重要。有了这个能力,不管软件开发怎么发展,你还是可以用相同的方法找到自己的途径,而与你用什么编程语言无关。例如,我学习iOS编程,它和我之前接触的语言无关,我用相同的方法,把每一个难题控制在我通过努力就可以解决的范围。如果不这么做,我就没办法克服眼前学习上的难关,也就无法继续下去,就会有很强的挫折感。 (控制问题的规模很重要)
  • 看书、研讨会、工作坊、学习别人的经验是学习编程最快最便宜的办法。因为自学要花时间,而时间是不可逆货币,太贵了。 (时间成本是最高的成本)
  • 我的哲学是:先做出可以解决问题的东西。 (实用主义) (不忘初心很重要:为了解决问题)
  • 学会用程序员思维去思考问题,对于没办法手动解决的问题,可以试着用程序去解决看看。比如记帐、计步。 (程序员思维) (也是产品经理思维)
  • 程序员思维就是把未知的问题列出来,找出已有的模式、已有的解决方案,再用有效率的方法,把大的难题拆解成小的难题然后再支解决,在这个过程中不断学习。 (从未知到已知,从问题到解决问题的过程)
  • 不具有程序员思维的人,根本不会编程。 (程序员思维是程序员的基本素质)
  • 学习编程是为了解决生活中困扰我们的问题。今天,对于每个人来说学习编程都很重要,因为未来通过编程解决问题的需求只会越来越多。 (语言、数学、编程是三门基础课程)
  • 程序是编程的结果,编程语言是表达想法的工具。Web编程,是把日常的商业模式变成网上的商业模式的过程。重点在于如何想出解决问题的方法,并把它具体化,而不在于使用什么编程语言。 (重点是提出解决问题的方法并具体实现)
  • 程序员的自我奖励:热情、进步、成就感。

results matching ""

    No results matching ""