程序员的自我修养

一. 选择篇

  1. 编程语言
    C C# JavaScript Java PHP Python
  2. 想入门编程
    Java
    经典工业型语言;面向对象;虽然笨重,但严谨。
    工作机会多。
    再学习其他语言很快。
  3. 已入行服务端
    一动一静
    PHP + JavaJava + Python
  4. 已入行前端
    Node.jsPython
  5. 关于PHP
    现阶段不推荐
  6. 关于Python
    国外特别火。适合作为第二语言,不适合以找工作为目的的同学。
    一个语言,覆盖除底层外的所有场景。
  7. 关于C#
    用最好的语法,写最土的项目。
  8. 找工作
    Web方向:前端 / Java
  9. 前端 or 服务端
    前端变化快,但服务端稳定,学习相对轻松。
    前端工作需求量更大。
    服务器端编程思维更通用,更接近本质。
    前端会浪费大量时间在UI上。
  10. 前端
    需要有一定的审美能力;必须有极强的耐心;适合女孩子。
  11. 服务端
    有一定的大局观、架构能力和抽象思维能力。
  12. 要不要成为全栈
    前后端分离,削弱了程序员的成长力。
    服务端与前端相比,只是多了一个数据库。
    纵向扩展比横向语言的扩展更划算。
    前端很容易原地打转。
  13. 前端非常有必要进阶服务端
    前端进入工程化时间太短,发展路线不明确。
    CTO、技术总监少有纯前端。
    掌握服务端,更容易统领全局。
    谁离数据更近,谁更有话语权。
    前端主要负责人机交互,易受UI终端影响。
    服务端转型(机器学习、自然语言处理)更快速。
  14. 优先选择一线互联网公司
    技术的提升,必须要有复杂业务的驱动。
    没人用,或者要求不高,就无法提升技术。
  15. 什么时候跳槽
    勇敢一些,走出自己的舒适圈。
    技术陈旧、没有用户的公司、没有高要求的公司。
    多跳跳,不是坏事儿,但要更上一层楼。

二. 素养篇

  1. 正确认识程序员行业
    薪水比其他行业高。
    门槛低,好入门。
    技术变迁太快,很难有“打磨”和“积淀”的感觉。
    甘于平淡,耐得住寂寞。
  2. 程序员瓶颈
    横向技术太多了,纵向深入太少。
  3. 程序员的价值
    做出有人用的产品。
  4. 高效学习的方法
    (1) 需要太强主观性的学习方式,都不是高效的方法。
    定计划、看书、看视频。
    自控力不行,所有方法论都是纸上谈兵。
    例如:看视频先自己实现是最好的方式,但99%人都做不到。
    (2) 被动驱动学习 - 学以致用
    做一款高质量、业务复杂的产品。
    注重每一个细节,死磕项目。
    互联网到处都是优秀的项目,完全可以1:1实现。
  5. 综合素质
    交流能力、管理能力、认知能力、学习能力、任务规划能力。
  6. 综合素质重要性
    开源团队留下来的都是兴趣广泛的人。
    程序员是最容易忽视综合素质的群体。
    综合素质短期影响每个细小的选择和思维。
    当技术达到一定程度的时候,综合素质是瓶颈。
  7. 如何培养综合素质
    少盯着技术不放,少学习各种功能雷同的框架。
    多看书,文学、历史、小说、诗歌等。
    太强的目的性学习,反而不利于成长。
    培养一个兴趣:摄影、绘画、写作、书法。
  8. 技术太多怎么办
    编程不是为了考试,不能用上学考试的思维来学习编程。
    以解决问题为目标:遇到问题,解决问题。
  9. 语言看书,框架看视频
  10. 书单
    技术类:
    《代码大全2》
    《JavaScript高级编程》
    《流畅的Python》
    《Java核心技术》 《Java编程思想》
    《算法图解》
    非技术:
    《黑客与画家》
    《念楼学短》
    《万里十五年》
    《全球通史》
    《浮生六记》
    《白夜行》
    《百年孤独》
    《少年得到》
  11. 职业进阶
    奴:非自愿和靠人监督的人。
    徒:能力不足,肯自愿学习的人。
    工:老老实实,按规矩做事的人。
    匠:精通一门技艺或手艺的人。
    师:掌握了规律,又能将其传授给他人的人。
    家:有固定的信念,让别人生活得更好的人。
    圣:精通事理,通达万物的人。

三. 总结

  1. 实践驱动学习 - 学以致用
  2. 综合素质 - 兴趣爱好
  3. 编程以解决问题为目标:遇到问题,解决问题
  4. 提升编程技术速度最快的方式是自我解决问题

参考资料

程序员的自我修养

推荐阅读更多精彩内容