同样是程序员,为什么别人比你更优秀?
随着互联网时代的飞速发展,越来越多的人投身于软件开发行业,大家都称他们为程序员,或者码农。
这些程序员的水平也是参差不齐的,有些人从比较好的学校毕业,水平却一般般;也有些人从一般搬的学校毕业,但是水平很高,因为他们付出了比其他人更多的努力;也有些人,不管是好学校还是差学校,毕业了都跑去培训班培训了,出来的也是良莠不齐的。
今天这篇文章,我们不从这些客观因素上去分析,就如题,同样是程序员,为什么别人比你更优秀?我结合自己的一些经历和经验,以及从身边优秀的人身上学习到的经验,从主观上去总结几点,与所有人共勉,希望能够读完。
1. 不要吝啬投资自己
和朋友一起搓一顿大概人均几十或者百把块钱,基本上我们都很随意,根本不会觉得这很贵或者很浪费。但是每当我们去买书或者去买一些优质的视频教程的时候,很多人会觉得很贵,甚至不太愿意出这个钱。
的确,技术书籍都很贵,动不动就50-100的,我想说的是什么呢?永远不要吝啬给自己投资,我研究生读的是通信专业,在学校自学的Java,我看过网上很多的免费视频教程,免费的教程有两个特点:一是入门的,二是质量不高的。但是要想真的提升自己,这些入门的教程是不够的,网上有些收费的教程确实不错,我读书那会儿也买过好几个项目视频跟着认认真真学习,收获颇丰。
而且现在也是知识付费时代了,入门资料一大堆,真正能提升自己Level的东西,哪怕花点钱,给自己投资永远是稳赚的生意。不要在乎那点钱。你和别人的差距,往往真的就是这一两百、两三百块钱给拉开的。因为知识创造的价值要比这几百块钱来的更猛。
2. 站在巨人的肩膀上
我们平时在开发的时候,会遇到一些功能上的东西要实现,当然咯,如果开发经验丰富,基本知道用什么技术去实现,但是对于开发经验不足的朋友来说,首先不要想着自己去造轮子,除非是非常冷门的一些技术,否则绝大多数现在互联网上都有了较多的解决方案,我们可以用来参考改进。软件开发,说的诙谐一点,就是 copy+改。因为工作不是学习,它是有deadline的。
还有一点,我们开发一般都会有很多类库,同一个功能可能有多个类库都可以实现。就像移动、联通和电信都可以满足你通信的需求一样,但是你选择哪一个,就看你自身的需要了。我们在实现某个功能的时候也是,如果能够选择一个很好的开源类库,那么必将是事半功倍,不管是从效率和稳定性上来说,都比我们自己实现要好得多。所以我们要站在巨人的肩膀上。
3. 了解数据结构和算法
就像武侠小说里说的那样,招式只是形式,要练神功,必须懂心法。数据结构和算法就是所谓的心法。我不是说要去掌握所有的数据结构和算法的原理以及实现,这也不太现实,但是那些基本的、经典的我们需要去掌握,甚至可以自己实现。这是内功。
现在好多面试也会问这些东西,特别是针对于应届生,不管你是本科还是硕士,基本上数据结构和算法的东西是必问的,如果你还不知道什么是二叉树、什么是快速排序,如果你还不知道什么是时间复杂度的话,那么确实要给自己充充电了。
我之前也连载过一些经典的数据结构和算法,也希望能够帮助到大家:最常用的经典数据结构和算法汇总。
4. 用熟练一款开发工具
我在学校的时候,一直在用 Eclipse 这个编辑器来写代码,基本的操作我也都会了,但是有一点就是 Eclipse 有点卡,而且动不动就卡,一言不合就卡。不过用习惯了,就懒得换了。
工作了后,我同事在用 IDEA,我也用了,两个一对比也是天壤之别,我就不说开发效率了,无疑是提升了好几倍,最起码不卡顿。我就说说使用心情,那也绝对是比 Eclipse 爽的。但是 IDEA 我没有那么的熟练,也在继续使用中。
所以选择一款好的开发工具很重要,不仅提升开发效率,最重要地,是你的心情好了,心情一好,干什么都来劲。
5. 写代码要规范
也许我一开始自学编程的时候,就跟着一些视频教程的缘故,受到那些大牛的影响,所以一开始我写代码就比较规范。我特别看不惯下面这种代码:
Integer index=0;
if(s_user.getNum()==0){
redisUtil.setInfo(s_user,0,-1);
}
这几行代码没有任何意义,我就是举个例子而已。如果是我写,我会写成下面这样:
Integer index = 0;
if(null != sUser && 0 == sUser.getNum()){
redisUtil.setInfo(sUser, 0, -1);
}
不管是空格上,还是命名规范上,甚至是空指针异常上,这些都是举个小例子,我们写代码一定要规范,这也是一个人有没有一个良好的习惯和态度的体现。最起码,可能你同事也会看你代码,请善待同事,程序员何苦难为程序员。
6. 不停地给自己充电
我们不能一直啃老本,干软件这一行,技术更新非常快,今年上半年学的技术,估计下半年就有了新的版本,我们要一直不停地给自己充电,不停地学习。哪怕是不停的总结自身不足,也比停滞不前要好,最起码自己没闲着。
我们还要有一定的忧患意识,公司每年都会输入新的年轻血液,有初学者,也有牛逼人物,我们不要让雇主逼着自己去学习,自己要有主动充电意识,这样才不会被周围的人给超越,才不会给后来者给超越。但是这都不是最根本的原因和出发点,最根本地,还是为了提升自己的能力。
7. 计划、坚持与执行力
我一直认为,一个优秀的人都应该是好的时间管理者,不管我们现在的能力如何,如果我们能合理的安排时间,分清主次,步步为营地去执行,坚持下来,我们肯定能收获很多,而且进步很快。
我从读研那会儿开始,每天学习,每周都会写几篇技术文章,总结好了,就写到博客里,没总结完的,就放在本地继续完善。我当初坚持写博客的目的很简单:巩固知识,形成系统,等到毕业找工作时可以很自豪的把博客地址放到简历上。这些我都做到了,我在CSDN写博客坚持三年多了,这期间我受益良多,不仅仅是为了找工作,也是个人品牌的积累,这非常重要。当由量变形成质变的那一刻,效果是很可怕的。如果你还没有博客,那希望看完这篇文章之后,去注册一个吧。
坏习惯养成很简单,好习惯养成很难,但是不管哪个,养成之后,都是蝴蝶效应。是良性循环还是恶性循环,就看自己了。
8. 放低自己的姿态
是在分享还是在吹逼,这点我们一下子就能辨别出来,我也有所谓的朋友经常在我面前吹牛逼,可能这是一个人的本性,每次跟我聊天都要海吹一波,我只能苦笑一番。这是做人的一种方式。
我是同济大学硕士毕业,可能相比于大部分人来说,我这个背景还算可以了,但是我一直为人低调,真心待人,从来不会因为你是大专或者一个不起眼的学校毕业的,我就在你面前吹牛逼,说一些大话,站在高处俯视你。我觉得人与人之间靠的是真诚,我真诚待人,别人肯定也会真诚待我。而不是我让别人觉得我有多牛逼,那样换来的也不是真正的友谊。
任何人都是从0开始往上爬的,你的背景好,可能快一点,别人差点,可能就会慢点,但是这不能说明别人就不够努力,我很佩服那些先天条件差,但是却非常努力的想要提升自己的人,我特别愿意给这些人帮助。我的粉丝当中,有很多很多还在学校读书的学生,也有很多大专生,这些粉丝在微信里跟我聊天,让我指点指点(当然,指点不敢当,我一般都是建议和分享),我都会耐心的把自己的想法结合他们的处境,给一个我觉得比较好的建议。别人来问我是看得起我,我能帮上忙的,基本上都义不容辞。
所以,如果哪天,我们牛逼了发达了,一定不要趾高气昂。人,不能有太多的棱角。这个社会,还是要靠朋友的。善待周围的朋友,放低自己的姿态,是对别人的一种尊重,同时,也是自己修养的体现。它也是决定一个人能否成功,能走多远的关键因素之一。