“武林秘籍”在网吧广为流传,转专业学计算机被保送北大
本期访谈嘉宾:@AKevin
访谈编辑:芒果果
高中的时候 AKevin 就对编程有兴趣了,不过那时十八线小城市的高中计算机老师似乎也教不了什么,AKevin 就开始跑到网吧“自学”。说是自学,其实更多的还是为了打游戏。那时候,他写的游戏按键脚本就像武林秘籍一样,在当地网吧的众位“大侠”手里广为流传。
不过,毕业后 AKevin 没有继续写代码,而是进了一家科研事业单位,完美错过了移动互联网高速发展的那几年,害怕丢掉手艺他才有跳回了这个圈子。
在互联网技术圈的这些年,AKevin 做过很多不同的工作,给 App 做过 rank 和推荐,做过跨境物流,现在又成了 Python 讲师。
Q:你是怎么开始走上编程这条路的?
其实自己大一读的是商学院,但是课程实在太简单了,整天闲得没事干。索性转专业到计算机,刚学计算机比较痛苦,原来课程这么多,一门微机原理都能分成 3 门课讲,还有完全听不懂的抽象代数。转专业的还有不少课程要补,后来咬咬牙把课程都补完也拿到资格保送到北大。
毕业后去了一家科研事业单位,感觉完美地错过了移动互联网最高速发展的几年。害怕自己丢掉了代码手艺,赶紧跳槽到互联网技术圈,再从百度出去后薪资涨幅就比较大了。也算找回初心,也算是对得起自己学了这么多年的计算机。
Q:因为闲课程太简单就转到计算机专业了,还真是任性啊。那你是什么时候开始学习 Python 的呢?
以前做外卖 App 的时候工程和算法都做,为了兼顾算法的快速迭代学习了 Python。学了之后感觉打开了一扇大门,原来 Python 这么万能,我用 Python来 算特征,跑机器学习模型。也用 Python 写脚本爬数据,当时做外卖做商超时,我们从淘宝爬了很多标品数据。
Q:你有没有尝试过新的编程语言?一般通过什么方式和渠道提升自己的能力?
最近尝试了 Groovy,打算把部分单元测试、集成测试的代码改成 Groovy。比 Java 方便,能早点下班。喜欢反思总结,慢慢打磨属于自己的方法论。技术层面通过 Code Review 和看优秀源码提高。从面试官角度偷偷告诉大家,基础比较差的同学可以多刷题来提高“钱”途。
从事业单位到技术岗位再到上台当讲师,AKevin 做过的每一份工作可能都是某些人的“人生目标”了,更让人羡慕的是,除了学习能力出众,能被保送北大之外,AKevin 也不是个书呆子,在工作上也是成就满满。
Q:给学生讲课和从事技术工作有哪些不同?这个转变是怎么完成的?
从小都有当老师的想法,念书时也辅导不少同学考上名校、进入大厂。可能自己有那么一点喜欢“好为人师”。讲课和做技术都需要扣细节。讲课生怕哪个细节没弄明白误导学生,做技术也怕没清楚细节让系统出错。
Q:你的工作习惯是怎样的,可以介绍下工作流吗?
无论多大多小的项目,我都是先设计再开发,开发后有测试代码。动手之前想清楚,凡事先做框架设计。想得越清楚工作起来越顺利,出错的概率越小。我开发的系统是很少出错的,因为在评估完需求后,我都会拿出时间专门做系统设计。怎么设计扩展性更好,怎么设计更稳健,更简洁。想好系统设计后,我才开始动手写代码,写的过程中我喜欢用单元测试来验证代码,而不是每次都要启动系统去请求接口。设计、开发、测试的时间差不多是1:1:1. 从我的经验看,这样打造的系统可靠性最高,也能适应快速迭代而不出错。
Q:工作之后有哪个瞬间最让你有成就感?最满意的开发项目是什么?
每次系统上线时看迅速滚动的日志,都能感觉到自己开发的系统服务了无数的用户。再从网络渠道看到用户的好评,瞬间会让你觉得很有成就感。
最满意的应该是模考系统,这是一个免费的系统,服务了上千万的用户。从微博上经常能看到用户对它的好评,看到用户的好评感觉自己的工作很有价值。模考系统是瞬时并发量很高的,差不多到 10w TPS,写入的请求占比高。为了系统的稳定,我为它开发了不少集成测试和校验,也会有自动化运行的压力测试随时评估系统的稳定性。很自豪的是系统在我手里没崩过,每次模考都稳定服务几十万考生。
每周都有模考,模考过后很多人会刷微博模考话题,这时候你会看到哪个用户裂开了觉得题目太难,哪个用户又很开心,模考成绩出得很快,自己又进步了,到处晒成绩单。在社交媒体上看到很多网友在讨论模考,知道自己做的技术对用户确实产生了帮助,非常有成就感。
Q:就没有过什么让你很受打击的情况吗?
最开始在百度是做机器学习的,经常跑模型迭代了一两个月都没有改进,这个时候会很气馁。做算法确实很难,在不确定性中探索,后来自己写了很多自动化跑模型调参的程序,适当提高迭代速度。再后来,觉得自己工程能力还不错,就专注于做后端架构了。
AKevin 对自己的评价是“过度谨慎”,他觉得这样的自己显得有点笨拙,做事情很慢,但也保证了代码很少出错。不过他还补充了一句:“个人对快和慢的理解都不一样,数理化我都拿过省一的奖,成绩也是专业第二,相信自己并不是真的笨,打算继续慢下去吧,思考清楚再行动。”
Q:过度谨慎的性格会让你做什么事都提前规划好么?生活上也这样么?
工作上的计划做得不错,生活技能却比较低级,比如旅游总是没计划,无端端地多花钱也没玩好。我见过能力强的人工作和生活都安排的明明白白,值得思考。努力工作的同时,也要安排好生活,高质量地陪伴家人。
工作学习 AKevin 都没落下,运动方面当然也要跟上,他很喜欢游泳,甚至不会觉得累。想要锻炼心肺能力时,他就加快速度,想要放下身心的时候他就慢慢游。AKevin 说:“很多人说游泳太累,我觉得一定是姿势不对。游泳重在放松,讲究人与环境的平衡,顺势而为,我觉得生活也是这样。”
Q:如果可以重新选择是否还会选择这个职业 ?
当然,有一台电脑就可以创造产品,没有比计算机更有趣的职业了。学航天的同学们,能凭一己之力在家造火箭?学材料的同学,能不顾成本做研发和实现流水生产?我学计算机,我有台电脑就可以造App,造PC端产品,批量处理可重复性的操作,撸脚本刷羊毛……这蕴涵着经典的经济学原理——“完美,在于一切伟大的生意,都具有 规模效应 和 边际成本低 的特点。”计算机兼具规模效应+低边际成本。无数青年终于有了做梦的权利,一个键盘或许真的可以改变世界。
Q:对编程初学者和怀抱梦想的年轻人有什么建议?
喜欢技术就去做!互联网技术有多好找工作、薪资大概多少、全球职位缺口……随便上网一查就有。当前的市场环境下,搞计算机涨薪还是很快的。拿二三线城市普通 70 后举例,当了十几年小学老师,工资从 2k 涨到现在 4k,终于实现了收入翻番。而普通的计算机从业者,从 1.5w 涨到 3w,大致只需要两年。如果你志在科研,计算机专业无论做体系结构研究,还是偏机器学习的理论、应用研究,都是当下比较有趣又具备现实意义的课题。或许你会说计算机没有社会资源,讲真,你觉得去当个基层公务员有资源?家里没有医疗系统的积淀,你去当医生就能 C 位出道?不惑之年就能当上主任医师?这个社会制度的设计是金字塔结构,普通人能有什么过硬的社会资源。但我学计算机,我可以结合一个我喜欢的行业去做创新,去赚相对多的、没有原罪的钱。少年你若喜欢玩游戏,大可学计算机去做游戏开发;你觉得人工智能很酷,大可以去学计算机再补点数学基础;你觉得金融能一夜暴富,也可以学点计算机去做量化模型自动化交易,去全球金融市场感受大庄家的壕,比一天到晚听理财经理瞎逼逼,买一些亏本的理财产品强多了。
AKevin 谈思否:
一开始在思否做了一个讲面试的课、后来做了一个 Python 课,收到不少好评。思否 CEO 和 CTO 在线下也多次邀请相聚,讨论怎么把课做得更好,帮助更多的开发者。思否的价值观是很正的,不会去骚扰用户推销昂贵的课,我们讨论得更多的是如何能帮助到开发者。我也很认可这样的价值观,就这样一直在思否迭代课程,现在在更新一门 Python 课,章节很多,从基础到实战例子都有,价格也很低,希望对社区用户有帮助。
小编有话说:
好羡慕这种会觉得学习太简单的人,要是我也有这脑子岂不是也能被北大录取了。
AKevin 老师一路从事业单位到技术岗位再到站上讲台,虽然一直没有脱离技术圈,但也算是看过不同风景有丰富工作阅历的人啦。上 AKevin 老师的课肯定没错!
欢迎有兴趣参与访谈的小伙伴踊跃报名,《思否有约》将把你与编程有关的故事记录下来。
报名邮箱:mango@sifou.com