程序员晋升的秘密

  刚毕业那会找工作简单,但是找一份自己喜欢的工呵呵,难上加难,毕竟我们找工作都是看工作环境和薪资待遇的要求太多自然也就(此处省去一万字)。我那会儿可是历经了无尽的磨难,后来去兄弟连学习了一段时间之后,终于是守得云开见月明了,很顺利的就找到了一份薪水让我很满意的工作。如果你知识不扎实也也可以去继续学习或者通过一些培训类的网站看视频学习。成功入职之后问题又来了,我们作为新人应该如何上位呢?毕竟程序员是没有时间去勾心斗角的,难道只能一步一步的去熬资历吗?今天,我就通过自己的一些经历来给大家说一下,程序员如何才能上位。

  1. 遇事追踪溯源,不要怕改已有的代码

  2. 编码在保证正确的前提下,要足够快

  3. 主动承接团队里他人不愿意做的或者没做的事

  下面我将逐一分析说明这三点。

  一.遇事追踪溯源,不要怕改已有的代码

  新人通常会从新加一个相似的功能或者修bug开始逐步熟悉原有的系统,这时无论原有的代码写的怎么样,都应仔细的思考每段相关代码的作用和对应的需求,努力做到追踪溯源,掌握它们的来龙去脉,这时再做task就会游刃有余,在做相似功能时,你知道哪些地方已经实现可以复用,哪些地方因为新加的代码应该做些重构;修bug时,你可以从根本原因出发,解决问题,而不是在出现问题的地方修修补补;更重要的是你不会打怵修改原有的代码而蹑手蹑脚。当然一旦发现要修改大段的原有代码或者设计,还是要主动和老员工先确认下思路是否可行,是否有遗漏的地方再开始。但不出意外,你会一下子就给别人留下一个好的第一印象,因为你没有在机械的完成任务,而是先做了深入思考。

  写到这里不禁想起,自己刚工作时改了一个bug,当时的做法是在创建一个文件的代码之后3行再把这个文件删了,只加了一行代码就修好了,发给老员工review时还在窃喜自己只改一行代码就解决问题了,结果老员工一句话就把我问傻了,前面的那个文件为什么要创建呀?我当然不知道了,因为当时我想原有的代码我不熟悉就最好不动。于是,那一刻我得到了工作生涯第一个重要的建议,应该找到根本原因(root cause)后再修改代码。这时你不仅可以做好手中的任务,还能进一步思考问题是不是代码设计不合理造成的,同时不会怕改已有的代码。

  二.编码在保证正确的前提下,要足够快

  新人在做第一个任务时都想留下好印象的,首先要做的就是一定要保证修改是正确的,这里不仅局限于正常情况下功能正确,还应考虑边界条件,错误处理情况等等,最后再提交代码时要最终确认一下单元测试过不过,提交代码后再注意下Jenkins bulid过不过。这一切都是为了防止出现以下情况:

  * 一提交代码就break build或unit test

  * 测试随便一点就有各种问题

  * 匆匆忙忙修了一个问题,一提交又有其他问题

  别以为这些都些小事,它直接关乎别人对你的评价。不犯低级错误,建立起严谨的印象,是非常有助于你在新环境下脱颖而出的。

  但仅仅这样是不够的,如何在保证正确的前提下,提高速度或者效率则是另外一个要点。试想一下,你持续超出别人的预期,并保质保量的完成了task,哪个领导和同事会不喜欢你呢?千万不要狭隘的觉得自己做的快了要多做事,何苦呀。也许短期内你多做了一些原本没分配给你的任务,但你在别人心中逐步建立起严谨高效的印象,从长期来看将给你带来更多的机遇(本人就是因此受益)。

  三.主动承接团队里他人不愿意做或者没做的事

  逆向思考下,人家为什么招你进来?相信绝大多数情况是事情多做不过来,缺人了。事情多了一定有老员工不愿意做,或者因为各种原因没做的事。作为新人,做了别人不愿意做的事可以缓和他人的压力;做了别人没做的事,将为团队增加产出,如果这件事还是一个技术难题,那不是正好可以让别人眼前一亮,证明自己的实力吗?

  其实关于这一点,在做的时候要进一步深入思考。别人为什么不愿意做或者没做某些事?是因为缺乏相关知识而没有做?还是因为没有自动化每次手动操作既耗时又容易出错?是因为优先级不高?还是因为投入产出比不高?是因为代码结构不合理导致无法快速加上?还是因为需求不明确?是不是团队里的人因为思维定式错误估计了问题?是不是可以从其他的角度解决这个问题?要深入思考后,才能从根源入手,从而正确的解决问题。切记不要机械的完成任务,要努力让你的加入使团队变的更好。

  自己在第二份工作的开始阶段,就发现团队还没有使用持续集成的工具在统一的环境下交付测试,测试还在通过访问开发机器上的网站验证功能,结果开发之间互相break情况经常发生,项目质量也无法保证。询问后才知道,大家也很希望改进现状,只是因为一些原因没法得到系统组的支持,组内也没人来搭建持续集成的环境。于是我利用一开始相对轻松的时间,使用teamcity搭建出持续集成的环境,一时间大家都纷纷叫好,加上自己又接连解决了项目中一些棘手同时没人做的问题,一下子就树立了可靠的形象和在团队里技术主力的地位,慢慢的即使是公司中其他组没合作的过的人也对我评价很高。我自己琢磨出的原因是团队里缺能干活的人,但更缺能让团队变好的人。

  其实巧的是,如何使用teamcity搭建持续集成环境是我在第一份工作离职交接时主动做的最后一个task,因为当时有个小项目是我独立负责的,我想在交接时让项目更正规些,就主动提出这个想法,虽然在离职的前天晚上还在加班调试,当天上午还在和同事讨论一些细节,但就是这主动多做学会的技能成了我在第二份工作里出色开端的重要一环。

  写文章时,自己也在进一步思考,我认为上面的提到3点在很多工作场景中都是适用的,更通用的总结是:1. 做事要知其然并知其所以然2. 努力建立起严谨高效的形象3. 成为让团队变的更好的人。你有没有受到什么启发呢?当然了无论你是新人还是老人,只要是做了程序员,那就要不断的学习,否则不用新人往上挤,你自己就掉下来了,我通常都是到兄弟连学习下,或者是跟几个业内的朋友多交流一下自己的经验。如果你是新人的话,我还是建议你先到兄弟连这样的培训机构做一下系统的培训为好。

  文章的字数有点多感谢大家能在百忙之中抽空看笔者的文章,希望大家能继续关注兄弟连,如果是行外的朋友想要入行程序员,我个人是建议你去好的学校学习,因为有我的亲身体会,自学还是很难学的。。

  兄弟连官网:http://java.itxdl.cn/

  铛铛铛!另外兄弟连Linux培训汇集各行业名师共同打造全新的Linux培训课程。欢迎大家来进行学习哦!想继续深造的你们可以参加兄弟连教育同腾讯课堂合作首度联合推出PHP强化就业班助力发展,全网独家全程直播授课在线课程。成绩优秀的学员可获得腾讯课堂颁发的PHP工程师专业认证,并有机会腾讯系公司的面试推荐,在校学生成绩优秀者更有机会获得腾讯工程师内推机会,以及获得腾讯专家就业及面试指导。一键直达课堂

  https://ke.qq.com/huodong/xdl/index.html

