`

程序员从初级到中级10个秘诀

阅读更多
Justin James曾发表过一篇博文《10 tips for advancing from a beginner to an intermediate developer》,为我们分享如何才能完成程序员从初级到中级的蜕变,现将中文译文转载于此,供大家借鉴。

在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客、文章及杂志分成两类:面向初学者类(“hello world”这种类型的教程)以及面向专家类(MSDN杂志)。这个观点很好,有关程序员如何从初级跃升到中级的信息极少。以下是为了实现这种转变需要你去做的10件事。

1.学习另一门语言

其实你学的是哪一门语言并没有关系,但是学习另一门语言(不管你已经了解多少种语言)将把你打造为更好的程序员。能学会一门与你日常使用的语言风格迥异的语言则更佳。打个比方,如果你是C#程序员,学习VB.NET或者Java对你的帮助就没有学习Ruby或者Groovy大。

我说“学另一门语言”的意思是要真正学会它。学习一门语言包括三个领域的知识:语法、内置操作符和库,以及“如何使用”。前面两个简单;我认为一名有经验的程序员,根据语言的不同,能在半小时到几小时内掌握足以维护代码的语法知识。操作符和库只不过是知识逐步积累的过程,你什么时候想清楚要了解什么了,再去查阅参考材料也不迟。只有第三项,“如何使用它”-要花上你几个月的时间去跟这门语言打交道,真正的奇迹就在此发生。我建议用这门语言的风格去做一个适合该语言的项目。

真正学会了另一门语言之后,我敢保证你的程序员水平一定会突飞猛进。

2.学习先进的搜索技术、手段和及策略

作为一名好的程序员,不仅仅是技能的问题了,而是你寻找信息的技巧,这个趋势越来越明显。对大部分人而言,仅仅输入“现代语言及开发框架”,这都是泛泛之谈,记不住多少的。因此,你完成工作的能力通常取决于你的检索能力。不幸的是,了解到如何找到准确而高质量的信息可不仅仅是跑到TechRepublic来找答案,或者在你选好的搜索引擎上敲几个字那么简单。

“技术(Techniques)”、“手段(tactics)”和“策略(strategies)”看起来是一回事,实际上并非如此。你需要学会的技术是掌握你喜爱的搜索引擎的高级搜索系统;你需要了解诸如布尔操作符,如何过滤结果(像“非”关键字,域限制等等),关键字的词序扮演什么角色,等等。一句话,RTFM(Read The Fucking Manual,读那些他妈的手册)吧。

你应该学会这些手段,诸如如何接近特定的搜索,以及了解自己实际上想查些什么。查错误很容易—只需查出错代码即可—但是许多搜索的关键字选择要困难得多。

至于策略,你需要学会的东西,包括像应该使用哪种搜索引擎(提示:普通的搜索引擎不一定就是最佳选择),使用普通搜索引擎前应该访问哪个网站,甚至是应该到哪个论坛去寻求帮助,等等。

3.帮助别人

教别人始终是学习一切东西的最好方法之一。相对而言,由于你在开发领域还是个新手,认为自己没什么可教给人家的,这可以理解。但这毫无意义。记住,你所学到的一切都是你从别人或别处学到的;因此请尝试一下,成为另外一个人要请教的“别人”。每天尽量花一点时间试着回答TechRepublic上的问题,其他网站的亦可。读读其他会员的回答,你也可以学到很多东西。

4.有耐心,常练习

研究表明,要成为一名“专家”,需要花费10年,或者10000到20000小时的刻意练习时间。真的很久。还有,成为专家不尽然就是执行10年同样的任务;通常这意味着要在特定领域内执行广泛的任务。需要花费大量的时间和精力才能成为“专家”;做几年程序员是不够的。想在30岁左右成为一名高级软件开发工程师?要么尽早接受教育/培训,要么你得愿意在闲暇时间进行大量的工作、阅读和练习。我从高中开始编程,还牺牲了许多休息时间去跟踪行业发展、学习新技能等等。结果,我获得中级和高级程序员的时间就比我的大部分同事都要早得多,随着时间的推移,这些就转化成为很多的金钱。

5.对教条拒之门外

是时候开诚布公了:也许初级程序员了解的东西还不足以说出做某件事情有一种最好的方式。尊重朋友或者权威的观点是好的,但直到你更有经验之前,不要把他们的观点说成是你自己的。很简单,如果你所了解的不足以让你独立地找出这些东西来,你又怎么会认为你知道哪一位“专家”是对的呢?话是难听了点,不过请相信我;由于受某些愚蠢建议的蛊惑,或者追随某些根本不知道自己在说些什么的所谓专家,白白把自己的职业生涯耽搁了几年,这样毛头小伙程序员,我见过多了。这一点有一个很好的例子,就是面向对象结构的滥用。比如说,许多初级者读了一些有关面向对象的信息后,突然间,他们那简单的应用程序的类图看起来就像埃菲尔铁塔一样了。

6.深入学习一点先进理念

成为一名中级程序员,很大一部分是要在代码里面体现出一些所擅长的概念。就我而言,是多线程/并行性,是正则表达式,以及如何对动态语言进行变化(后两个在我离Perl渐行渐远后开始退化)。这是如何发生的?多线程和并行处理是因为我读了相关文章,觉得它看起来很有趣,然后再自己把它弄清楚了;然后我就一直使用这些技术来写应用。我做过一件工作,是用Perl写的,里面运用了大量的正则表达式。我也用一个过程引擎模板和内置数据库系统写过我自己的电子商务引擎;那时我几乎花了2年时间在这上面。

找到真正令你着迷的东西。也许是图像处理,也许是数据库设计,等等。即便你是一个入门级的程序员,也要尝试一下成为某一自己所关注领域的专家。这会让你相当快速地进入到中级水平,一旦你到了那个水平,你的专家之路也走到一半了。

7.学习你的领域里面的基本理论

写出“Hello World”,跟理解那些字是如何显示到屏幕上的是两码事。通过学习支撑你所从事的工作的“基础/底层工作(groundwork)”,你会变得更加在行。为什么?因为你会理解事物为何会以这种方式运作,当东西坏了就能知道是哪里的问题,等等。通过掌握工作的底层机制,你变会得更出色。

如果你是Web程序员,读读HTTP RFC和HTML规范。如果你使用代码生成器,好好看看它生成的代码;如果你使用数据库工具,看看它生成的底层SQL语句,不一而足。

8.看看高级程序员的代码

在工作中看看高级程序员写的代码,然后问一问事情是如何以某种特别的方式完成的,为什么?可能的话看看开源的项目。甚至即使其他程序员没有最好的编程习惯,你也会学到许多编程经验。当然,要小心别学到坏习惯。我的意思是说不要生搬硬套人家的东西;你要能领会到哪些是能行的通的,哪些是有道理的,然后再模仿人家。

9.学习好的习惯

愚蠢的变量名,糟糕的缩进习惯以及其他一些凌乱的迹象就是一个没有经验的程序员的最好标记。一个程序员在学会如何编程时,却经常没有被传授到那些不那么有趣的细节,像代码格式编排。甚至尽管学习这些东西并不会令你的代码更好,也不会令你成为更好的程序员,它也会确保你不被同事视为入门级的程序员。甚至即使某人是高级程序员,如果他的变量是以他那97只猫的名字来命名,或者其函数叫做“doSomething()”的,他们看起来也不像是知道自己在干什么的人。而且会令其代码在过程中更难以维护。

10.要玩的开心

想要痴迷于单调乏味的工作?痛恨工作吧。要想升级为中级程序员可不仅仅是为了拿到不断增长的工资不达目的誓不罢休,而是要真正享受工作。如果你不喜欢自己的工作,且还是初级程序员,你怎么会认为成为中级或高级程序员情况就会有所好转呢?换工作或改职业吧。反过来说,如果你喜爱所从事的工作,那就好!只要你坚持下去,我保证你能成为一名更好的程序员。(Justin James)

【人物小传】

Justin James



Justin James

Justin James就职于Levit & James, Inc,并在公司中承担着混合编程、网络管理员、系统管理员多项职务。自2005年就在TechRepublic开博,博客地址:http://blogs.techrepublic.com.com/10things/。

原文链接:http://blogs.techrepublic.com.com/10things/?p=732

译文链接:http://kb.cnblogs.com/page/71136/
分享到:
评论

相关推荐

    【程序员从初级到中级10个秘密】

    【程序员从初级到中级10个秘密】 在IT行业中,程序员的成长之路往往充满挑战与机遇。从初级到中级,这是一个质的飞跃,涉及到技术深度、项目经验、问题解决能力等多方面的提升。以下是对程序员从初级到中级进阶的10...

    程序员从触及到中级10个秘诀

    以上五个秘诀涵盖了从技术提升到思维方式转变等多个方面,对于想要从初级阶段成长为中级甚至高级程序员的朋友来说,都是非常实用且宝贵的建议。通过不断地学习、实践和反思,相信每位程序员都能够在这条成长之路上越...

    程序员从初级到高级的秘诀(经验之谈)

    ### 程序员从初级到高级的秘诀(经验之谈) 在IT行业中,从一名初学者成长为一位高级程序员并非易事,它需要时间和努力。本文将深入探讨从程序员到中级程序员所需经历的过程以及如何逐步提升自身技能。下面将根据...

    程序员从初级到高级知识汇集

    【程序员从初级到高级知识汇集】是一本涵盖了程序员从入门到精通所需掌握的全面知识的资料集合。本书针对初级和高级程序员,旨在提供一个系统化的学习路径,帮助程序员提升技能,成为行业专家。 1. **Java知识** -...

    软件程序员考试初级真题.7z

    从文件名称列表来看,每个年份代表一年的考试,这十年间的试题可以反映出考试的演变,包括重点知识点的变化、难度的调整以及新技术的应用。通过对比不同年份的试题,考生可以发现哪些知识点是常考的,哪些是新出现的...

    Java程序员简历初级、中级、高级、架构简历模版(含多项目经验)

    本文将详细解读“Java程序员简历初级、中级、高级、架构简历模版”,帮助你理解如何构建不同级别的Java开发者的简历,并提供一些关键知识点。 1. **初级Java程序员简历**: - **基础技术**:突出Java基础知识,如...

    软考初级程序员资料.rar

    软考初级程序员资料

    软考初级程序员真题

    软考初级程序员真题是针对计算机软件技术资格考试初级程序员级别的考生的重要参考资料,涵盖了从2007年至2011年历年的真实考试题目。这些真题集不仅是检验考生理论知识和编程技能的重要途径,也是考生备考时熟悉考试...

    计算机软考初级程序员试题及答案.pdf

    计算机软考初级程序员试题及答案.pdf

    初级程序员04年到10年的试题和答案

    包含了从04年到10年的初级程序员试题和答案,有需要的可下载,。

    初级程序员试题 程序员考试类

    【标题】"初级程序员试题 程序员考试类"涉及的知识点主要涵盖以下几个方面: 1. **编程基础**:初级程序员试题通常会包括基本的编程概念,如变量、数据类型、运算符、流程控制(如if语句、for循环、while循环)、...

    初级程序员模拟试题(附答案)

    【初级程序员模拟试题(附答案)】 这是一套专为初级程序员设计的模拟试题,旨在帮助初学者巩固和测试他们在编程基础知识、算法理解、数据结构...对于准备面试或自我提升的初级程序员来说,这是一个非常有价值的资源。

    1年初级Android程序员,3年中级,5年高级简历模板

    通过这个简历模板,我们可以看出一个Android程序员的成长路径,从掌握基础技能到精通高级技术,再到具备项目管理和架构设计能力。对于希望在Android开发领域发展的人员来说,这是一个清晰的学习和职业发展参考。

    初级程序员考试试题

    【初级程序员考试试题】是针对想要参加计算机软件水平考试中的初级程序员级别的一项综合测试。这个考试通常涵盖了计算机基础知识、编程语言、数据结构、算法、操作系统、数据库管理等多个方面,旨在评估考生的基础...

    程序员辅导考试(初级程序员)

    【初级程序员辅导考试】是针对想要踏入编程领域的初学者或者准备参加初级程序员资格认证的人员设计的一套学习资源。这个资源旨在提供全面、系统的基础IT知识,帮助学习者巩固编程基础,提高解决问题的能力,为考试...

    程序员编程从初级到中级的10个秘诀

    在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客、文章及杂志分成两类:面向初学者类(“hello world”这种类型的教程)以及面向专家类(MSDN杂志)。

    初级程序员考试试题真题

    【初级程序员考试试题真题】是一份集合了2006年至2009年间的初级程序员考试实际试题的资源,对于准备此类考试的考生来说,这是一个宝贵的复习材料。这份资料涵盖的知识点广泛且深入,旨在帮助考生全面理解和掌握初级...

    wpf程序设计指南,适应于初级,中级,高级程序员的开发工具书

    wpf程序设计指南,适应于初级,中级,高级程序员的开发工具书

    软考初级 程序员资料大全

    总的来说,这个压缩包提供了初级程序员考试的全方位复习资料,从理论知识到实战练习,考生应充分利用这些资源,结合实践进行学习,以提高考试通过率和实际编程能力。同时,不断更新知识,适应技术的快速发展,是每个...

Global site tag (gtag.js) - Google Analytics