这个问题问得有些抽象,首先我们确认一下怎么定义“优秀”。
我把优秀的工程师分成了三类:
第一类:优秀员工。
特点:工作努力,能较好的完成公司的开发任务。即使碰到困难也能加班加点完成,很容易成为团队的骨干。
缺陷:产生的最大价值在于公司给他分配的任务,职业生涯会和公司高度绑定,公司的成长速度决定了他的成长速度。工作较为被动。
第二类:大牛。
特点:在第一类的基础上,经常能出色的完成公司的开发任务。通常不满足于任务的完成,而会继续寻找优化方案以及探索底层原理。并能在业余时间不断钻研学习,自我提升。具有很高的主观能动性和学习能力。
缺陷:产生的最大价值在于个人的能力。
第三类:大师。
特点:师者,传道授业解惑也~在第二类的基础上。能主动分享经验,帮助其他工程师提升工作效率。还会偶尔参加线上线下的技术沙龙和讲座。
不仅个人能力强,还能提升团队实力和合作效率,产生的最大价值能随着团队的扩大不断提升。
然后再来看看怎么成为“优秀的前端开发人员”
说完价值观,我猜你比较关注的是技术方面的问题。
一提到技术学习,各种脑图、路线图随处可见,这些图其实看看就好,不要把它们当成一招鲜的武功秘籍。
我不相信每位优秀的开发者都掌握了那些技能,也就是说那些不是成为优秀开发者的充要条件。
那些技能只是表象、是结果,开发者真正的核心能力是解决问题的能力和学习能力。
解决问题的能力就是你的实力。
学习能力就是你的潜力。
如何培养?这里给出几点建议(重要程度不分先后):
思考与实践结合。代码写完之后多思考有没有提升的地方,解决困难的问题后多总结。看书看文章的时候多思考,动手写一写代码。
简单的事情做得极致。具体可以参考我上面给出的文章链接。
挑战困难。积极探索新的技术(对于你来说未使用过的)以及提升工作效率的方法。这样能大大提升你的成长速度。
以目标为导向。该学习什么技能、该使用什么框架这些问题其实应该从实际场景出发。同样的,学习也是要与实际应用相结合,也就是说,先考虑要开发什么产品,实现什么功能,再考虑如何实现,在实现过程中发现需要什么就用什么,什么不懂就学什么。当然这是初级极端,高级阶段很多事情要提前考虑、未雨绸缪,如果你能做到上面几点就会形成思维习惯和经验,要做到不难。
不是最重要的,但是也会有帮助。处在一个好的技术团队或者比你有经验的开发者指点你
|
|