我是一个半路出家的iOS开发,以前是修电脑,脑子一热入了开发这个行,但是我觉得挺好的,至少开发是一件快乐的事情。
说说现在自己看到的开发的行情吧!这几年开发这个行业是越来越难了,程序员遍地都是,但是质量都不高。作为在杭州这么一个地方,互联网行业在全国来说遥遥领先的一个城市,大家都想往这里立足,之前有面试过一些做iOS的程序员,一个岗位几十封简历,只有一个是之前在杭州工作的,其他的都来自于北上广深,我负责电话面试,面试下来的感觉就是三到五年工作经验的人,水平真的一般般!我在想,一个三到五年的程序员是怎么对待自己的开发生涯的,我这么说并不是我觉得我自己多牛逼,只是觉得作为一个开发不是依样画葫芦写出对应的产品的需求就行,而是要做一个有思想的程序员。
作为一个一直在创业公司呆着的程序员,见证过一个公司从0到1再到0的过程,换过几份工作也都是创业阶段的公司,也在大公司短暂的待过一段时间,对于我来说,创业公司一年带给开发的经验远比在大公司呆着一年甚至更长时间带给开发的经验多的多。大公司基本上都有流程和体系,你只需要负责自己的那部分工作按时完成任务就行了,至少我遇到的大公司是这样的。在创业公司,你不仅要开发,可能更多的需要参与到产品和业务的方向和梳理,经验值那就是直线飙升啊!
作为一个开发来说,想要更多的成长和有更大的成长空间,要善于思考,表达自己的一些观点,更多的时候需要控制自己的开发过程。有时候一个程序员的写代码的能力并不是衡量一个程序员牛逼不牛逼的标准,更多的时候需要理解产品。
对于我来说,这么些年下来我自己积累的经验和大家分享一下。在创业公司呆着让我有了更全面的技能提升。首先我会对产品进行分析,了解产品的核心,分解产品的各个功能点,在过产品需求的时候,就会先想到这个功能是做什么用的,意义是什么,同时也会想到怎么去实现这个功能点,并且需要多长时间。理解产品的整个业务逻辑和交互逻辑,拆分和整理业务逻辑,相同业务线和不同业务线之间的关系和区别,这个时候一定要学会去共同,把你的理解和产品经理以及其他人进行沟通达成共识,切勿“我觉得应该是这样的吧!”。这个是整个里面很重要的一个环节。产品需求过完之后,要学会自己制定开发的周期和[Deadline],遇到难点的时候呢,要学会把难点拆开来,任何一个难题我认为都不只有一种解决方案。开发过程中一旦需求发生变更的时候,不要盲目的去接受任何一个需求的改动,不要人家说什么你就做什么,要学会分析,需求变更带来的整个产品的影响,这个时候其实也是考验程序员能力的时候了。看你整个app的架构和底层以及各个组件封装和各个功能点之间的耦合度,是不是需求变更会导致牵一发动全身。一般来说产品涉及到需求变更不会影响整个大的业务逻辑,如果产品整个业务逻辑发生大的变动的话,那就怼死产品经理吧(开玩笑的,有时候也就默默的接受了吧!)作为一个开发不仅写好代码,更要理解产品,也要知道把控所有环节的开发时间,一般情况下,我都会在DeadLine之前一两天会完成我手上所有的工作,淡然如果接口延迟了,UI延迟了,我也是很悲剧的,所以无论程序员也好设计师也罢都需要很好的把控项目的进度。虽然很多公司都有项目经理去把控所有的进度,但是我相信所有的决策者都不会希望预定计划被延迟,不希望团队里面有混吃等死的人吧,so每个人都严格要求自己尽量的把进度往前赶,整体的进度自然就会往前赶。程序员不一定要做一个产品经理,但一定要能够理解产品的思维,我想着对于创业公司来说除了资金以外,漂亮的点子永远会是一家刚起步的公司能够走下去的很好的理由,所以开发人员也不要吝啬自己的想法。当然这里说的都是对于一个程序员在一个初创公司的一些,并不是大公司就不好了。对于经验不足的程序员来说,可能创业公司的更加适合吧。但是现在的创业公司一般也很少招经验不足的程序员了,对于创业公司来说,更期望经验丰富的程序员,一个人能干好几个人的活,毕竟初创公司要活下去,时间和资金上面其实耗不起的。大公司呢,会有一些实习岗位给到经验不是很丰富的程序员,但是竞争也是很激烈的,毕竟还有经验丰富的想跳槽去大公司的人。这就尴尬了,这就是现在程序员生活现状并不好的原因吧,毕竟是一个优胜劣汰的时代,不进则退。还有就是一些培训机构大量的招收学生,然后一批一批的空降到各个城市去,简历基本都是雷同的,培训三个月,简历上经验三年,都是项目主程,所以现在公司招程序员一看培训机构出来的直接刷掉。虽然我也是培训出来的,但是那个时候做iOS的人并不多,还是庆幸自己当年比别人早一步,因为我是从培训机构出来的,我很明白在培训期间其实是学不到很多东西的,很多东西都需要自己在项目中去积累经验和学习,我很清楚的记得,那个时候第一家公司我只会界面,什么接口,什么底层,什么框架都不懂,连最基本的数据交互json解析都不会,还记得那个时候ASIHTTPRequest还花了一天时间学会怎么用,想想看自己当前也是一个小白,一无所知的小白。对比现在和刚入行的时候简直是翻天覆地的变化。
每个人和每个人的想法都是不一样的,我仅仅表达自己这些年开发过程中的一些感受和体验,每个人的现实情况都不一样,但是成为一个全面的程序员可能对每个程序员来说都是必要的吧,当然并不是要求大家都向全栈工程师靠拢吧,毕竟每个人的天赋和学习能力是有差别的,找到适合自己的位置才是最重要的,学得多不如学的精。在开发这条道路上愿和所有的Developer共勉。加油。。。