思否有约丨夏磊:拒绝做只会“复制-粘贴”的程序员

思否有约.png

本期对话嘉宾:@夏磊
访谈编辑:芒果果

英国伦敦泰晤士河旁的威斯敏斯特大教堂里有一座无名墓碑,上面刻着一段流传甚广,关于改变世界,关于梦想与现实的文字。大意是“最初想改变世界发现目标太宏大而难以实现,如果从小事做起也许真的能改变世界”。

夏磊目前是一家知名互联网公司的高级后端开发工程师,与他聊天的时候,我真切地感受到了他仍像当初那个少年,仍然对写代码充满热情。

从高中起夏磊就坚定了学习计算机的目标,把编程看作极具创造力的事。现在,28 岁的夏磊说:“只要你有好的点子、想法,都可以借助计算机实现,这是多么美好的一件事情!

夏磊.png

梦想=兴趣+实践+上进心

Q:尝试用两种不同的方式介绍一下自己吧

程序员中最会讲段子的,段子手中最会编程的。用三个词来形容的话就是:乐观、幽默风趣、好奇心强。

姓名和性别的话相信通过我的 ID 应该能发现了:夏磊,年龄28,在现阶段还是可以说一下的,可能往后就没那么好意思说了,哈哈。

Q:您觉得 28 岁对一个程序员来说应该是职业的什么阶段,有什么规划吗?

28岁是一个具体的年龄,实际上每个人进入行业工作的年龄不尽相同。

工作的第一个五年是个分水岭,五年之内可以根据兴趣换语言、换技术栈甚至是换行业等等,用五年的时间去熟悉业界的技术、语言,根据自己的兴趣去选择一个方向深入钻研,构建起属于自己的知识体系和技术栈。另外,就是要有一点点上进心,拒绝只会“复制-粘贴”的程序员。

Q:什么时候开始接触编程的,契机是什么?

大学吧,高考志愿填报的计算机系。说到契机,应该还是兴趣吧,能够通过自己的双手实现那么多有创造力的事情。

Q:掌握的技术栈?目前主要使用的编程语言是?

参加工作这么多年,主旨就是一个“用合理的语言解决需求”。

常言道:“没有程序员不会的,只有程序员没学的”,由于工作需求,在前端、服务端、App 端均有涉猎,服务端语言主要是 Go+Java,偶尔写写 PHP和 Node.js。前端的话主要是Typescript+Node.js,对Vue/React/Angular 三大框架均有使用,目前倾向于 Vue 和 React 框架。App 端的话主要是 React Native,如果对性能要求不高而对审核敏感的话一般是 Cordova+Vue 组合。

Q:您在前端、服务端、App 端都有涉猎,哪一种您觉得更得心应手?

得心应手的话目前谈不上,具体问题具体分析吧,随着前端工程化和 App 框架的兴起,相对来说,前端和 App 是比服务端简单一点的。根据不同的业务场景,可能会有差别,目前主要还是以服务端为主。

Q:工作中最常使用的几个工具是什么?好用的插件推荐?

工作中主要还是 Jetbrains 全家桶吧,要说推荐的插件的话,插件那么多,我只推一个:PlantUML,对于我这种写代码之前会把架构理清楚的人来说,UML 必不可少。而通过纯文本的方式就能编写 UML,节省了大部分排版、美化的时间。

Q:不同工作阶段会学习不同的语言吗?是处于什么原因呢?

学习语言的目的应该说是为了弥补短板,比如使用 PHP 几年之后发现性能瓶颈确实不好解决,因此学习了 Node.js 去开发一些高性能、实时性强的程序,而 Node.js 的弊端应该算是工程方面,没有全栈框架,这一点 Java 做的非常好,所以逐步去学习 Java 了,而 Java 虽然开发效率、运行效率都不差,但是挺占用服务器资源,随着微服务的兴起,就去学习 Go了,学习语言的时间都不算太长,更多的时候应该花在了生态上,语言提供的功能都不会差太多,毕竟不能让语言成为门槛。

Q:最近有没有尝试新的编程语言?

尝试过 Kotlin和 C#,但是对于语言这个东西,我还是觉得内功最重要,语言只不过是武器罢了,而内功部分包括的东西比较多,但是我觉得最重要的是发现问题与解决问题的能力,这是核心竞争力。

编码之前、设计先行、流程图/UML 图先行。早前喜欢边想边写,后面遇到复杂的业务逻辑时经常需要推到重来,浪费时间,所以后面养成了画图的习惯,有什么问题在编码之前就能够暴露出来解决掉,可以极大地提高生产力。

Q:尝试 Kotlin和 C# 的原因是什么?

