本文转自网络。
“今天在网上看到一则段子:一位去年8月加入百度外卖的员工诉苦道,’我先是百度员工,然后是饿了么员工,现在又变成阿里员工了,可我明明什么都没有做啊。’ - -keithxiaoy”
这个段子的由来一则资讯:一名接近阿里的人士确认阿里巴巴全资收购饿了么一事属实,但是传言的95亿美元收购的金额不实,据悉,阿里巴巴旗下的口碑平台将与饿了么合并。原因可能为阿里和饿了么签订的对赌协议,要求饿了么在2018年3月底前实现盈利,否则被阿里收购。
看完这则段子之后,我陷入的深思,突然想到这三年我改了三次职业路线,可是我明明什么都不想改变啊。
从嵌入式到android开发说不出的痛:
说说吧当时我为什么要走嵌入式,在我们学校里大我大概三届的学长是我们学校的大牛,他所获得的奖项无数,代表学院的荣誉也无数,但是他每一个荣誉都是与智能设备有关,在他刚比赛的那年正是物联网概念的提出,智能科技比赛的开始。所以从进入实验室的那一刻,我也希望我有一天也能拿到这么多的荣誉,况且也对嵌入式开发进行了深入的调研工作。工资一搜,普遍高于软件开发,但是当时太年轻,或许还不太会看局势,招聘大部分都不招应届生,都招2-3年的工程师。但是如果你大学能获得奖项或则做出一些项目,那你就会被破格入取。科比曾说过”总是有人要赢,那为什么不能是我”。所以我开始了为期一年半的嵌入式学习。
该过程至今来看我还是觉得路线是没错的。只是该学科过于复杂导致后面的身心疲惫。我一直相信“1万个小时定理”中的刻意练习,也是因为自学能力的不足,连1万个小时都没有撑到。
给嵌入式开发者的一些建议:
1.嵌入式开发一定要有人带。为什么这么说呢。像我后面学android或则微信小程序开发。及时没人带。看看视频也就会开发勒。但是嵌入式一定不是这样的。在我认为,嵌入式开发你一定要主动,并且需要认识硬件工程师,和软件工程师。板子问题问硬件工程师。代码逻辑不懂问软件工程师。如果缺少认识一方面的人,你将会难以前行。我是信息学院的,在这个学院里百分之80都是软件还有百分之20是数学专业。这就导致了我的失败。缺乏认识硬件工程师。最好是电子信息工程专业的。当时我的学习主要是买了一套体系很完整的视频。原以为可以跟着一步一步走下去。后面会发现,很多硬件工程师一眼就能看出问题的地方你怎么也看不出来。也就导致了看了400多个小时该视频,我开始重新规划了人生。
再离开嵌入式开发之前,我参加了两个项目,一个做车联网的一个做智能监测的。但是当时整个团队的实力都较年轻。就拿一开始选型来说吧,你开发一个项目要先把设备买好,这个其实非常需要硬件工程师的帮助的。每一款设备都有他独有的电气特性、物理特性。及时是内容相近的板子。接线方式的不同也导致你这个系统出现很大的问题。比如我当时在开发车联网的时候,选择了arm,但是基于arm架构的板子非常多。当时选了一款性能较好的板子,价格不菲,当时觉得价格好,应该不会差,但是后面有个老的硬件工程师一下就不同意了。他一眼就可以看出车子行驶过程中会频繁的产生抖动,那块板子的接线只是普通的工艺,放在平稳的地方是没问题,但是放在车上就会很大的问题了。
由此可见,其实做嵌入式开发,要么你需要硬件工程师跟你配合,要么你就需要软件兼容。该过程之艰辛。但是请现在对嵌入式开发还有者兴趣的朋友们,还是一定要坚持下去。古人云:“天降大任于斯人也,必先苦其心志….”如果对着学科有着兴趣也不要被眼前的迷茫打倒,学会去利用资源,嵌入式是一个越老越吃香的专业。物理的变化远没有软件变化的快,很多做软件的都会有年轻饭的问题,但是嵌入式该问题较少,但是前期的艰辛也非常大。
就拿现在科技的发展来看,嵌入式在之后的十年还是非常吃香的。现在软件公司比比皆是,硬件公司也比比皆是。但是智能化公司正在一步一步成长。现在的努力或许就是下一个十年的CTO,系统架构师。
我再说说为啥我跑到了android开发,或许这是个机遇问题,那时去了一家智能化公司实习,当时进去确实是想做嵌入式开发的。但是才入手一年半,你能做啥企业级项目呢。当时进入的是NB-IOT部门,在这部门里,那些板子都是跟华为有合作才能进行开发的。对于我这种小菜菜,市面上能查的到资料的板子都不一定开发的好,更别说这种查不到资料的板子。后来我经过几天的思考。凭着曾今自学过一点点的java就做了android开发。当时那个公司android工程师就一个,而且还很忙。所以自然有这个职位空缺出来。之后就走上了移动开发的不归路。
从android开发到小程序开发的互通:
总体来说,之前的嵌入式开发对我的android帮助非常大。其实所有学习都是类似的。知道基础点之后,就去网上搜demo做项目。然后查API。嵌入式是查datasheet。说实话,经历了一些软件开发后,我发现嵌入式开发的思考点会更少一些。在嵌入式中datasheet中厂家会帮你写好所有的细节,只有你认真去看,能看懂,那你做出来不会出太多问题。但是软件开发不太同。需求更变的过快,业务逻辑过多,会让你思考的变得非常复杂。一开始做android开发非常不适应。
不过东拼西凑还是完成了为期一个多月的见习。也演示了一个不如流的demo。能在室内做出定位、导航,推送。android入门远比嵌入式入门过的快,这些都多亏了嵌入式开发。所以呢,学东西应该不是学一门语言,而是学一个思维。包括:逻辑思维,语言特性思维,业务思维。
再说说为啥要开发进入小程序开发吧,这个其实是市场推动的。再IT行业已经三年了。熟知软件行业的幻化过快,刚进入IT的那年左右塞班系统就那么没了,诺基亚就被收购了。winphone出来后看着它一步一步的退出。
不过小程序与android的关系没有那么恶劣,他们是相辅相成的。小程序开发其实是为了APP开发做准备的。一些中小型企业,需要用微信引流,而且微信开发的成不较低,也不会用android去开发,只有这个中小型企业,积累到了客户量,就会开始考虑着手去做APP了。不得不说最近android就业局势不太好。很多公司已经把这个业务砍掉了。一般比较大的公司都需要2到3年的工程师。所以说呢android的就业局势确实不太好。但是需求还是有的。转眼自己还有一年就毕业了。所以决定接触些小程序,解决自己的燃眉之急。也算是第二条路。但是android一样不会放弃。在微信开发中,我都是以android开发的思维逻辑去学习。所以入门会简单许多。可以直接把demo拿过来改。有种学习叫深度学习,还有种学习叫广度学习。
如果你的时间比较充裕,我希望你先深而后广,因为你只有在一个领域深了,才能摸到一些别人摸不到的东西。那就会成为你的特性。但是广度学习也是必须的,广度也推进了深度。一根筋是做不了大事的。有种双眼论,对于我们这些平凡的人来说,没有着最强大脑,没有着高学历高智商,你在一个行业内,永远比不过那些比你聪明的。那就需要找出第二条路。让着两条路融合,在一条路上你练到了前百分之15,另一条路只要达到前百分之50,那你成功的概率就非常大了。
|