胡洋前搜狐高级开发工程师,现知乎高级开发工程师2008年入行,博客11年。仅在最近两年,博客的累计访问量就超过了600万。2017年推出《Django企业开发实战》视频课,深受学生好评。2019年出版实体书。“时间在我看来不是虚无,它是一个非常具体的东西,一分一秒,一分一秒,非常具体。”——胡杨入门——兴趣不是偶然胡杨说自己是“笨鸟先飞”的人。高考结束后,胡洋的第一份志愿报考的是机械工程。他查了一下自己的专业背景,需要画画,于是开始在家自学。不过这个准备并没有派上用场,因为申请结果出来之后,他的专业是信息计算科学。他记得高中时有发过VisualBasic教材,只是因为高考复习的紧张,没时间在电脑上用。于是,在等待上大学的时候,他翻出这本书开始研究。入学后,他发现VB是大学里的基础课,上课教的竟然是暑假学的。学校里的每个人,不管什么专业,都在学习,其他同学上了电脑还一头雾水的时候,他已经可以写了。胡洋说:“我们为什么对一件事感兴趣?一种情况是你在这件事上确实很有天赋,而且一开始就比别人学得快。另一种情况是你起步比别人快。”成就对他的兴趣表示赞赏,除了VB之外,网上还有无数的未知数在吸引着人们去探索。为什么电脑运行缓慢?什么是病毒?所谓的“黑客”是如何破解网站的?出于好奇,大一的时候,大部分业余时间都在学习和研究网络安全,网上可以找到很多黑客教程,比如演示如何破解一个网站。但是如何实践呢?这种时效性教程太高了,网站不会开门在那里等着,当然方法是有的,那时候有x-scan扫描仪、挖鸡之类的傻逼工具,随便填一个网址就可以了给你扫描一下漏洞。但问题是,它不是很有趣。即使你黑进了网站,也只能说明这个工具写得好。因此,胡杨的兴趣转向了加密和解密的方向,并且与她有关的内容林。那个时候还是桌面APP的时代,下载下来实验很方便。在尝试了很多方法之后,他发现完全可行,这让他有了信心。不过,软件毕竟是程序员写的,胡洋觉得自己还是得学编程。正好这时,学校有信息技术兴趣提高班招收学生,他想:那就试试吧。这个决定彻底改变了他接下来两年的大学生活。米老师自创兴趣提升班。他不仅亲自教授所有计算机基础课程,还带领大家探索学习。比起照搬文字,他更在意的是启发大家换个角度看问题。胡洋说:“你会觉得整个眼界都被打开了。”在兴趣提升班里,大家因为同样的热情而聚在一起,甚至寒暑假都留在学校。两年来,时间和汗水为他打下了坚实的基础。毕业的时候,当别人在就业市场上迷茫的时候,他已经去了哥哥的公司做开发。他说:“这个行业可以让你用自己的方式去做有价值的事情。因为开发一个软件的外部成本很低,你只需要一台电脑就可以做。对我来说幸运的是,这个东西正是我感兴趣的进去,就能有不错的收入,养家糊口。”编程不仅仅是一份工作。2011年,他从Java转向Python开发。HR问他:你学Python多久了,能正式工作吗?他回答说:“一两天。”他在回答中推荐了3本书,以及他做过的项目的实践代码。您为什么选择进行此更改?那时,胡洋刚毕业。工作后,他发现公司会接各种各样的项目,Java、.NET、PHP、VB,他都无法深入学习任何方向。他想为自己制定一个计划,却不知如何去做,前路茫然。经过几个月的折腾,他决定辞职。那一年,他在博客中写道:“我选择走软件这条路,不是因为一份工作,而是因为对技术纯粹的热爱。也许我没有那么多人生阅历,不明白其中的道理。”生命的意义。本质。但我一直告诉自己,如果你想做一些事情,即使你不知道它是否与你想的一样,那么你就应该去做,因为这样你就可以查看更多。”一年后,他加入了搜狐,他说:“在搜狐六年,相当于上了另一所大学。”第一年,他每天都在努力学习,他说,虽然之前有一年的工作经验,但还是觉得自己一无所知,这种状态持续了一段时间后,他的学习曲线逐渐趋于平坦。但很快,他又面临了新的挑战。部门变动对一个普通员工来说意味着什么?有些人只能被选中,而其他人则有更多的选择。因为在部门变动或业务扩张之后,总会有一些机会出现,做得好的人会在这个时候冒出来,他会被提拔到更高的位置,带领团队成为负责更大更多的业务,所以,胡洋发现,征服了业务和技术之后,他还得带一个团队,一开始他也没有想太多,只是用以前老板的方式带大家。然而,管理层会分散注意力能量。业务扩大后,甚至是面临新的业务,他都有些着急。于是,他开始思考:技术人应该如何管理?新手管理者的痛苦就是会纠结:“这哥们怎么写的这么慢?我都写完了。”不过,他发现自己可以换个角度思考问题:“把这件事交给他,就相当于你已经做好了,为什么?就像你本来是单核CPU,变成了多核一样。”,对吧?你可以同时接多个任务,虽然其中一个跑的慢,但是其他的跑得很快,所以总体来说你的输出还是够高的。而且他也会成长,会不断的获得快点。”他总结说,本质上,领导者应该从团队整体的角度去思考,才能不断推进这个项目的特色。但是,管理确实消耗能量。他没有足够的时间不断输出或输入代码,也不能专门负责某个项目的开发,但他会写一些“杂七杂八”的代码来解决出现的小问题。他说他会在业余时间学习以保持对技术的感觉或敏锐度。搜狐传媒大厦的胡洋加入搜狐的初衷很简单,就是找一个流量大的平台,参与做一个好产品。从他刚加入的时候开始,搜狐就是一家成熟的公司,有着成熟的制度。他从慢慢熟悉新闻业务开始,并坚持了大约六年。2018年,也就是他在搜狐的最后一年,其实有些郁闷。尤其是参与团队管理后,对公司改革的意义有了更深刻的认识。“你发现在部门变动或者业务调整之后,技术的价值其实并没有那么大。就是说这件事情你可以做好,但是换一个人去做,即使做的不是很好,结果也不会太大。巨大差距。”对于技术人员来说,最大的负面影响就是这个。但是如何才能让他的技术价值最大化呢?他想成为构建他喜欢的产品的一部分。这也是他选择加入知乎的原因。他不太喜欢看新闻。他认为,新闻等大流量产品虽然有一些严肃的报道,但更多的是所谓的“头条党”。无论标题多么吸引人,它的信息对你来说都是无用的。不过,他在知乎成立没多久就注册了一个账号。他觉得大家贡献的内容更多的是知识和经验,对用户来说更有价值。于是,他登上了知乎的“海盗船”。来到知乎,他的第一感觉就是:这个地方的后台真多。因为和以前相比,搜狐门户是一个媒体属性。当消息发布出来,每个人都看到了,这个过程就结束了。知乎是一个UGC(user-generatedcontent)社区平台,人人都可以参与,业务比较复杂。虽然功能集成在一个社区里,但是下面的细分内容是一个独立的产品。而且大家经常在群里交流,技术氛围很浓。他觉得之前的公司就像是一大群船,大家朝着一个共同的目标前进。但现在它就像一艘大船,我们都驾驶着这艘船朝着一个共同的目标前进。写博客——分享技术和经验从2008年开始,胡洋写博客已经11年了。博客的内容不仅包括技术,还有他的读书笔记、对某事的感想、求职过程、年度总结等,就像一条河流从过去流向现在,沿途的风景清晰可见.几年前他有一个习惯,看到好的博客,他会从头把内容全部看完。除了看内容,他还会揣测作者当时的状态、思想、这个人的成长过程。这也是他坚持写博客的原因之一。把自己的经验分享给大家,某种意义上也是开源的。2017年,搜狐部门变动,上层战略调整。手中的工作停止了,时间一下子变得空闲起来。他想:毕竟工作时间挺长的,自己在搜狐已经五年了。他希望能留下一些具体的东西。“为什么这么说呢?比如我的很多同事在换了公司之后就不再使用Python了。不管他之前有多少经验,也只是对他有价值。因为有了这些经验,他可以很快适应另一个新的技术。”当你和他一起工作时,你会发现他知道的太多了。他转行之后,其他人可能也有同感,但肯定不如你也用Python的时候。这种体验更为直接。这在一定程度上是一种浪费。“但如果他把这段经历变成一本书或者视频,即使之后他真的不做这个语言,不做这个行业,对别人还是有帮助的,因为这是沉淀下来的东西。”另一方面,这对技术学习也有帮助,他说:“如何学好技术又快又好?一是带着问题学习。比如你遇到了一个bug,无论如何也解决不了,如果有书可以解决,那你一定会全身心投入。读了这本书。另一种是我惯用的方法——以教代学。”有输入也有输出,大脑在提炼和总结,理解和吸收。那一年,他做了一节《Django企业开发实战》的视频课,学生们的反馈非常好。随后,他将内容进一步提炼完善,整理成纸质书,并于2019年初在图灵出版。Django是一个基于MVC(模型、模板、视图)的开源web开发框架,可以显着提高工作效率效率。胡洋举了一个具体的例子:“如果我用Tornado框架写一个新特性,我需要先设计数据库,然后写模型层的增删改查部分,写数据集成部分controller层,然后写HTTP层接口部分,然后用阿里开源的antd写前端,再简单的feature,这一套也得完成,很繁琐。”有了Django,会简单很多。因为Django是基于模型构建的,模型设计好数据库就准备好了,然后配置admin,页面就已经有了。按照front的逻辑——端后端分离,只需要配置一个DjangoRESTframework,restful接口都有,然后你按照模型写restframework的配置,基本就完美了,剩下的只需要花时间写前端逻辑。所以它是一个生产工具,可以大大提高生产力。”保持自己的历史向前发展“时间在我看来不是空洞的,它是一个非常具体的东西,一分一秒,一分一秒,非常具体。”有多少人会执着地记录自己这十年的变化呢?有人觉得这没有意义,因为过去的事情已经烟消云散了。但这是关于一个人的历史。我们无法想象一个国家只凝固在当下,没有历史;而如果一个人走在一个个消失的台阶上,他无法判断自己是在前进,是在原地停留,还是在倒退。更好地定义自己的时间。”看看爷爷和阿姨,满头白发,走在马路边,就知道你们以后会这样,这是必然的。有时候觉得人生一眼就能看出来,每个人都是这样的十年。“对我来说,时间是一个秤,也是一个容器。”如果是一个刻度,比如一个小时,人生其实就是这样无数个小时组成的吧?说它是一个容器,就是说你可以用不同的内容填充它。比如我们每小时聊天一次,这个容器也装满了。”这是什么意思?他举了一个程序员都很熟悉的例子——编程马拉松(Hackathon)。“很多科技公司定期组织Hackathon活动,如果你没有参加过,你可能意识不到24小时内可以完成多少任务。当我们受到限制,想把一些内容放在一个固定时间的容器里时,我们往往会想办法实现目标。”就会有一个倒计时。当你看到一个小时还有两个任务时,你就匆忙开始写作。这个时候效率会很高。”所以你参加了Hackathon之后,你就会知道,24小时,你每小时能做什么。”很多新手程序员估计自己的时间是一天或者半天.有时他们会说‘好吧,让我来安排这个要求’,他们可能会安排最多两周。每个人早上醒来都坐在这里。已经11点了,我们还没有进入状态。中午到了吃饭的时间。然后下午2点起床后,我们就可以做早上没有做的事情。“谈到时间管理,最重要的是:你真正的时间单位是什么?”也是一小时的单位。你能完成多少,你能在时间容器里填多少?当你投入10%的能量后,和100%能量的时间是不一样的,那是真正的时间单位。只是很多人会有意无意地忽略它。”这个怎么做?胡扬说,秘诀就在于“状态切换”。万事开头难,先把自己切换到那个状态才是关键。作为一个实际例子,他在博客中分享了他的经验。“工作忙的时候,回家其实都不想写了,坐在那里不想再输出到电脑上,因为太累了。”这时候的解决办法就是随便开始写。然后,你继续写一段之后,你会觉得自己没写好,已经是这种状态了。然后写一些好的东西,最后把开头删掉,或者把开头重新写一遍。无论是大学里的“笨鸟先飞”,还是职场上的抉择,以及多年来不断的学习与分享,驱动他前进的原动力是什么?胡洋说:“其实我的自制力并没有那么好,特别累的时候,我不太愿意去做比较耗脑力的事情。”没有信息摄入,我会觉得特别可怕和无聊。因为,本质上,我会很害怕,我一直在重复一件事。”他全力以赴,用心探索自己的极限,从未停止前行的脚步,时间会给出一切完美的答案。文:李冰采访:乐鑫、李冰图片来源:胡杨Django企业开发实践作者:胡杨扫描京东高级开发工程师the5fire多年开发经验总结应用在日常工作中。
