① 资深程序员可以避免敲代码时出现bug吗
程序员遇到bug是在正常不过的事情了,就算非常资深的程序员也无可避免bug的存在,一般来说,除非你写一辈子 Hello World。
不过世界上的确存在一些凤毛麟角天才的程序员,他们差不多能做到这一点。接到任务之后,思考,冥想,在笔记本上画出数据结构或某个算法片段,腹稿打的差不多了就开 始编程,用 Vim、Emacs 或 IDE 工具,大部分时候能够一气呵成,然后构建代码,构造测试数据,运行程序,在反复调试中修复几个编程过程中没有考虑到的问题,就可以提交到代码库了。
他们的 代码交给测试和其他开发者,少有人能挑出 bug,因为他们对代码有敏锐的感觉,能够在别人忽略的地方发现代码的坏味道,并给出巧妙而优雅的解决方案。
他们是天生的代码创造者,这样的人往往效率高 而且少有错误,以至于会被一些平庸的团队忽略,因为技术领导总是会下意识的去关注那些最容易出事的环节,但这些人才是团队真正的脊梁,不是那些四处救火者。
② 如何看出一个程序员的技术能力和水平
其实,评论一个程序员技术的高低,不是看他会多少技术,又懂多少技术。参加过什么大型的项目,也不是看他有没有自己的博客,github有多少star。
而是看他解决问题,定位问题的能力。这个很重要,真的很重要。
技术可以很快上手使用,但是解决问题定位问题的能力不是轻易就行的。特别是在高压下解决问题的能力。
下面是师姐为大家整理的一些建议:
解决问题
1.代码的命名要规范。
代码是写给人看的好嘛!代码是写给人看的好嘛!代码是写给人看的好嘛!
headImg是什么鬼?我能以为是banner么,头部的图片,请原谅我蹩脚的中式英语!avatar这个呢、portrait这个呢?会不会更好些?英语不好就不能用好有道、google翻译么?还有用中文拼音命名的,亲,我们用的是英文做为脚本好么?你要用这样的,用易语言可好?!
疯了!
为什么要用框架?一个很重要的原因是命名规范,目录规范,结构规范,分层规范,有利于团队协作,不要本末倒置!
2.架构和规划能力很重要,模块分层,解耦设计什么的,文件目录嵌几层?
这其中又跟命名的能力能搭上点关系。命名都命不好,目录结构怎么建?
url不要做的漂亮些吗?不考虑seo了?
你喜欢addGoods还是喜欢goodsAdd?
请你尊重点我的那些初高中英语语法好么?
3.协助能力、可持续能力。
最好的程序代码是脱离其产生者的。
为自己程序处处救火的程序汪并不是一条好汪。
我记得一句话就是:别想着你的代码以后还有机会重构!
每次说,额,这里我后面会改的,会改的,但是可惜,现实情况是根本不会给你这个时间的。
代码写出来,一是要爽了自己,二是也要爽了别人。
4.debug的能力、总结能力、学习能力真的很重要,代码写出来真的花的时间不长,但擦屁股的时间比写代码的时间多多了!
出了问题不记录,写个博文都好啊,我可没那么强大的记忆力,所以最讨厌考记忆力。
5.不要一贯的使用各种算法,秀算法的你们够了,要写去写底层,应用的场景比较多。
应用层面的程序,算法的应用不是特别多,大部分都是业务代码。以这个作为评价标准的,真心然并卵。
③ 如何理解程序员行业的一句话 : 面试造火箭,工作拧螺丝
我觉得可以有两种不同的理解,第一种是程序员对于面试困难程度的比喻,是从公司角度来谈,比如说,公司的要求很高,他们每一个管理员都需要具有非常强大的能力,去应对各种情况的发生,面试的时候,最好是能够成为一个全才,有着能够制造飞机的本领。而等到真的进入公司之后,其实要求没有那么多,工作任务也没有很重,都是一些很基础的工作。
这种情况对于程序员来说是挑战,对于我们其他人来说也一样,既然找工作面试如此有困难,那么我们就应该去努力提高自己,既然工作之后日子这么无趣,我们也应当坚守初心,不断学习。不要被生活所打垮,也不要甘于生活所带来的枯燥无味,
④ IT程序员,为什么会无奈苦逼
首先来谈谈为什么要有这篇文章,主要是最近一段时间的亲身经历后的所感。最近我们团队开始在全国范围内开始为很多的企业的项目进行性能调优。接触到了很多不同的人和事情,也看到了很多的现象,趁今天有点空闲时间和大家唠叨一下。 每次去IT社区,都在吐槽:说技术人员是多么的苦逼;每次和一些搞技术的朋友聚会,聊的也是大家的生活是多么的苦逼;每次上网看微博,也是充斥着“技术人员苦逼论”… 今天谈到这个话题,固然会有很多的不同的意见和想法,我这里这是就从我看到的一些现象和自己的一些思考说说技术人员到底为什么“苦逼”。 为什么苦逼? 原因一大堆,对于外部的因数,我们很难控制,例如中国的IT国情和对技术人员的观念。但是,在商业中有这样一句话可以借鉴一下:经济再萧条,也有人在赚钱;形式再好,也有很多人在亏本,很多的公司在倒闭。 很多的时候,我们倒苦水,但是心里要知道:是大的环境让我们苦逼,还是我们本身就得苦逼,换句话说,苦逼是我们自己应得的。这话很多人不爱听,但是很多时候确是事实。 这半年多以来,去了不少大大小小的公司,为他们的项目进行救火,解决他们现有的性能等问题。很多的项目在做的时候,很少考虑什么性能,安全等因素,都是上面的人在不断的催,下面的人在火急火燎的加班加点赶进度—今天完成了什么功能点,明天要完成什么功能点。于是很多的技术人员顾不上什么,一心思的把功能堆了起来。苦逼的第一个原因出来了。 终于,项目搞定了,上线跑了没有多久,问题就出来了:项目功能是齐全,但是就是无法使用,有的功能慢的像拖牛。于是,有人建议开始买好的设备,加大带宽,以为钱砸下去了,情况会好点。但是好景不长,甚至事与愿违。于是一堆人就开始焦虑,束手无策,技术人员又开始加班加点的解决明明知道自己无法解决的问题,于是苦逼的第二个原因出来了。 在无法搞定的情况下,技术人员开始郁闷了,接着疯狂的上网开始收集可能的偏方,然后一股脑的用在项目中,求神拜佛的希望偏方有效果,运气好,暂时搞定了,那就皆大欢喜,搞不定,把之前的步骤再次重复一次吧。基本可以用下面的一个幽默来总结这个过程: 从接触到的一些技术朋友来看,有些朋友的技术能力不错,有的却让我想抽自己,没有听错,是抽我自己。抽我自己为什么要给他们讲这么多的东西,而这些东西他们又不懂,然后又非得把懂这些知识的铺垫知识给他们讲。例如,项目出现了内存泄露的问题,公司的技术人员问题我这么回事,于是我告诉他们是VAS的碎片,他们又问我们为什么VAS碎片了,于是我们给他们讲述,但是他们听不懂,于是让我们给他们讲解一些铺垫知识:Window内存机制,.NET内存机制等。本来以为大家都是同行,交流交流,没想到,使得我们自己陷入了苦逼: 同时也深深的感受的一点:很多的技术朋友在走出了校门或者培训学校之后,技术能力就没有在进步了,一是处于打混的阶段,有的运气好,很多年之后,混到了不错的职位,但是很多的人却混的非常不幸,于是他们就成为“技术人员苦逼论“的忠实粉丝。其中有一点就是很多的朋友不喜欢自学,总是希望有人手把手的教。我们遇到的一个最搞人的情况就是,我们已经把功能全部调完了,代码完全实现了,服务器也是全部配置好了,就差调试了,很多的人依然不动。 也使得我想起另外一个情况:每次有很多的朋友都说要学习技术内幕,要学深一点,喊着叫着要看深一点的文章,但是写出来之后,没有几个人真正的看完,前几篇简单的介绍看的人很多,稍微深一点,就没有人看了。也有很多的朋友想到处找大牛拜师,都希望沾点牛气,成为牛中的一员。但是技术,能力,这个东西终究靠自己。用心与不用心,差别就是天壤之别。 我常常说这样的话:社会不是初中,高中,没有人会像老师那样手把手的教你,盯着你,一切靠自己。没有谁就非得要叫你,没有人欠你的,如果自己都不上进,想做阿斗,诸葛亮来了也没用办法。物竞天择,适者生存! 我非常敬佩那些出身不好但是一直坚持奋斗的人,也非常敬仰那么环境舒适还依然努力的人。你遇到过很多聪明人,你的大学同学,你的同事,你的朋友,有几个比你傻?很多年以后,你会看到成功的并不是最聪明的人。因为决定成功的更多是非智力因素:明确的目标,积极的心态,努力和坚持,承受挫折和压力的能力,成熟的接人待物等等。有一种人注定没戏:不努力和怨天尤人。 长期操作电脑需要养成的好习惯谈程序员的出路我的25年嵌入式生涯--周立功 (很值得一读)衣最个性:男装之短袖T桖篇男生买衣服为什么就这么难?技术七年之感受程序员每年要做的十件事Java 的工作原理Java语言的辉煌,还能延续多久?
⑤ 别人眼中的程序员和现实中的程序员差别在哪
别人肯定都以为程序员大部分时间都在码代码、敲命令。因吵猜为电影里的黑客啊就是这样子的,but还有更多的是我雀碰橘这样的顷团"码农"啊,手动微笑。
⑥ 程序员技术大牛升职后不编程是否是有一种浪费
就好像在我们医疗行业,做到主任级别就基本不看病人一样,每天都在忙于讲课和行政事务。事实上,是对资源的一种浪费。
长江向前推进。编码器仍然年轻。一个好的导师和一个年轻人可以做很多事情。
因此,这两个角色的任务必须清楚地分开。然后项目经理将被分配给另一个人,这个头衔也可以称为“技术总监”或“主菜”。总而言之,越X越好。
真正的大师(技术总监)应该致力于尽可能多的技术工作。最重要的工作是开发——生产代码和文档。
⑦ 如何理解程序员行业的一句话 : 面试造火箭,工作拧螺丝
理想和现实的差距,工作要求非常高,但工作真心不怎么样。
⑧ 对于程序员,该如何将工作和生活时间合理安排呢
虽然是一个实习生,但是也要有紧迫感。10年前我才出来撸代码的时候,都是时刻担心被炒。毕竟公司不是慈善机构,对我们都有考核期。你要尽快把需求,接口文档把业务逻辑走一遍。
⑨ 程序员过35岁就找不到工作了是真的吗好害怕
中国程序员不能超过35岁,似乎已经是不争的事实,国外却不一样,40、50岁仍然作开发工作的大有人在,为何会有如此差异呢?
在中国,程序员不能超过35岁,似乎已经是不争的事实,软件开发工作就是青春饭,顶多靠毕业这十年的时间,超过这个年龄,要不成功跃身成为管理者,要不转行进入其他领域,好像再没有更好的选择,即使偶有继续坚持作开发的,也被看成另类一族。老外却不是这样,40,50岁仍然作开发工作的大有人在,甚至很多牛人,包括获得康柏最佳软件奖的Robber,仍在埋头作着他所喜欢的编码工作,为何如此差异。我仔细想了一下,特别是这一年参加了太多的技术培训,基本有了一些结论。
首先,国内软件开发工作的性质决定这一切。我们所作的产品开发,真正技术含量并不高,高等院校毕业的学生经过几年的培训和实践,基本都能掌握这些技能。而我们现有产品开发设计水平有限,对于软件开发的理解还仅限于编码,完成功能这些基本的需求,产品进度是第一驱动力,特别是一些小公司,把快速开发出产品作为最高目标,软件设计质量差,很少考虑可维护性、可扩展性这些重要的软件质量属性,仅仅追求功能和进度,产品以最快的速度完成设计、编码,少有测试甚至没有测试,就直接交付给客户。当在客户那里暴露出各种各样的问题来时,开发人员就开始不断的为客户解决这样那样的问题。软件做到最后,很多人都会陷入自己不断挖掘出来的“陷阱”里走不出来,步入在复杂的系统中查找BUG、解决BUG、增加功能、引入新的BUG、再解决BUG这样永无休止的恶性循环中,从事的都是一些低级开发工作,对于软件开发的理解无法上升到更高的层次,每天都疲于救火和拼命打补丁,软件维护成本居高不下;即使最终摆脱了这样的厄运——项目结束,下一次软件开发又是同样过程的重复。
这些无休止的低级开发和维护工作,会耗光一个人所有的激情和精力,随着年龄的增大,热情和体力都在衰减,而这些工作,只要毕业生经过培训,同样可以胜任。有着廉价的、并且充满热情的毕业生作竞争,身心疲惫的老程序员必然面对更大的竞争压力,做到最后,连他们自己都会失去对软件开发的兴趣,甚至会产生厌倦的情绪。对于这样的快速开发模式,十年开发经验和五年开发经验有很大区别吗?干吗不使用更经济便宜的开发人员?
另一个原因,是我们中国人一向的官本位思想。开发人员始终处于一种很尴尬的境界,听起来从事的是高级技术工作,说起来也是“以人为本”,但是,有多少企业管理者真正重视和认可开发人员的,哪怕是硕士,博士,这些开发人员在“大官,小官”面前,都只是普通劳动者而已。程序员是一个没有未来的行业,哪怕资历再深,能力在强,也还是一个劳动者而已,只有当上领导,走上管理才是最终的出路,否则,薪水上不去,地位上不去,只能面对被淘汰的命运。
实际,之所以出现这种问题,是由于国内对软件开发一直抱有一种错误理解。如果软件开发仅仅是代码编写,查找BUG,可以说,那确实是在做一些低级的软件行为。做了十年的开发人员,确实不见得比作了3年的人更强多少,反正是简单重复的工作,工作3年的一样可以作,而且有更大的热情和精力。
软件业要发展,就应该跳出这个怪圈,走向更高的领域,对软件开发重新进行认识。我们要明白,软件开发要融入工程化的思想,要有高度的设计能力,关注更多的软件运行属性和设计质量属性。同样的系统,不同的软件人员会做出完全不同的软件,正规,高效的开发团队要比游击队开发团队不只高出几十倍的效率。
软件开发,不仅仅需要关注功能、性能,更应该去研究可维护性、可扩展性等质量属性;不仅仅只关注代码,而更要上升为设计,复用等。软件开发不能只是写出C语言的代码,单元测试、同行评审、培训与学习,这些都是开发人员基本的素质,也是提高软件质量的最基本手段;举例来说,单元测试做好了,就可以让开发效率大大提高,也能让软件的维护成本降下来,把开发人员解放出来;同行评审可以让开发人员之间更多的交流和沟通,在设计,编码阶段严格控制软件质量;培训则是提高自身技术水平,从理论上提升自己的最好方法。现在基本上所有这些主要的质量行为都被忽略了,而这恰恰是走出低级开发的最好途径。同时,还有更高层次的设计开发、软件重构、模块化、系统构架、搭建统一软件平台、度量软件质量等等。有了重构,就会写出可读性好,可维护性好的软件,甚至因此提高自己的软件设计能力,减少出错的几率;模块化,让软件最大程度的实现复用,提高软件开发效率和开发质量;软件构架设计,从技术层次上最早决定了软件的命运,而这里又有太多的技术,设计模式,软件规划等,让软件开发从编码上升到设计的层次,搭建统一软件平台,是大产品,系列化开发的必然之路,对于软件质量的度量,会让我们的软件开发变得更加透明,清晰,让我们更清楚地把握到软件的开发过程,从各个环节去控制软件质量,而不是仅仅凭着感性的认识到了最后才去补救。
以上这些知识,一个人,哪怕勤奋学习一辈子,也不可能完全具备所有的技能。35岁算什么,做到70岁都不晚。当然,你需要真正的热爱它,并且不断得学习和进修。所以说,软件开发人员,要作的事情太多了,软件实在是一项浩大的脑力工程,甚至会让人觉得这是一个投入/产出比最低的行业,因为要学习的知识实在太多了,每时每刻都要处于不断的学习和更新当中。既然选择了,既然喜欢了,就应该投入进去,享乐于此了。最重要的是,我们自己能并且愿意去认识到这一点,跳出低级开发的怪圈,走向更高的层次。
同时,要意识到,一个资深开发人员的作用绝不亚于一个管理人员,高明的企业应该给予相同的待遇,要把培养和储备高级技术人才作为高科技企业的重点发展方向,这样才能让企业在人才领域得到不断积累,资深开发人员才会带出高效的开发团队,从而开发出高质量,高效率的软件,让企业在不断激烈的竞争中取胜。要明白,不是每个人都适合或者乐于转向管理的,很多人就是适合做开发工作,他们可以走得更深入,成为专家,应该充分发挥出他们的能力,让整个团队高效运作起来。
所以说,开发人员,决不只是35岁,只要你愿意,可以作一生的开发,从中获得更多的快乐
⑩ 程序员35岁真的会被辞退吗
程序员是吃青春饭的,这一点大家都知道,当过了35岁以后,经历大不如前,也熬不了夜,这个时候脑力体力都会跟不上。那么,程序员35岁真的会被辞退吗?程序员35岁以后干什么?一起来看看吧!
这个因人而异吧
我接触到的很多同行岁数都不小了,30岁 40岁的
一部分人依旧还在搞研发,学习新的里面与技术,而且大多数人在他们所在的领域都有独到的见解和丰富的经验,在公司和部门中属于救火队员的角色,或者是技术的探索者,架构师等等。
还有一部分人转行了,比如产品经理。因为是研发出身,再加上多年的工作经验,干起产品经理相对来讲会得心应手一点,当然压力依旧不会小,甚至比单纯的编码的压力还要大。
最后一部分,可以算是淘汰了,就是那种已经对编码没有热情了的人
不过人生嘛,在不同的时期总会对不同的事物感兴趣,可能在一段时间后发现了更好的机会或者自己的爱好,不干程序员了也没什么了..
1、做技术总监,不写代码,把握公司技术线路、产品安全,为老板解忧。
2、做安分的程序员,工资要求不要太高,和领导关系搞好,老板也不会开除的。
3、转行自己做老板,找关系接项目,自己建团队开发。实际上很40岁左右的程序员就是这么做的。
4、转行做自媒体,现在抖音、头条、快手很火爆,做自媒体也有钱。但这个对程序员来讲跨度太大,风险高。
做任何行业都赚钱,但任何行业都要积累和沉淀,不要看别人说某事赚钱就进去,那样会有经济损失的,先观望观望,学习学习相关行业业务,时机成熟后再转行。
个人建议不要入行程序员了。
本人在互联网摸爬滚打了几年,团队里也曾经有30多岁的程序员入职,大部分都干不长就离开了。原因基本是:
1、精力不如年轻人,加班太多身体扛不住
2、需要快速上手,尽快熟悉新业务。但代码写的太烂了,文档也不完善,坑太多。熟悉下来很费劲儿。
3、团队里都是90后的小年轻,领导都比自己年轻,很尴尬。