写给软件工程师的建议
前言
最近一段时间,通过和不同的人对话,脑海中涌现出了一些想法。另一方面也意识到自己正处在职业生涯的某个节点上,回顾从业的这几年,有得有失,所以想借这篇文章聊一下工程师成长这个话题,旨在能给大家带来一点点思考。受自身经验所限,这些观点不一定对,希望朋友们可以辩证的去思考。因为自己的职业属性,这里讨论的仅限于软件工程师这个群体。当然如果下面这些经验之谈能帮助到更多其他领域的同学,那我也荣幸之至。下面是正文,会分享几个个人认为工程师成长之路上很重要的点。
基础很重要
我之前作为一个求职者在面试的时候,喜欢问面试官一个问题:“你觉得优秀的工程师有哪些特质?”不同的面试官给出的答案不尽相同,但是他们几乎全都肯定了基础的重要性。
究竟什么是基础?我理解的基础大体上可以分为两类,一种是硬性的、可以被量化的,另一种是软性的、不可被量化的。这两者在你踏入职场前,身上就已经具备了其中部分才能或者潜质。
前者就是技术基础,对于这一点,不同岗位的要求是不一样的。比如以前招前端工程师时会要求你会 JavaScript、CSS、HTML 三剑客,随着现在行业越来越卷,要求的东西也越来越多,React、Vue、TypeScript、数据结构、网络等等等等。这里面有很多都是计科或者软工专业的同学在大学里学过的课程。这些也是比较容易被后天习得的,只要你肯踏踏实实静下心来学习几个月,肯定会收获很大。
而后者,不可被量化的那一类,则相对来说要难一些,不是所有人都可以短时间速成的。有些人生下来就具备这些特质,而有些人就算时隔多年也是在原地踏步。这些特质,包括但不限于学习能力、解决问题的能力、沟通能力、领导力。工作时你会发现跟有的同事讲话,非常顺畅,一点就通;而跟有的人沟通起来却很辛苦,恨不得把一句话扳开揉碎了喂到他的嘴边,这其实就是一种软素质较差的体现。
说了这么多,那么怎么样培养建立基础呢?我的答案是:刻意练习。明确自己的弱项,然后不停地反复地去刻意练习它。我刚上大学那会儿,每次上台讲话都会超级紧张,紧张到发抖冒汗。后来我做了个尝试,去学校的电信营业厅卖手机。这样每天都要被迫和许多人讲话,慢慢地学会了比较从容地面对人群讲话。有一个著名的一万小时定律,它说的是要成为某个领域的专家,需要 10000 小时。其实如果能在某一项上,坚持练习 1000 小时,就已经非常非常厉害了。