胡阳:汗水铺就代码之路,三分天注定,七分靠打拼

图片描述

胡阳 前搜狐资深开发工程师,现任知乎资深开发工程师前端

2008年开始,他写博客11年了。

仅最近两年内,博客的访问量累计超过600万。程序员

2017年,他发布了《Django企业开发实战》视频课,广受学员好评。2019年,实体书出版。数据库

「时间在我看来并非虚无的,是很是具体的东西,一分一分,一秒一秒,都很具体。」——胡阳编程

入门——兴趣并不是偶然

胡阳说,他是「笨鸟先飞」的那种人。后端

高考后,胡阳第一志愿报的是机械工程专业,他查了下专业背景,须要绘图,因而就开始在家自学。安全

不过这番准备没派上用场,由于报考结果出来后,他的专业是信息计算科学。restful

他想起高中发过一本 Visual Basic 的教材,但由于高考复习紧张,没时间上机。因而,在等待大学入学的这段时间,他把书翻了出来开始研究。网络

入学后,他发现 VB 是大学的基础课,上课教的居然就是暑假本身学的内容。全校不管什么专业的人都在学,而当其余同窗上机仍是一脸懵的时候,他已经会写了。antd

胡阳说:「咱们为何会对一件事情感兴趣?一种状况是你对这件事情真的有天分,一开始上手就比别人学得快。另一种是你比别人起跑要快。」框架

成就感激起了他的兴趣。除了 VB 以外,互联网有无数的未知在引人探索。

为何电脑运行得慢?什么是中病毒?所谓的「黑客」怎么入侵网站?怀着好奇,大一那年,他把课余时间大多花在学习研究网络安全上。

图片描述

他在网上能找到不少黑客类的教程,好比演示怎么去入侵一个网站。可是怎么去实践呢?这类教程的时效性过高,网站不会敞开门在那等着。

固然,方法也是有的。那时就有 X-scan 扫描器、挖掘鸡这类傻瓜式工具,只要填一个网址,它会帮你扫描有什么漏洞。

但问题是,这不太有趣,就算黑进网站了也只能说明是人家这个工具写得好。

因而,胡阳的兴趣转向了加密与解密的方向,与脱壳相关的内容。当时仍是桌面 APP 的时代,下载以后就能够很方便地实验,不少方法他试事后,发现彻底可行,这给了他信心。

不过,软件终究是程序员写出来的,胡阳以为本身仍是得去学编程。

恰在这时,学校有一个信息技术兴趣提升班来招生,他想:那就去试试吧。这个决定彻底改变了他接下来两年的大学生活。

米老师一手创立了兴趣提升班,他不只一我的教全部的计算机基础课,并且引导你们探索性地学习,相比于照本宣科,他更在乎的是启发你们从不同的角度看问题。

胡阳说:「你会感受整个视野被打开了。」

在兴趣提升班,你们由于一样的热情汇集在一块儿,甚至寒暑假也留在学校。这两年,时间和汗水为他打下了坚实的地基。

毕业时,在其余人在就业市场中迷茫的时候,他已经去了师兄的公司搞开发。他说:「这个行业可以让你以本身的方式去作有价值的东西。由于开发一个软件须要依赖的外部成本很低,只须要有一台电脑就能搞定。对我来讲比较幸运的是,这个事恰好是我感兴趣的,而且能够有不错的收入,可以养家糊口。」

编程,不仅是一份工做而已

2011年,他从 Java 转到 Python 开发。

HR 问他:你学了多久 Python 并能正式工做?他回答:「一两天。」

图片描述

他在回答里推荐了3本书,还有本身作过的项目练习代码。

为何会选择作出这样的改变呢?

那时,胡阳才刚毕业不久。工做后,他发现公司会接各类项目,好比Java、.NET、PHP、VB,哪一个方向他都没办法去深刻地学习。他想给本身定一个计划,殊不知道怎么作,前路一片迷茫。

展转反侧了几个月后,他决定辞职。

那一年,他在博客中写道:「我选择走软件这条路,不是为了一份工做,是从纯对技术的热爱出发的。或许我尚未那么多的人生经历,不了解生活的本质。可是我一直在告诉本身,有些事,你要是想作的话,即使不知道是否是和你想的同样,那你应该去作,由于这样你才可以看得更多。」

一年后,他加入了搜狐。

他说:「在搜狐六年的时间,至关于又上了一个大学了。」

第一年,他天天都在拼命学习。他说,虽然以前有了一年的工做经验,但仍是以为本身什么都不知道。

这样的状态持续了一段时间后,他的学习曲线逐渐平缓。不过很快,他又面临了全新的挑战。

部门变更对于一名普通员工意味着什么?有人只能被挑选,也有人拥有更多的选择权。由于在部门变更或业务扩展后,总会有一些机会出现。那些作得好的人,这时会浮现出来,他会被提拔到更高的位置,带团队负责更大、更多的业务。

