共计 3772 个字符,预计需要花费 10 分钟才能阅读完成。
本期对话嘉宾:@Loco
访谈编辑: 芒果果
Loco 是目前我采访过的最年轻的程序员,虽然才 22 岁,但从基本的软硬件到产品设计到运营再到安全、风控、区块链、边缘计算等各种领域都有涉猎。
与他的对话可以明显感觉到那种年轻人的张扬和「天才性格」中常见的「愤世嫉俗」,用一个烂俗的词来说应该是有点“愤青”,会因为网上杠精的发言气愤,甚至花几天时间和对方讲个清楚。
然而他却将自己评价为“菜鸡”、“咸鱼”,这与我的预料完全相反,似乎不应该是如此意气风发的年轻人对自己的认知。但看到他对待工作的态度是那么认真、细致、慎重,让我重新审视了 Loco,但我已经不敢轻易对他做出判断和评价,只能从更深入的交流中慢慢了解这个年轻的程序员。
98 年的全干工程师
Q:尝试用两种不同的方式介绍自己。
没有两种,只有一种。
对外统一介绍文案:98 年的前爬虫工程师、现全干工程师、BUG 体质携带者、NightTeam(夜幕团队)成员。知识面貌似算非常广的那种,从基本的软硬件到产品设计到运营再到安全、风控、区块链、边缘计算等各种领域都有涉猎,擅长将多领域知识整合起来进行输出。
Q:所在公司和职位?
目前在一家处在区块链行业中的创业公司——幂度 Midu,一开始是作为爬虫工程师入职的,不过现在公司业务调整,其他的啥活也都干过一些,所以一般对外我已经自称是全干工程师了。
Q:什么时候开始接触编程的,契机是什么?
小学玩 DNF 的时候看到别人开外挂全屏轮子刷怪很牛,然后就学着用易语言写外挂自己玩了…
不过有一说一,易语言写外挂之类的东西是真的简单,很多东西别人都给你封装好做成模块了的,小学生看着教程都能自己写出来,而且玩过金山游侠之类的内存操作工具的话自己加一些功能都可以。
不过现在想复制这种操作肯定是不行的了,以前安全行业里做反外挂、反逆向这些方面人的还不多,现在如果不是一个专门的团队天天对抗都没法做。而且由于警企联动加上法律完善,做这种事情还很容易被抓 hhhh。
Q:小学就尝试写外挂了,当时有没有特别自豪的感觉?这算是兴趣的启蒙吗?
好像当时没有特别自豪,因为主要是别人的封装的好,心里有 x 数 hhh。兴趣的启蒙可能更早吧,只不过不是编程相关的而已,在学写外挂之前就已经有过研究 windows、bios 各种功能、尝试写脚本实现一些效果的经历了。
Q:掌握的技术栈?目前主要使用的编程语言是?
技术栈比较广泛,平时喜欢折腾些东西,加上之前做写爬虫的时候反爬对抗搞得也很多,所以基本上啥都会接触到,一个人从产品设计到出 Web+APP+ 桌面端的成品再顺带把运维、CI/CD 之类的全做了都没问题…目前主要用 Python 和 Go,偶尔用用 Javascript(写前端)和 Lua(写 openresty、kong 的插件)。
Q:做爬虫与其他开发岗位有什么不同么?
做爬虫这种逆向开发岗位的人通常思考问题的方式要与做正向开发的完全不同,如果你不懂得逆向思维的话你会很累。
而且做爬虫会用到很多不同领域的知识点,如果知识面不够广,在碰到一些难搞的东西时你可能都想不到解决方案。当然这方面目前方法论也挺多的了,主流的一些操作一般都能找到对应的、统一的方法来解决。但是,总会有些能让你感到匪夷所思的东西,这时候如果你能想到一些骚操作的话很可能就是降维打击了。
Q:爬虫现在很火,也有很多人想转行做爬虫,对此你有什么看法?
我不建议转行做爬虫,特别是不懂技术的人和思维方式已经固定死了的人。实在有兴趣最好先学一段时间试试,如果学习效果可以,也能解决一些有难度的问题再说。
Q:您在产品设计、安全、风控、区块链这些领域都有涉猎,那么从个人的角度来说最得心应手的是哪部分?
最得心应手的应该是大局观和思维方式?毕竟在知识面广了之后很多东西其实是可以直接想到的。
Q:目前接触的技术层面比较多,以后会专注哪一方面?有什么规划吗?
目前没有专注某一方面的打算,因为比较倾向于给自己干活,专注某一方面在这种情况下不太合适。
Q:工作中最常使用的几个工具是什么?好用的插件推荐?
最常使用的就 Jetbrains 全家桶了吧,还有就是 Xshell,爬虫方面的一些工具之前写在文章里了,这里就不提了。插件方面基本上是用啥装啥,目前没有什么感觉是必需品的开发相关的插件。
Q:最近有没有尝试新的编程语言?
没有,目前用的几个编程语言暂时足够了,其他的像 C、Java 之类的都是用的时候临时对着文档写,反正基本上是差不多的,不会有啥问题。
工作细致谨慎,看重学习和能力提升
Q:分享一下你的工作流,有什么个人的特别的工作习惯么?
先弄清楚需求,然后大致看一遍做这个东西的麻烦点、耗时点在哪,在脑子里列个清单,然后再对一些需要细化的东西提前用伪代码 / 文档 / 思维导图的方式做一下设计,最后再开搞。
没啥特别的工作习惯,这种工作流应该还是挺多人在用的,虽然麻烦点但是习惯了之后能做到对空填答案的感觉,做起来的时候会比较舒服。
Q:有什么高效学习的方法么?
高效学习方面,其实每个都有自己的方法,但核心的点其实还是多做、做自己想做的,用欲望(兴趣、利益等)来驱动学习,只要你真的很想学,那自然就会很高效,也自然能记得住。
Q:目前为止最满意的开发项目是什么?
之前搞的一个公司用的爬虫框架,特别针对公司需求设计了快速添加简单难度的资讯网站、快速添加新的链(区块链)的功能,对难搞的一些网站和 APP 也做成了模板化添加的处理,然后其他的监控、推送、开放 API 啥的基本操作也都做了,可以说是我做爬虫几年来弄过最完整的一个项目了。
但是,这玩意用了应该是才一两个月就被迫吃灰了,因为搜索引擎项目直接被砍掉了…
Q:工作之后有哪个瞬间让你觉得很有成就感?又有哪个瞬间让你“怀疑人生”?
成就感这东西不管是在工作之前还是工作之后,都始终是自己做了点什么有意思的东西或者把什么东西的流程搞通了的时候会出现。
怀疑人生的话,也就之前搞 APP 逆向的时候偶尔会怀疑人生,毕竟有些做安全的人搞的东西是真的恶心。
Q:一般通过什么方式和渠道提升自己的能力?
我通常会是通过实际做一些东西的方式来进行学习(比如学 k8s 的时候就试着把之前写的服务迁移到自己建的 k8s 集群上面去,然后对其进行压力测试尝试解决实际碰到的问题)。
并且会在这个折腾的过程中,我会用一些思维导图、知识图谱之类的工具对了解到的知识进行整理。在水群、刷论坛的时候也会把看到的一些新奇事物记下来。很多时候在遇到一些问题时,这些被整理好的知识就会被想起来,然后就会有一种恍然大悟的感觉,接着这些知识就被融会贯通了。
这种学习方式我称之为:广度学习法。它是从上至下的,相比于很多人的那种从下至上的学习方式而言实用性会高很多,并且也不会那么枯燥无味。
另外推荐一个最近发现的工具——roamresearch,这个工具和我之前想做的一个工具几乎一模一样,功能和相关的卡片式笔记理念和我使用的这种学习方式非常契合,有兴趣的可以用用看。
Q:生活中有什么爱好?平时会通过什么方式释放工作压力呢?
写文章、打游戏、写点自己用的工具、折腾些没弄过的东西。
Q:如果可以重新选择是否还会选择这个职业?
如果是指爬虫的话,会的。因为做垂直爬虫的时候会需要大量的逆向开发,做得多了之后会对前端、后端、网络、安全甚至硬件等各种方面都有了解。并且在掌握了逆向思维之后结合已经了解到的东西,学新的东西时会非常快,思路也会比别人广一些。
然后做爬虫也会了解到很多相关产业的东西、认识一些做安全 / 灰黑产的人,能见到很多骚操作,一些骚操作换个用法其实就是别人平时想不到但效果非常好的。
社区经历
Q:与思否的故事?
这个有点尴尬,基本没啥故事…
不过思否的各项功能在我短暂的使用中感觉还是挺舒服的,能明显感受到技术社区的简约和功能性的感觉,不会像其他一些社区那样不实用的东西花里胡哨还一堆广告。
Q:如何看待国内社区的环境和氛围?
总体而言技术社区的环境和氛围还是挺好的,基本都是就事论事,有人提出奇怪的问题的时候也会看到很多热心人去帮忙解答。
但是像一些非技术类社区的那种会有很多喷子、杠精存在,比如之前就有个知乎的杠精连自己的逻辑都理不清楚就开杠,给他拆解分析了几天都还是硬杠,最后忍无可忍把他拉黑了。结果没过多久这人还开个小号专门写了个回答扭曲事实继续 @我抬杠,就很莫名其妙。(而且这种人知乎是不管的,举报也没用)
Q:对社区有哪些建议和意见?
好好做技术社区,做好社区内容建设和言论管理。
Q:对编程初学者和怀抱梦想的年轻人有什么建议?
不要为了找工作而学编程,最好是兴趣驱动。我见过很多人就是为了找工作而学编程,实际自己没啥兴趣,平时也不会想着写点什么东西提升自己的效率,后面就只能发帖或者在群里抱怨,挺难受的。
小编有话说:
Loco 的天赋是平常人羡慕不来的,虽然对自己的评价不是天才型,但小学就能自己写外挂可以算相当厉害了,这样的男生在小伙伴里应该很受欢迎吧。
年纪轻轻就掌握众多技术栈,也证明他是一个好学、有执行力的人。虽然工作上踏实努力,但也没有磨平少年意气,甚至会在网上与人「吵架」。
从与 Loco 的谈话中我感受到,这才是一个年轻有才的人该有的样子,充满自信也脚踏实地。
欢迎有兴趣参与访谈的小伙伴踊跃报名,《思否有约》将把你与编程有关的故事记录下来。报名邮箱:mango@sifou.com