程序员的价值绝对不在于技术本身,而在于做出好用且好看程序的能力,这是一个开放性的话题,每一个人都是菜鸟过来的,老九君希望每一个做技术的小伙伴都能尽快成为高手。
1、命名
从程序代码的命名,我们就可以看出一个人的水平。最差的命名就是使用中文、拼音、拼音缩写、中英混搭,接下来要么是模仿式命名,要么干脆就随意命名。
模仿式命名典型的就是“××DAL”,说实话,我觉得类似于“UserDAL”这样的名字,我觉得太不美观了,一般这我就知道这是典型分层架构的模仿者,说明他是有些经验的人了。
随意命名,就是写代码的时候,名字压根就没有意义,比如var list = new List<User>,其实完全可以写成var users = new List<User>的。想要命名的更有意义,你只需要将每一个类、每一个方法、每一个单词的名字都用你开发时的意思直接描述出来就行了。
2、“菜鸟”背后的答案
通过这一个问题的对比,我们可以发现我们为什么成为”菜鸟”,因为我们没有思考,没有去仔细研究找到其中的规律,找到问题的本质。本来想建立自己的思维程序,自己没有这个意识,所以自己就一直停留在“菜鸟”的水平上去。
“大神”程序员那样做通过认识几个重要的知识点,就把这个问题就解决了,所以技术对于他们来说,没有任何难度而言,因为他们经过了不断的思考,所以我们就应该认清我们“菜鸟”和“大神”之间的差距在哪里?我们不应该逃避这个问题,因为这个问题决定我们解决问题的态度,决定着我们的人生价值。
在程序员当中,为什么人家能整八千一万而自己却只能挣四五千(在程序员里最低),这就是根本原因:思考,解决问题的能力!
3、积极的心态
技术好的人,一般人都坏不到哪去。很简单的一句话,想要技术好,就要投入时间,有时间投入到技术,那么就没有时间投入到其它方面,特别是消极的坑蒙拐骗,因此,技术人员一般也都比较靠谱。
积极的心态,不仅仅对于技术,对于生活也是如此。一旦有了积极的心态,那么菜鸟到高手的过程,仅仅是时间的问题!
4、多做有意义的事情
有的人每天时间浪费在跟问题本身无关的事情上,比如我要设计架构的时候还要考虑架构图怎么画,写完代码还要反复部署测试好几轮才pass,查bug的时候把时间浪费在扫日志上。人的精力总是有限的,把时间浪费在这些事情上面,让自己提高的时间就变得少了。
5、练习,更多的练习
这里有个误区:“做有意义的事情”不等于“只做自己没做过的事情”。
对于程序员来说,写代码是基本功中的基本功,编码的规范、设计的权衡、甚至顺手的IDE快捷键都要靠平日的试错和积累,很难通过几本书或者几天培训领悟到。
曾经目睹一些人写代码一年之后开始做一些小项目的设计,然后就迫不及待的把重心全都转移到设计甚至架构上,这种没有基础能力支撑做出的设计和架构最多只能算是高级意淫,大多没等落地就荒废了,意义不大。究其原因,大多是设计出来的东西“不好做”或者“不好用”,就像是只看过一遍课本就去参加高数考试,现实吗?(学霸们我错了……)
6、善用工具
工具能解决的事情就用工具去解决,好的工具能节约大把的时间用在更有意义的事情上。
工具的范畴很广,比如linux的各种命令、比如团队内部的各种系统、比如顺手的应用、甚至包括上下班骑的自行车。只要能节约时间、提高效率,那就值得一试。
在这里我列举几个大幅度提升了我的效率的东西:
- 双屏显示器
- 顺手的键盘
- google(不是baidu!不是bing!)
- mac
- mac上的应用:idea、alfread、omnifocus、甚至synergy和istats menus之类跟开发本身关系不大的应用。
7、“菜鸟”转变“大神”之思
菜鸟们(我自己也是),我们该醒醒了,我们如何适应企业,如何适应将来的发展,如何生存是我们每个程序员必须面临的问题。我知道想当管理者的程序员很多,但是别忘了,从事软件业是从程序员一步步做起来的,我们连做好程序员的底子都没有,那我们如何受到同事的尊重,领导的重视,这个问题离我们很近了,我们现在应该转变我们的观念,学习的观念,适应企业的观念。
8、社交并建立联系
无所事事的时候不要将你宝贵的时间浪费在办公隔间里,也不要装古代小姐自以为矜持不和团队以外的人说话。如果还有其他实习生,也可以去找他们聊聊。在工作之余也应该建立自己的社会关系,建立自己的关系网。了解他们喜欢做什么,在哪里毕的业,以及正在搞什么项目。其中也会有一些刚从学校出来的开发菜鸟,他们非常愿意和你在吃饭的时候谈天说地,回答你提出的问题。你永远也不会知道,这些关系的价值有多大,将来能派上什么用场。总之,现在你要做的就是,交些朋友,特别是如果你到了一个新的地方。
最后
最后分享一下关于我理解的程序员的自我修养,在我看来,可以总结为:负责任,重名声。
负责任,说的更具体些:写的代码自己有没有测过、做的框架自己有没有用过、设计的架构自己有没有认真权衡过。
重名声,说的直接些:没有测过的代码、没有用过的框架、没有权衡过的方案有没有脸交付给别人。
与各位共勉。