我是学通信工程专业毕业的,大学毕业后做的也是嵌入式相关的工作。开始做嵌入式linux应用开发,驱动开发,后来也做基于STM32单片机的开发,产品都是无线通信设备。后来机缘巧合在2011年,移动互联网大风吹起的时候,转行做android开发直到现在。
很理解你这种做了三年嵌入式要转行的心理。做嵌入式大多数传统IT企业,电信行业,医疗行业,智能卡行业,汽车行业,金融设备行业,家电行业等等,由于实体经济最近这些年不景气,连带着相关的嵌入式开发的薪酬待遇也堪忧,好多搞单片机开发五年经验以上的待遇都不如一个刚入职互联网大厂应届硕士的待遇。当然不提少数大牛的情况。近些年,移动互联网兴起,Android,iOS,服务端开发需求大增,水涨船高,待遇大好。促使你下决心转行。下面我从两个方面谈一下这个问题:
1 由嵌入式转行到互联网的利与弊
成年人不谈对错,只谈利弊。
先说利:
肯定互联网行业目前来看,待遇远超嵌入式开发的上述提到行业。所以趁着年轻可以用技术积累一波快钱。同时,你想做服务器开发,肯定又要学一门技术,如果再积累几年后,你就既有嵌入式软硬件相关项目经验,又有服务端开发经验。这时就为你做技术创业创造好了条件,也增加了行业竞争力。就算找私活干外包,都比别人多些优势,毕竟是个斜杠中年。
再说弊:
1) 楼主不要只看到互联网的高工资,同时也伴随着加班多,压力大,996听说过吧。同时,互联网公司都是敏捷开发模式,要拥抱变化,不断迭代开发,永远有写不完的需求,与产品经理撕不完的b。这和传统IT企业基于瀑布式开发大不一样,你做嵌入式项目是不是会有项目间歇期,出差可以暂缓开发压力。
2) 互联网公司普遍有开发的年龄要求,会有35岁想象,特别是前端开发: android,ios开发,这个技术比较新,年轻人多,竞争大。服务器开发还好。但是一样有这个问题,而嵌入式开发的传统行业对于年龄相对不敏感,比如我曾经工作过的智能卡行业,30-50岁的一线的单片机软件开发工程师我都见过,尤其国企內更常见。
2 如果你一定要转服务端开发
首先要从面向过程的思维转向面向对象的开发思维。一定要学好JAVA语言,目前大多数互联网服务端还是java web开发。同时还要不断完善服务端开发的课程体系:
数据库操作,熟练sql语句。
流行的开发框架: spring boot,mybatis。
中间件技术: dubbo,redis,zookeeper,负载平衡等。
目前基于java web 的服务端开发岗位需求量还是很大,也是学IT类专业毕业做软件开发概率最大的工作,工资水平略低于客户端开发,三年到五年经验后基本与客户端三年,五年工资持平。这个工作是互联网开发里最有上升空间的,大多数互联网公司的CTO都是做服务器开发出身,然后做架构,最后成为CTO。