嘉宾介绍:唐佐林(论坛账号:@delphi_tang)狄泰软件学院创始人,活跃在一线的技术专家。一直以来从事系统的架构设计与开发,帮助各公司解决系统架构与性能瓶颈方面的问题,擅长图像处理算法以及深度学习技术的定制应用。除了技术之外,还擅长钢琴演奏,拥有自己的钢琴原创专辑,虾米签约音乐人。
本期社区之星,我们邀请到唐佐林老师来为大家分享一些学习、工作经验。
1. 您从事嵌入式行业很多年,可以谈谈您对嵌入式行业的看法吗?
唐佐林:我个人认为嵌入式行业在未来会逐渐发展为一个基础行业,嵌入式软硬件的应用将会越来越广泛,特别是现代AI技术的落地,物联网项目的实现,基本都离不开嵌入式技术。如果继续扩展,那么工业控制,医疗理疗,物业管理,等等,这些行业也都会依托嵌入式技术而取得更大的突破。所以我觉得嵌入式行业将依托其它行业可持续的发展。另外,我也想强调一点,现今的嵌入式已经不再是传统的嵌入式了,已经不再是“资源受限设备”的开发了!!在我大学时代,嵌入式开发的要求非常高,必须软硬件通吃,写应用需要各种考虑,资源要省着用,内存有时要省到字节的地步,为了一点点实时性,有时候函数得换成宏实现。。。而现在,嵌入式设备的配置越来越高,各种技术,框架都可以用在嵌入式设备中了,这给嵌入式整个行业带来了源源不断的生命力,同时也给了嵌入式开发者更多的机会,实现更多创意产品的机会,改变世界的机会。
2. 您是如何看待工程师创业这个问题的呢?您的创业史(奋斗史)能不能给我们分享一下呢?
唐佐林:我觉得工程师没事别创业!!!虽然这么说有点令人沮丧,但,事实也确实如此,有技术,远远不够!不要因为有某个想法,或者业余做了某个东西就觉得可以创业了,创业远不如想得那么简单。我也可以分享一下我自己的创业失败心得。这还得从5年前说起。。。2015年,我自认为在Moto的发展已经触及“天花板”了(当时作为架构师负责几款开发工具类产品),就想着是不是可以自己做点事,于是开始了解创投这个领域,发现好多获得投资的项目“都不咋样”啊。于是,头脑一热,裸辞!!!之后花了几个月时间,完成了一个物联网+互联网的产品雏形,大致就是一个智能家居系统,后台通过大数据结合AI技术做一些预测分析。。。然后就开始各种路演,和投资人谈合作!有时一天要跑2,3场路演和饭局,给人感觉就是跑在创业成功的路上,即将步入人生巅峰。。。这样大半年下来,发现“有意向”的人很多,但愿意深入交流的基本没有!给外人感觉要改变世界挣大钱了,而事实却是自己的积蓄都快花完了!2016年10月,因为资金迟迟无法到位,产品无法按进度进入第二轮迭代开发。。。
我把项目停了之后,认真反思了这次创业!虽然不愿意承认失败,但事实就是失败了,而失败的主要原因就是:认为有技术就可以做好产品,就可以有市场,就可以有投资。实事上,对于创业,技术真的只是一个成功的因素,而非全部!我分享失败的经验是希望有创业想法的朋友可以认真考虑创业这事,想想自己是否具备了成功所需要的大多数因素。
3. 您在嵌入式产品开发有丰富的经验,到目前为止给您留下最深印象的是哪一个项目,谈谈印象深刻的缘由。
唐佐林:要说印象深刻,应该是在Moto工作期间为公司开发的调试工具集Excalibur。这个工具由PC端和设备端两个部分组成:PC端涉及交叉编译文件的解析,用户交互,通信,授权管理等;设备端是产品中可配置的服务组件,负责与PC端通信,接管Log消息,抓取内存信息等。印象深刻是在于这个工具从最初的Demo到立项,到专职开发,再到最后Moto全球工程师的使用,我几乎都是全程参与。每个模块,每个细节都了然于心,并且在这个项目中几乎涉及了我所掌握的所有技术,比如:系统上涉及Linux和Windows,语言上涉及C/C++,Java,C#,Lua,Python,工具和框架涉及Valgrind,JFace/RCP,.Net,Swing等等。对于我而言,这已经不是一个参与过的项目那么简单了,我觉得它可以算得上一个舞台,而我在这个舞台上亲手打造的一款产品。需求分析,设计,开发,调试,发布,再到下一个版本的需求分析,每个环节都要参与和决策。。。离职的时候,我为这个项目贡献的代码超过了15万行。我觉得以后的职业生涯中,我很难再有机会参与这样的项目了!
4.您在鸿蒙开发板进行项目研发时,最大的难点是什么?
唐佐林:其实对于一个新系统最难的地方就是“找不到北”!比如:开发环境怎么搭建?系统从哪里开始运行?有哪些API?等等,虽然说官方提供了相关文档,但是那毕竟只是手册不是教程,没有那么容易阅读。不过幸运的是鸿蒙社区在蓬勃发展,有很多志同道合的朋友一起研究鸿蒙系统,研究开发板的玩法,分享心得。就我个人来说,很多问题都可以在社区得到答案或者提示,多逛社区是学习鸿蒙开发板相关知识一个不错的选择。然而,我知道有一些同学花了很大力气,但还是没有真正入门,更别说深入了!什么原因?可能是缺少了操作系统原理这门课的知识!鸿蒙毕竟是一个操作系统,想要深入学习那么操作系统原理得好好学学。
5. 嵌入式设计中您觉得最容易被工程师忽视的细节是什么?为什么容易被忽视?
唐佐林:就我的从业经验来说,我认为嵌入式开发中最容易被工程师忽视的就是基础技能的训练,比如:C/C++语言能力,数据结构和算法的设计能力,等等。我在Moto工作的9年间,印象深刻的难以定位的bug最后发现或者是指针使用错误,或者是if中表达式的优先级错误,又或者是switch少了default,等等。其实这些东西在很多人来看都不是问题,不值一提,但最后错了就是错了,bug就是bug。这或许与嵌入式学习路线有关!我知道很多人就是从玩板子上手嵌入式开发的,然后开始学习驱动开发,学习系统移植,最后进入企业工作。这样的学习路线可以快速入门嵌入式,但是如果不进一步加强其它方面的训练,很容易在职业发展的道路上遇见瓶颈!毕竟嵌入式系统就是一种特殊的计算机系统,所以计算机专业的基础课最好都加强一下。
6. 您对于鸿蒙系统在物联网方面的应用有哪些看法?
唐佐林:鸿蒙OS基本就是为了物联网而专门设计开发的操作系统,它的很多设计理念可以简化物联网应用开发,比如:分布式软总线,这个概念的提出完全就是为了万物互联,只要各种设备上运行的是鸿蒙系统,那么这些设备就可以彼此互联共享数据!在早些年,物联网一致处于概念阶段,很难找到落地的产品,其主要原因不是技术,而是通信协议。各个硬件厂商各自为政,推出产品和配套手机App,各种硬件虽然可以分别和同一个手机互联,但本质上仍旧是独立的。造成这个局面的本质原因就是没有一个大统一的协议去遵守,而鸿蒙的出现就解决了这个问题!鸿蒙直接提出了分布是软件总线的概念,只要运行鸿蒙OS,那么设备就像接入了一个虚拟的硬件总线,而在这个总线上的各个设备彼此间是可以访问的。这样,只要这个虚拟总线上再接入一个运行鸿蒙OS的手机或者Pad或者PC,那么用户就可以通过各种UI系统控制各种设备了。试想一下,用户将手机接入这个虚拟总线,然后通过VUI(语音交互)控制设备,那么非常科幻的场景就可以有了:说一声“我想喝咖啡”,那么咖啡壶就开始工作了;说一声“我很热”,那么空调就自动打开,并且调节到最适合的温度。分布式软件总线在本质上就是设备互联协议的实现和封装,对于应用开发者来说,直接通过API使用即可,无需关心实现细节了。除了分布式软总线,鸿蒙还提供了很多非常适合物联网应用的feature,这些feature无疑可以给开发者带来很多的机会,同时给用户带来很多不可思议的产品和体验。
7. 您的日常兴趣爱好有哪些?
唐佐林:看书,写代码,弹钢琴,打篮球。
8. 您认为从业的路上最重要的是什么?您对职场菜鸟有什么话要说?
唐佐林:我认为从业路上最重要的是坚持,技术路上没有一蹴而就,只有耕耘才有收获,选定一个感兴趣的方向坚持下去是非常重要的。虽然不同时期会有不同的热点技术出现,但切勿盲目追热点!热点再热最终也需要产品落地,否则热得越快凉得也越快。
职场新人除了好好学习工作要用的具体技术,也需要加强基础能力的训练,毕竟基础能力是支撑整个职业发展的基石。
`