您的位置:首页 > 编程语言

编程的路,与你共勉(2017总结及分享)

2018-02-09 23:55 323 查看
写此文,其实犹豫了好久。一方面是没时间,另一方面我自己是菜鸟,怕误导大家。后来还是想写写,和大家分享一下2017年的一些收获。

我目前在湖北武汉从事android端开发,坚持了自己专业2年多后,转行过来的。2015年5月进入互联网企业开始上班。本文主要聊2017年的一些事。

一、2017年曲折的工作经历:

2017年,是我职业生涯最曲折的一年,也是收获最大的一年。因为这一年,我经历了4份工作。其实,我是一个不轻言放弃的人,如果不是触及到我的原则,我是会一直坚持下去。

2017年春节后,我回到2016年上班的A公司继续上班,直到5月。当时我公司是外包公司,那种一个项目Android端、ios端(包括后台、设计等)才4-5万元的项目。绝大多数项目Android端就一个人,包括测试在内整个项目1个月左右完成。觉得这种日子对自己个人发展很不利,在思考了一个月后,提出了离职。当时,很多人提醒我“6月份不好找工作”。当时的想法很简单,项目质量太差,也累,想找一家产品公司。6月初,正式离职。偶然机会,A公司同事大学同学群发布招聘Android岗位信息。同事知道我是XG城市的(三四线城市),告诉了我这件事。

去年,其实我已经27岁,Android开发才刚刚2年。毕业比较晚、加上本专业耗了几年,所以觉得回老家发展也是不错的想法。觉得自己不可能一直在外面飘,加上之前因武汉房价实在太高而选择在老家买。最后,面试,通过了。所有行李打包,回老家。父母当时很高兴。

XG城市的B公司,是我2017年的第二家公司,只待了1个多月,是被辞退的。B公司比较大,但app开发刚起步,开发只开展了10个月左右。是由两个一年开发经验的人一起做的(他们开发这个项目时,工作经验也就几个月)。平心而论,那款app的性能,真的挺不错的。因为公司特别重视那个项目,就是一个页面可以反复写,写得满意为止。缓存、流畅度等等方面,都做得不错。当然,有一个很大也是最头疼的问题,代码耦合性异常高,基本上一个界面写在一个类中,少则上千行代码,多则5-6千行。

我就是在这样的情况下过去的。项目他们两人是从0开始的,比较熟,毕竟是他们自己写的。但我不一样,高度耦合的代码,加上不规范的命名,最最不幸的是,我回老家第二天就生病了,一直没好。当时我的项目进展特别缓慢。第二个月月中发工资后,公司就让我走人了。当时得知被辞退的消息,异常惊讶,毕竟我从未经历过被辞退,哪怕是刚刚转行时,现在上年2年多,并且是回四线城市,还被辞退了。后来想想,其实很正常:毕竟我在这一个多月的工作中,公司感觉招聘我之前与之后,项目进度没明显进展。之后,一次偶然机会与人事聊到这件事,她说“公司需要招聘一个能解决目前项目瓶颈的人。中间已经辞退了好几个人了。公司不差钱,但缺人才”。我信,因为我在老家XG城市B公司上班的工资,比武汉工资还多500元。武汉还是外包公司。

我被辞退的事,没敢与家里说。因为告诉他们,只会引起他们的担心。当时我每天假装上班,实则在老家找工作。我能搜索到的互联网公司,老家只有4家。已经待过1家,还有3家。我投简历过去,没一家回复。然后我打电话过去。2家回复不招人。最后,去老家另外一家公司C公司上班。当时就一个想法,上班到过年,不让父母担心。

在C公司面试时,我连工资都没有问。7月份上班了一周,8月中旬发工资,400多元。当时我惊呆了。上一周班,怎么只有400多元。然后我直接去老板办公室问,他说
4000
我工资试用期2000,转正后3500。试用期4个月。当时,我想马上辞职,但还是忍住了。9月2日,被老板叫到办公室,说我“试用期不过。明天不用来了“。楞了4-5秒后我才缓过神来,问”辞退不是要提前通知吗?“老板来一句”这里我说了算。反正我通知你了。你要继续上班,我也不拦你,就当为公司无偿奉献“。

