想要成为真正优秀的程序员是不是真的很难?

简介:

很多人认为要想成为一名优秀的程序员,那就需要一天24小时每天不断地编程——睁开眼睛要编程,闭上眼睛睡觉的时候还要梦到编程——我认为这是一种矫枉过正的方法。沿着这条路走,只会让你精疲力尽,犹如夸父逐日一般,死在半道上。

我觉得问题的关键是要想明白你为什么要编程。坦率地说,我编程是因为我喜欢别人用我的程序,这也是我之所以在读书的时候成绩不怎么优秀的原因(我并 不热衷于参加编程竞赛以及类似事情)。因此,我也不喜欢参与纯研究的项目——只在论文上讨论各种点子,而不付诸于行动不去写代码(除非恰巧碰到的是研究项 目和开源项目)。

我在编程上并不是一个唯美主义者。我的观点是能工作、有用的代码就可以被定义为优雅,即使它看上去是一团乱糟糟的GOTO语句。

我认为的“优秀的程序员”应该是这样的:

  • 偷懒战略。优秀的程序员更倾向于灵活工作而非死工作,所以如果你想要将编程当作长期的职业规划,那么学习重用代码和自动化繁琐的任务是至关重要的。

  • 在职业生涯早期,有机会就多多了解从需求分析到最终发布整个的软件流程,这样你才能学习从终端到终端的设计——还可以激发你的信心。

  • 生活中除了编程以外,应该还要有某项能让你经常外出活动的业余爱好。这样才能改善你消耗在键盘上的健康。

  • 如果你想要在编程这一行待个三五十年,那么最好学点拿手绝活,让别人在某个领域不敢小觑于你,密切关注这方面的技术进步,保持同步。

  • 多了解几门编程语言——特别掌握你准备精通的编程语言。并且最好能从不同的编程范式(程序,设置,功能等)来了解语言。

  • 相关的:不必过于担心你不知道的新的Zwizzle-Wiz算法。如果不需要实施细节的话,了解一些相关领域重点算法以及比较重要的通用算法(如 排序和搜索)的特点和功能就可以了。没有必要囫囵吞枣、傻不拉几的试图想要记忆100种算法的实现(我看到有人曾经这么做过),你的小脑袋会爆掉的。

  • 了解如何面试程序员。英雄总是惺惺相惜,作为一名优秀的程序员,建设优良的团队,也是你的部分责任。

  • 了解公司业务的相关内容,以及你的代码需要如何与之匹配,这有助于你正确地作出相关的决策,避免走一些弯路。

  • 问问相关人员的想法,看看他们对你的代码的评价,包括产品经理、QA、现场支持人员、专业的服务工程师和实际使用的客户等。

  • 相关的:不要错过任何一个和客户交流的机会。但是一定要注意自己的行为举止:耐心聆听,哪怕客户的想法听上去非常可笑,这主要是因为他们不是程序员的缘故。但是,如果你能借此机会好好思考关于如何使用代码以及使用过程中的日常挑战,那么将有助于你提高你的产品。

  • 对于我,我是Unix哲学——一系列通用设计原则的铁杆粉丝。虽然这些原则并不总是有效,但它是指点我如何连接优良代码—系统—设计的指南针。

所以,对于“想要成为一名真正优秀的程序员是不是真的非常难?”这一问题的答案,可能的确是非常艰难非常辛苦的,特别是要想成长为一名优秀的程序员是需要一段很长的时间。但是只要你愿意好好学习代码的系统知识和机制,那么我相信你一定可以长风破浪会有时,直挂云帆济沧海。


作者:王国峰

来源:51CTO

相关文章
|
6月前
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
159 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
敏捷开发 前端开发 开发者
想要成为软件开发中的王者,需要明白的 21 条准则
想要成为软件开发中的王者,需要明白的 21 条准则
|
5月前
|
运维 程序员
程序员在企业中是如何做需求的
需求从哪里来,到哪里去
34 0
程序员在企业中是如何做需求的
|
程序员
接受平庸,特别是程序员
接受平庸,特别是程序员
|
Java C语言
看似无害的代码如何搞垮系统
编程就像魔法。最近遇到一个诡异的问题:添加一段看似无害的简单代码后,系统原有功能不可用了。 ## 复现演示 jdk 8 可使用如下演示代码复现这个问题。 `TaskCenter` 是一个任务框架,可添加多个任务,随后框架将执行这些任务。 `First` 任务是新增代码,看起来简单无害,且看不出对原有任务 `Count` 有何影响,但添加 `First` 任务后,其自身执行正常,原本正常的 `C
127 0
|
测试技术
初级软件测试面试题怎么找?提供的这两个地方你肯定用得上
最近几年,随着电子产品和互联网的蓬勃发展,各类科技公司如雨后春笋般出现,而软件公司作为科技类公司中的重要组成部分,在这支互联网大军中也占据了重要一席。因而,负责软件问题质检的软件测试岗位也逐渐成了这几年炙手可热的就业岗位之一。
146 0
|
编译器 C++
C | 一种需要特别留心的编程错误(++i) + (++i) + (++i)
诸如此类的表达式`(++i) + (++i) + (++i)`,很多学校都喜欢用在学生的期末考里,看似经典的考题,有没有可能本身就是错误的呢?这种错误并不是语法错误,是可以正常运行的,这就造成了“==它是正确的编程==”这种假象
116 0
C | 一种需要特别留心的编程错误(++i) + (++i) + (++i)
|
存储 程序员 C++
如果当初学习编程时能有人给我这些忠告该多好
Cecily Carver 是多伦多的一位程序媛,和 Jennie Faber 一起创办了一个游戏制作工作室。她喜欢歌剧、舞蹈和弹钢琴。Cecily 在这篇文章分享她在编程道路上的所感所想,给出很多值得思考的编程箴言以及一些思想误区,比如在你学习编程之前思考一下你的目标、编程不是什么神秘的东西、坚持比方法更重要等,可以让我们在编程路上少走一些弯路,从而有更多的时间学习技术让自己变的越来越强大。
226 0
|
JavaScript
工作中一些比较奇怪的产品需求笔记
1.要求登录以后点击浏览器返回以后再点返回需要重新登录;这个本来是浏览器默认的一些缓存,当时也是在网上各种百度   解决问题思路 :当时经过反复的测试,发现每次浏览器返回之后会重新加载一次页面js;但是不会给服务器发请求;也就是从后台没办法控制‘      然后给windos设置了一个全局变量;每次...
1112 0

相关实验场景

更多