0、粉丝问题:
大哥,我毕业已经工作两个月了,在一家小公司,岗位和描述的不一致,感觉就像调试一样,写代码的机会很少也没人带,
我想转嵌入式,您有什么建议的方向吗,或者是学习路线?
这个粉丝的问题应该是大多数粉丝都会遇到的问题,很有代表性,
针对这个粉丝所述问题,
简单分析一下,
希望对这个粉丝会有所帮助。
本文只从软件角度来讲解
一、公司规模
所有的事都有两面性,不论大公司还是小公司,都各自有自己的优点和缺点,
不论是央企、研究所、上市公司、大中小民营企业,
都会有一堆的人吐槽,
都有人想进去,也有人想出来,
妥妥的围城。
1. 小公司缺点
小公司决策一般都是老板或者几个合伙人来制定,
受创始人的学历、经历、人脉、眼界、性格、眼界、格局等因素影响非常大,
什么都想做,但是缺人缺市场、
产品经常换,
门槛高的进不去
门槛低的产品,市场基本上都是血流成河、横尸遍野,
一大批小公司只能当炮灰。
小公司的招聘,
工资开的不高,
但是又要求员工能独挡好几面,
巴不得找来的人立刻马上就上手干活,
会画电路图、又会调试驱动,最好还会写上位机,
要知道这种人才,谁都要啊!
最终结果是:
hr为了完成任务,只能想方设法 把人先弄进来,什么承诺都敢答应
所以很多粉丝朋友发现去了公司之后,
经常发现自己做的事情和招聘要求会有一定出入。
经常出现:面试做开发,进去做fae、测试。
除此之外,
很有小公司主营产品已经开发的差不多了,
后期只需要一些技术人员做好维护工作即可,
而前面研发人员很有可能被压榨+持续997很长时间了,
老板画的大饼迟迟不兑现,
当初的部分核心人员发现自己被榨干最后一滴血后,
并且毫无希望的时候,
就提桶跑路了!
而留下来的人也是窝了一肚子火,无法静下心带新人
在之前他们可能很用心,带新人,
手把手教他们,
可后来发现,辛苦带出来的徒弟,
公司没有任何表示,
遇到不上路子的徒弟,还可能在背地里捅刀子,
教会徒弟,饿死师傅,
各种委屈叠加在一起,
也就不会再愿意手把手教任何人了。
一般都是丢个资料,叫徒弟自己去看。
2. 关于指导新人写代码:
大部分刚毕业的学生,是根本无法独立承担项目的,
即使硬着头皮布置了任务,
还要手把手给新人讲解项目架构,用到的技术细节,
最后结果就是:
- 师父必须硬着头皮看懂徒弟写的垃圾代码,
- 再修改调试一遍代码,
- 然后再教徒弟一遍。
这都快赶上3倍工作量了。
而评估工作量的时候,这还不能算在师父头上。
综合来看,还不如一开始就自己做。
3. 小公司的优点
小公司优点也很明显,
- 会有机会接触各种技术,锻炼在各种项目之间切换的能力
- 小公司体量小,转舵容易,现在产品变化日新月异,只有对大众需求有高度警觉性才能在各种竞争中存活、胜出
- 小公司有一定机会成长为大公司,作为元老,有机会获得股份,财务自由也不是很难的事(一口君身边就有很多例子)
- 可以学习老板如何运作一个小公司,应付各个部门的查处,如何与竞争对手厮杀
- 有机会承担:研发、测试、fae、售前、甚至销售等多个工种
- 有机会近距离接触生产、销售等其他部门
- 有机会直接接触到客户(这个其实对于职场人来说,职业后期是最重要的)
- 了解一款产品从需求分析到详细设计、研发、生产、测试、交付、销售的完整流程(以后能干啥,你应该很清楚)
二、如何快速融入第一份工作【技术岗】
很多粉丝给一口留言,
刚到公司,领导直接给了几十G代码和一堆技术文档,
代码编译一遍可能都要很久,
那么应该如何快速上手一个项目呢?
一口君建议先按照以下步骤来学习:
1. 学习搭建环境、开发工具
不同的项目,不同的平台,
开发环境差别很大,
编译、镜像烧录、版本管理、git使用、代码编辑器、各种测试工具、调试工具的使用都不尽相同
强烈建议先把这些内容过一遍。
一口君常用的嵌入式驱动领域开发工具主要包括:
Source Insight、notepad--、
beyongd compare、Git、
FTP server、TFTP server、飞Q、
vmware、ubuntu、
xshell、secureCRT、ATK xcom、cmder、
Keil、
wireshark、科莱、netassist、tcpdump
2. 从产品测试着手
作为新人,初次接触代码,
看到浩瀚的代码,通常都会无从下手,
这绝对不是在校期间,
写个数组,写个排序算法的难度,
几乎很少不懵逼的,
所以强烈建议,在条件允许的情况下,
搭建好产品测试环境,
将产品所有功能全部测试一遍,
代码一定是根据功能来编写的,
根据功能去查看对应的代码,
会事半功倍。
3. 捋顺架构
嵌入式软件开发有可能涉及的几个方向:
- 安卓
- c++
- QT
- 驱动(基于linux、vxworks、threadX、纯单片机裸机开发)
- 专用协议算法开发
不论哪一种,都建议先搞懂框架,以驱动为例,
比如艾为科技的GPIO扩展芯片aw9523的驱动,
对于老手来首,这是一个很简单的硬件,
但是新手要想看懂这个驱动,除了基本的c语言、linux基础操作外,还需要掌握:
阅读电路图、查看用户手册,驱动模块化编程、内核编译、内核镜像烧写、
设备树、platform、i2c、GPIO、sysfs、attr、input子系统,
getevent -lr 等等知识点
如果是第一次接触驱动,
这些知识点,很多新人可能听都没听过,
但是要想真正搞懂这个驱动模块,
这些都是必须掌握的。
如果你运气好,有一个成熟的师父愿意手把手带你,
首先带你分析电路图,搞清楚信号线的连接关系,
然后找到驱动入口,分析设备树硬件信息的功能及解析,
然后再讲解 gpio注册和高低电平控制、pinctrl子系统、i2c子系统、应用层如何通过sysfs实现与内核通信,input子系统、如何获取input子系统上报事件。。。。
那么基本上就不会走很多弯路,
但是这往往是奢望,
很多师傅可能只会和新人说:
这个是电路图,这个是驱动文件,这个是厂家给的资料,
自己看!
不懂的多百度!
师徒也是同事,
同事就一定会有竞争关系,
这个阶段,对于新人来说,
学会做人,就显得非常重要!
4. 多做项目
技术要想大幅度提升,一定要多做项目
零碎知识点,就像盲人摸象,
每个人、不同阶段看到的、理解的都会有一定的局限性,
每一个项目覆盖到的技术点,有多有少,
不同平台、库、接口,
设计不同的中间件、子系统、架构......
只有通过一个个项目,
被无数个bug摧残、蹂躏,
才能真正成为技术大拿!
三、作为新人如何调整心态?
除了学习好本职所需要的技术之外,妲己还需要注意其他能力的培养。
如果毕业之后进入大公司:
- 好好学习如何写ppt、写报告
- 学会从千丝万缕的事务中整理出最核心的数据和方案
- 学习几万人的集团如何管理运转
- 学会如何处理好复杂的人际关系【站队很重要】
- 利用好平台,做出举世瞩目的成就
进入了小公司:
- 拓展好自己的知识面,
- 学会如何同时开发、支援多个项目,
- 如何在各个工种(研发、测试、生产、销售、售前、fae)之间游刃有余的切换角色,
- 学会用什么手段可以实现用最少的投入撬动最多的资源
不论哪种公司都要:
- 作为一个新人,一定要有空杯心态
- 学会装孙子、合理甩锅
- 学会如何和各种岗位的老油条合(勾)作(心)交(斗)流(角),
制定自己的学习计划:
马无夜草不肥,
人无横财不富!
要想超越自己的竞争对手,只有不停地卷!
- 可以是专业技术,可以是从事领域市场、管理、产品等等都可以
- 制定短期和长期的学习计划,将一个宏大的目标,分解成很多个易于实现的小步骤,日积月累,量变产生质变
- 评职称,职称一般国企、研究所、事业单位都需要,中级以上都会有一定竞争力,职称的评定有时限要求,所以越早规划越好,一口君就是中级职称评定太晚,所以导致我现在高级评不了,虽然我对自己的专业知识很自信,但是规矩就是规矩
- 考本领域需要用到的证书,计算机软件领域有用的是:《软考证书》,中级和高级比较有用,有很多单位职称评定都是以考代评
很多老铁说,天天加班,累得要死,
根本没时间学习,
这纯粹是找借口,
大家可以看下面文章,我当时是如何有效利用自己的业余时间,
写了我人生第一本书的:
技术对于我们大部分人来说,只是一个进入职场的敲门砖,
想在本领域继续提升,还有很多因素,
在国内90%的技术人员,
到了一定年限后,技术的因素就不再重要了,
本文就不展开叙述了,
而且有些东西没法明面说,
你想唠,可以加一口君好友,
陪你唠出血!
任何时候一定要记住:低头做事、抬头看方向!
四、关于何时跳槽
跳槽一定要慎重,
首先确定好:
- 这个公司的产品是不是真的完全没有市场,
- 产品用的技术是不是真的毫无技术含量可言
- 自己还有没有提升空间-技术、市场、管理、人脉
- 在公司干的是不是特别压抑、不开心,看不到任何希望
如果思考完这4个问题之后,还是决定跳槽,那做好以下几点准备:
- 公司的产品市场,一定要了解:行业、领域、哪些公司是自己的客户
- 产品前景,与竞争对手相比优势,
- 把公司产品的相关技术资料整理好(各种技术文档(不要涉密))
- 未来5-10年我打算从事什么行业,打算找一个什么样的公司
小公司的管理,他的生存之道,
思考他为什么能存在,
思考如何改变,换做是自己,如何做得更好?
- 骑驴找马,不要裸辞
【提前给自己找备胎】
一旦提出了辞职(别人通过其他途径知道你要离职),不管别人如何挽留,你只能走
不要相信再过几个月给你升职、加薪的这种承诺,
对方不过是想在这几个月抓紧找一个备胎,接手你的项目。
但也别无脑得罪人,大家好聚好散,
活着都不容易!
五、嵌入式学习路线
至于该粉丝问的如何学习嵌入式Linux,可以参考下面文章:
https://mp.weixin.qq.com/s/mq6IhgO5JcBnAUBX5CP9Ww
针对想跳槽,缺乏项目经验的朋友,
一口君还录制了一个物联网课程,
学习完该课程可以添加该项目到简历,提升竞争力:
https://mp.weixin.qq.com/s/q3q7jVA2LcfeayGhZIlLow
很多粉丝朋友已经学习掌握了这个项目,并顺利找到了工作,希望对你有所帮助。