View on GitHub

紫宸

计算机学院拔尖人才工程组

郑亚斌:一个稳扎稳打的创业者

简介

郑亚斌,2009年电子科技大学本科入学, 2013年电子科技大学研究生入学。加入了首届bitman(紫宸的曾用名)。 研究生期间开始参与创业,研发AI图像和精确定位等相关产品。2018年作为联合创始人成立成都千焱科技有限公司,为云计算、区块链等行业提供高性能计算解决方案 。在2018年严峻的创业环境下,获得了非常可喜的成果。

还记得亚斌当年做了入组考察题目画板后,我们一起在那里看他的代码。在图形序列化的部分他采用了对象作为结构体直接存储的方式。简单快捷。但我知道这种方式的问题。我们一起看他提供的文字组件时,就发现了这种方法的问题所在。如果有指针成员(文字字符串的指针),这时,序列化的指针在反序列化时将形成悬空指针。

当时,看到他非常整洁的代码风格,并给出了我们没有要求的功能实现,我就觉得这个家伙有一些适合和代码愉快相处的特质。有想法,有行动,乐意折腾。没想到他去创业了。

他属于一个想得很清楚的人,并不单一的追逐分数。够用就行是他的选择。哪些属于够用,可不是60分万岁,他后面写的很清楚。


计算机系统能力

先说结论,我认为对于计算机软硬件系统结构的认知(以下简称系统能力),是一个程序员终生需要不断打磨的最重要的能力,是在这快速变化的IT领域保持长期竞争力的核心和关键。

是什么

所谓系统能力,包含并不限于对于如下具体内容的理解:

是不是看着很熟悉?没错,上述提到的科目绝大部分都是本科学习阶段的课程,但可以说绝大部分学生在学习的时候,即使是在当时考了一个不错的分数,离掌握精髓还差很远,更别说要把这些科目融会贯通,形成真正的系统能力。

为什么这么说呢?

重要性

对于一个软件产品,如果我们把它简单的分为:

功能的丰富及特色可以让用户开始使用一款产品,但性能往往是其能够从同类竞品的长期竞争中脱颖而出的关键因素。

而提高软件的性能,靠的就是系统能力。

可以说,任何成功的软件产品背后,都有强大的性能在为其支撑,否则它根本长不成现在的样子。

长期竞争力

如果打算将程序员作为一生的职业方向(对编程有发自内心的热爱),系统能力的修炼则是这个方向上的必经之路。

如果把程序员的能力是必做一颗技能树,系统能力就是这棵树的树根,算法能力(本文不提及)是主干。要想张成参天大树,其根要足够扎实。这样更多的枝叶(编程语言,框架等)可以不断丰富,并在成长中吸收来自根部的营养。

有了扎实的系统能力,在傲游于IT这个满是新鲜事物的大海过程中,犹如一盏明灯,使你不会被新东西的表象所困惑,抽丝剥茧,明白其“新”在哪,哪些东西是不变的,在哪些地方做了妥协。学习效率事半功倍。

对了,想要在复杂系统中debug的能力?好好修炼系统能力。

How

上文说明了系统能力的重要性,既然如此重要,且作为根基理应越早学习越好。那自然应该让凡是入门学习编程的学生都从一开始打好这个基础不是么?

但不得不承认,对于刚入门学习编程的学生而言,其包含的内容难免略显枯燥,远没有照着教程写一个安卓app来的有“成就感”。并且,在没有较多编程经验的情况下,直接学习这些知识,无法领悟到其对做一个软件究竟有什么直接帮助,也就没有成就感。

而成就感,其作为驱使一个程序员变得越来越好的动力,不亚于物质奖励。

因此,掌握一个良好的学习路径和方法论是极为重要的。

学习方法论建议

本科期间学习建议

在这我根据自己十年左右学习及观察的经验,为本科阶段的计算机专业学生提供一个学习建议:

###大一:熟悉编程,培养习惯

大二:打好基础

大三:聚焦方向

本科阶段,除了上述的知识内容,需要为自己规划1-2个长期的大项目。项目内容可以是紧跟流行技术的应用,但是在其中要通过某些点,锻炼你对系统能力知识的运用。这个项目也可以为你后续找工作加分。

在校学习时间安排

对于在校学习期间的时间安排,可以看出,上述给出的建议中,不少内容并不在学校的培养方案之内,并且学习进度有可能提前于学校安排,这可能导致时间不够用的情况出现。

这里根据我自己以及身边同学以往的学习经验详细谈谈(仅针对计算机专业):

关于我

计算机学院第一届拔尖人才计划工程组成员。

硕士期间参与校外企业工作,作为核心人员完成一个第三类医疗设备的研发。

现为成都千焱科技有限公司联合创始人,研发高性能计算相关产品。