作为一名从业多年的IT人,我来回答一下这个问题。

程序员在初入职场的前三年是成长的高速期,好好利用这三年时间对程序员来说非常关键,因为这三年往往能决定程序员未来的职场发展。

程序员要想在短时间内快速的成长起来,要做好以下几点:

第一,做好本职工作,培养良好的职业素养。对于一名职场人来说,良好的职业素养是未来职场发展的基石,良好的职业素养体现在敬业、钻研、承担、团队精神等多个方面。

第二,提高业务能力。在初入职场阶段要努力提升自己的业务能力(编码能力),要利用一切可以利用的时间多学习业务知识。提高业务能力的重要途径就是多看资料、多动手做、多思考、多问,多总结。

第三,多与技术专家交流。交流本身就是一个成长的过程,与技术专家交流更是如此,有时候往往一个思路就能让自己受益匪浅,这一点我深有体会。我在做Java开发的初期曾经遇到过一个非常棘手的问题,当时我就跟一个C语言专家交流,他虽然没有使用过Java,但是他给了我一个思路,结果就顺利的解决了。所以说,思路往往比编程语言本身更重要。

第四,敢于承担新任务。很多年轻程序员就是敢于承担新任务才快速成长起来的,任何新任务对年轻的程序员来说都是发展的机会。我们团队曾经有一次下来一个新任务,之前没有人做过类似的开发,开会时有一个初级程序员主动请缨,结果他通过这个项目快速的成长了起来,成为了研发团队的主力研发人员。

第五,制定一个清晰的发展计划和阶段性目标。

随着信息化社会的不断发展,程序员在未来的发展空间非常大,尤其是研发级程序员。作为程序员来说要紧跟技术发展的脚步,不断更新自己的知识结构,只有这样才能在职场获得持续的提高。

我带软件团队多年,我会陆续在头条上写一些关于软件开发方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。

如果有相关的问题,也可以咨询我。

谢谢!

1、多读前辈的paper

我记得刚刚跨入大三的时候,当时对于NLP、IR、ML等知识,真的了解很少,那个时候做项目特别的痛苦,不知道从哪儿入手,很多时候为了解决一些问题,就开始花时间去做调研,开始学会在ACL等顶级的期刊上面去找论文,在Google文献里面去找论文来读,那个时候真的是每一天保持抽时间读至少一篇论文,读完就开始总结;最后发现读了六七十篇论文,才刚刚开始入门NLP这个领域,才知道有那么多人在研究那么多有意思的问题。那段时间特别的充实,但是进步真的很快,从一个小白慢慢的编程了一个入门者,最起码别人跟我讲朴素贝叶斯还有逻辑回归等我开始懂了,我开始制定如何去训练一个模型,如何去选择特征,如果去抽取特征;而这些都是来至于读的那六七十篇paper,这六七十篇paper有的很经典,有的很垃圾,但是他们就像一张网一样,在扩展我的知识面。

可以参考:

2、多看前辈的代码古人云“以铜为镜,可以正衣冠”,比如当时在做输入法,开始研究马尔科夫模型,就去读别人写的代码,比如去读svm源码,最大熵源码,我觉得读别人的代码的收获不仅仅是知道这个东西是如何实现,还能看到有一些很NB的语法,有一些很经典的算法。

3、多做不一样的项目多做项目,各种项目,大学的时候就去参与做输入法,此处顺便给WI输入法小插一个广告,11年11月分的时候我们开始立项搞智能手机安卓输入法,当时安卓手机刚刚开始兴起,12年开始动工,基本上都是手机开发文盲,在没有指点的情况下,开始研究安卓源码,开始研究输入法的字音转换,拼音切分,拼音纠错等等算法,如果没有耐得住寂寞的心,根本做不出来,当时没日没夜的在实验室研究,不断的测试,最后终于发版。

4、多和同行交流不懂就要问,多和行业的牛人去交流;其实很多人都很愿意和你交流,多问问别人是怎么做的,那些技术问题有没有什么新的方法去解决等等,把你的问题准备好,可以请人家吃个饭,边吃边聊,或者直接向人家请教;请教完了做自己的总结,该补充知识的时候就要学会去找资料,慢慢的一步一步的进步,成长。不要想着一步登天,更别想着“速成”

这个世界上,没有捷径;唯一的捷径就是“别走弯路”,除非你老爹是李刚或者砖石王老五或者马云爸爸。