其实在C公司得知转正后工资只有3500的那一刻起,我每天下班就在准备面试、刷题,计划9月份辞职开始重新找工作。老家的互联网公司,都被我试过了。没有办法,我只能选择再回武汉。然后,告诉了父母。但和他们说的是”老家技术太落后了,想再回武汉。我下家已经找到了,下下周开始上班“。当时,其实我才刚刚投简历。由于第3家公司太心急了,有了这个教训,我在再面试时,谨慎了很多:幸运的是,最后被武汉D公司应聘上,然后回武汉上班了。福利、待遇都毕竟满意。目前,app的第一个版本已经推出,处于迭代中。

二.几点分享:

(一)互联网,如果可以,去大城市。

如果可以,去一线城市。如果不可以,最低标准去省会或二线城市。

互联网行业,技术更新特别快。大城市的开发环境相对较好。像我在老家XG城市待过的B公司,app性能还算不错。但技术真的太落后,我能说解析还使用的是xml吗?

另外,算上我自己本专业的上班时间,我参加工作马上6年了。第一次经历被辞退,并且还是直接告诉你明天不用来,不会提前通知你。并且,我是在一个城市连续遇到2家。在小城市,还可能出现其他各种违法劳动法的事。包括我刚刚说到的C公司,后来我才知道,没有一个人过试用期的,都是试用期辞退你。很多人看到这里,可能会很奇怪,或者气愤的说,去告他。我只能说,你有点太年轻了。

关于在哪个城市从事开发,每个人情况不同,只是以我个人经历建议,优先选择大城市。并且,随着你年龄的增大,你从小城市去大城市的可能性、成本就越大。

(二)保持始终学习的态度、脚踏实地一点。

互联网行业,技术更新非常快,如果你想获取高薪,进入更优秀的企业,就必须保持不断学习的劲头与觉悟。互联网行业,加班是常态,很多人下班后已经很累了。回家后打打游戏,24点,然后睡觉了。但别人,可能每天下班后只学习一个半小时,日积月累,和你差距越来越大。在经济学上,有一个词叫 马太效应—强者愈强、弱者愈弱。别人学习了新技术,开发效率提高了,在同样的时间,别人可以做更多的事(更有自由支配时间),get到更多的技能点。他们自由支配时间更多了,又可以获取到更多的技能….

另外,对于很多刚刚毕业的学生,或者刚刚转行过来的新人,往往会购买很多的书籍、购买很多的视频、收集很多的开源项目.但以我个人的经历来看,99%的东西,他们并没有看、学。我个人的建议是:选择一个公众认可度较高的书籍或其他学习资料,认真的消化上面涉及的知识点,远远比你东一榔头西一梆子强。公众认可度较高的书籍,知识体系都相对完善;而star较多的开源项目,绝大多数是功能比骄完整,且代码质量较高的项目。

说到开源项目,我想起了我读初中三年级时数学老师的一句话“你不会,就先模仿”。当你学习那些优秀开源项目,很多时候,你会发现你习以为常的代码习惯,原来还可以那样写。并且比你写得更优雅。比如说,在app开发中,“我的”界面,经常会出现很多列表式的界面,左边是一个icon,然后是文字,后边是一个箭头。少则5-6个,多则10几个。你可能的做法是一个条目一个线性布局,然后线性布局中写布局。写完一个后,copy再copy,然后改一些icon、文字等。觉得很快。稍微有些意识的人,会把icon、文字的样式抽取成公共的style,因为他知道这样做便于维护。但你学习优秀代码后,发现还有一种写法,就是自定义组合控件。通过组合控件,出现得更优雅。而通过组合控件这种想法,在学校、自己发现,是不太可能的,往往需要通过阅读优秀代码后发现“它的牛逼”才学会的。

(三)关于身体、房子等

这个问题,在几年前,我压根就没思考过,更别说放在这里专门谈了。

但真的很重要。

编程,基本上都是久坐+加班,业余时间还要充电,绝大多数程序员的状态,是 公司到地铁站、地铁站到家里 这段时间没有处于坐着状态,其他时候要么在办公椅上,要么在地铁上,要么躺(睡)。周六周日,要么加班,要么睡到中午….运动的时间少之又少。年轻时还好,等你30岁后,就会出现各种问题了。不是颈椎,就是腰。

