`
Javahuhui
  • 浏览: 80069 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

[转载]你做过的最有效的提高你的编程水平的一件事情是什么

阅读更多
最近在stackexchange网站上看到了一个非常好的问答,有人问:你做过的最有效的提高你的编程水平的一件事情是什么?

回首作为一个程序员这些年来的生活和职业道路,我使用了很多种不同的方法来提高我的编程技能 —— 阅读代码,编写程序,阅读书籍,听讲座,看视频,等等。

我的问题是:你做过的最有效的提高你的编程水平的一件事情是什么?对于那些想提高水平的程序员,你的建议是什么?

我希望你们提供的答案是各种各样的,并且不是那种“放之四海而皆准”的答案 —— 我希望得到适用于不同人的不同的答案。

有很多人给出了自己的答案,在这里,我将其中最受认可的前三种答案选出来翻译给大家。

最受欢迎的回答:学无止境

没有特别的先后次序…

和比自己更聪明的人一起工作
永远乐意听取他人的意见,不管对方是低级水平,一般水平,资深,还是大师。职称头衔并不代表一切。
学习其它的框架/语言,学习它们是的工作原理和思想,拿它们跟你已知的技术做比较。
学习各种设计模式,最佳实践理论,然后用它们检查自己先前的知识,在需要的时候使用这些模式。
结对编程
反对Joel说的一切。

第二受欢迎的回答:成为多面手

争取成为一个‘多面手万事通’

在我职业生涯的早期,我在一种数据库和编程语言上是个专家。不幸的是,这种数据库在“数据库战争”中落败了,我才发现我的职业道路…很窄。在此之后,我下定决心以后决不能把自己封在一个小空间里。我开始学习所有手头上能接触到的东西:Windows,Unix,C,C++,Java,C#,Perl,Python,Access,SQL Server,Oracle,Informix,MySQL,等等。不管什么样的新的,不常见的工具或技术,我都成为“大拿” —— “去问克雷格(作者自己),他要是不会,他会去学会的。”结果,我做了各种各样的项目,从为环境监测做嵌入式系统,到为导弹防御做命令和控制系统。

我在各种的公司里唯一遇到的问题是:它们坚持要把我固定在一个专门的研究方向内,而我的专门研究是要成为一个多面手。[编辑: 也叫做学识渊博的人或多才多艺的人或多领域专家。]

有些事情需要留意 … 高科技界里知识的半衰期是多少?根据摩尔定律(Moore’s law):18-24月内,半数你学到的知识都会过时。错误的遵循这种规律的专家会轻易的在这种技术发展的压力崩溃;一个多面手要做的事就是不断的丰富自己的技能,并从应用这些技能的经历中吸取教训。

第三受欢迎的回答:不要跟臭棋篓子下棋

我一直认为自己在不错的程序员中也算是个“灌篮高手”。直到有个家伙——我们叫他艾伦——被招进团队。艾伦很显然在很多方面都比我优秀。也比我年轻。他让我认识到,在过去的这些年里,我没有多少长进。我是一个特定技术方向的程序员,而且是水平一般。

这惊醒我应该自觉的不断提高自己的水平,特别是我写的代码的水平。

艾伦引导我学会了很多东西。他告诉我,大部分我写的代码在今后的数年里都将一直维护和进行扩展,写代码时要将这点铭记在心。我应该为我的代码写自动测试程序。艾伦说代码的开发一定不能停止在第一版上,应该不断的重构,提炼,让它达到完美。我发现,我对这些语言和工具的使用都还有还很大的改进空间。

从艾伦那我学到的最重要的一件事情是:永远不要停止学习。

数年后,艾伦离开了公司。我的心里突然感觉空荡荡的。这些年与他为伴让我在技能上提升到了一个全新的水平,我知道现在我比团队里的其他人优秀很多。他们仍然写着糟糕的代码,犯着以前犯过的错误。我努力教育他们,但他们对此不感兴趣。事实上,他们讨厌有人这样傲慢自大的指出他们犯的错误。

于是,几个月后,我也离开这这个公司。我去了一个很小的公司,在一个很出色的团队里工作。那里每个人都渴望学习更多知识,我喜欢这样的。

我很幸运能遇到艾伦。没有他,我也许现在仍然待在那家死气沉沉的公司和那帮食古不化的家伙在一起,哪都去不了,想的全是自己的私利。

原文地址是这里
分享到:
评论

相关推荐

    C++编程实例100篇

    同时,不断练习编写自己的程序,解决实际问题,是提高编程能力的有效途径。通过《C++编程实例100篇》,读者不仅可以学习到C++的基础知识,还能逐步掌握高级特性和最佳实践,为成为熟练的C++程序员打下坚实基础。

    Windows图形编程(pdf)

    《Windows图形编程》完全版是一本深入探讨在Windows操作系统环境下进行图形编程的权威指南。这本书主要涵盖了图形、多媒体和游戏开发的关键技术,旨在帮助开发者掌握创建动态、交互式应用程序所需的技能。 在...

    C++ 并发编程中文版

    C++ 并发编程是现代计算机程序设计中的一个重要领域,随着多核处理器的普及,开发者需要掌握多线程编程技术,以充分利用硬件资源,提高程序的执行效率。在 C++ 中,C++11 标准引入了许多并发编程的新特性和库,为多...

    C语言经典编程282例源码

    C语言是一种基础且强大的编程语言,它以其简洁的语法和高度的灵活性被广泛应用于系统编程、软件开发、嵌入式系统等领域。"C语言经典编程282例源码"集合了众多C语言编程的经典实例,是学习者深入理解C语言特性和技巧...

    LINUX+C编程项目实践

    在"LINUX+C编程项目实践"这个主题中,我们将深入探讨如何在Linux环境下使用C语言进行高效、稳定且灵活的程序开发。...记住,实践是检验真理的唯一标准,在Linux+C编程的世界里,动手实践是最有效的学习方法。

    AS400RPG编程语言入门学习资料汇总

    AS/400系统是IBM推出的一种企业级服务器平台,主要应用于商业应用系统,而RPG(Report Program Generator)编程语言则是AS/400系统中的核心编程工具之一。RPG,起初是为了处理数据报告而设计,随着时间的发展,它...

    C#网络核心编程

    《C#网络核心编程》是一本深入探讨C#语言在网络编程领域的专著,它涵盖了从基础概念到高级技术的广泛内容。在C#语言中,网络编程是开发跨平台、分布式应用的重要组成部分,本书旨在帮助开发者掌握这方面的核心技术。...

    如何培养编程能力

    左飞 代码揭秘 中 附录A 浅谈编程能力的培养与提高

    Tcl_TK编程权威指南pdf

    Tcl_TK编程权威指南是一本全面介绍Tcl(Tool Command Language)及Tk图形用户界面工具包的编程书籍,由John Ousterhout教授设计并编写。Tcl是一种脚本语言,可以被轻松地嵌入到应用程序中,与C语言相比,Tcl的语法...

    编程语言原理(第10版

    根据提供的标题“编程语言原理(第10版)”及描述“编程语言原理(第10版 编程语言原理)”,我们可以推断出这本书主要讲述了编程语言的基础理论与实践应用,是学习和理解编程语言设计与实现的重要参考资料。...

    《医学图像编程技术》源码

    《医学图像编程技术》源码是一份珍贵的学习资源,它涵盖了图像处理、VTK(Visualization Toolkit)编程以及三维重建等多个重要领域。这份源码集合旨在帮助开发者深入理解医学图像处理的原理和技术,通过实践的方式...

    Windows并发编程指南高清pdf版

    并发编程是一种允许同时执行多个操作的技术,旨在提高程序性能,特别是在多核处理器上。本书《Windows并发编程指南》详细介绍了并发编程在Windows平台上的理论与实践,内容全面,分为四个部分。 首先,第一部分...

    Visual C++网络编程开发与实战 案例源码2.4.5.rar

    "Visual C++网络编程开发与实战 案例源码2.4.5.rar"是一个压缩包,包含了书中某一章节(可能是第2.4.5章节)的实践案例源代码。这些源代码对于学习和理解如何在C++环境中构建网络应用程序非常有帮助。 Visual C++是...

    python编程(从入门到实践).zip

    Python编程是一种广泛应用于数据分析、网页开发、人工智能等领域的高级编程语言。它的语法简洁明了,易于学习,使得“从入门到实践”的过程相对平滑。本资料包是针对Python编程的初学者设计的,旨在帮助你快速掌握这...

    64K编程比赛一等奖

    64K编程比赛,顾名思义,是一种挑战程序员在64KB的限制内存空间内编写程序的竞赛。这类比赛通常旨在考验参赛者的代码优化、数据结构和算法设计能力,因为资源极其有限,如何在如此小的空间内实现功能完备且高效的...

    三菱Q系列编程手册(中文 全)

    《三菱Q系列编程手册》是全面了解和掌握三菱PLC编程技术的重要参考资料,尤其对于使用中文界面的工程师来说,这是一份极其宝贵的指南。手册详细介绍了三菱Q系列PLC的结构、功能、编程语言以及应用实例,旨在帮助读者...

    网络编程实用教程教案

    《网络编程实用教程教案》是一份详实的教育资源,旨在帮助学习者掌握网络编程的核心概念和技术。网络编程是计算机科学中的重要领域,它涉及到通过网络进行数据交换和通信的程序设计。本教程涵盖了一系列关键知识点,...

    python趣味编程100例(99个)

    Python是一种广泛应用于科学计算、数据分析、人工智能以及web开发等领域的高级编程语言,因其简洁明了的语法特性,常被称为“胶水语言”,能够轻松地连接各种组件。"Python趣味编程100例(99个)"这个资源显然是为了...

Global site tag (gtag.js) - Google Analytics