工作那么多年,或多或少都会有自己的工作习惯、学习习惯。其实工作了,就不能谈“学习”,因为公司雇佣员工是为了产生效益的。但以“研究”作为标题的话,又显得自己太狂。本文就笔者的学习、研究经历——更多是自学,总结一些想法、步骤,虽不是具备代表性,但也是经过实践的。很多年不写理论性的文章了,行文难免略显幼稚。

不求甚解

我接触Linux大概有8年时间了。回想起当初自学的过程,十分痛苦,一度放弃。为了锻炼、证明自己的毅力,又重新拾起来。在自学之初,很多东西是不懂的,但我没使用对一个点穷追猛打。对于一些知识可能已经超出自己的理解,我就放过,但我会记录下来。若干时间后(或半年、或一年),可能就会实然理解、明白过来了。对于新知识,我一直不强调要精研得很深,那么太辛苦太花时间了。学习USB,不必先看USB协议,可以先从能提高直观认知的地方开始:以使用U盘入手,一步步追踪代码,根据代码学习协议。如果结合USB协议分析软件,可能效果更好。

学会抽象

很多时候,我们不能局限于某一个具体的板子、具体的接口、具体的应用场合。要学会抽象,学会举一反三。从较高层面上看,很多嵌入式系统就是“输入<->处理<->输出”这样的结构。输入有不同接口:串口、USB、SPI、IIC、PCI,等。输出可以有LCD显示屏、LED灯、串口打印、网络,等。对于模块来说亦是如此,从前一个模块接收数据,处理,然后发给下一个模块。对于系统或模块,可以先画出大略的结构图,再往里面添加细节,然后各个击破。

常做总结

所谓“好记性不如坏笔头”。我在大学时期就开始写技术博客,后来工作上也有部分问题是参考先前写的文章的。因为技术这东西更新太快,涉及太广,如果没有及时记录、总结,很容易会忘记。有时经常做重复性工作。就我而言,在没有使用云笔记工具之前,我一般使用记事本手写(大学时主要手写),或者用word文档来存档。后来主要使用云笔记进行总结。

开阔视野

我们不应就解决问题而解决问题,那样会将自己局限于某一个应用场合。或许和笔者工作多年未接触公司核心业务有关吧,这些年,都是基于TI芯片做底层、平台开发,偶尔写写上位机调整。在开发时,我从未将涉及的东西限制在TI芯片上,也未将技术点只限制于安防领域中。诚然,如onvif、gb28181都有安防行业密切相关,但如其它freetype、ffmpeg等,也可应用于其它行业中。往大方向来说,万一以后不在安防行业工作,也有几个傍身之技在手,到哪里都有饭吃。

博杂?精专?

在学习、工作上,往往出现两种不同观点,一是博,二是精。我和很多人讨论过这个话题,一些人说要专门研究一个领域,成为专家。笔者所读的专业,从模拟电子、数字电子,到四大原理课程,到计算机体系架构,还有各种编程语言,不可谓不杂。但正是这些基础,使得后来的工作中与硬件部门、业务部门流畅沟通。很难想象,一个8年工作经验的计算机科学与技术毕业的人,连RS485单工通信也没有概念。

某一年,我的主管在年底总结大会上对我进行点评,一共八字:广度有了,深度不够。言外之意,似乎是又要有广度,又要有深度。

我们公司有的部门专门研究视频方面的算法,其它业务无须接触,有的人甚至可能连产品如何使用也不知道。但并不妨碍他们将会成为专家。公司的分工是要明确的,但很多公司实际上并不这样。一些部门有专家,另一些部门也就会有打杂的机动人员。具体表现是哪里需要人,哪里就安排人,而不管这个人擅长哪方面,——这一点, 在我所在的部门的部分人(尤其是我)表现得十分突出。在此情况下,要向上峰争取成为某一方面的高手、专家,可能性几乎没有。事实上,我向主管争取过,甚至拿韩退之《师说》中“术业有专攻”来表明态度,无奈制度就在那里,只好接受事实。

所以,后来我在工作上对“博学”、“精通”两者做了调整:以工作任务为驱动,以精通技术为目标。就是说,对于工作上的安排要接爱,将工作任务抽象为技术点,然后对此技术点列出大纲,优先考虑、研究工作上要求的,其它要点待有时间再研究。前面我写的coreboot学习系列文章,就是一个典型:我认为领导极有可能安排我做BIOS(因为公司接触过X86底层开发的就我一个人),因此预先去研究。在接触初期对coreboot进行了解,然后列出提纲(或者说是要做的事务),然后去研究、学习。然后领导安排其它同事做BIOS事务,然后我就暂停了。但不排除后续实然让我负责。

所以,我工作这几年接触大量的杂七杂八的东西,基本全是工作任务驱动,出于自己自愿研究目的的少之又少。无论是freetype字符叠加,还是视频硬件加速,还是硬盘smart控制,还是pelco云台控制,我都来者不拒。但在杂乱当中,也保持着自己清醒的认知:我的本职是Linux系统、底层驱动、C/C++等,其它的都是巩固和支撑个人知识面的东西,是用于提升技能、开阔视野的东西。