刚刚提到的2017年的B公司,我刚刚过去的第二天,就腰疼,疼得快伸不直。然后白天上班,晚上去中医那里理疗。理疗了10几天才稍微好转。虽然上班是坐着,但坐着也疼,对工作影响很大。

现在,虽然运动的时间也很少,但我会选择上下班地铁有座位也站到下车,上班时隔40分钟定一个闹钟,闹钟响了后,要么去打一杯水,要么去上厕所,要么站立一会。

工作很重要,但身体是根本。当然,对于更多的年轻人来说,是少玩手机,早睡早起。别说你下班很累,稍不注意就24点了。其实,你可以回头看看,从下班到你真正睡觉,绝大多数时间都是你磨磨唧唧度过的。我现在,就基本上22点半睡觉,6点起床。早起,可以倒逼你早睡。

关于房子,我想说:一定要买。

无论是你工作的所在城市买,还是回老家买。一定要买。房价只会越来越贵。关于房价的讨论,其实不属于互联网行业的问题,但又与我们每一位程序员有关。我想说的是,GDP对一个城市太重要了,与太多的东西挂钩,而GDP的来源绝大多数来自房子。我自己是经历了老家房价从高中时的1000元,到自己购买时的5500,到一年后的8000。而武汉的房价,我刚刚来武汉时,均价也就7000多,当时我觉得贵,到现在都均价2万。房价,你永远都会觉得贵、买不起,但以后你更加买不起。

我两个同学,在同一家公司上班,Z同学月薪9000元,武汉没房;F同学月薪4000,武汉中心城区1套120多平房(当时上大学买的时候8000多,现在3w多)。如果人生没有大的变数,F同学一辈子会比Z过得舒服很多。虽然Z同学的工资在武汉已经接近天花板了,F同学连武汉平均工资都没达到。

毕竟我不是房地产的托,也不是中介,我只是谈一下我自己的亲身经历。不信,你看看你一年的收入,有房价一年上涨得快?

(四)再啰嗦几句:

(1)关于培训机构

我自己从本专业转行到android,是经过培训机构培训的。现在几乎所有的培训机构都会对学员进行包装,包括曾经的我。包装这个问题,其实是一个非常矛盾的话题。

不包装,你很有可能工作都找不到。毕竟绝大多数公司不会培养你,很多甚至都需要独立开发的人员。相比应届生,你没有他们的科班身份,以及较为系统的知识。

包装,你的做法其实很不道德,对他人不公平,甚至触及法律层面。同时,包装对应的工作,你又搞不定。轻则,你试用期延长,或者被开除;重则,公司因为你的原因导致项目延期损失巨大。

之所以提培训公司包装这个问题,主要是因为很多培训机构花了太多的时间去教学员如何包装,到公司上班后如何忽悠公司。而最可怕的,学员认同这种观点,并且更多的精力不是业务技能的提升上,而是如何推诿责任。

并且,培训出来的学员普遍都有一个很严重,甚至会影响职业定位的问题:眼高手低。包装了2年工作经验,就真的以为自己有2年工作经验了。应聘开工资时不仅随意开价扰乱市场,并且代码质量很差污染整个项目的代码。

我是从这个阶段过来的,这真的是一个很矛盾的问题。但,还是希望你:

无论做哪种选择,请一定要多花时间、多主动学习,甚至牺牲前期的时间进行追赶,同时将姿态放低一些。最终将自己的能力提升上去。

(2)关于去不去外包公司

我自己经历过外包公司,之前在产品公司待过,现在也在产品公司。说区别,其实很大;说没区别,也可以说没有。

外包公司,大体分为2种。一种是啥项目都做,啥项目都接;一种是做体制内的(比如政府机构、国企)。第一种公司的特点,绝大多数是短平快,一个项目整个开发周期1-2个月,很少超过2个月的;第二种公司,往往只服务某一个政府机构,一直做那一个或者那几个项目,也有做其中几个子项目。当然,也不是绝对的,有可能第一种公司偶尔接到大单。

总体而言,第一种更累,但比第二种工资高。第二种其实和产品公司已经很接近了。工资的话:第一种外包>第二种外包>产品公司。

工作量的话,正好相反。拿钱多,自然累一些。

外包公司,盈利点,说白了就是赚取时间的差价。所以他们的开发周期会很短。只有一个目标:项目做完。

