如何成为一名真正专业的程序员

要想成为一名专业的程序员,仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。

关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为一名开发人员,下面就是一些你必须要掌握的最重要的技能(编码这个要求就不赘述了,这太理所当然了)。

学会并擅长沟通

虽然一些媒体上面将编程描述为一种“闭门造车”的行为,但事实上,它涉及到很多与人沟通和协作的事宜。如果你工作于一家公司,那么你会成为开发团队的一部分,并且得和其他人交流和合作。

然而,Jeff Bargmann,Lifehacker最喜欢Fences和Bins的开发人员强调,知道如何清晰可信地说话和写作对于那些独立的开发人员甚至更加重要:

学校课程一点也没有教我们学习必要的书面表达技巧。(就教我们编程,对不?)在你的职业生涯中——如果你以后想继续晋升的话——那么你需要花大量的时间用于清楚简洁、令人信服的沟通交流——从你需要发电子邮件给同事、经理、客户/合作伙伴、甚至有一天可能是高管仅这个方面想,就足够说服人的了。但是由于我们开发人员习惯于比其他人做事快两倍(我们都很聪明,对吧?!),所以令人沮丧的是,这样会导致需要多花上两倍的时间才能顺利地表达清楚。而作为一名独立的开发人员,用一句话来说就是“不在沉默中爆发就在沉默中灭亡”——再怎么难也必须掌握这重要的技巧。

Jeff也针对沟通技巧提出了一些建议:

要么跨过这个障碍,要么在过程中学习,总之你需要的是真实的社会实践(我们要想擅长编码也是如此!)。可以试着发布一些简短的文章、大声阅读电子邮件、勇于面对批评教育,创建适合自己的经验教训。

如果你现在还没有机会加入到一个团队中一起开发,那不妨考虑一下一些高校的沟通、演讲和写作班辅导。此外还有各种课外的网络资源供君采撷。

提升解决问题的能力

很多开发人员说了解一门编程语言只是编码的一小部分。解决问题则是另一个重要的技能,而这也是那些新手开发人员所缺乏的。如果将软件开发比作是一个巨大的谜团:那么你需要弄清楚如何将你的一个程序片段连接到另一个上面,而这一过程往往并不简单。有读者Jsimon作了如下解释:

我有碰到过那种据悉已经完全掌握整一门编程语言所谓的“牛人”,但是想出来的解决方案居然只能往废纸篓那里扔。最好的例子就是在大学中,那个时候我们正在开发一个项目。有人要我来看看某部分代码,因为这片代码的负责人不能将之连接到服务器的接口上了。原因是他竟然没有设置端口。所以说,解决问题的能力很重要。

不过,解决问题确实是一个很难学习的技能。实践是其关键所在。可以先拿小项目试手,比如说开发一个便签app、计算器,只要你感兴趣的都可以。在开发过程中,你需要关注代码背后的逻辑,学会像计算机一样思考,而不仅仅只是理解这门编程语言。

事先学习计算机的工作原理也是有帮助的。这个技巧来自于Jacobm001这位读者:

解决问题是我们要做的最多的一部分。计算机的思维和我们是不一样的,你往往需要重新学习其思考问题的方式。为了提高效率,你需要真正地理解计算机是如何运作的以及是如何处理CPU信息的。我个人非常讨厌计算机编译,不过幸亏我学过有关于这方面内容的课程。只要你稍微懂点编译知识,往往能想出更棒的点子来正确地实现一些事情。

正如Jsimon所说,既知道如何写代码又懂得解决连接件的相关问题是我们学习的关键。一旦你真正迈进了开发程序的大门,那么就需要专注于形成一种系统的方法来解决你面临的各种问题。

起来,到了学习版本控制的时候了