因此,胡阳发现,攻克了业务和技术以后,他得带团队了。

一开始,他没有多想,只是用以前老大的方法来带你们。不过,管理会分散精力,在业务膨胀以后,甚至面对全新业务的时候,他有点手忙脚乱了。

因而,他开始思考:技术人应该怎么作管理呢?

新手管理者的痛苦在于,他会纠结:「这哥们怎么写得这么慢?我写早就写完了。」

不过,他发现本身能够换个角度想问题:「把这件事情交给他,就等于你已经作了。为何呢?至关于你原本是一个单核的 CPU,变成多核了,对吧?你能够同时接多个任务,虽然其中一个跑得比较慢,可是其余的都运转得很是快,因此总体你的产出仍是足够高的。何况他也会成长,会不断变快的。」

他总结,本质上 leader 要思考的是团队总体,从而不断地把这个项目的 feature 往前推动。

不过,管理的确会消耗精力,他没有足够时间持续地输出或输入代码,也不能具体负责某个项目的开发,但会写一些「打杂的」代码,解决出现的小问题。

他说,本身会在业余时间学习,保持对技术的感受或者敏锐性。

图片描述
搜狐媒体大厦

胡阳进搜狐的初衷很简单,就是想找一个流量大的平台,参与作一个好产品。

从他刚加入时,搜狐就是一家成熟的公司,拥有成熟的系统。他从慢慢熟悉新闻业务开始,维护了它大概六年的时间。

2018年,在搜狐的最后一年,他其实有点沮丧。

尤为是参与团队管理以后,他对公司变革的意义有了更深的体会。「你发如今部门变更或者商业调整以后,技术的价值其实没有那么大。就是说,你能够把这件事作好,可是若是换一我的来作,哪怕作得不是很好,结果也没有太大差异。」

对于技术人来讲,最大的否认莫过于此。

但是,怎样才能最大程度地发挥他技术的价值呢?

他想要参与一个本身喜欢的产品的构建。这也是他选择加入知乎的缘由。

他不太爱看新闻。他认为,对于新闻这种高流量产品,虽然也存在一些正经的报道,但更可能是所谓的「标题党」,不管标题再诱人,它的信息对你毫无用处。而知乎成立不久他就注册了帐号,他以为,你们贡献的内容更偏知识和经验,对用户来讲更有价值。

因而,他登上了知乎这艘「海盗船」。

来到知乎,他的第一感受是:这个地方后端真多。

由于和以前相比,搜狐门户是媒体属性,把新闻发布出来,你们去看,流程就结束了。而知乎是一个 UGC(用户原创内容)的社区平台,全部人都是可参与的,业务更加复杂,尽管功能整合在一个社区里面,但下面细分的内容都是独立的产品。并且你们常常在群里交流,技术氛围很是浓。

他以为上家公司像一个大的船群,你们朝着共同的目标各自前进。而如今的则像一艘大船,你们一块儿让船驶向共同的目标。

写博客——分享技术和经历

从 2008 年开始,胡阳已经写博客 11 年了。

博客内容不只包括技术,还有他的读书笔记、对某事的感想、找工做的历程、年度总结,等等,像是一条河流,沿着过去流淌到如今,一路的景色清晰可见。

他前几年有一个习惯,看到一个好博客的时候,会从头开始把全部内容看一遍。除了看内容,他还会揣测做者当时是什么状态、想法、这我的的成长过程是怎样的。这是他会坚持写博客的一个缘由,把本身的经历共享给你们也是某种意义上的开源。

2017 年,搜狐部门变更,上层战略都在调整,他手上的事情停了,时间忽然空了出来。他想:毕竟工做时间也挺长,在搜狐已经呆了五年,他但愿能有一些具体的东西留下来。

「为何这么讲?好比说我有不少同事换公司以后,就再也不用 Python 了。不管他以前的经验有多少,只对他本身来讲是有价值的。由于有这些经验,他能够快速地去适应另外一种新的技术。

「当你跟他共事,你会发现,原来他懂这么多。而他转行了以后,其余人可能也有一样的感受,可是确定不如你也用 Python 时的这种体验更直接。这在必定程度上是一种浪费。

「但若是他把经验变成书或者视频,哪怕以后真的不作这个语言,或者不作这个行业了,它对别人仍是有帮助的,由于这是沉淀下来的东西。」

另外一方面,这样也有助于技术的学习。

他说:「怎样学技术才能作到又快又好呢?一是带着问题去学习。好比你遇到一个 bug,怎么都搞定不了,恰好有一本书能解决,那你确定会特别投入地把书看完。另一种就是我经常使用的方式——以教代学。」

