我不能算是一个很优秀的程序员,但这个问题我已经反复思考了五年了。跟大家分享一下我的看法:
首先, 我认为答案绝对不是 "只要写很多年代码就好了“。我面试过不少有10年经验,代码却写的很糟糕的程序员。经验很保贵, 但只靠经验是不够的。就像下棋一样,假如你用心研究,复习,不断挑战自己,也许可以成为一名大师。但不断用懒散的方式去玩棋,下20年也只是一个"臭棋篓子“。
我觉得比较有用的进步方式:
1. 学会看代码
大多数程序员都只愿意用自己写的代码,但高手一般可以轻易调用别人写的代码。表面看上去是工作习惯不同, 但实际上是能力上的差别。看代码要比写代码难很多倍。
我建议上班时多给队友们作code review,下班后试着阅读github上的开源代码。
2. 复习
程序员一般都很忙, 手上有永远也做不完的活儿。但在某些公司里, 你只是在反复做同样的事。偶尔放下手上的活儿,留下一部分时间来分析自己的弱点,更改坏习惯,看新书, 或学习新语言。
3. 做个人项目
工作中的编程一般只能让你熟悉一部分技术, 导致漏洞的形成。这就好像你长期一个人在自己后院练习投篮, 但第一次打比赛才(在惨败中)发些原来还需要传球, 防守, 强篮板这些概念。
Facebook喜欢雇佣所谓的 “full stack programmer”,就是一个人从设计,到交互,到html, css,javascript, server,sql, 架构,和数据统计都能做。成为full stack programmer最好的方式就是不断做个人项目。
4. 问答网站
问问题和回答问题都是很好的学习方式。 有的时候写出一个好问题, 比写出解答次问题所需要的代码还难。写问题可以帮你整理自己的思维逻辑。你可以试着每周在上问一个好问题或写一个好答案。
5. 加入一个好团队
最好的进步方式就是跟比自己强的人一起做事。高手都愿意聚在一起,所以很多会选择去优秀的早期创业公司。我在硅谷和创新工场创业时遇到了很多神人, 跟他们学了不少东西。
如何成为杰出的程序员或软件工程师
优秀的软件工程师都具有良好的编程习惯,他们编写尽量少的代码即可满足需求,还能够引入恰当的抽象层次,重构代码,将业务逻辑和其他程序逻辑分离。一般的软件工程师编写不出高质量的代码,他们只关心自己的代码是否能够达到预期的输出结果,只要有输出结果,就认为自己的任务完成了,根本不在乎代码的可维护性和...
如何成为一个杰出的程序员或软件工程师
1、基础知识 掌握好基础知识是必须的,包括软件开发、软件工程、软件质量等领域的关键理论。2、实践 不断在实际的项目中锻炼,从小项目做起,不断挑战自我,向着大项目不断迈进。3、技能 技能和技术不同,技术是死的,技能是活的。就是如何将知识、技术用到项目中,如何影响他人,推动自己和他人前进。...
如何成为一名软件开发工程师
1、学习IT专业。假如你想成为一名软件工程师,首先你得学习IT类专业,因为只有你选择了这类专业,你才能学会一些编程的基本知识,你也才有为工作奋斗的理论基础知识。2、学好专业知识。选择了这类专业,你还得要学好专业知识,把专业知识学好学精,你今后也才可能成为一名优秀的IT工程师,因为经常听到别人...
如何成为一个杰出的程序员或软件工程师
8、清理自己的桌面 当日事当日毕,保持清洁干净的桌面才能让你工作时不分心,程序员特别要把电脑的桌面清理干净。
怎么做才能成为一名合格的软件工程师
一,良好的编程能力。编程能力直接决定了项目开发的效率。这要求软件工程师至少精通一门编程语言,熟悉它的基本语法、技术特点和 API( 应用程序接口 ) 。 二,自觉的规范意识和团队精神。随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。一般来讲,软件...
如何成为一名优秀的软件开发工程师?
4.提高自己的沟通能力。虽说程序员主要是跟计算机打交道,但是在工作当中也免不了跟人打交道,一个跟人能够很好沟通的程序员,也一定能够很好的去跟计算机沟通。5.习惯优化。程序写完之后不要认为自己没有事情做了,多去想想哪里还需要优化,把自己的程序当成一件艺术品。6.热爱分享。在给别人分享的...
怎么做一个好的程序员?
2、提高学习能力,不断提升专业水平 新技术层出不穷,每个程序员都必须坚持学习。只有不断学习才能不断提升。在空余时间多掌握一些工具,多学习一些技术语言,技多不压身嘛。而且技术都是相通的,多学习一些新东西,会让你更融会贯通。这样既可以提高自己的工作效率,也能提升自己的职场竞争力。3、加强...
如何成为一个杰出的程序员或软件工程师
2. 复习 程序员一般都很忙, 手上有永远也做不完的活儿。但在某些公司里, 你只是在反复做同样的事。偶尔放下手上的活儿,留下一部分时间来分析自己的弱点,更改坏习惯,看新书, 或学习新语言。3. 做个人项目 工作中的编程一般只能让你熟悉一部分技术, 导致漏洞的形成。这就好像你长期一个人在...
怎样成为一名优秀的软件开发工程师
要成为一名优秀的软件开发工程师,需要全面的技能和态度。首先,牢固掌握基础理论,如数据结构和编译原理。这些知识是计算机科学的基石,对于编写高质量的程序至关重要。不要急于学习面向对象编程(OOP),应先深入理解基本算法。其次,培养丰富的想象力。在解决问题时,尝试多种方法,并探索非传统的解决方案...
如何成为软件工程师
软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言\/C++\/JAVA等)、数据库技术(SQL\/ORACLE\/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。