如果是在大学里,你可以和编程课上的团队一起合作开发项目。WindowsSVN和GitHub是很多开发团队常用的用于共同创建和更新开源app的两个工具。而且这两工具没有限制,谁都可以使用。但是企业更青睐于Subversion和Apache SVN。所以在开始新工作以前,你最好先了解一下这些系统是如何工作的,这样能够让你在那些新队友面前“一鸣惊人”。学习工具是需要一定的时间和实践的,但是如果你一点也不懂的话,那就会远远落后于其他人的进度。

真正掌握系统的唯一途径是实践。如果你还在大学中,学习这些工具有助于你进入以团队为导向的大型课堂项目中。如果是这种情况,可以要求使用GitHub或其他形式的存储库,即使老师并没有对此提出要求。如果你是自学的,那先找个合作的团队,既可以通过GitHub上的项目,也可以找一些你希望与之工作的同伴共同开始一个新的项目。

开发学习的技巧

技术就像历史的巨轮总是在不断向前翻滚,开发人员对于知识的态度也应该如此。如果你想要继续留在相关的领域中,关键是要跟上发展的脚步,不断地更新编程语言、软件和硬件技术。读者Wakers01对此的看法是:

……你需要不断地学习新的语言、技术和工具。你必须花心力去研究新的技术,分析它的优点和缺陷,并迅速消化。请注意,这里我之所以用“消化”,而非“学习”是因为,我想表达的意思是,你必须得充分吸收、理解,并将这个新的东西融入到你的技能系列中,而不仅仅只是获得一些有关于如何工作的新知识。只要你能保持这种学习新事物的劲头,那么你一定会越来越强。

我们还可以通过一些技巧快速地学习技能。例如,如果你能先花点时间去了解内存的工作原理,那么你将更高效地使用它们。学习还包括理解,所以除了上面提到的沟通能力,专注于提高阅读理解的能力也是不可或缺的,这个可以通过阅读相关技术文档和其他书面资源获取。好记性不如烂笔头,有一个良好的笔记系统有助于你迅速找到你所需要的参考信息。

从基础开始:将学习看作是一个你应该重点掌握的技能。一旦你这样做了,你就能更快地跟上技术发展的脚步,在此领域内超前于你的竞争对手。

编程其实还包括很多内容,而不是你原先想的只需要坐在计算机前写代码就ok了。如果你比其他人早明白这一点,那么你将会有更多的机会掌握一些雇主和客户需要你知道的关键技能,领先于他人一步。

本文借鉴http://www.codeceo.com/article/how-to-professional-programmer.html

译文链接:http://www.codeceo.com/article/how-to-professional-programmer.html

英文原文:What It Really Takes to Be a Professional Programmer

时间: 2024-11-10 17:35:54

如何成为一名真正专业的程序员的相关文章

如何成为真正专业的程序员

百万红包.火热开启!!!有你更精彩! 要想成为一名专业的程序员,仅仅会写代码是不够的.从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包.当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况. 关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的.如果你想要成为一名开发人员,下面就是一些你必须要掌握的最重要的技能(编码这个要求就不赘述了,这太理所当然了). 学

一名 40 岁“老”程序员的反思

英文:Ben Northrop  译文:开源中国 [导读]:Ben Northrop 在 2016 年满了 40 岁,本文是他对职业生涯的思考.他认为从长远来看,应该多投资一些不容易过期.衰竭期较长的知识领域中. 我是一名程序员,几个月前刚过完 40 岁生日.某个星期六的早晨,我参加了一个 React Native 技术交流会,演讲者正在竭力说服我们为什么它会成为移动开发领域真正的下一个大事件.但对我来说,它有点像 15 年前的 JSP,将所有的逻辑都放在演示代码里面.但我"老"了,我

如今仍在工作的12名最“屌”的程序员

