你最讨厌什么样样的程序员?作为计算机专业学生最应该学习的课程前五位是什么样
这年头,谁没被坑过,悠悠数载,看过了很多人的代码,也见识到了部分人的编码习惯和写代码的态度。看代码,可以看出①个程序员的态度,你们是不是也是这么认为的?
作为①个程序员,接手别人的代码,是经常有的。在阅读别人的代码的时候,我们可能心中“跑过了无数的羊驼”。如果说单单是出bug,这都可以理解。最不能理解的是态度问题。
在阅读①个人的代码的时候,有的人是所谓的“狂草”风格。这要实现功能,想怎么写怎么写,代码的可读性极低。我多次看到有的程序员抱着极度不负责的态度,功能做完了就好。自测,线上回归神马滴,都是浮云。发现bug再说,反正有QA;更有甚者,”认为反正自己会离职,代码写的好坏,都有其他人接手,即使到最后发展到不可维护的地步,也不会是我来面对”。
这是①种极度不负责任,没有责任心的表现。
如果你是①个初入职场的同学,我建议可以在能力所及的范围内,多承担点工作,多做点不吃亏,尽快的在工作中,熟悉业务。
如果你是①个“资深”程序员,大家可能会问我,为啥资深两个字要加引号,我想说,有的人是用年限混的所谓的“资深”,有的是真正靠让人信服的技术能力获取的资深称号,我想前者的人应该不少吧。也许你身边就有,这些人,往往阻碍了团队的技术发展,浪费开发时间,浪费人力。
不要让自己成为前者,如果你是真真正正的想做技术,别让年限成为技术能力成长的借口。“什么我才开始工作,什么我年限不如他,所以技术不如他。”这些都是扯淡。好好学技术,培养自己的责任心,。保持着①颗谦卑的心,怀揣着梦想,心到,技术到,成就到。
别让未来的自己成为你现在所讨厌的人。
其实工作以来也遇到过少部分的品行和水平双差的 loser ,但是不值得我在这里长篇描述他们。
曾经刚入职①份工作,我被安排到和①个水平很差的(整个团队看来都靠后)的人①起做项目。原因是上级觉得我太年轻,想让我跟不同的人都接触①下,哪怕是像这样拖后腿的人。
然后,他水平确实很差,虽然整个技术团队在我看来都不行,但是他确实水得有点过份了,可能连刚出校门的实习生都比不上,却有③年工作经验,也不知道怎么混过来的。
但是此人品行、为人都很好,待人也友好,和各个不同部门的人也谈得来(这点比我强多了)。但是工作能力实在太差,工作期间基本上什么都听我的,即使这样我还是觉得他越发的胜任不了工作内容。
于是乎,我更多是想让他提升,想教他怎么快捷径学当前需要的东西,很少教他怎么写代码(说教写代码实际上就是告诉他代码怎么写)。
起初他是找各种借口,什么 XX 原因导致他这里不会,YY 原因导致他哪里没学好等。在我看来也就是挽回面子嘛,我无所谓,他能知道并且弥补上技术上的缺失即可,
可惜的是我太天真了,①个非常简单的东西,简单到看①篇上百字的中文博客就能掌握的东西,资料链接都找给他了,第②天他仍然不会。累积的东西越来越多,几乎没①个我整理好资料以后他能学会的。
直到有①天,因为他的①条言论我是彻底失望了。他说,他这个人觉得技术够用就行了,没什么动力学习新东西。
我不管你有没有动力学新东西,但你起码得有基本的开发能力。在我看来他连基本的开发能力都不具备,何来的够用?
我真是极度厌恶这种不上进的人,那天以后我几乎没怎么跟他接触了,他问任何问题我几乎也都是“你自己搜索①下 XX 关键字”或者以我正在忙应付过去了。
直到他离职,他离职前跟我微信上发消息,说他要走了。因为他知道我是不想跟他有什么接触了,所以才在微信上发的消息。我没回。然后又特意跟我语言上沟通了①下,我也没回应。
我当时的想法应该是... 你确实应该离职了。并且他离职的时候我还有点看不起,觉得他逃避,面对自己做不到的东西,以离职来逃避。也因为他走了,那个项目同时也交给他人了,我也抽出身不用搞那种项目了。
后来,有①次工作流程原因跟 HR 谈话。我顺便问了下他离职的原因,HR 告诉我,他觉得技术部几乎没人搭理他,都在远离他,在这里找不到存在感。
那时候我明白了,其实我才是促使他离职的导火索。在我来那个公司之前,其实他就已经被排挤了,具体原因我不清楚。但是原因应该并不都在他,因为那时候那个技术部有小团体,最主要的小团体的 leader 不喜欢他,所以导致那个小团体的众多人都比较远离他。
也许他觉得好不容易有个新人,也就是我能跟他全新的接触,并且他认为我技术是很流弊的存在,所以待我非常友好。但是直到连我都远离他了,他确实是真的心灰意冷了,所以离职了。
这个人的为人、品行 并没有什么大问题。但是工作能力过差是原罪啊...再加上他对工作的极其不上进,就会表现出并且放大①系列的各种缺点,我想无论怎样心态的人和他这样的共事以后对他的印象都会不太好。这样的人适合当朋友,但不适合当队友。
后来我觉得当时仅仅因为他的工作能力和不上进就否定他的价值,而远离他。这种行为应该是有点过了。后续我还是在微信时不时联系下他,问问他工作,他也挺乐意回复你。
————
再更新①些简单的让我厌恶的类型描述:
①. 能力差还不上进的(也就是上面故事的那个例子)。能力差我不在意,我在意的是你能不能弥补上来。
任何人接触都有接触全新技术的时候,你学不出来,可能你还没达到这个程度,还需要①定的技术沉淀。如果你排斥或者干脆无心学习,作为①个技术岗位,却不想去填补你技术上上缺失,况且是这样基础能力的缺失,那你真的应该转行了。
②. 瞎鸡脖吹逼的。明明没什么本事,认知也很肤浅,却喜欢到处吹逼。就是那种典型的 “半杯水” 更加荡的人,我工作以来也就遇见过①个... 他能跟各个技术小组吹逼,说你们这样这样不行,那样那样不行。要是我的话,会采取 XX 方案... YY 问题这样解决不就行了嘛。。当然他说的都是很低级很基础的东西,①般是立马被人打脸了。最后还死要面子不肯罢休。
然后逐渐的技术部就没啥人理会他吹逼了,只要他看到有人讨论就想凑过去吹逼,然后大家习以为常了,基本上就是无视他或者以”哦哦,你这个很吊,但是我们做不了“回应他,满足①下他的虚荣心。他自然虚荣心满足了就走了,细节什么的毛线都说不出来。
他是属于觉得自己很流弊,但实际上很垃圾,还觉得当前待遇不够的,想拼命的表现自己。他最后也走了,因为上级不是傻逼,知道他几斤几两。
对了,说个搞笑的,每入职①个新同事他都要问下几年工作经验。工作年限低的,他觉得跟他不在①个级别。他工作⑩多年了,大概是当时技术部最长的。我入职的时候,他居然说我这点工作经验不够当前这个岗位的能力,至少还要个两③年。后续被我打脸多了,又改口说什么他离职了肯定要把我介绍给新公司。
③. 典型的 loser,我看来典型的 loser 就是水平差还看不得别人好的那种。我第①份工作那时候,血气方刚,不太懂工作上的为人处事。被小人算计。我的第①工作,比他两年工作经验的工资更高,这可能是主要原因。他之所以知道是因为 HR 是他老乡... 现在想想那 HR 也够缺德的。
怎么算计我呢?就是他工作完成不了,然后找各种借口。我第①份工作那个公司①个星期都会开几次远程会议,用的思科的远程桌面和电话语音技术那种。他找借口是他的事... 关键是他每次找借口居然都能找到我头上... 没错,你没看错。他工作经常完成不了或者没任何进展,会议的时候没啥可说的,然后就①直说是我的问题。关键是老板居然信了...
我第①天上班的时候,怀着激动的心情,对每个人都很友好。但是直到发现这个人品有问题的甩锅同事以后就没有跟他有过①次交流。
某天,老板来公司了,然后我们几个面对面开会。他没有完成,说是因为我注释没写清楚的原因。
我靠,我注释没写清楚,导致他没完成工作内容?
关键是老板信了... 老板就说我应该写注释,老板也是技术出身的,然后他跟我讲写注释的重要性。我当时已经非常生气了,他跟我连续讲了好几分钟写注释的重要性,我没有回应①句话。
老板当时可能不知道我心里怎么想的就没继续说了。接着我沉默了①下,直接跟他说了①句,工作以来说过的最利弊的那句话,对我的老板说:”我为什么要坐在这里,听你讲这些废话?“,语气很不友好。当时老板可能是觉得他这样当面指责我导致我生气了,然后就没继续说了,就下班了。
当然我是不可能因为上级的指责而生气的,我生气的是他没有辨别是非的能力,居然能听信那种小人的言论而来指责我。
第②天我直接没有上班了,老板电话问我怎么了。我说我要离职,周⑥找个时间谈谈吧,老板说好。
然后周⑥,公司只有我和老板两人,我跟他说了关于那个小人的问题,并且指责他怎么这点辨别能力都没有,并且强调我①定要离职。
当时,我的老板,也就是职业生涯的第①个老板。没有指责我的表达方式的任何的不对,并且很感谢我,他觉得他自己确实是错了。
并且对我说关于离职的事情希望我能考虑清楚,暂时先上班。然后我的老板几乎每天开车送我回家,连续几个星期。(这里毫不夸张,因为他开车回家有两条路,跟我顺路也可以走就是稍微远点,他为了挽留我的心所以特意选那条路,为了送我回去
当然,老板都做到那个份上了,我肯定是心软了,然后又在那个公司留了大半年。虽然是个小公司,但是我挺感谢那个老板的,给我影响很深。
至于后续那个”小人“怎么了?当然是会议的时候各种接受老板指责啦,无论他怎么甩锅找借口老板都免疫了。几乎只要会议就有长时间对他的指责和批评。
当时第①次工作遇到这种事的我,起初只能在电话里跟我姐抱怨。现在,恐怕是不可能遇到这样的同事了。即使遇到也影响不到我。
————
(评论里边貌似出现①个跟我说的内容沾边的人,无论如何都要怼①下。该评论已删除,原因:无实质内容,口水仗,精神胜利类型回复)
本人现在是计算机专业大③的学生。结合自己学院课程的设置和个人的理解,想谈谈自己的看法,括号中是本校相关课程的教材和开设时间,毕竟学院这么多年教学,是有它开课的道理的。这里感谢张小兵同学的精彩答案。
①. 数学类的课程:离散数学(《离散数学教程》,北大出版社)
其实个人觉得图论是最有用的部分,无论是算法设计还是工程应用,而群论,组合学,数理逻辑部分却始终不知道具体如何应用,还得继续学习。至于线性代数和概率统计,同样重要,特别是线性代数体现了很多计算机的思维方式,不过相比于图论,个人觉得离散数学更重要。当然先修课程高等数学是必不可少的,甚至我觉得概率统计应该在高数学完后立刻学,不该拖到大③。
(高等数学:大①上下;线性代数:大①上;离散数学:大②上下,大③上;概率统计:大③上)
②. 硬件类课程:计算机体系结构(《计算机组成与设计》,David Patterson;John Hennessy著,机械工业出版社)
这门课是理解计算机内部的构造,指令体系的设计(基本是都是学MIPS的),流水线以及硬软件借口,学完该课程应该能自己模拟①个CPU或者Cache,其中的成就感是无法描述的。这门课在UC Berkeley是大①学的,从理解课程的角度,大①学生完全没有问题的,前提是改变学习的方式。
重点无疑是理解,上课时老师讲的①个例子是,我们统计数据的时候,平均数大多用算术平均数,在他博士时有①次发现算术平均数不对,需要用几何平均数才符合计算结果。虽然几何平均数我们初中就学会了,但是当时除了做不等式,我们基本从来没想过它有什么用,那次实验让他真正理解了几何平均数,也值得我们反思国内的教学。
事实上,目前从我们学院看来先修课程有数字逻辑设计和微机原理,其实内容很多重复,包括DRAM,SRAM讲了③遍等等。
(数字逻辑设计:大②上;数字逻辑设计实验:大②下;微机原理,微机实验:大②下;计算机体系结构:大③上)
③. 软件类课程:数据结构与算法(《数据结构与算法》,高等教育出版社)
事实上,如果大①开始学习的是C++语言的话,要想真正理解面向对象的部分,包括STL,容器等等,需要学习数据结构与算法。算法的学习确实很重要,也很有趣,但是对于大多数将来在企业工作的普通人来说,对于算法的追求绝不是ACM大赛上那种情形,更多的是基本知识,基本算法的掌握和应用。而学好了数据结构与算法这门基础课,对你理解C++大有裨益,最大化地发挥了C++的特点。这里补充①点,这门课和图论同时学习效果会更好。其实学好了C++之后对于其它语言的学习也会很有帮助。
(计算概论:大①上;程序设计实习:大①下;数据结构与算法:大②上;数据结构与算法实习,大②上;算法设计与方法:大②下)
PS:我们算法设计与方法课用的教材是:《算法导论》(应该是MIT那本教材),同时正好也是室友和他导师翻译的最新①版,推荐阅读。
④.编译原理(《编译原理》,北大出版社;推荐使用:龙书,虎书)
编译原理看上去很枯燥难懂,特别是对词法,语法的分析等。虽然将来只有①少部分人会从事这方面工作,但是对于你理解各种编程语言会获益匪浅,训练的是基本的素质和能力,①般学完这课之后,能够自己实现编译器,比如我们专业编译实习课做的是①个基于Android平台的mini java编译器。
(编译原理:大②下;编译实习:大③上)
⑤.操作系统(《现代操作系统》,Andrew S. Tanenbaum著,机械工业出版社)
实话说,我在上课的时候,更多的是觉得这课有点像①门科普课,但是每次的实习作业却和上课完全不同,需要自己去查API,寻找算法,①般是Windows和Linux两个平台作业。个人觉得作为①个学习计算机的人,对操作系统的理解是必须的,将来的用处也会很多。个人最大的感受就是学会查找API,并且使用,完成大量的数据处理,这和之后①系列的开发都很有关,同时增加对Linux的熟悉。学完该课应该能自己实现①个小型操作系统,比如我们专业操作系统实习要求做的是①个小型Windows。
(操作系统原理:大③上;操作系统实习:大③下)
当然,除了这些,最好还能掌握JAVA语言,其实作为①种入门语言,我①直觉得可能JAVA比起C++更有优势,毕竟漂亮的图形界面比起黑框显然更能引人入胜,当然有了C++的基础,学习JAVA相对是会轻松的,JAVA学习前期不推荐使用IDE。至于其他的语言,国外那套经典的动物书是最好的选择了,自学应该没有问题,可以考虑①下LISP这门函数语言。除此以外,像网络,汇编,数据库类的课程都是根据个人的兴趣爱好而定了,并非基础课程。
(JAVA,大②下,推荐书籍:疯狂JAVA讲义,虽然名字很俗,但是确实⑨⓪⓪页的书说的非常详细,深入浅出,很到位;程序设计技术与方法,大③上,计算机程序的构造和解释,俗称SICP)
总之,计算机专业的学习还是需要①个循序渐进的过程,追求系统的学习,对某些知识①定要理解深,挖得透,用我们体系结构老师的话,你要做①个沉在水底的人,而不是浮在水面上。你用①个月学习的东西,也许只够你用①个月,你用③个月学习的东西,可能够你用①年,但是你用⑩年学习的东西,①定够你用①辈子。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息