时间: 2024-10-09 14:45:23

程序员晋升的秘密的相关文章

有人认为,“中文编程”是解决中国程序员效率的秘密武器,请问它是一个“银弹”么?

编程用什么语言只是一个标识符,以中文为母语的我们使用中文编程自然不会有什么劣势,作为程序员,习惯了英语编程,用中文也没什么优势.编程语言归根结底是技术,决定一种编程语言成败的,并不是使用什么语言来做标识,而是有没有技术上的优势来适应开发.英语是国际通用的语言,自然编程语言的标识都采用英语元素.

关于中文编程是解决中国程序员效率的秘密武器的问题思考

中文编程在理论上确实可以提高中国程序员或者说是在汉语言环境下成长学习的人,因为语言环境可以影响一个人的思维方式和习惯,我们对英语的学习局限于课堂知识的学习,没有一个比较好的英语环境,所以我们的思维在很大程度上很难去按照英语的一些思维习惯去理解和做事,所以在这方面上理解我是认可中文编程是一个解决中国程序员效率的一个方式. 就像以英语为语言进行设计的各种编程语言一样,汉语编程的发展和成熟也需要一个时间,不可能一蹴而就,不只需要成熟的语言系统还需要一种甚至是几种适合各种任务的编译软件,我们现在主流的语

