想成为优秀程序员吗?

好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客了。有时间能静下来写点东西总是很好的一件事,如果写技术方面的博客,不仅能给读者提供一些解决问题的线索,也能加深自己对技术点的理解,如果写的是自己对项目的感悟,也算是对自己所做的工作的总结。现在终于有时间写点东西了,感觉还是不错的
大笑

今天这篇博客不是写关于具体技术的,而是我对程序员怎样学习和提高自己能力的一些感悟。我是今年7月初毕业的,离开学校后就直接进入之前实习的公司上班了。现在算来工作了也将近半年了,算上实习的时间,将近一年了。在这期间,参与了几个Android项目的开发,也维护过别人写的项目,虽然都不是很大的项目,但也学习了不少东西。在这其间,我亲身经历了一个设计拙劣的项目,是怎么样一步步趋于混乱而最终变的完全不可维护。从这件事情我了解到优秀的程序员是多么可贵,而“不优秀”的程序员是怎样把项目一步步的搞砸搞烂,也了解到做出一款优秀的软件是多么的困难。什么样的程序员才算优秀的程序员,而什么样的程序员是“不优秀”的?(我不愿意说别人坏话,只能委婉的说“不优秀”)作为一个工作不到半年的新人,谈论这个问题好像没什么权威性可言, 我也只是简单的谈论一下自己的看法,鉴于自己的阅历和经验不是很丰富,难免具有局限性,读这篇文章的读者可以指出我的错误。

我认为,优秀程序员和不优秀程序员的区别首先是态度上的区别。优秀的程序员有自己的理想,他们想做出好的东西,而不是混混日子而已,他们思考很多,不管是项目开始之前还是在项目进行中,项目完成之后也会进行总结。他们对待问题比较严谨,思考比较全面,在动手写代码之前肯定经过了一定的思考,对可能引入的问题进行预估。而不优秀的程序员对待问题比较随意,也就是态度上不是那么认真,代码写的也比较随意,从不考虑以后的变化因素,今天吃饱不管明天肚子饿,他们不会意识到他们的代码已经污染了整个项目。 在发现问题时,优秀的程序员总是想办法弥补,他们会找出自己的代码写的不好的地方,谨慎的修改或大胆的推翻重写,这样的话把问题消灭在萌芽阶段而不会让整个项目偏出正轨。而不优秀的程序员,很少能发现问题,即使能发现问题,也是迟迟不肯做出弥补,他们总是侥幸的认为这些问题不会在后期暴露出来,所以问题越积越多,最后导致整个项目混乱不堪,错误百出,无法维护。

除了态度上的不同,在能力上也有很大的差别。显而易见,优秀的程序员懂得比较多,他们乐于深入研究原理,对底层的知识有一定的了解或者了解的很透彻,而不只是停留在调用一个API;而不优秀的程序员一般不喜欢思考,对原理的兴趣也不多,他们不愿意花一些时间把一些问题搞明白,而只是简单的调用一下API,如果解决不了问题,随便在网上搜一段代码复制过来就万事大吉。所以遇到比较难缠的问题,优秀的程序员总是能从原理出发,一针见血的看出问题的真正原因,进而解决问题,而不优秀的程序员总是停留在表面,在网上搜了很长时间也没有解决问题。我深切的认识到,如果只是停留在调用API而不深入原理,永远也用不好API。

除此之外,优秀的程序员的另一个特点是善于并乐于学习,他们对自己所从事的工作有浓厚的兴趣,有强烈的好奇心,他们总是想把问题弄明白,他们喜欢清晰,而不是迷迷糊糊的感觉。对一个人的进步起决定性作用的因素是刻苦的学习,而不是所谓的“经验”。就像有人说的那样,在公司里工作不会使你成为大牛,只有持续的学习才能让你有长足的进步。现在很多招聘职位要求有几年的工作经验,这是最容易让人误导的。工作时间长的就能力一定强吗?举个例子,有两个清洁工,一个干了十年,每天还在默默的工作,而另一个只干了几天,经过自己的思考发明了一个新的工具或方法,让他的工作事半功倍。所以说,工作经验是很虚的东西,他用时间来计量,一个人工作了5年,他可能在5年中每天都学习进步,也可能一个经验用了5年而没有什么实质性的提高。

