许多年轻有才华的开发员正不断的寻找新的项目和解决不同的问题,以此来增加经验。然而,很少有一个单一的环境能够提供这样的条件。如果基于遗留系统代码(维护原有系统),架构方面没有多大的想象空间。因此,许多开发员觉得需要变换工作,到不同的环境去获取新一阶段的学习。
然而,“跳槽“只不过是获取丰富经验的途径之一,我仍提议另一个选择:
接单。如果你从来没有接过单,可以参考伯乐在线的这篇文章《如何找到你的第一个客户》。
回想起来,我能成长为一名成熟的软件开发员,最快的一个办法就是得益于在咨询公司工作学到的经验。为什么是这样呢?有以下几个原因:
1. 大量的新项目(以及几个老项目)
接单过程中,最大的优势在于多元化的工作机会,接单是一个很好的学习环境。开始新项目和获得新客户的机会会很多。事实上,我很少在单一的一个项目上花六个月以上的时间(即使那样,另一边我也会同时与其他客户合作)。
每两到三个月就能开始一个新项目是很难得的。我总是开玩笑的说,我引以为傲的是六个月内所编辑的代码。就是这个原因,我养成了一个习惯,就是从每个项目出错的地方不断学习,不断提高。
老项目的存在(这个也很有帮助),因为它可以让开发员学会如何维护遗留系统。集体讨论如何将单元测试融入Lotus Notes系统(译注:Lotus Notes是IBM的一个产品)是件困难的,同时也是件值得尝试的任务。不是每个项目都可以完美地收工,这也就给了你学习写好维护代码的机会。
2. 不同领域的问题
不同的项目涉及不同的领域。建一个餐厅的博客、然后再去参加一个血压机器方面的发布会、再完成一段有关退休基金问题的学习,非常有趣。不要误会我的意思—这想法可能有些糟糕,但是很具启发性。
我工作过的一个最冷门的领域,就是有机会编写一个控制煤炭开采设备中巨型泥铲的应用程序。这个领域真棒!实际上是在一个露天的矿场中,头戴安全帽,为一个移动2000吨的大机器编程,多恐怖的工作环境?如果你只在一家以商业领域为中心的公司工作,这种机会就不多见。
3. 编程责任
在大多数的咨询公司里,你既是开发员和架构师,又是测试人员。尽管测试自己的东西是件“讨厌”的事,但是你可以有机会去反思你的架构,从而运用其他你认为更合适的模式和架构,这样的经历和机会让你有难以形容的体验。
或许最困难的事情是对架构的理解和选择。什么时候该用哪些,什么时候不用,什么时候需要打破常规的去应用这些想法。不同的项目,不同的领域,给了你一个比大多数工作都要好的增长经验的机会。
4. 学会与人交往
咨询工作就是与人打交道,幸运的是,我从来没遇到过什么麻烦的家伙,但是与人交流,是我们要穷尽一生去学习的一种技能。如果你学不会如何与客户沟通,你可能也不知道与你的老板,经理,甚至是配偶如何交流。与人交往迫使你走出心中的阴暗角落,即使只是小小的一块阴影。
成为你工作相关领域的咨询师顾问。如果你决定成为永远不和客户交流的“隐士”,或者只采取同一种处理办法来解决不同的问题,你应该学不到太多东西。如果你决心提高你沟通技巧,就像一位去实践不同技术,模式和架构师的布道师。那么,咨询顾问是一个不错的选择…
分享到:
相关推荐
《程序员接单宝典》是一本专为程序员提供接单指南的书籍,包含了两版内容,旨在帮助程序员更好地理解和掌握接单流程与技巧。这两版分别命名为“程序员接单宝典(第二版).pdf”和“程序员接单宝典(第一版).pdf”,可能...
《程序员接单宝典【第四版】》是一本专为程序员设计的指南,旨在帮助他们了解如何有效地接单、管理项目以及赚取额外收入。在IT行业中,接单不仅可以增加收入,也是提升技能、拓宽视野和积累项目经验的重要途径。本...
8. **为维护者写程序**:考虑到未来可能的维护工作,编写代码时要假设维护者是你不认识的人,或者是一个脾气暴躁的家伙。因此,保持代码清晰和文档充足至关重要。 9. **最少意外原则**:代码的行为应符合预期,避免...
【程序员的秘书】是一款专为程序员设计的辅助工具,它提供了资料管理、设置调整和信息分类存储的功能。作为程序员日常工作中不可或缺的一部分,这款软件旨在优化工作流程,提高工作效率。其核心特性包括对各类代码、...
根据提供的文件信息,我们可以推断出这是一本关于Java编程的学习指南或教程,旨在帮助初学者逐步提升自己的技能,从“菜鸟”(新手)成长为更熟练的“笨鸟”。这里,“菜鸟”通常用来形容初学者,“笨鸟”则可能意味...
这份“Java程序员(软件工程师)必读”压缩包文件,无疑是前辈们经验的结晶,旨在帮助新手快速掌握核心技能,避免在学习和实践中陷入无尽的摸索。以下是根据标题、描述以及压缩包中的“JAVA程序员必读基础篇”这一...
随着"第一次接单.zip"文件的打开,我们仿佛穿越时空,置身于一位新手开发者的成长历程之中。通过这个压缩包,我们可以看到一位程序员如何从零开始,逐步学习并完成一个项目的全过程。这不仅是一份代码的集合,更是一...
从一个新手成长为一名顶级程序员的过程是一条漫长而充满挑战的道路。每个阶段都有其特定的目标和要求,而跨越这些阶段则需要不断的学习、实践和反思。对于那些渴望成为顶尖程序员的人来说,持之以恒的努力和不断探索...
这份文档列出了十个程序员不可或缺的神器,旨在帮助新手程序员提升工作效率,实现华丽逆袭。以下是对这些工具的详细介绍: 1. **Xshell 和 Xftp**:这两个工具是网络管理和文件传输的强大组合。Xshell 提供了一个...
《程序员超级开发宝典》是一本综合性的编程学习资源,旨在为程序员提供全面而深入的开发技巧和实践经验。这本书可能涵盖了多个方面的知识,包括但不限于编程语言、软件工程、算法与数据结构、数据库管理、网络编程、...
《MODBUS程序员手册(DTA116A611)最新版》是针对大金空调远程控制系统的一份重要参考资料,特别适用于那些需要编程和配置大金空调系统的工程师和技术人员。MODBUS是一种广泛应用的通信协议,它允许不同设备之间进行...
同时,书中的职场经验分享有助于新手程序员更好地适应工作环境,解决职场中可能遇到的问题。因此,无论是技术层面还是职业发展层面,《菜鸟成长之路—Java程序员职场全攻略》都是一本值得阅读的书籍。
"JAVA程序员必读基础篇"是一份专为新手设计的入门教程,旨在帮助学习者建立起坚实的Java编程基础。 首先,Java语言的核心概念包括:类、对象、封装、继承和多态。这些是面向对象编程的基本要素。类是对象的模板,...
### JAVA程序员面试问题详解 #### 1. Java与JVM的关系 Java是一种广泛使用的编程语言,而JVM(Java虚拟机)是运行Java字节码的软件层。当你编写Java代码并编译它时,得到的是Java字节码,而不是机器代码。这个字节...
"JAVA程序员必读:基础篇"这个资源很可能包含了一系列关于Java编程的基础教程,旨在帮助新手快速建立起对Java的理解。 Java的基础部分通常涵盖以下几个关键知识点: 1. **Java环境搭建**:学习Java的第一步是安装...
总的来说,《Java程序员上班那点事儿》是一本结合了技术与职场经验的实用书籍,无论你是刚入门的新手,还是已经在职的开发者,都能从中获得宝贵的知识和启示。通过阅读此书,你不仅可以提升编程技能,还能更好地适应...
《Visual Basic 6.0中文版程序员指南》是一本全面覆盖Visual Basic 6.0编程知识的专业书籍,无论是对于新手还是有经验的开发者而言,都能从中获得有价值的指导。通过对本书的学习,不仅可以快速掌握Visual Basic的...
《Android程序员入门开发宝典》是一本专门为初学者设计的指南,旨在帮助那些对Android开发感兴趣的人快速掌握基础知识,步入专业开发者的行列。这本宝典涵盖了从安装开发环境到编写第一个应用程序的所有关键步骤,是...
这些经验分享通常能激发新手程序员的热情,帮助他们更好地适应开发环境。 总的来说,"Java夜未眠.程序员的心声"这本书可能是Java开发者们的技术指南,也是他们情感共鸣的载体。无论是初学者还是资深开发者,都能...
"C语言程序设计 新手训练套题"是为初学者设计的一系列练习,旨在帮助他们逐步掌握C语言的核心概念和编程技巧。 首先,从“hello world!”开始,这是每个程序员入门时的经典例子。它展示了如何在C语言中进行基本的...