学会思考--菜鸟程序员晋升大神之路

"菜鸟"和"大神" 刚刚走出就业的程序员,技术是刚刚起步的基点.那下面我们就聊一聊有关技术的东西.首先请您先想想这几个问题.现在社会上有很多程序员,那您是否可想过程序 员为什么会有不同的水平?你又是哪一类的程序员?"菜鸟"程序员和"大神"程序员差在哪里?真是差在技术上了吗?那不是差在技术上那差在了哪里? 上面很多一连串的问题,没有把你搞晕吧!那就听我一一给您分析这个问题背后的答案.确切的说程序员分为"菜鸟"

程序员晋升必备技能——单元测试框架(小豆君的干货铺)

可能每个程序员都面临着这样一种困境:由于客户总是无法用非常清晰的语言来描述需求,他们自身其实也并不完全清楚自己真正想要的是什么,而且即使你已经具备足够的业务知识和背景,为用户提供了全面的解决方案.但对于软件的需求,也会因各种原因而不断变更,所以作为程序员就需要为这些变更做好准备. 另一个促使程序员修改代码的动力,往往来自他们自身,不是每个程序员一上来就可以编写完美高效的代码,技艺超群的程序员总会不断地重构代码.而每一次重构就会面临着在已有测试通过的功能点上再次引入bug. 所以,针对以上的种种情

有人认为,“中文编程”是解决中国程序员编程的秘密武器,请问它是一个“银弹”么?

首先,我的观点是编程语言并非等同于英语,英文只是一个记号而已,如果所谓的中文编程只是将这些标识符和关键字换成中文的话技术上没有难度,只是这样做完全没有意义.因为编程语言与编程语言的区别并不在于所使用的记号是英文.法文还是中文,而是在于其设计思想和算法表现力.而且如果采用中文的话源代码会由于编码不统一带来非常麻烦的问题.由于计算机底层不支持中文,中文编程势必无法胜任底层编程,所以中文编程的缺点远大于其优势. 举个例子,对于中文编程语言,如果只是把SHORT A=10变为 整型数据A等于十,那么不过

程序员到项目经理:从内而外的提升

转自:http://www.cnblogs.com/watsonyin/archive/2012/09/10/2679528.html 目录 从程序员到项目经理(一):为什么要当项目经理 从程序员到项目经理(二):升职之辨 从程序员到项目经理(三):认识项目经理 从程序员到项目经理(四):外行可以领导内行吗 从程序员到项目经理(五):程序员加油站,不是人人都懂的学习要点 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑 从程序员到项目经理(七):程序员加油站 — 完美主义也是一种错

程序员的成长阶梯和级别定义(转)

近月,公司召开了今年的「武林大会」—— 年度晋升评比.如今大会落幕,尘埃落定,我呢既作为评委又作为选手参加了这次大会,有些感想在这里简单写下. 随着公司发展壮大,研发人员数量也日趋庞大(6k+),每个人如何成长,发展,修炼,打怪升级不仅是自身不可回避的命题,也是公司的一个重要命题.在互联网这行以 BAT 为首逐步发展出了自身成熟并成型的技术人员晋升体系和级别定义.例如:B 厂从 T1 到 T10,A 厂从 P1 到 P11,T 厂分四个大级别(T1 ~ T4)每个大级别内部再细分若干小级别.但不

从程序员到项目经理(一)

“从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程.从Javascript到Java,是一个取巧的方法:而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升. 一.为什么要当项目经理 1. 问题本质 如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言.但反问

从程序员到项目经理

“从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程.从Javascript到Java,是一个取巧的方法:而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升. 一.为什么要当项目经理 1. 问题本质 如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言.但反问