前言
做开发快七年了,对于程序员,外行人总有着数不完的讽刺和误解,但是我都懒得去解释,代码搬运工人也好,民工也罢,随他们去说吧。但是网上最近流传的程序员泡沫,尤其是APP程序员泡沫的文章导致很多我们的年轻的同行产生了疑惑,所以我这个隐藏了很久的能言善辩的老程序员出山来聊一聊这个APP程序员泡沫的话题。
笔者是2010年从事安卓开发,此前做J2ee,对于安卓我有很深的感情,此前也是有意学了iOS,但是还是决定在安卓这条路上一直走到黑,在2010年一个好的安卓开发苗子工资可以过万,工作经验也就1年那样子,基本上你会点安卓都可以接近1W。想想最近某些文章中提到现在安卓开发新手动不动就要过万的工资相比,我觉得现在的新手做法并不为过:第一,以现在的北京物价房价对比2010年来说,开发的工资其实并没有涨反倒是跌了。第二,现在的开发比2010年的新手安卓开发要厉害一些,那个时候网上资料很少,书也很少,大多数安卓开发自学起来很痛苦。现在网上资料多,也有很多高水品的技术书,也有很完善的培训机制。
当然现在很多APP开发存在漫天要价的现象,但是作为企业的HR,技术经理甚至老板你可以选择不要他啊。这篇文章只讨论一般的APP开发,脑残的APP开发不在此文范畴。
1.大环境
首先我们说说大环境,现在是互联网时代,你别跟我说什么资本寒冬,在2008年经济危机时,也没见哪个程序员饿死了。资本寒冬只是暂时的,从2010年到现在死的互联网公司多了去了,又会有无数的互联网公司站起来。人们已经离不开互联网和手机了,做为必需品你觉得会破灭吗?就如同北上广的房子一样,08年说泡沫,现在这么多年过去了,谁还会相信这是泡沫呢?
2.App开发
接下来我们说一说安卓开发和iOS开发,windowsphone我们暂且不谈,这家伙10年就说要干掉安卓,也就过过嘴瘾。
我现在引用一篇文章的看法:”泡沫,毕竟是泡沫,终有爆破的那一天。这个时间不会很长,3到5年。随着新技术慢慢变旧(当Android和iOS变成和C语言一样老),随着大批量的人才涌入和一些公司退出(十万开发者面对一千岗位),随着很多老板慢慢发现原理和真相(APP真的只是个终端)。” 一看就外行人写的,还说当Android和iOS变成和C语言一样老,现在写C,C++赚的不比App少,JAVA老不老呢?2010年做Javaweb的优秀开发月薪2W+,再说Android和iOS不是语言不能和C语言比较,我牙都笑掉了。在此我们只能看到这是外行人眼红App开发工资比他高,他又转不了开发罢了,和windowsphone一样也就过过嘴瘾。
3.安卓和ios灭亡
有不少眼红的人希望Android和iOS灭亡,就像塞班一样,看Android和iOS灭亡了你们怎么办?笔者的同学以前做塞班的,塞班灭亡了他转做iOS,现在一样很牛逼,因为人家C++强,转iOS有优势。同样如果安卓灭亡了,安卓开发可以转Java,iOS。其实年轻的App开发不用担心这些,当你的技术达到一定层次,语言已经不是阻碍我们的脚步了,笔者1周就学会obj-c,写iOS代码了。同时也给年轻的App开发建议就是要注重基础,安卓和iOS只是武学招式,真正使他们发挥威力是你的内功,也就是你的基础。
4.互联网职位稀缺性
一个优秀的程序员是十分难求,他不是去熬年头就能得到的,他需要付出很多,阅读很多书籍,看过很多技术文章,敲过很多高质量的代码,无数个Bug折磨过的,一步步才培养起来的,反观其他的互联网职业我就不便多说什么了,优秀的是有,但更多的是熬年头拼学历,他们所付出的努力远远没有优秀程序员付出的多,他们所创造的价值也未必有他们想象的大。现在有产品思维能言善辩的App开发越来越多,他们可以去抢产品经理的饭碗,但产品经理很难抢程序员的饭碗,这也说明了优秀App程序员的稀缺性。现在我在招聘网上找一个3年以上经验的安卓开发都很难,就算找到了也很容易被别的公司抢走。现在市场上最多的是1到2年的App开发,还有一些从别的行业转过来的App开发,靠谱的很少。
5.提升自己让别人去喷吧
我们中国人的一大劣根性就是见不得人好,这是正常现象,那么怎么提高自己使得自己更强,让别人更眼红呢?
-
看清自己并尽早规划职业生涯
早看清自己的人早确定方向,看到自己的优点避开缺点,如果你热爱开发你就继续干开发成为App架构师。如果你能言善辩,组织能力强又敲的一手好代码,那就去做技术经理。如果你只是为了钱而不喜欢代码,那你得想办法尽快脱离这个行业。
如果闷头去敲代码这显然是大部分程序员都能做到的,但是你有没有想过程序员这个职业可以做一辈子嘛,早做打算并且要对自己的职业生涯负责,找到自己的本性和擅长并发掘自己的潜力,从而决定自己是做个技术经理、架构师还是个什么其他相关的职业,工作多年如果还是和刚入行的干一样的活这显然不会提升自身的价值也迟早会被这个行当所淘汰。 -
做有产品思维的程序员
平常多看看其他的App是怎样的,和自己的对比下,每做一个需求要考虑它是否是必须的,能为用户带来什么,而不是产品经理让做什么就做什么想都不想。 -
业余多看书,多写代码,写技术博客,找到适合自己的学习方法
想要脱颖而出你不付出努力又怎么能行,平常可以写一些自己想写的代码,把他写到博客上或者建立自己的代码库,写博客可以提高自己的写作能力同时也检验你的技术的掌握程度,你会发现你为了写一篇技术文章会查很多资料看很多书,遇到很多的坑,这是你去看别人的技术文章所得不到的。技术首先要做到先精,再做到广,什么叫做精,至少我现在的也不敢说精通Android,不会的实在是太多了。而我现在看到的就是很多开发什么都想搞,结果什么都搞不明白,今天学了Android,明天看看iOS,后天H5和RN火了又都去学,结果什么都不专什么都不精,知道慕容复嘛,会的再多也打不过专精一门武学的乔峰吧。只有你先精一门的前提下再去深入的研究其他的技术这才是对的。不要跟我说什么全栈工程师才是未来的大势所趋,才是王道,跟我说这个首先要明确什么是全栈工程师?全栈工程师至少要精通一门,会一堆技术结果全是半吊子也好意思说自己是全栈?作为Android开发多看看底层的源码,Java的基础,设计模式和算法以及iOS的基本知识。更重要的是在学习的过程中找到适合自己的学习方法,比如我就是多看书,然后敲一敲自己喜欢的代码,写博客总结归纳。关于书,我建议大家还是多多宜善,不仅仅限于专业的。古时文人为了一本书可以受饿攒钱去买,但现在的大多数人,在吃穿玩上花了很多的钱,唯独在书上却斤斤计较,希望大家都能养成爱读书、读好书的好习惯。 -
提高自身形象,培养软实力
App程序员同时也需要跟别人打交道,至少要穿的得体干净,别自己舒服却让别人不舒服。多培养自己沟通的能力,多想想其他人是怎么想的,培养自己的同理心,管理好自己的情绪,学会什么时候该发火,什么时候该淡然一笑,学会对着那些令人无比生厌的小人报以自然的微笑。网上讨论什么牛逼的人应该脾气好,但我不这么认为,该霸气时就应该霸气。如果我们程序员能言善辩,精通业务,人际关系好,人脉广,并且还能敲的一手好代码,这绝对非常恐怖。
-
保持良好的技术敏锐度和前瞻性
作为一个开发,技术的敏锐度和前瞻性是极其重要的。做技术难免会遇到技术的更新和新技术的出现,如何去选择变得极为重要,因为人的精力有限,这一点选择远远要比努力重要。首先要选择自己擅长的那门技术相关的新技术来进行学习,接下来再考虑其他的新技术。说到其他”新”技术,不得不提到H5和RN,作为一个移动开发者和一个手机用户,并不看好这两门”新”技术。从用户的角度来看,我们更追求高品质和最好的体验,显然H5和RN都无法达到这一点,另外想想PC端也出现了很多web应用,但至今都不温不火的,因为体验太屎了,我宁可下个客户端也不会在web应用上做操作。总结一句,就是H5难成大器。作为一个开发者,H5只适合一些商城或者广告类的界面,它只是一种解决方案,想要拿它做App那太扯了。有人在2011年就说H5是趋势是潮流,过了5年还在说,是不是等我退休了你们还在说H8是趋势呢。至于RN,可能未来会有一些进展,国人太喜欢炒作也太浮躁,Android和iOS都有自己的成熟的开发框架,非要在此之上罩上一层去写js,感觉就像是不脱裤子拉屎一样(我实在找不到很好的形容)。用你们的脑子想想,未来人们追求的是什么,是极致和高品质,为了所谓的商业模式来应付用户群体必定走不远,当然想捞一票就跑的可以忽略极致和高品质这个问题,用户不会关心你用了什么技术,他们只关心好不好用。不好用的直接扔垃圾箱里,好用的就算时常让他们下载新版本也会有人用。总结一句,RN可能就是一个搅屎棍,它的出现可能会让很多人趟浑水并且浪费很多时间。对于RN现在我也是持观望态度,因为我发现真正重要,能让我走的更远的是基础和深度,而不是这些前途不明的潮流框架。总之,对于新技术要有自己的判断,不要听风就是雨。 -
选择好平台,不要计较一时得失
在好的平台才能得到最大的利益,才会发挥自己最大的能力,相反在差的平台以及不适合自己的岗位上就算再努力也白费,除了你手里那点钱什么都得不到,还会赔上最有价值的青春。有时要学会放弃,面对不好的平台、不适合自己的岗位当断则断,计较一时的金钱得失可能会葬送自己整个人生。就好比金子扔进茅坑它永远不会发光,一个铝片放在舞台上却能够闪光,不管我们是金子还是铝片一定要区分茅坑和舞台。既要活在当下同时眼光也要放远。 -
去做去行动
大道理很多人都懂,为何脱颖而出的就那么几个人,因为他们不只懂而且也去做了。