一、前言
一个半路出家的软件开发者,尽管只有短短几年软件开发的相关经验,却可以凭借他在其他领域积累的丰厚经验,最终一举超过单纯拥有更多软件开发经验的同行【有时拥有不同的专业背景(甚至是与软件完全不搭界的行业)是立足软件开发领域的一个巨大优势】。
如果你已经在其他与软件开发无关的领域工作了一段时间,并且目前正在考虑转行成为一名软件开发者,本文可以为你提供一些鼓励,以及一些如何实现转行的最佳实践。
二、中途转行的优势
2.1、具备良好的人际交往和领域技能
中途从其他领域半路出家转来做软件开发的人士,他们一般都拥有2个巨大的优势(具备优秀的人际交往技能和自己领域内的专业知识软技能),而这两点在软件开发领域从业者中都是极为罕见的。
人际交往技能的重要性不言而喻(我们都是生活在一个集体的环境中,每天都要与人打交道,能够与他人高效交流并提炼有用的需求信息,这对于开发人员来说是一个很大的优势,毕竟大部分软件开发人员都不擅长与人交流,这也对自己今后的职业发展有很大的选择空间);
一个人在其他行业领域内发展出来的软技能知识能够很好地应用在软件开发领域,并且是你独一无二的优势,你可以利用你在其他领域的专业知识指导你开发出专业的软件工具,对于软件开发的需求明确具有指导意义(毕竟,所有的工具都是为人服务的,而让你自己与该领域内的客户交流明确需求时,你将如鱼得水,得心应手的提炼出客户的需求和目标,能够更好的指导软件开发)。
2.2、成功自信的心态有助于成功
成功的心态往往是普遍适用的,如果一个人身处某一行业中能够取得成功,那么他们在任何行业中都会获得成功。
三、中途转行的劣势
3.1、软件行业所需的大量知识和复杂度
软件开发行业的基本需求时要求软件开发者至少熟悉一门编程语言,而一门编程语言里面就包含大量的基础知识,需要开发者花费大量的时间和精力去学习和练习才能掌握;并且这些都还只是一门编程语言所需掌握的内容,要想发展成为优秀的软件开发者还需要学会算法、数据结构等内容。这些大量而且复杂的知识可能是阻碍许多人转行成为程序员障碍。
3.2、时间原因造成的经验补足问题
如果你从事这个行业只有三年时间,那么即使你跟一个10年左右经验的软件开发者一样优秀,你在经验上也无法与他比肩,因为你并没有和他一样遇到过那么多问题。因此,在大多数情况下,经验上的缺乏会导致一些事情变得愈加困难。如果你想弥补由于缺乏直接经验而造成的知识空白,那么你仍然需要埋头苦学迎头赶上。
四、如何实现平滑过渡转行
4.1、从当前从事的工作入手实现转行
从你当前从事的工作入手,着手开始转行的工作从自己手头工作的点点滴滴入手开始学习编程的(即学习编写程序来帮助自己有效完成工作,或者开发某种工具来帮助每个人有效完成工作);通过在当前工作岗位上完成一些这样的小项目,或许在未来的某个时间点,你可以请求把这些工作转变为你自己的全职工作。如果你能做到这一点,你甚至都不需要离开现在的工作岗位而去申请另一份编程工作。
4.2、寻找可有效利用现有背景知识相关的工作
有效利用你现有的行业背景知识,为一家在该行业内开发软件的软件公司提供宝贵的领域专业知识(在软件开发的行当中,拥有领域业务知识可是一项具有极大价值的优势,因为了解某个特定行业内软件的业务目标与工作机制可以防止出现许多错误)。
试着利用你现有的看似与软件开发无关的行业内业务经验,找出方法让它变成稀世之宝,并且将这些经验转化为书面上的手册之类内容(基本上任何人都能做到这一点,因为软件几乎存在于每一个主要行业)。
4.3、愿意从底层开始做起
如果你正在转行从事软件开发工作,你需要可以从底层开始做起的决心和意愿。别担心,你之前的工作经验将会确保你不会在底层工作岗位待得太久。
与其他行业软件相比较,软件开发领域高手如林,精英遍地。所以你有多少经验、多大名气其实并不重要,尽管声名显赫也能起到重要的作用(建议你还是做好准备脚踏实地从底层做起,你要充分意识到你既往的大部分技能都必须被舍弃,并且对此你还必须要欣然接受。如果你想成功实现转行,这是必备的功课,它将帮助你避免挫折)。
如果你在另一个行业里已经身经百战、高歌猛进,那么你原先的许多软技能都将有效加速你在软件开发领域内的职业发展进程。你只需要在刚开始的时候多一些耐心而已。