和白老师详细介绍下我的情况: (1)目前的状况: A、毕业四年,从事低压电器行业研发工作,独立完成项目五个(软硬件都是独立开发)。 B、技能水平:通过业余时间学习和项目的积累,自己和公司里十几年的工程师比差的是行业经验,理论知识和设计能力已经强于公司其他工程师,就拿罗氏线圈来说,身边普通工程师通过测试得出不同频率下线圈的一次测和二次测变比不同,并不知道原理。而我通过建模,推导传递函数,根据零极点分析得到幅频,相频特性曲线,分析得到不同频率下增益不同。我对自己的期许是当一个小公司的总工,所以学习的范围也比较广,硬件有开关电源(反激和以及其他拓扑的dcdc)、运放电路设计及运放稳定性分析,以我目前知识层面上来看 硬件设计是电源、采样、执行器件三大块。软件方面会基于M0+和M3的多款MCU的固件开发,但都是基于裸机开发,不涉及操作系统。最近泛在电力物联网兴起,因此简单学习了物联网,能用docker指令部署EMQ和nodered,以emq为后端,nodered为前端,实现设备端和用户端之间的通信。后期有精力会去学一下开发手机APP。 (2)现在说下自己的不足: A、第一,经常性会忘记学过的东西,比如反激开关电源的变压器计算,自己也通过计算做了个实战项目,过了几个月没做了又忘了怎么计算了。 B、不会RTOS。 (3)期待解决的问题: A、现在在的公司工资比较低,工资最高的同事也才11k。因此我想跳槽,下一份工作的薪资要求多少是合适的,坐标杭州。 B、低压电器行业待久了,对其它行业的未知使我害怕,不知道以现在的水平能不能胜任,需要多久才能适应其它行业。另外招聘信息很多是要求会rtos的,需要学习一下吗? C、希望白老师能给我指点下接下来的学习路线。 白纪龙老师解答如下: (1)首先作为公司的总工必须纵向的技术能力和横向的个人软性能力一定要兼顾,而且去小公司的话,这个时候对于你个人的软性能力要求更高,沟通,协调,资源分配,项目管理,技术管控各个方面非常考验人,所以除了技术能力以外,我觉得你横向的软性能力也要注意培养 (2)作为公司的总工,我们构建的知识体系更多的要基于产品,所以我们要构建自己的能力需要很多方面,软件,硬件,结构,工艺,测试,成本, emc等各个方面我们都需要有所了解,最好从市场调研开始到产品停产的整个产品周期跟过几个产品,这样你构建起来才是实用可靠的 (3)经常忘记,其实是我们没有构建自己的知识体系出来或者说笔记做的不够勤快,最好是可以用思维导图等把自己的知识体系实时梳理,然后打印出来作为参考工具,以后要用的时候立马拿出来,直接使用,而且在实践的过程中实时更新自己的知识体系 (4)至于说跨行业,首先你得技术综合能力已经初具规模了,这个时候更多的你应该关注你想要跨的行业的产品的架构是怎么样的,然后现在开始储备这一块的知识,比如说目前很多稍微比较高精尖的工业或者医疗领域,其如果是大型设备的话,那么他们产品的整个架构首先其交互的方式已经逐渐淘汰通过PC来进行交互,而是直接在产品表面嵌入一个比较大的屏幕,如LVDS的显示器等。然后整个产品如果比较复杂的话,其一般都是通过CAN bus来链接不同的模块,一般这种情况下我们都会有一个主控板,主控板的处理器都比较复杂,之前都是A8之类的,然后其他辅助模块如运动模块,其MCU选型一般是CortexM3之类的,主控板做处理计算交互等功能,而其他子模块负责专门的功能,如信号处理模块则专职信号处理,运动模块专职运动,温度模块专职温度,类似这样,而所有的子模块都通过can bus链接到主控板。 (5)RTOS还是很有必要学习一下的,就像我前面所说的稍微复杂点的系统,一般都是cna bus.架构,基本上主控板都是基于linux居多,我个人的学习经历,如果你想快速入门linux整个RTOS还是很有必要好好的学习的,当然两种操作系统的架构是非常不同的,一个是实时的一个是通用的非实时的操作系统,但是软件架构,操作系统对于任务的调度等等其思想还是非常类似的。 (6)针对于RTOS或者linux的学习我个人推荐的学习路线是:首先是标准库的软件架构该软件架构非常简单,不会指针跳来跳去,所以软件的复杂度非常低,但是她告诉了我们如何将几十个甚至上百个程序文档组合起来;然后是HAL库的软件架构,他更进一步的我们移植的难度,其关键是他确实做到了对底层的的屏蔽,比如说你从F4移植到F1你可能只要改变全局宏定义,启动文件,以及IO口宏定义等等,非常快捷,但是如果你用标准库的话你需要改变的东西了非常多,出了刚才的需要改动的以外,还有很多初始化函数,功能函数可能也需要改,移植的工作量会非常大。其实HAL库虽然有些初始化配置函数会有一些冗余,但是瑕不掩瑜,他想做的事情给我们尤其是不同平台的移植带来了非常大的移植,其风格上也是逐渐像操作系统上靠拢,比如说其最大的特色是多了所谓的句柄,其实就是一个结构体指针,而指向的结构体其又包含了整个外设所有相关的内容,所以这个结构体里面其成员变量有的是结构体,有的是函数指针,如此就使得其变得非常复杂,但是如果你搞懂了其中的机制然后再去学习RTOS以及LINUX你会非常有感觉,因为你已经熟悉了这个风格;其次,在操作系统里面,指针指来指去的现象非常多,你很容易搞混淆,所以这种风格我们必须熟悉,也必须搞明白,等你完全搞明白了以后你反而觉得哇C语言原来这么用,你突然觉得果然高人就是不一样,如此登峰造极的去使用一门编程语言,然后你也会学到很多; (7)我们首先还是把RTOS学习路线给大家明确一下:标准库(学会如何组织多个文本)-->HAL库(学会如何用一个结构体去表达某个外设的所有功能)-->RTOS(学会多任务在实时比较精简的操作系统里面是如何被调度的)-->Linux(学会任务在一个非常大型的且通用的操作系统里面其如何调度任务等等) (8)对于linux这种比较通用的非实时的操作系统其其相较于试试操作系统,其有个最大的机制其实要在操作系统真正开始被调度进来需要做很多准备工作,所以一般都是首先通过uboot做好相应的准备机制,然后才把操作系统调度进来 (9)而uboot为操作系统调度进来之前所做的准备工作或者所做的努力其必须想办法传递给包操作系统,重点是如何传递,比较古老的linux版本,其一般是通过ATAG参数来传递的,而目前比较新的版本都是通过设备树来进行传递,不管那种传递当时,其基本是都是通过指针一顿操作。如果大家能在HAL首先做了学习,然后再进入linux的学习,你会非常简单的无缝链接,不然你会很痛苦,你要花很多时间去跨越 (10)而我们前边讲的关于HAL关于标准库关于RTOS的这些关键都会在我的测温仪的课程里面详细的跟大家分享到 (11)至于薪资的问题我觉得基于你目前的情况15K是OK的。
4 z" [/ P% d% D; Q; q |