版权声明:本文转自创业邦 人们每天使用的App,以及玩儿的电子游戏不是凭空就有的,而是程序员笔耕不辍,靠着他们一行行的代码开发出来的. 当然,那些App应用.网页.甚至是整个互联网本身,都需要依靠平台和硬件来运行.更重要的是,就连人们构建这些平台所需要的编程语言,其实也是需要有人开发出来.那么问题来了,站在编程金字塔顶端的那些人,都是谁呢? 1.Linus Torvalds,他在赫尔辛基大学的宿舍里开发了Linux,一款免费的操作系统.如今,Linux已经成为了全球很多大型数据中心,超级计算机,

如何成为一名成功的iOS程序员

编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域.你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识.只是对编程感兴趣还不足以功成名就--众所周知,我们工作起来像疯子. 编程是一个没有极限的职业,所以要成为一个成功的程序员,你必须超越现有已存在的极限.在程序员职业生涯的开始阶段,他们将面临许多挑战,面对困境,他们之中有一些人将会放弃,而只有少数人会坚持到底,并成为这个领域的领头羊. 成为成功程序员的步骤 1.愿意学习新技术 随着技术的不断进步,我们学到和实施的技术会很快地过时.所以,作为一个程

国外一 名 40 岁 ” 老 “ 程序员 的 反思 | 转文

  本文是国外一位 40 岁“老”程序员对职业生涯的思考,他认为从长远来看,应该多投资一些不容易过期.衰竭期较长的知识领域中.译文大意如下:   我是一名程序员,几个月前刚过完四十岁生日.   某个星期六的早晨,我参加了一个 React Native 技术交流会,演讲者正在竭力说服我们为什么它会成为移动开发领域真正的下一个大事件.但对我来说,它有点像十五年前的 jsp ,将所有的逻辑都放在演示代码里面.但我“老”了,我认为这是因为自己还没有完全理解它.   演讲者展示完 ppt 后,现场进行编码

如何成为一名拿高薪的程序员

程序员薪水有高有低,有的人一个月可能拿30K.50K,有的人可能只有2K.3K.同样有五年工作经验的程序员,可能一个人每月拿20K,一个拿5K.是什么因素导致了这种差异?我特意总结了容易导致薪水低的九大行为表现,避开这些大坑,你就离高薪不远了. 习惯即刻回报 他不懂得只有春天播种,秋天才会有收获.刚刚付出一点点,甚至还没有付出,就想要得到回报.技术刚刚掌握,能一边百度一边干活了就觉得该拿到多少多少钱了.找工作先想着多少多少钱,入职了没干几个月就想着要加多少多少钱,干了没几个月,薪水要是没涨,就放

成为一名优秀的C程序员

英文原文:To become a good C programmer 问题的提出 每过一段时间我总会收到一些程序员发来的电子邮件,他们会问我是用什么编程语言来编写自己的游戏的,以及我是如何学习这种编程语言的.因此,我认为在这篇博文里列出一些有关C语言的最佳读物应该能帮到不少人.如果你知道其它的优秀读物,请给我发邮件或者直接在评论栏中告诉我吧. 问题的解答(你可以略过这部分) 我在之前的一篇博文中已经提到过了,目前为止,所有我所编写的商业 3D 引擎 95% 都是 C89(也称作标准C,或 ANS

菜鸟好文推荐(二十三)——成为一名更好的程序员:如何阅读源代码

阅读源代码有许多益处.你会发现新的架构(construct)和库,与其他的代码维护者产生共鸣,但最重要的是学会如何组织代码,避免因内部极其复杂而变得不可维护. 但是也有一个不好的地方,那就是阅读源代码太困难了.每当我看到一个新的代码库(code base)时,这种让人眩晕的感觉就充斥了我的大脑.我的内心告诉我压根不想趟眼前这趟浑水. 这是(希望是)正常的反应.当我们的大脑接触过多的新东西,就会产生排斥.造物主赋予我们的这台强大的模式匹配机器根本找不到规律.所有的抽象(abstraction)都是

程序员必读书单

作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文地址:http://www.cnblogs.com/figure9/p/developer-reading-list.html 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读.旨在成为最好最全面的程序员必读书单. 前言 Reading makes a full man; conference a ready man; and writing