而产品公司,研发部门属于成本部门,说白了就是花钱不赚钱的部门,当然也追求项目速度,但他们比较看重用户体验,以及后期的运营、维护。

如果你是一个刚刚进入互联网行业的程序员,去外包公司也是一个不错的选择。一方面是因为外包公司都是完整的项目,你会经历开发的完整过程。在产品公司,你有可能只是负责某一个板块,一直只负责这一个模块。单纯就这一点看,选择外包公司也是可以的。另外一方面,“孰能生巧”,在外包公司,你会进行大量代码的重复编写。就是这个项目写了后,另外一个项目再用。而对于刚刚进入这个行业的人,“不熟”往往是特别大的障碍,在外包公司可以让你更快成长。并且,就目前国内的互联网环境,很多公司说倒闭就倒闭了。产品公司的研发部门,绝对比外包公司更容易倒闭。

所以还是刚刚的观点,外包公司也是一个好选择。尤其是进入这个行业不久的人。

那,产品公司呢?

其实就目前的开发环境,很多产品公司也是一个人独立开发。如果是这样的话,外包公司具有的优势,就不明显了。而另外一方面,产品公司往往只是做一款或两款产品。一直弄,一直弄,你对代码的理解,对知识的理解,会比外包公司更好。

并且,在外包公司,由于需要快速开发,公司基本上积累了一套很成熟的框架,该踩的坑几乎都踩了。当然,这也带来另外一个问题:框架中的知识体系都比较陈旧。比如,我现在公司的项目,是我与外包公司的人一起开发,一个2年Android开发经验的人,连recyclerview、okhttp都没使用过。

而在产品公司,你更有可能主动去学习更多更新的技能体系。

同时,由于外包公司更追求速度,所以他们的侧重点更多的是放在完成功能上。而产品公司,会去思考性能、拓展性。(其实也不是产品公司思考这个。而是你自己更有可能去弄)

我自己,有两个阶段提升特别快,一个阶段是在外包上班快一年时。一个阶段是现在。

在第一个阶段,由于量的积累,我感觉某一天瞬间有了质的飞跃。编码速度、解决问题的能力,明显提升了很多。

在第二个阶段,我对mvp模式、设计模式、封装有了更深的理解与体会。比如mvp,我以前只是听别人说这样写更好,但丝毫感受不到它的好处。但现在才体会到,mvp对于层析结构的划分,不仅逻辑更加清晰了,代码也更加优雅,拓展性也更强了,代码耦合性更低了。

(3)关于心态

在开发工程中,你会遇到很多很奇怪,甚至脑残的需求。我相信任何人都遇到过:有可能美工为了界面好看,明明可以用Android自带的一个控件,她非要设计另外一个,本来你几行代码的事,却多写了几千行代码。

有可能后台比较懒,很多逻辑不处理,或者返回的字段或数据结构很奇葩,明明你本来可以获取数据后直接展示就行的工作量,你却花了大量的时间去处理数据去了….

有可能产品拿着一个流行app,让你做同样的效果,还说“为什么别人可以实现,你却不行”….

我相信,你一定经历过类似的事。

这个时候,的确很蛋疼。但,也需要你换一个角度思考:

这个需求/情况我之前没处理过,我正好在商业项目中学习学习

如果你有这样一种心态,你编码时心态就会平和很多。也会更主动去学习更多的知识,踩更多的坑。自然,进步也越快。

相反,你持一份抵触的心理,不仅自己累,同时会抱怨。最最可能的结果是:这个需求你还是要做。

凡事,换一个角度去思考,你收获的东西就会不一样。当然,如果你的公司是那种频繁变更需求,又不给你时间,同时无限度压榨你剩余劳动力的公司,这个时候,你就要 强大自己,然后找机会离开了。

2017年,包括现在,我经常设想几个问题,如果去年5月份我没从A公司辞职,我现在会不会还在那家外包公司?如果我当时在老家B公司试用期过了,我会不会在B公司一直待很多很多年?如果….

尤其是B公司,其实除了代码质量比较蛋疼,其他方面真的蛮爽。住家里,在家里吃,工资也不低….

但,人生其实没有假设。

努力走未来的路,才是最重要的。

编程的路,与你共勉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