今天新项目过来个领导,跟我聊了一会,他问我的一个问题是:“你擅长哪方面的技术?”这下把我给问愣了,我说,我哪样也不擅长。
和几个朋友一起准备创业,现在还在筹备阶段,经常会接触到一些人问这样的问题:“嵌入式就业好吗?”“学Linux有前途吗?”“做软件就业好吗?”……每次遇到人问我这个,我都跟他说:“我哪知道”。
我说一下我的经历,大学折腾了四年,差点没毕业,先是做单片机,然后是Linux驱动,然后是DSP,然后是FPGA,每次跟别人说起来对方都各种羡慕——你会这么多啊……毕业后去了一家软件公司,第一个项目是用C++做一个上位机界面,我之前一行C++都没写过,后来又做车载娱乐App,也是用C++,框架是Linux,自己闲着没事的时候用Qt写个小工具给项目组的人用,下班就倒腾点Zigbee或者linux或者研究一下菜谱……说到这里,看官们可能糊涂了,丫的在这里扯毛线呢。其实吧,我说这么多,是想说一件事情——你所有的知识都是在围绕着行业进行的。
OK,遵照上面的观点再来分析,我所在的行业是汽车电子,这个方向很大,第一个项目用C++ WxWidget写上位机,是属于汽车电子的汽车诊断,第二个项目用C++基于Linux做车载娱乐app,是属于汽车电子的车载娱乐应用开发,接下来要做的BCM(用C语言)是属于汽车电子的车身控制。如果这样分析的话,那么上面很多人关心的那一堆问题都迎刃而解,也就是说,技术必须依靠实业作为支撑,否则一切都是空谈,基于具体的实业的技术是没有界限的,比如,我举个例子,第二个项目车载娱乐应用开发,在这个项目里,首先要懂得Linux基础命令,第二要懂得嵌入式Linux开发基础知识(比如Makefile以及AccrossToolsChain的配置),第三要懂得C++基础编程和UML设计,第四要懂得使用外部库进行网络通信和数据解析,另外由于项目服务器端没有开发好,因此还需要自己在公司搭建一个服务器进行模拟测试,模拟测试需要服务器编程……看吧,这就五六点了,覆盖了太多的知识,绝对不是一句“搞Linux就业好吗”就能给你说明白的,因为一个行业里面所需要的技术点太多,绝不只是你会Linux或者会C++就能告诉你你一定会有辉煌的前途。因此,首先是要基于行业来考虑这些问题,也就是必须将技术依附于实业来分析是否有前景等问题。这也是为什么那哥们问我最擅长什么技术,我说我哪样也不擅长的原因,因为没有基于实业,我是没法说的。
既然说到了技术,那就再说说技术的共同性。前段时间一个哥们跟我说,做嵌入式底层的东西跟做大型应用软件不一样,我说都一样,然后我们争论了很长时间。我认为一样的原因是:如果你脱离开具体的代码然后从设计模型来看,是一样的。比如说大型应用软件设计中以C++设计一个小应用程序,使用面向对象的思想,而在Linux驱动层中,其驱动框架本身就是使用了面向对象的思想来设计,具体代码请参照Linux设备驱动框架,最简单的可以看字符型驱动框架。再换句话说,FPGA的编程思想跟C++应用软件编程思想也是一样的,就是在做一个有限状态机。如此的例子太多,既然从设计模型来看都一样,那么剩下的就是具体实施的编程语言和业务不一样了,编程语言也不过是名字不一样,所提供的功能(比如I/O、FileManage、StructData等)都是相似的,剩下的就是业务逻辑,因此又归结到上一个结论,就是技术必须依附于实业才有具体的意义。
因此,谈技术方向选择技术方向,我认为先想明白自己要做什么行业,然后再想这个行业需要什么技术点,毕竟,还是那句话,技术必须依附于实业才有意义,否则一切都是空谈。
自做自受 2022-7-29 17:02
如今,更好奇的是技术和科学看似是两个截然不同的集?交集是科技?更好奇的是人类在这三方面分工不同?
电子匠人 2014-11-20 17:52
用户1585888 2014-11-19 11:23
电子匠人 2014-11-18 19:03
用户1702231 2014-11-15 14:28