一. 选择篇
- 编程语言
C
C#
JavaScript
Java
PHP
Python
- 想入门编程
Java
经典工业型语言;面向对象;虽然笨重,但严谨。
工作机会多。
再学习其他语言很快。 - 已入行服务端
一动一静
PHP + Java
或Java + Python
- 已入行前端
Node.js
、Python
- 关于
PHP
现阶段不推荐 - 关于
Python
国外特别火。适合作为第二语言,不适合以找工作为目的的同学。
一个语言,覆盖除底层外的所有场景。 - 关于
C#
用最好的语法,写最土的项目。 - 找工作
Web
方向:前端 /Java
- 前端
or
服务端
前端变化快,但服务端稳定,学习相对轻松。
前端工作需求量更大。
服务器端编程思维更通用,更接近本质。
前端会浪费大量时间在UI
上。 - 前端
需要有一定的审美能力;必须有极强的耐心;适合女孩子。 - 服务端
有一定的大局观、架构能力和抽象思维能力。 - 要不要成为全栈
前后端分离,削弱了程序员的成长力。
服务端与前端相比,只是多了一个数据库。
纵向扩展比横向语言的扩展更划算。
前端很容易原地打转。 -
前端非常有必要进阶服务端
前端进入工程化时间太短,发展路线不明确。
CTO
、技术总监少有纯前端。
掌握服务端,更容易统领全局。
谁离数据更近,谁更有话语权。
前端主要负责人机交互,易受UI
终端影响。
服务端转型(机器学习、自然语言处理)更快速。 - 优先选择一线互联网公司
技术的提升,必须要有复杂业务的驱动。
没人用,或者要求不高,就无法提升技术。 - 什么时候跳槽
勇敢一些,走出自己的舒适圈。
技术陈旧、没有用户的公司、没有高要求的公司。
多跳跳,不是坏事儿,但要更上一层楼。
二. 素养篇
- 正确认识程序员行业
薪水比其他行业高。
门槛低,好入门。
技术变迁太快,很难有“打磨”和“积淀”的感觉。
甘于平淡,耐得住寂寞。 - 程序员瓶颈
横向技术太多了,纵向深入太少。 - 程序员的价值
做出有人用的产品。 - 高效学习的方法
(1) 需要太强主观性的学习方式,都不是高效的方法。
定计划、看书、看视频。
自控力不行,所有方法论都是纸上谈兵。
例如:看视频先自己实现是最好的方式,但99%
人都做不到。
(2) 被动驱动学习 - 学以致用
做一款高质量、业务复杂的产品。
注重每一个细节,死磕项目。
互联网到处都是优秀的项目,完全可以1:1
实现。 - 综合素质
交流能力、管理能力、认知能力、学习能力、任务规划能力。 - 综合素质重要性
开源团队留下来的都是兴趣广泛的人。
程序员是最容易忽视综合素质的群体。
综合素质短期影响每个细小的选择和思维。
当技术达到一定程度的时候,综合素质是瓶颈。 - 如何培养综合素质
少盯着技术不放,少学习各种功能雷同的框架。
多看书,文学、历史、小说、诗歌等。
太强的目的性学习,反而不利于成长。
培养一个兴趣:摄影、绘画、写作、书法。 - 技术太多怎么办
编程不是为了考试,不能用上学考试的思维来学习编程。
以解决问题为目标:遇到问题,解决问题。 - 语言看书,框架看视频
- 书单
技术类:
《代码大全2》
《JavaScript高级编程》
《流畅的Python》
《Java核心技术》
《Java编程思想》
《算法图解》
非技术:
《黑客与画家》
《念楼学短》
《万里十五年》
《全球通史》
《浮生六记》
《白夜行》
《百年孤独》
《少年得到》
- 职业进阶
奴:非自愿和靠人监督的人。
徒:能力不足,肯自愿学习的人。
工:老老实实,按规矩做事的人。
匠:精通一门技艺或手艺的人。
师:掌握了规律,又能将其传授给他人的人。
家:有固定的信念,让别人生活得更好的人。
圣:精通事理,通达万物的人。
三. 总结
- 实践驱动学习 - 学以致用
- 综合素质 - 兴趣爱好
- 编程以解决问题为目标:遇到问题,解决问题
- 提升编程技术速度最快的方式是自我解决问题