程序员这个职业在外面,一直被过于神化,又或者过于丑化。但其实程序员这个职业,与大多数职业一样,并没有什么特别的地方。
程序员靠技术吃饭,但又不完全靠技术吃饭。技术固然重要,但要把自己看作一个整体去经营,而不应该只求技术这一个点,因为,首先你是一个人,然后你才是程序员。
玩过《传奇》的都知道,在游戏里你想牛逼,不光等级要高,装备也要好,而且技能也要学,同时,学了技能以后,你还要提高你技能的熟练度,这样才可以在整体实力上碾压别人。
很多时候,生活和游戏里一样,你只知道一门心思的升级,却不知道全方位的提升自己,最终还是会被别人完虐。因此,所谓经营,就是要全方位的打造自己。
代码层面一个程序员是否优秀,代码是最直接的判断标准。远的不说,就说当时LZ面试阿里的时候,估计LZ的github就至少帮助LZ拿了50分(假设满分100,通过线为60),这就是代码对于面试结果的效力。
代码这个东西,一个同样的功能有无数写法,虽然好的写法没有固定的格式,但是坏的写法却基本都是相似的。比如:
其实,代码规范这东西,在网上可以搜索到一大堆,遵守规范自然重要,但小编个人觉得,拥有自己的代码素养更加难得。
任何一个程序员,都应该在业余时间去打造自己的开源项目,至于项目的大小,以及项目到底是什么,这个并不重要。
开源项目最大的优势是,你可以更加自由、更加精益求精的,去形成你的代码风格,毕竟在工作当中,有些时候是要有妥协的。
这里有一份儿清单,可以让一些想写开源项目,却又不知道该写些什么的同学知道,从你的职业生涯开始,你可以写一些什么样的项目,来提高自己的代码素养。
1、针对刚参加工作不久的同学,比较建议第一个开源项目,可以写一个自己的工具包。不用多么复杂,比如一些StringUtils、HttpUtils等等,把你日常使用的工具类,都变成自己的开源项目,积累下来。
2、针对两年左右的同学,建议这个时候写一个自己的个人博客,特别是做Java Web的同学。而且,做的时候,最好使用你最熟悉的Web框架来写,并尽可能追求不写一行多余和重复的代码。
3、对于四年左右的同学,建议自己写一个框架。这个框架可以是Web框架,也可以是ORM框架、NIO框架等等。
这样三个开源项目下来,基本上你的代码素养就可以得到充分的锻炼。当然了,在写这些开源项目的时候,请务必保持着一颗匠心,否则的话,就算你写再多,也是无济于事的。
技术层面对于参加工作一年以内的同学,你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。
对于参加工作1年到2年的同学,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。于是这个时候,设计模式就来了。这一年,你必须对于设计模式了如指掌,《大话设计模式》可以作为你的开端。
对于参加工作2年到3年的同学,这个阶段,有一本书是你必须看的,它叫做《深入理解Java虚拟机》。这本书绝对是Java开发者最重要的书,没有之一。
另外,还有一种学习的方式,在2年这个阶段,也应该启用了,那就是造轮子。不要听信那套“不要重复造轮子”的论调,那是公司为了节省时间成本编造出来的。重复造轮子或许对别人没有价值,因为你造的轮子可能早就有了,而且一般情况下你造出来的轮子还没有现存的好。但是对别人没有价值,不代表对你自己没有价值。
参加工作3年到4年的同学,这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。但一定要记住,作为一个程序猿,平日里所接触的技术可能会很多,但是想要让一门技术成为你的优势,那么一定是你对这门技术的了解强过绝大多数人才行。
在这一年里,一定要规划好自己的领域,建立好自己的优势,制造出差异性。如果你对自己的领域不够清晰的话,随着你工作的时间日益增多,你接触的技术会越来越多,这个时候,你很容易被淹死在技术的海洋里。
参加工作4年到5年的同学,技术学到这个阶段,很容易遇到瓶颈,这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。这次的开源项目不同于之前的造轮子,你这个时候是真的要去尽量尝试造出来真正对别人有价值的轮子。
交际层面这个层面,一直都是程序员的弱项,程序员被外界一直冠以“内向”、“不爱说话”的美名,不是没有原因的。就LZ接触过的程序员,有不少确实是这种性格,这其实很不利于未来的发展。
小编觉得,每个程序员应该有一个打开你交际圈的方式,而通常情况下,这种方式一般是你的一个爱好。比如健身、比如驴友、比如抽烟......
说到抽烟,并不是鼓励大家去抽烟,毕竟有害健康,但抽烟唯独一点优势是,在抽烟的时候,能够认识一大群同事,而且相对而言,烟友之间的友谊,会比普通同事更加单纯一些。
融入到这些圈子里,并不是为了让别人帮助你,如果你只是为了让别人帮助你而走进这个圈子,那你这人也未免有点太功利。
走进大家的圈子,你最重要的收获是,你有了机会和大家接触,有了机会和大家进行更深入的了解,这是锻炼你交际层面能力的好机会。学习如何交际,锻炼自己的情商,这才是让你融入圈子的最大目的。
魅力层面魅力说到底,其实就是你的气场,它主要包含了你的形象以及你的言谈举止。
关于形象方面,很多程序员都对这个很随意,经常可以看到程序员蓬头垢面,胡子拉碴的出现在公司和各个公共场所。
这是一种非常不好的习惯,尤其是有些严重的,就连面试的时候,都懒得把自己捯饬一下,这实在是太不把自己当人看了。
出门在外,最起码要保持自己干净整洁,很多程序员穿着拖鞋,外加一个大裤衩就上班去了,并把这种行为当做一种自由的体现,甚至以此为荣,这简直让人大跌眼镜。
没有任何一个人,会喜欢这样自由的你。而且,也几乎不会有任何一个人,愿意跟随这样的领导。所以,请保持自己的形象,不要让别人的眼睛,为你的懒惰买单。
至于言谈举止,这个东西,和太多因素相关,比如你的家庭环境、教育环境、个人的性格等等。
但是,不论你是怎样的环境下长大的,也不管你是什么样的性格,你的言谈举止,应该最起码做到一点,那就是——不影响他人。
总而言之,不要小看魅力层面的东西,它可不光只是找对象有用,对你的职场生涯,也会有很大的帮助。
结语有的时候,不光是灯红酒绿的世界可以让人沉迷,技术的世界也同样如此。甚至比前者更加可怕,它不但能让你悄无声息的陷入进去,还能让你产生一种你很上进,你很努力的假象,以至于等到你恍然大悟那天,已经悔之晚矣。因此,小编希望这篇文章,可以警醒一些人,技术层面固然重要,但代码层面才是你的根本目的,而交际层面和魅力层面,才是辅助你走上人生巅峰必不可少的。