但是,公司毕竟是要赚钱的,完成工作是第一位的。记得几年前,部门一位同事要解决产品接U盘的问题,领导甚至要求该同事看完USB协议。有个新平台使用了PCI接口,领导又要求研究PCI协议,还买了书籍。在浮躁追求直观效益的公司,是不允许你花时间做研究的(因为你的研究领导看不到直观经济效益)。但当出现问题时,又以理论基础不牢为原由进行批评。在此管理风格下,我是无力改变现状的,只好坚持自己的做法,尽力做好事。其它的,管它呢。

李迟 2016.10 中旬

我的一些学习经验:概述相关推荐

  1. java程序员学习路线以及我的学习经验

    本文作者为优知学院创始人陈睿(mike),作者有10年以上技术&产品经验,曾任百度研发经理.携程定制旅游CTO. " 这是一篇完整的java程序员学习线路图,一共分为六个阶段. 我以 ...

  2. C# .NET学习经验总结

    1. 装箱.拆箱还是别名 许多介绍C# .NET学习经验的书上都有介绍 int -> Int32 是一个装箱的过程,反之则是拆箱的过程.许多其它变量类型也是如此,如:short <-> ...

  3. 架构师成长之路-个人学习经验分享(公司研发峰会演讲ppt)

    前天在公司分享了一些学习经验,园子中感兴趣可以看看.建议大家使用pptPlex来看这个片子. 首先从我在成长中不同阶段的工作和体会来谈不同阶段的学习内容谈起,为了做好这些必修课,我会对知识+实践+思考 ...

  4. 一些真诚的学习经验和生活感悟

    学习经验 首先分享一下自己在学习技术的过程中的一些经验啦,这些也是自己在学习的过程中慢慢总结出来的,希望对大家有所启发. 持续学习 当前互联网发展太快了,我们可以发现现在很多技术更迭太快.比如说前端吧 ...

  5. Yoshua Bengio等大神传授:26条深度学习经验

    Yoshua Bengio等大神传授:26条深度学习经验 发表于2015-09-17 08:21| 13482次阅读| 来源Marek Rei| 29 条评论| 作者Marek Rei 深度学习Pyt ...

  6. 强化学习—— 经验回放(Experience Replay)

    强化学习-- 经验回放(Experience Replay) 1.DQN的缺点 1.1 DQN 1.2 DQN的不足 1.2.1 经验浪费 1.2.2 相关更新(correlated update) ...

  7. 计算机相关专业学习经验总结

    计算机相关专业学习经验总结 无论学习计算机哪一个方向,完完全全可以在网络上找到相关, 你需要的完整的学习路线以及每一个学习步骤阶段 需要找到的东西和学习资料 勤自学.勤思考.勤搜索

  8. 小白一路走来,连续刷题三年,谈谈我的算法学习经验

    数据结构与算法应该算是一个比较难的模块,从小白一路走过来,从大一连续刷过好几年题,看过挺多书,踩过挺多坑,也涨了一些经验,姑且在这里分析一波对数据结构与算法 的学习经验,请耐心看完,相信对你会有所帮助 ...

  9. python整数类型进制表示_python2学习经验(一) 变量数据类型

    python2  基础教程 (学习经验总结) -------------------------基础片-------------------------- python2的数据类型 python2没有 ...

  10. 朱林北京大学计算机学院,北大、清华状元谈英语学习经验-20210411145045.docx-原创力文档...

    精品文档 精品文档 PAGE 精品文档 北大.清华状元谈英语学习经验 --------------------------------作者:------------------------------ ...

最新文章

  1. windows 系统无法启动windows event log 服务
  2. Android自定义View详解,知乎上转疯了!
  3. 自定义vue-cli生成项目模板配置(1)
  4. sql 删除最低分数_软件测试从业者:必备SQL语句21天打卡,前10天
  5. DOM 节点的创建、删除、替换
  6. 1SVS2K 2.3.2 发布!
  7. background-position 用法介绍
  8. 生孩子时,你们公婆给了多少钱?
  9. 在项目里配置数据库驱动
  10. .net mvc html.row,ASP.NET MVC4中的WebGrid
  11. 计算机名称重复能加域吗,关于加入域的计算机名称修改
  12. 韩信点兵问题的神解法
  13. 【废墟】知我者谓我心忧,不知我者谓我何求~
  14. MSP430F149 微安级低功耗模式设置总结
  15. 智安网络丨网络架构,是数据中心的“神经脉络”
  16. 软件构造之抽象相关知识总结
  17. 使用install安装应用的时候出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE问题的解决方法
  18. 自己动手做一个局域网聊天工具(一)
  19. Python字典简介
  20. PHPChina学院jQuery Mobile与Phone

热门文章

  1. 小米裁员10%?官方回应:创业至今 从未裁员
  2. Redmi K50全系售价曝光:电竞版颠覆骁龙8旗舰定价
  3. 春运返程高峰来了 大数据看返京热力
  4. 消息称苹果关联公司1.25亿美元购买车辆测试场 占地超过3万亩
  5. 中信证券:维持贝壳“买入”的投资评级
  6. 支付宝开放新玩法:搜商家可领消费券
  7. 苹果新隐私政策在iOS14.4测试版上线:能允许或拒绝“跟踪”
  8. 国际电信联盟:3GPP系标准成为唯一被认可的5G标准
  9. 超过马云!中国第二大富豪诞生:年仅40岁,财富已达3200亿
  10. 字节跳动经营范围新增销售电子产品家用电器等