最近在stackexchange网站上看到了一个非常好的问答,有人问:你做过的最有效的提高你的编程水平的一件事情是什么?
回首作为一个程序员这些年来的生活和职业道路,我使用了很多种不同的方法来提高我的编程技能 —— 阅读代码,编写程序,阅读书籍,听讲座,看视频,等等。
我的问题是:你做过的最有效的提高你的编程水平的一件事情是什么?对于那些想提高水平的程序员,你的建议是什么?
我希望你们提供的答案是各种各样的,并且不是那种“放之四海而皆准”的答案 —— 我希望得到适用于不同人的不同的答案。
有很多人给出了自己的答案,在这里,我将其中最受认可的前三种答案选出来翻译给大家。
最受欢迎的回答:学无止境
没有特别的先后次序…
- 和比自己更聪明的人一起工作
- 永远乐意听取他人的意见,不管对方是低级水平,一般水平,资深,还是大师。职称头衔并不代表一切。
- 学习其它的框架/语言,学习它们是的工作原理和思想,拿它们跟你已知的技术做比较。
- 学习各种设计模式,最佳实践理论,然后用它们检查自己先前的知识,在需要的时候使用这些模式。
- 结对编程
反对Joel说的一切。
第二受欢迎的回答:成为多面手
争取成为一个‘多面手万事通’
在我职业生涯的早期,我在一种数据库和编程语言上是个专家。不幸的是,这种数据库在“数据库战争”中落败了,我才发现我的职业道路…很窄。在此之后,我下定决心以后决不能把自己封在一个小空间里。我开始学习所有手头上能接触到的东西:Windows,Unix,C,C++,Java,C#,Perl,Python,Access,SQL Server,Oracle,Informix,MySQL,等等。不管什么样的新的,不常见的工具或技术,我都成为“大拿” —— “去问克雷格(作者自己),他要是不会,他会去学会的。”结果,我做了各种各样的项目,从为环境监测做嵌入式系统,到为导弹防御做命令和控制系统。
我在各种的公司里唯一遇到的问题是:它们坚持要把我固定在一个专门的研究方向内,而我的专门研究是要成为一个多面手。[编辑: 也叫做学识渊博的人或多才多艺的人或多领域专家。]
有些事情需要留意 … 高科技界里知识的半衰期是多少?根据摩尔定律(Moore’s law):18-24月内,半数你学到的知识都会过时。错误的遵循这种规律的专家会轻易的在这种技术发展的压力崩溃;一个多面手要做的事就是不断的丰富自己的技能,并从应用这些技能的经历中吸取教训。
第三受欢迎的回答:不要跟臭棋篓子下棋
我一直认为自己在不错的程序员中也算是个“灌篮高手”。直到有个家伙——我们叫他艾伦——被招进团队。艾伦很显然在很多方面都比我优秀。也比我年轻。他让我认识到,在过去的这些年里,我没有多少长进。我是一个特定技术方向的程序员,而且是水平一般。
这惊醒我应该自觉的不断提高自己的水平,特别是我写的代码的水平。
艾伦引导我学会了很多东西。他告诉我,大部分我写的代码在今后的数年里都将一直维护和进行扩展,写代码时要将这点铭记在心。我应该为我的代码写自动测试程序。艾伦说代码的开发一定不能停止在第一版上,应该不断的重构,提炼,让它达到完美。我发现,我对这些语言和工具的使用都还有还很大的改进空间。
从艾伦那我学到的最重要的一件事情是:永远不要停止学习。
数年后,艾伦离开了公司。我的心里突然感觉空荡荡的。这些年与他为伴让我在技能上提升到了一个全新的水平,我知道现在我比团队里的其他人优秀很多。他们仍然写着糟糕的代码,犯着以前犯过的错误。我努力教育他们,但他们对此不感兴趣。事实上,他们讨厌有人这样傲慢自大的指出他们犯的错误。
于是,几个月后,我也离开这这个公司。我去了一个很小的公司,在一个很出色的团队里工作。那里每个人都渴望学习更多知识,我喜欢这样的。
我很幸运能遇到艾伦。没有他,我也许现在仍然待在那家死气沉沉的公司和那帮食古不化的家伙在一起,哪都去不了,想的全是自己的私利
相关推荐
最近在stackexchange网站上看到了一个非常好的问答,有人问:你做过的最有效的提高你的编程水平的一件事情是什么?回首作为一个程序员这些年来的生活和职业道路,我使用了很多种不同的方法来提高我的编程技能——阅读...
### 编程人员必须做到的10件事 随着IT行业的快速发展,编程技能成为了职场中不可或缺的一部分。无论是初学者还是有经验的开发人员,都需要不断学习和提升自己来适应技术的变化。下面详细介绍为了从初级程序员跃升至...
本文将介绍一种不同于传统编程学习路径的方法——通过阅读高质量的代码来提高编程水平。 #### 二、阅读代码的重要性 在传统的观念中,提升编程能力的最直接方式是通过不断编写更多的代码。然而,这种方法往往忽略...
单一职责原则是面向对象设计的基本原则之一,它提倡一个类或者一个方法应该只有一个引起变化的原因,即只做一件事情。这样做能带来诸多好处,包括提高代码可读性、可维护性和可复用性。 首先,将大问题拆分为小问题...
在探讨《工作中最欣慰的一件事》这一主题时,尽管标题和描述相对简略,但从“技术”这一标签出发,我们可以挖掘出与IT行业相关的多个重要知识点。以下将围绕这一主题展开详细论述,涵盖工作中令人欣慰的经历及其背后...
此外,他还提到了函数的单一职责原则,确保每个函数或方法只做一件事,以降低代码之间的耦合度。 在错误处理方面,书中有详尽的论述。陈皓指出,良好的错误处理是防止程序崩溃的关键。开发者应学会如何有效地使用...
以及编写清晰的函数,每个函数只做一件事情,保持函数的单一职责原则。 错误处理是另一个不可忽视的方面。在C语言中,错误通常不会自动抛出,而是通过返回值或设置全局状态来表示。编写能够处理错误的代码,确保...
其次,形成良好的班级气氛是做好任何一件事情的前提。农村的职业中学,学生的苗子不是很优良,学校学生的氛围是找个能打工挣钱的岗位,并没有很高的人生目标和理想。因此,形成严谨的考大学的气氛谈起来容易做起来难...
熟练掌握并合理运用算法是提高AOI编程水平的关键。 7. **器件熟悉度**:熟悉器件的种类、特性以及可能存在的问题有助于更准确地进行缺陷检测。 8. **器件库不良种类**:建立完善的器件库,详细记录不同器件可能出现...
这个解决方案通过减少编程时间、提高自动化水平、确保设计一致性以及加强测量数据分析等方面,大幅提升了制造行业的测量效率和准确性。 首先,NX CMM解决方案能显著减少编程时间,最高可达80%的减少。在传统CMM编程...
《Access 2003入门与提高实用教程》是一本专为初学者和希望进一步提升Access技能的用户设计的指南。...通过学习和实践,你可以有效地管理和利用数据,提高工作效率,并为未来更复杂的数据库项目打下坚实的基础。
这一过程包括了数学处理,如计算几何形状、确定刀具路径等,以及编写程序,最后进行程序校验和首件试切。编程方法主要有两种:手工编程和自动编程。手工编程主要依赖于工艺人员的经验和技术,而自动编程则借助计算机...
在Java开发领域,高水平的机器人通常指的是自动化工具和框架,它们能够提高开发效率,优化代码质量和维护性。本文将深入探讨这些高级工具和框架,并分析它们如何助力Java开发者提升工作效率。 1. **Spring ...
- **常用指令**: G代码是编程中最常用的指令之一,G71和G73是最频繁使用的两个指令。 - **G71**: 外圆粗车固定循环,适用于阶梯轴外圆或内孔的粗加工。 - 特点: 当粗车内孔轮廓时,需注意△u为负值。 - **G73**: ...
### 有理想的程序员必须知道的15件事 #### 1. 走一条不一样的路 在IT行业,要想脱颖而出,就必须敢于与众不同。选择一条与众不同的职业道路意味着避免盲目跟随大众的步伐,尤其是对于那些追求高薪职位的人来说尤为...
这一电压等级被认为是在正常情况下较为安全的电压水平。 18. **数控机床中"CNC"的含义**:CNC代表计算机数字控制(B)。这是现代数控机床的核心技术,通过计算机软件对机床进行精密控制。 19. **数控机床的标准坐标...
也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...