Kotlin 算是工作需要吧,公司的 App 需要进行迭代,刚开始用的 Java 开发安卓 App,由于语言的局限性,确实会有一定的效率损失,所以尝试了 Kotlin。至于 C# 的话是个人兴趣,有段时间比较喜欢捣鼓 GUI程序,这一块做的比较好的应该还是非微软莫属,基于 C#+WinForm 开发了一些工具。

Q:一般通过什么方式和渠道提升自己的能力?

一般通过系统性地学习,消化之后,通过博客的形式发布出来,和社区成员进行讨论,收获颇多。

细节在于观察,成功在于积累

Q:分享一下你的工作流,有什么个人的特别的工作习惯么?

工作中比较喜欢画图,而画图是竞争力的体现,就好比“画一条线 1 美元,知道在哪里画 9999 美元”一样。设计或者说是架构能力是非常重要的内功之一。个人的习惯就是对代码有洁癖,甚至于到了对齐方式上。

Q:工作之后有哪个瞬间让你觉得很有成就感?又有哪个瞬间让你“怀疑人生”?

有成就感的事情应该算是支付平台流水达到千万而没有出现事故的情况,毕竟自己也担心这快。

“怀疑人生”的事情一般是花了很长时长去处理 Bug,到头来发现是个低级错误。又或者说是硬件故障导致的一些奇葩问题,这一块确实需要比较强的搜索能力。

Q:目前为止最满意的开发项目是什么?

在前公司开发的一个通用支付平台,基于微信支付开发,整合了 App、H5、扫码等渠道,业务端能够在非常短的时间内接入微信支付,而不用理会微信支付的文档。开发时解决了非常多的疑难杂症,包括促销活动期间下单边界条件问题、对账问题等等。对一个公司来说,涉及到钱的东西是不允许任何差错的,所谓“失之毫厘,谬以千里”,在业务量非常大的情况下,哪怕是小数点级的误差也会带来非常大的影响。

与社区共同成长

Q:如何看待国内社区的环境和氛围?

国内社区大体上内容重复率偏高,很多炒冷饭的现象,当然,不可否认,每个人都有成长期,所以发表的内容有重复是正常的,但是对于社区建设来说,我们需要更多的有个人见解的人来,而不是发一堆说明书。

Q:讲讲与思否的故事吧

注册地比较早,是 2015 年,当初是查问题搜到了思否,发现了这个神奇的网站,接下来就是利用自己的所学知识解决社区中的问题了,成就了别人,也成就了自己。

近两年发现光回答问题似乎帮助不了多少人,因此开始写专题文章,用最简单的话解释一些难以理解的知识,这一块在前端部分收到了大量好评。

思否在国内问答平台这块,个人觉得帮助了非常多的开发者解决了他们的问题,其中不乏一些其他国家或地区的人,思否是一个非常有活力的平台,同样也是一个对于新人非常友好的平台。

Q:对社区有哪些建议和意见?

目前还是应该对文章和提问中的广告采取高压态势,早年混迹的号称国内第一的 PHP 论坛,由于运营问题,大量广告得不到处理而没落了。

这是一个很现实的问题,树大招风的道理我们都懂。

兴趣是最好的老师,年轻人不怕犯错

Q:生活中有什么爱好?

工作之余也会打游戏,毕竟暂时凡人,不是学习或者工作机器,天气好的时候会带上相机出去摄影,记录一下自己的生活。

Q:如果可以重新选择是否还会选择这个职业 ?

应该还是会选择,无他,兴趣使然,兴趣是最好的老师,而计算机这块可以说”开局一台机,人生全靠撸“,只要你有好的点子、想法等等都可以借助计算机计算实现出来,这是多么美好的一件事情!

Q:你会在什么时候「退休」?

兴趣使然,估计不会有所谓的退休。

Q:对编程初学者和怀抱梦想对年轻人有什么建议?

一定要培养发现问题和解决问题的能力,混迹过很多社区,大部分的问题其实是非常简单的,有些初学者可能看到报错就心里害怕,其实没必要,都没上线你怕啥?借助于翻译工具,80%的问题都可以直接翻译出来,从而解决。剩下的20%复制错误消息之后丢到搜索引擎基本也能解决的差不多,而对于初学者来说最难的部分是“报错消息到底是啥?”,这个大部分的报错消息找第1个 Error 或者Fatal 之类的字眼即可发现。

第二个事情就是多看书,多练手,“眼过千遍,不如手写一遍”,写过的东西记性还是牢一点。


我有酒你有故事么?

欢迎有兴趣参与访谈的小伙伴踊跃报名,《思否有约》将把你与编程有关的故事记录下来。

报名邮箱:mango@sifou.com

segmentfault公众号

阅读 2.4k

推荐阅读

面向社区用户的访谈栏目,如果你愿意和我们分享你的故事,可以私信联系专栏入驻作者。

2354 人关注
39 篇文章
专栏主页