导读:本文根据《Do You Morph Into A Different Programmer?》这篇文章翻译而来,译文来自伯乐在线《你在成长为一个优秀的程序员吗》。
内容如下:
在软件开发过程中,你经历的每件事情都会潜移默化地影响着你。随着时间的流逝,年纪的增长,对于程序开发技术(相同/或者相关能力)以及自身的理解也会不断沉淀,这些最终也会帮助你达成目标——成为一名优秀的程序员。这里谈到的经历不仅限于程序员生涯里的里程碑,比如换工作、成为领导/经理或者自己创业。你所经历的每一份工作、每个项目(不论大小)、与团队成员的每次交流、甚至你实现的每一个程序模块,都会让你变得比以前更优秀、更有活力、更有见地。
在日常的工作当中不放过任何一点可以学习的新知识,会让你成为更加出色的程序员。我说的是重要的经验——你不必去关心琐碎的事情(比如每一次敲击键盘是否完美),重要的是把握好每一天的安排。如果你出去旅游归来发现两手空空毫无收获,你肯定认为这是在浪费时间。对于程序员生涯也是如此。如果你在完成一个项目或者实现了一个程序功能之后自己没有收获(比如,对软件开发的理解没有提高并且也没有学到什么新的技术),这同样也是一种浪费。
你可能会说,有些必须完成的工作对你而言是无聊的重复劳动,从中学不到任何东西。事实可能的确如此,但是这取决于你如何看待它。归根结底你需要自己创造成长的条件,在做事的时候需要保持创新。
从每一次的经历中汲取营养
首先,除了学习新的编程语言,掌握你钟爱的开发平台最新特性,你还需要提高自己的沟通技巧。其次,学习如何与别人一起工作,提高自己团队协作能力也很重要。接着,你还需要掌握领导能力、管理能力、如何自我激励、财务知识、行业专业知识、营销知识和组织知识。除此之外对所从事行业相关的内容最好也要有广泛的认识和理解。在学习的过程中不断将自己推向极限,最终你会不断提升成为优秀的程序员。
我想说的是,无论你做什么,都可以从上面列举的这些方面来对照自己,看哪些方面可以有所提高。有的时候你的机遇很好,接触的是最新的技术,采用的是对你而言崭新的开发流程,这时你不由自主地就开始学习和吸收新知识。而有的时候工作确实很乏味,如果你不会自己创造条件自我提升(从上面列举的方面找到可以提高的地方),你就只能做着机械劳动白白浪费了一次提高自己的好机会,以及自己宝贵的时间。
下面我通过一个例子来说明如何从平凡的工作中提高自己。比如说你是一个SQL大牛,有一项工作需要完成很多SQL,只有你是最佳人选。你很精于此道,表面上这项工作很枯燥而且你也不能从中学到什么。但是如果进一步来看,也许这项任务需要与别人配合完成,而你可能并不十分擅长与别人搭档或者沟通,这就是你提高自己的绝佳机会,你要做的就是发现这个机会。或者也许你也十分擅长与别人搭档工作,但是假如这次你的搭档可能连新手都算不上,这就是你提高培训技巧的绝佳机会,捎带地也让这位新人快速成长。
也许这些都没有发生,你在做着一件你闭着眼睛都可以完成的工作,为什么不尝试去更深入地了解和提高你使用的技术呢?也许你也可以就此机会提高一下你的打字技巧,这肯定没有什么坏处。如果你实在不想做这件无聊的工作,可以尝试和老板沟通一下把事情推掉,虽然这不在我们上面的讨论范围之内,你也可以尝试一下。也许沟通不能达到目的,但是你可以从尝试沟通当中锻炼一下自己的机智和勇气(如何在尴尬的情形下保持镇定),毕竟你不会为了推掉任务而去惹恼你的经理/领导:)。所以,如果你能从不同的角度看待一个任务,突然之间你会发现在成为优秀程序员的路上又迈进了一步。
如果你在原地踏步该怎么办?
有的时候你一直无法摆脱一些事情(似乎这些事情本来就是如此)。即使从各个角度看也无法从中找到一点可以提高的地方,这个时候你该怎们办?这个问题问的很好,但你应该问的不是这个问题。如果你真的觉得不能从工作中学习和成长,为什么你还在做这样的工作呢(这个才是你应该问的)?如果是因为经济的原因(比如你现在的收入很高),那么一定要确保不会为了短期利益而损害了未来的前途。如果是因为你舍不得团队里一起工作的同事,那么只要分析一下利弊就会知道,即使你不在这里工作了,你们依然还是好朋友。你只是离开了公司,但你们的友谊没有结束。
如果不是上述的原因,那你为什么还在做这样的工作呢?你应该意识到,你会因此丧失宝贵的机会。请记住,对你所做的每一件事情给出评价,看它是否能给你带来改变或者加深你对程序开发技术的理解。如果答案是否定的,你可以马上离开;如果答案是肯定的,那么(做这件事的时候)你不但能够从中获得满足感,而且每一天(而不仅仅是每一年)都会在技术和人格上朝着完美的境界迈进。
分享到:
相关推荐
从给定的文件信息中,我们可以提炼出一系列与C程序员成长相关的知识点,这些知识点对于初学者尤其具有指导意义。...希望这份成长计划能为每一位致力于成为优秀C程序员的朋友提供有益的指导和启示。
在这个过程中,持续学习、拓宽视野、提升沟通能力和业务理解,都将有助于程序员逐步成长为一名优秀的架构师。通过阅读"系统架构设计程序员向架构师转型之路.pdf"这本书,读者可以更深入地了解这个过程,获取实用的...
3. 聪慧和虚心:高智商与优秀程序之间没有亲密的关系,需要充分理解一个一般的程序,你得有很强的吸取详情的力量并同时消化它们。 4. 求知欲:在成长为高手的过程中,对技术事物的求知欲具有压倒一切的重要性。相关...
**标题解析:** "如何成为一个优秀的JSP...通过系统学习以上知识点,并不断实践和反思,一个程序员可以逐步成长为一名优秀的JSP专家。同时,持续关注新的技术趋势,如微服务、云原生等,以便适应不断变化的开发环境。
一个还不太老的程序员,以他亲身的经历和体会,为我们描绘了一个程序员的真实生活图景,以及如何在软件行业立足和发展的思考。 首先,作者以自身的体会揭示了成为程序员的不易。在这个职业中,编程是核心任务,而它...
标题“程序员成长最快的环境(转)”暗示了这篇博客文章可能会探讨程序员如何在特定环境中迅速提升自己的技能和经验。虽然原始的描述是空的,但我们可以根据标题和标签来推测文章内容可能涉及的重要知识点。 标签...
书中涵盖了成为一个优秀程序员所需的思想、技能和实践方法。以下将详细解析书中的部分核心知识点: 1. **编程思想**:书中强调了编程不仅仅是编写代码,更是解决问题的过程。它提倡程序员应具备抽象思维、逻辑思维...
标题“如何成为一个优秀的JSP程序员下载”暗示了我们即将探讨的是关于JSP编程技术的提升和专业发展路径。描述中的重复内容并没有提供额外信息,但可以理解为强调成为优秀JSP程序员的重要性。 **标签解析** 1. **...
在这一体系中,作者周伟明从自身丰富的软件开发经验和对程序员职业的深入理解出发,详细阐述了每一个层级所需掌握的技能点和特点。 在第一个层次,即“菜鸟”层级,门槛相对较低,主要需要掌握计算机基本操作和一定...
而在大环境中,由于竞争激烈,跳槽往往被视为一个快速成长的途径。跳槽能带来新的机遇,如更高的薪资、更大的挑战以及更丰富的经验积累,但同时也需要谨慎处理,确保每次跳槽都能带来实质性的职业进步。 标签中的...
最终,他找到了一个既能激发自己激情又能发挥专长的方向,开始了真正的创业之旅。 **创业成功的关键** 从就业到创业的成功转型,关键在于不断的学习、勇于尝试以及对未知领域的探索。无论是作为员工还是创业者,...
例如,一个专注于后端开发的程序员可能会成长为一名优秀的系统架构师,负责整个系统的结构设计和技术选型等重要工作。 #### 二、项目管理路线 对于那些具备一定技术基础同时又善于沟通协调的程序员而言,转型成为...
在踏入程序员这一职业路径之初,了解“当程序员的第一件事”对于每位初学者来说至关重要。本文将围绕这个主题展开,深入探讨对于编程新手而言至...希望每位初学者都能在这条道路上越走越远,最终成为一名优秀的程序员。
从给定的文件信息来看,主要涉及的是JAVA程序员在工作中的自我评估,以及在不同时间段内的工作表现和个人成长。以下是对这些内容所蕴含的关键知识点的深入解析: ### JAVA程序员自我评估的重要性 JAVA作为一门广泛...
理解并满足客户需求,注重用户体验,灵活处理问题,以及站在客户角度思考,这些都是优秀程序员的必备素质。同时,持续学习新的技术和方法,结合业务场景,才能不断提升自己的编程思想,成为一个优秀的IT专业人才。在...
本文以一名 Java 程序员的经历为例,探讨了他在软件工程领域的学习、成长和体会。 首先,Java 作为程序员的主要工作语言,SSH(Struts、Spring、Hibernate)框架在开发中占据重要地位。SSH 是企业级应用开发的常用...
### 优秀程序员之路——C# 开发经验及技巧大汇总 #### 1. 使用接口代替类作为参数 在面向对象编程中,接口提供了一种更加灵活的方式来定义对象的行为。使用接口作为方法参数可以提高代码的复用性和扩展性。这是...
同时,阅读文档也是优秀程序员的一个重要习惯,它能帮助开发者及时获取最新的技术信息,解决实际问题,并避免重复发明轮子。 总的来说,掌握JDK和JQuery对于一个Java程序员的成长至关重要。持续学习和查阅相关文档...
一个杰出的职业生涯不仅代表了个人在技术领域的精湛造诣,更包括了个人品牌、沟通能力、团队合作能力以及商业洞察力等多方面的成熟。接下来,结合所提供的15条顶级职业建议,深入分析程序员应该怎样打造和维护一个...
转正是对试用期内员工表现的一种肯定,也是个人职业生涯中的一个重要里程碑。对于程序员来说,顺利通过试用期不仅意味着稳定的工作环境和职位,还可能带来更多的学习机会和发展空间。 ### 二、加薪申请的意义 加薪...