叶锦棉:全面均衡的高手

简介: 叶锦棉,2012年电子科技大学本科入学,2016年保送成为本校徐增林教授的研究bitman成员。

    本科期间跟随韩师、廖师学习系统底层知识,三期间获得全国信息安全等奖,研究期间发表并与分布式计算国际顶级会议篇(作),计算机视觉国际顶级会议篇(作),申请发明专利两项。现 就职于动驾驶创业公司Momenta,算法及系统研发程师。

   下面我写点自己记忆中的锦棉。是个斯斯文文的小伙子。全面均衡在哪里?能拿国奖,能保送,能搞研究(发了国际顶级会议),工程能力也超级好(在本科后期时,就带着研究生做项目。)。有担当。在bitman时,他主动担当起当时的各种杂务。

   最关键的是,有极为可贵的诚信精神,因为面对着学业生涯中最关键的事情,也不放弃自己的操守。具体不便细说,点赞!

 

正文

 

   近来受韩师邀请,写下关于系统能⼒⽅⾯的理解,以及对本科学习的建议。

   系统能,我的理解是,对系统机制本身的深了解, 遇事时胆猜测,活⽤⼯具,仔细验证的能。这句话 说来简单,但是如何在实际中运是个经验问题。

    譬如举个我最近临的问题。某个分布式程序在执过程中会偶尔抛出段错误问题,那么基于对C/CPP的内存使⽤⽅式,以及操作系统上关于内存分段的概念,我们可以得知程序在某个时刻越界访问,导致当前进程空间被破坏了。我们先尝试定位问题。Linux系统可以通过设置开启在段错误时转存运栈,得到个“core件。获得该件后可以使gdb调试具载并查看发错误时程序的当前状态。很容易地发现每次执时的运栈都是样的,然该位置处的代码从经验上是不可能出现段错 误问题的,按照韩师《码识途》书所说,“当我们关注案发现场时,元凶很有可能转移场地了。”

    接下来尝试逐关闭运必须的模块,找到个最bug复现代码。在关闭些模块时出错的运栈发了转移,验证了我们上述的猜想。这个过程繁杂,略去不表。插述句,程序的模块化设计在此刻体现出了其重要的开发和调试优势。

最后我们找到了个多线程读写的数据冲突可能,致表现为主线程执速度过快,导致某个资源被提前释放,然后另个线程仍在使该资源的现象。此前在系统设计时,由于该资源被频繁使,为了性能需求选择了锁设计。为了解决该问题,我们在线程退出时加个同步信号机制,保证了资源释放的安全性,同时保持了锁设计的性能。

    从上述例我们可以发现,为了解决bug,需要我 们对系统的运机制、调试⼿段和具、代码结构设计 思想、多线程安全等⽅⾯的知识有充分的了解。这就是我个理解的系统能:对你的作领域有充分的理解,并在临未知问题时能灵活运⽤⼿具的能

   欲善其事必先利其器。本科学习阶段即为重要,我们对计算机领域的所有观念都将在这阶段打下根基。我 从C课程中学习到了编程语式,对内存的管理观念;从JAVA课程中学习到了向对象设计思想的优雅,它能指导绝部分的型项设计出合理灵活的结构;从操作系统课程中学习到操作系统本身对资源 调度的关键性。若此课程多不胜数,希望你们能认认真 真去理解这些课程的核思想,并灵活运⾃⼰ 作中,不仅仅是考试前的天突击。

    理论知识可以从学校课程中获得,然纸上得来终觉浅,绝知此事要躬。本科期间学校开设的实操课程在时间和内容上都显得太过单薄,你们在课余时间仍有 部分由时间,可以选择加⼊⼯作室,直接从中锻炼身能;也能加如韩师带领的兴趣组,多⽅⾯了解系统能思想,为后的作学习打下稳固的根基。总⽽⾔之,定要找到⾃⼰的兴趣向,并 为此奋,那必然是件幸福的事。

   Happy Coding