既有输入,又有输出,中间就是大脑在提炼总结,理解吸取。

那年,他作了《Django企业开发实战》的视频课,学员的反馈很好。后来,他把内容进一步细化完善,整理成了纸质书,2019 年初在图灵出版。

Django是基于MVC(model,template,views)构造的开源Web开发框架,能够显著提升工做效率。 胡阳举了个具体的例子:「若是用Tornado框架写一个新feature,我须要先把数据库设计好,以后写model层增删改查的部分,写controler层数据整合的部分,再写HTTP层接口部分,而后用阿里开源的antd去写前端。不管你的feature有多简单,这套都要走完,很繁琐。

「而用Django的话就会简单不少。由于Django是基于model构建的,把模型设计好数据库就有了,而后再配置一下admin,页面就已经有了。按照先后端分离的逻辑,你只须要配一个Django REST framework,全部restful 接口就有了。而后你根据model写rest framework的配置,就基本上已经完善了,剩下只要花时间写前端逻辑就行了。因此它是生产工具,能极大地提升生产力。」

让本身的历史不断向前

「时间在我看来并非虚无的,是很是具体的东西,一分一分,一秒一秒,都很具体。」

有多少人会执着地记录本身十年的变迁呢?有人以为这毫无心义,由于过去发生的已经消散。

但这是关于一我的的历史。咱们没法想象一个只凝固于如今的,没有历史的国家;而若是一我的走在一步一消散的台阶上,也没法判断本身是向前,在原地,仍是在倒退。

除此以外,胡阳也更明白本身时间的定义。

「你看老大爷大妈,满头白发,在街边走路,你知道你之后也会是这个样子,这是不可避免的。有时候我以为人生是一眼能够望到头的,每一个人都这么几十年的时间。

「对我来讲,时间是一个刻度,它也是一个容器。

「若是说它是刻度的话,好比说一个小时,人生实际上是由无数这样的一个小时组成的,对吧?而说它是容器,是指你能够填充不一样的内容。好比咱们每一个小时都在闲扯,这个容器也一样填满了。」

它有什么样的意义呢?他举了一个程序员们很熟悉的例子——编程马拉松(Hackathon)。

「不少科技公司都会按期组织 Hackathon 活动,若是你没有参与过,你可能体会不到 24 小时内能完成多少任务。当咱们被限制,要把一些内容放到固定的时间容器中,每每咱们会千方百计来达成目标。

「它会有一个倒计时,你看还剩一个小时的时候,还有两个工做没作,你哗哗哗就开始写,这时候效率会很是高。

「因此你参加完 Hackathon 就会知道,24 个小时,每一个小时你能作到什么。

图片描述

「不少刚入行的程序员,他们估算时间的单位都是一天或半天,有时候说‘OK这个需求我排一下’,可能就排到两周。你们早上起来往这一坐,就11点了,还没进入状态,中午该吃饭了。而后下午2点睡醒以后,把上午没作的事情再作一下。

「说到时间管理,其实最关键的就是:你真正的单位时间是什么?

「一样是一个小时的单位,你能完成多少事,能往时间容器里填充多少东西,在你放 10% 的精力和 100% 的精力的时候是不同的,后者才是真正的单位时间。只是不少人会有意无心地忽视。」

如何作到这一点呢?胡阳说,秘诀就在于「状态的切换」。万事开头难,因此关键的是先把本身切换到那个状态里面。

举个实际的例子,他分享了本身写博客时的经验。「平时工做比较忙的时候,其实回家是不想写东西的。你往那一坐,不想再对着电脑输出,由于太累了。

「这时候的解决方案,就是你先随便写个开头。而后,当你继续写完一段以后,会以为本身写得很差,这时你已经在这个状态里面了。那就再去写一些好的东西出来,最后把开头删掉,或者把开头再从新写一遍。」

不管是大学时的「笨鸟先飞」、职场上作的选择,以及这些年不断地学习和分享,驱动他的马达是什么? 胡阳说:「其实我自制力没那么好,特别累的时候,也不太想作比较消耗大脑精力的事。

「可是我不太能接受长时间去作一样的事情,或者说我长时间没有信息摄入,我会以为特别可怕,以为特别枯燥。

「因此我不管是写博客,去看技术或者其余书,我实际上是在不断地了解新的东西。由于,本质上我会特别惧怕,我始终在重复一件事情。」

他尽心尽力,一心探寻本身的极限,永不停息地向前,时间会给全部付出一个完美的答案。


文:李冰
采访:乐馨,李冰
图片来源:胡阳

图片描述

Django企业开发实战 做者:胡阳

图片描述
扫一扫京东购

资深开发工程师the5fire多年开发经验总结

本书以从零开发一个博客系统为例,介绍Django在平常工做中的应用。

相关文章
相关标签/搜索