【转】为什么程序员新手要考虑接单

      许多年轻有才华的开发员正不断的寻找新的项目和解决不同的问题,以此来增加经验。然而,很少有一个单一的环境能够提供这样的条件。如果基于遗留系统代码(维护原有系统),架构方面没有多大的想象空间。因此,许多开发员觉得需要变换工作,到不同的环境去获取新一阶段的学习。

      然而,“跳槽“只不过是获取丰富经验的途径之一,我仍提议另一个选择: 接单。

回想起来,我能成长为一名成熟的软件开发员,最快的一个办法就是得益于在咨询公司工作学到的经验。为什么是这样呢?有以下几个原因:

1. 大量的新项目(以及几个老项目)

      接单过程中,最大的优势在于多元化的工作机会,接单是一个很好的学习环境。开始新项目和获得新客户的机会会很多。事实上,我很少在单一的一个项目上花六个月以上的时间(即使那样,另一边我也会同时与其他客户合作)。

      每两到三个月就能开始一个新项目是很难得的。我总是开玩笑的说,我引以为傲的是六个月内所编辑的代码。就是这个原因,我养成了一个习惯,就是从每个项目出错的地方不断学习,不断提高。

      老项目的存在(这个也很有帮助),因为它可以让开发员学会如何维护遗留系统。集体讨论如何将单元测试融入Lotus Notes系统(译注:Lotus Notes是IBM的一个产品)是件困难的,同时也是件值得尝试的任务。不是每个项目都可以完美地收工,这也就给了你学习写好维护代码的机会。

2. 不同领域的问题

      不同的项目涉及不同的领域。建一个餐厅的博客、然后再去参加一个血压机器方面的发布会、再完成一段有关退休基金问题的学习,非 常有趣。不要误会我的意思—这想法可能有些糟糕,但是很具启发性。

      我工作过的一个最冷门的领域,就是有机会编写一个控制煤炭开采设备中巨型泥铲的应用程序。这个领域真棒!实际上是在一个露天的矿场中,头戴安全帽,为一个移动2000吨的大机器编程,多恐怖的工作环境?如果你只在一家以商业领域为中心的公司工作,这种机会就不多见。

3. 编程责任

      在大多数的咨询公司里,你既是开发员和架构师,又是测试人员。尽管测试自己的东西是件“讨厌”的事,但是你可以有机会去反思你的架构,从而运用其他你认为更合适的模式和架构,这样的经历和机会让你有难以形容的体验。

      或许最困难的事情是对架构的理解和选择。什么时候该用哪些,什么时候不用,什么时候需要打破常规的去应用这些想法。不同的项目,不同的领域,给了你一个比大多数工作都要好的增长经验的机会。

4. 学会与人交往

      咨询工作就是与人打交道,幸运的是,我从来没遇到过什么麻烦的家伙,但是与人交流,是我们要穷尽一生去学习的一种技能。如果你学不会如何与客户沟通,你可能也不知道与你的老板,经理,甚至是配偶如何交流。与人交往迫使你走出心中的阴暗角落,即使只是小小的一块阴影。

      成为你工作相关领域的咨询师顾问。如果你决定成为永远不和客户交流的“隐士”,或者只采取同一种处理办法来解决不同的问题,你应该学不到太多东西。如果你决心提高你沟通技巧,就像一位去实践不同技术,模式和架构师的布道师。那么,咨询顾问是一个不错的选择……

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值