看题主列的这些无非:语言、框架、数据库。
作为一个写了14年程序的老头子可以很负责任的告诉你:别整这些没用的。
任何一个卓越的程序员,掌握任何一门语言、任何一个框架、任何一种数据库系统的时间都不应该超过三天。
因为计算机科学里面,万变不离其宗,最核心的只有:算法、数据结构、体系结构。
深入理解了相关的核心原理、思想以及常见系统以后,你看什么新玩意都应该能够瞬间抓住本质,吸收理解并且运用自如。
如果你想成为行业里面的个中好手或者顶尖专家,可以多关注:硬件架构、操作系统原理、编译原理、分布式系统。
这些能让你真正深刻理解计算机科学的核心。而其他任何东西、知识,都是从这些里面派生出来的。而且这些,说实话,魅力无穷,比其它东西有趣多了。
除此以外,一个最卓越的程序员、或者工程师吧,并不是因为技术最好,而是因为有领导能力,以及对所在行业的深刻见地。
比如如果你在移动互联网领域,那么卓越的程序员是这样的:
- 能够充当半个产品经理,站在产品的层面思考问题、设计程序。能够与产品、质量部门出色的完成沟通。
- 优秀的领导能力。能够凝结团队力量,获得团队的肯定与支持,确定技术方向。领导能力并不是说你一定是经理或者老板,而是在团队中,大家认可你的技术实力以及为人,自然而然的愿意听你的。
- 对移动互联网行业特点、趋势有深刻的理解。知道竞争对手的优势劣势,清楚自家产品的价值和业务流。
行业经验这个事情,太重要了。计算机说到底只是工具,离不开具体的行业应用。所以熟悉具体行业又精通计算机的人,才是最或缺的复合型人才。
----------------------------
以上这些很可能题主早都已经了解了,那就当我废话了吧。
再来聊聊感觉进步很慢这件事。
在我的职业生涯里面,也无数次感觉进步很慢,碰到了上升的瓶颈。怎么回事呢?
其实,学习任何东西都跟练长跑一样,跑到某个公里数的时候,你会精疲力尽感到再也跑不下去了。这恰恰是你的身体极限快要被突破的时候。此时,坚持下去,再慢再难也坚持下去。
很快你会发现步子开始轻盈了,前进的速度也变快了。那么恭喜你突破了现在的瓶颈,朝下一个极限出发吧。
-------------------------------
补充下回答:
看到评论里面有些朋友还在纠结框架几天掌握的问题,请不要太较真了。每个人对框架的应用程度不同,以我个人的应用程度和体验来看,三天足够了。
而且我说的三天,不同人学习效率、空闲时间、上手速度、基础和经验、应用需求都不一样,真的没办法比较。
有的人可以全神贯注、废寝忘食,排除一切干扰,三天学会一个新东西也不是什么奇怪的事情。有的人挤不出时间,自己本来忙的就不可开交,注意力没办法集中,学习效率可想而知。
所以请明白我的重点,是不要花过多时间精力在追逐新语言、新框架上。这些都是表面的东西,况且现在的新框架层出不穷,三天两头就换一拨新潮流、新的技术栈,几乎已经沦为了某些群体个人喜好、个人崇拜的玩具,我认为对于想踏踏实实掌握计算机科学精髓的人来说,并不值得花过多时间追逐。
作为卓越的程序员,首先看清楚方向,弄明白技巧、技能、思想之间的差别以及孰轻孰重,然后就是多一点点坚持,并不需要多少特别的技术上的指导,我认为已经足够了。