扯了这么多,好像和题目没什么关系。现在扯点和题目相关的。作为一个搞android应用开发的,我为什么要学Linux呢?我工作中又不会写linux程序,再说Linux内核博大精深,代码海量,关系错综复杂,学习Linux内核肯定要耗费大量的时间和精力,那我为什么还要学呢?在说这个问题之前,先谈谈我对学习的看法。

在学习一个东西之前,出于保险起见,我们总是会询问别人的意见,而在这些意见中,总是会有人说学这个干什么,工作中又用不到。如果谁给了你这样的建议,那么你一定要小心,因为基本上可以断定他是一个不爱学习的人。有很多东西,不是因为你“感觉”有用才学它,而是学了之后才能知道它有用。我的一位朋友是做C#的,他在业余时间学了Perl,当时学的时候总是有人认为没有用,但是当他学会之后,可以使用Perl强大的文本处理能力,去整理格式混乱的源码文件,可以写个程序自动的给领导发邮件。还有我大学的一位老师,年轻时因为英语比较好,被单位派去美国,获得了深造的机会,回来后做了我们学校的物理系主任,很多人也认为英语没有用,呵呵。我进入公司实习的时候,看了设计模式,在我翻看《Head First设计模式》时,被一个有经验的同事看见了,他告诉我看设计模式没有用,因为我们的项目是不会用到设计模式的。我不知道这是什么逻辑。反正当我看完设计模式之后,真的被这些设计巧妙而又极具实用性的模式所震撼,在以后的项目中,我大量使用了这些模式或者设计原则。所以如果一个工作了两三年或者更长时间的程序员还没有学习过设计模式,我会深深的鄙视他,认为他不是一个真正的程序员。

我上大学时学习了Java语言,当时还费了不少劲。基本的语法比较熟悉了之后,还是感觉到有些东西总是糊里糊涂,不够清晰,比如说不知道反射是怎样工作的。所以找了《深入Java虚拟机》来看,当我看了两遍这本书之后,感觉到原来不清晰的地方都显得自然而然,知道了class文件结构是怎样的,类是怎样被加载的,指令是怎么样被执行的,方法是怎样被动态绑定的。这些知识对我有很大的帮助,假如我不学习Java虚拟机,只是单纯的写Java程序,即使写上10年,也不见的比我现在对Java的理解更透彻。

说了这么多,只是想说学习是有用的,大大的有用。一个经验用5年并不等于有5年的工作经验,一个不学习的程序员是不会有什么发展机会的。所以,对于一个java程序员,还分不清对象和对象的引用,对于一个iOS程序员,还分不清ViewController到底是MVC中的视图还是控制器,那么没错,你该学习了,该静下心来好好巩固一下基础了。

最后,来到正题。我为什么学习Linux内核?首先,我对Linux有很深的兴趣和好奇心,我喜欢专研一下。从实用性出发,我可能一辈子都没有机会编写Linux内核,也可能一辈子都不会从事Linux驱动开发相关的工作,但是我知道它对我是有用的。能进一步加深对操作系统中概念和实现的理解,对底层的深入理解,能让我打下扎实的基础。一些新技术其实都是架构在基础的东西之上的。基础牢固,以后再学习什么新技术都会水到渠成。有人可能会反驳,说学习底层的东西没用,优秀的程序员应该专注于设计,项目管理或架构等上层的知识,我的观点是,设计,项目管理或架构等上层的知识和底层的知识一点都不冲突,不懂底层的人,基础不扎实,在上层也不会走的顺畅,设想一下,如果没有深厚的基础知识,你怎么能知道自己架构出来的东西能不能实现呢?

写到这里文章就写完了,由于比较困,可能写的有些散乱,在最后总结一下这篇文章的主要观点。
总结:
1 我们要做优秀的程序员,不要做“不优秀”的程序员;
2 学习是有用的,如果有人给你的建议是学XXX没用,那么你可要当心;
3 底层的知识和高层的知识不是不能相容的,真正优秀的程序员应该两者兼顾。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容