01
关于“工作和学习如何平衡”,让很多程序员感到很苦恼。
忙于工作就没时间学习了,光学习工作没法落地好也是白搭。就像有人说的:让一个人废掉最好的方法,就是让他忙到没时间学习!
最近正好看到某个大厂员工的提问,说技术成长主要是靠工作还是自学?该把时间精力更多投入到哪方面呢?
对于类似问题,网上也有相关的讨论,放张截图大家看看:

截图自“脉脉”
大多数人都认为自学比较重要,是理论基础,和工作实践相辅相成,学了知识拿公司项目练手,但绝不是靠加班!
但现实情况往往不存在“带薪学习”,如果你有时间带薪学习,那证明你工作不饱和,或者部门任务不重,那其实就是有一定风险的。毕竟咱们程序员的工作,又名不就是“加班”么?
02
关于技术成长,著名的技术问答网站——Stack Overflow的两位创始人杰夫 • 阿特伍德和乔尔 • 斯波尔斯基曾对类似问题发表过看法。
杰夫认为:“成为一名杰出的程序员其实跟写代码没有太大关系。做程序员确实需要一些技术能力,当然还要有坚韧不拔的精神。”
乔尔则觉得:“普通程序员和优秀程序员的不同之处,不在于他们掌握了多少种编程语言,也不在于他们谁更擅长Python或Java。真正关键的是,他们能不能把他们的想法表达清楚,优秀的程序员通过说服别人来表达或协作。
通过清晰的注释和技术文档,他们让其他程序员能快速理解他们的代码,这也意味着其他程序员能够重用他们的代码,而不必重新造轮子。”

03
其实核心观点就是,程序员的成长不在于具体的代码能力有多精进,毕竟要往上走的话,还是要看综合表现。那么反观技术成长,我们除了对标技术能力,还要考虑你写的代码有没有价值。
有人编程能力很厉害,但别人看不懂,这种代码我认为不是好代码,试想下如果你接受的工作发现代码都没有注释,是不是很想打人?
单纯的编程实战并不能持续地提高一个人的编程技能,关键还在于“刻意练习”,比如众所周知的“一万小时定律”。
所以不管是靠工作还是靠自学,我认为本质都没区别。在工作中“刻意练习”和自学某项知识,只是场景的差别,最终结果都是一样的。
不要妄想工作能带给你多少,你拿了薪资就是要听命干活的,说白了,就算是工作,那也是靠工作中的“刻意练习”,其实也就与“自学”无异了。
对于初入职场的程序员来说,其实更要学会的是如何管理自己的时间,有“把工作做好”的能力,就有“自学成材”的能力,成长的能力是可迁移的,并没有规定说工作中技术才能成长或只有自学才能学习知识。
对此大家有什么看法呢?可以扫码加我,一起交流~
