1
今天来说一个比较普适性的问题:如何从传统软件开发转到互联网技术开发,这也是不少朋友问过我的问题,特整理一篇文章出来分享给大家。

软件无所谓传统与新兴,只不过面向市场的不同,导致大家心里有个对比。何谓传统软件开发,可能更多的与企业内部应用挂钩,采用项目制,人员对项目负责,面向B端用户,用户规模小,业务场景特定,迭代升级频率小,技术实现复试度较互联网应用低。

由于采用项目制,在项目结束后,项目就移交出去,后期的升级、维护、运营、运维几乎很少参与,日常开发工作更多的也仅是业务开发,导致参与这些项目的人员成就感特别低,技术成长有限。有一个词与传统软件开发走的比较近: 外包。所谓铁打的项目,流水的码农,外包人员的流动性是最大的。

那为什么要跳出传统软件开发,去做互联网研发呢?说到底还是生存与发展的问题。BAT,TMD等类似大厂的好待遇好福利好前途,充斥着互联网,影响着身边的每一个人。短短数十年的信息革命又被称为第四次工业革命,远比之前三次来的更迅速,渗透的更深入。互联是趋势,我们要做的就是顺势而为「这让我想起雷总牵头的顺为资本」。

切入正题,不管做什么转到哪行做研发,无非两方面,软实力加硬技能,再具体点就是思维转变结合一定的技术储备。

软实力——思维转变

就是变被动为主动,沟通协调,团队合作,都需要一个转变。举个栗子——需求,不能再一味的按着合同上确定的需求,按部就班一个里程碑接一个里程碑的去实现,有需求变动再去做个需求变更流程后再开发功能。

上篇文章专门介绍了做项目与做产品时的需求区别:产品需求与项目需求的差异。需求是一个转变点,其它还体现在开发模式、产品迭代、团队合作中。互联网研发更多的趋向于产品研发,开发模式抛弃传统软件开发过程中的瀑布模型,更多的采用敏捷模式,KANBAN、SCRUM等,读一下敏捷宣言似乎来的更直观一下。

个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划

大家都在讲互联网思维,做研发也一样,只有从 自我认知层面转变过来,才能更好的去适应互联网技术开发。

有人说我一直搞传统开发,没有经验啊!其实方法总比困难多,去找从事过相关工作的同学亲戚朋友前同事网友去聊聊天,到知乎Google微博博客公众号看别人的总结,参加相关的线上线下活动等等,如果以上都不行的话就来找我吧。

硬技能——技术储备

以结果导向看,因面向对象的不同,导致采用的技术栈差异比较大。互联网应用技术应用更广泛,更考验技术的融合能力。具体有哪些不同,从招聘网站的相关岗位技能要求上就能找到端倪。你需要做的,就是找几个代表性的技能要求摘出来,形成自己的技能学习列表,个个击破。特别是一些常见的,比如分布式、缓存、消息队列等。

肯定有朋友跳出来说我工作中压根都用不到,怎么能掌握住。工作中用不到,只能在工作外想办法,自己啃书看教程学习,照猫画虎做案例;跟别人交流取经,探明暗坑深水,为我所用。
以上两点也是我的切身体会,那么剩下的就是找个合适的坑,把自己埋进去磨练升级吧,祝你好运!

扩展阅读:


MavenTalk
125 声望15 粉丝

关注微服务、容器化、敏捷项目管理