转载

专访|前端布道师@张克军

前言

今天专访的这位前端,在早读君刚入行的时候就听过这个名字,而且也是看着他的博客学习成长的。当初约他做专访的时候还是会有点小期待的,那么我们就来看看关于他的前端之旅。

正文从这开始~

自我介绍,以及现在所服务的公司

我是张克军,一般用名字的拼写 “Kejun” 出没在社区里。工作在豆瓣。

详细介绍下自己从事前端的经历,这过程中你是如何学习的?有没有遇到瓶颈过,有的话,如何去突破。

我专业是学计算机网络的,架局域网什么的。大概 98 年左右,那段时间混图书馆,看电脑报上介绍用 Dreamweaver 做动画, 引起我的兴趣。做一个个人网站玩玩吧,于是就这样上道了。

那时候主要精力是在设计上,那个时代叫网页制作是很准确的,是制作,不是编程。现在回顾,这种背景决定我最终是产品、设计向的前端工程师,不太可能成长为语言专家或极客。这个阶段大量做网站,自己的、学校的、外包的、参加比赛等等,生活一度小富裕(哈)。另一方面也培养了耐心,做一个东西常常没有捷径,忍受过程,享受结果。周围同学很多不懈学这种低技术含量和需要付出枯燥劳作的东西,而我乐在其中。

02 年第一份正式工作是在亚商在线(不存在了)做网页制作,可能表现出很高的性价比,带动了学校的就业分配(哈)。直到现在工作上,我也是很看重和追求效率。干了两年多去了一家用 .net 的公司。兴趣是很奇怪的东西,总是潜移默化拉着你走,最终还是不喜欢干后端的工作, 05 年去了 1 拍(新浪和雅虎合资的)。

1 拍的工程师来自雅虎中国,其中有一位工程师 Anson (现在是宝贝树的 CTO )对我影响极大,向我输入了很多很新的来自雅虎美国的技术资讯,其中有一个是革命性的- Ajax

05 年底雅虎中国被阿里并购,我正式转到雅虎中国,地理上是从王府井转到土的多的光华路,但技术上使我与雅虎美国的前端技术更靠近了。雅虎的内部技术交流非常活跃,我在后台可以看到很多很系统的技术资料。那个时候还是 Blog 时代,国内的开发者要了解新技术,主要靠国内前端第一批 Blogger 的搬运,像陈贤安、嗷嗷等。雅虎时期,最直接影响我的人是 Hedger ,他后来也数次来国内分享,是国内前端界的老朋友。他是用代码说话的人,满脑子前端黑魔法,极富个人魅力,直到现在也是我的偶像(哈)。由于算是阿里系了,跟淘宝关系紧密。那时淘宝前端的负责人是承志(后来蘑菇街的创始人),这家伙才华横溢,我们经常一起交流。后来证明他其实是更优秀的产品经理(哈)。

回顾一下这个时期,好比从沟壑上到山峰看到更广阔的风景,有幸遇到很多极富才华又很 nice 的人直接影响了我。我觉得对于新人的借鉴是,刚毕业先别急于进高大上的公司,先进一个限制小、能更全面实践技术的公司,然后,再找一个更大更专业的平台,跟比自己有才华的人共事。

09 年去了豆瓣。豆瓣没有明确的角色边界和刻板的流程。前、后端在开发上配合非常紧密。前端工程师做为一种中间角色,即要有能力弥补设计上的不足,又要会写一些 Python ,尽可能独立解决问题。豆瓣发展到三、四百人时,豆瓣的前端团队最多也没超过 15 人,如果说优秀工程师的生产力是平庸工程师的 10 倍,没那么优秀 5 倍也够了(哈)。角色之间的协作效率才是影响开发效率的主因,通过加人可以解决一时的问题,但慢慢会变得臃肿难以逆转。我在豆瓣写的代码是在雅虎的 n 倍,参与了很多项目,在这个过程中,有机会与不同优秀工程师合作受益匪浅。学学其它语言有助于建立更多维的编程思想。比如要深刻理解函数式编程,最好学学 Haskell

何时出现瓶颈取决于视野,当看不到发展方向和趋势时,便会苦于没有突破。结合我的经历,有三个明显结点:

  1. 2005 年的 Ajax 流行。之前更多精力是在 CSS 重构上,学习标准,积累解决兼容性问题的经验。 Ajax 的出现,让我意识到下一个学习方向是 JavaScript 。学习 OOP 、学习如何架构代码、学习 YUI 等优秀的框架、追求网站性能等等。当这些方面都涉足后,又会感到碰到天花板了。 08 年去雅虎美国参加全球前端工程师大会,首次听 Zakas 讲基于 Ant 的自动化构建,豁然,回来后很快实践和分享。

  2. 2010 Node 加速发展。 Node 使前端生态迅速繁荣,通过不断翻新的工具,弥补标准的滞后和语言设计上的不足,前端开发逐步进入 工程化 开发的时代。各种工具、理念,一下子有点目不暇接。这时候的瓶径慢慢变成学习方向,应该学什么?这部分展开可以看 这里

  3. 2013 PC 时代到移动时代。原来的 前端 其实就是浏览器。移动时代的 前端 变成多元客户端。 Web 方式由必选方案,变成可选方案。工程师必然希望参与一家公司主产品的开发,主产品从 PC 端转换到移动端,我应该怎么办?曾经想过学 Android iOS 开发,解决跨平台问题,首先要先了解平台。但如果追随传统的 native 开发,从头学起,我个人不太能接受。纯属个人偏好,不喜欢传统 native 开发方式,一点兴趣也没有。混合开发有局限性,只能坐等完善。我很惊喜 React Native 的出现,它不会替代原来的 native 开发,而是传统 native 开发聚焦在相对底层可复用的组件上,应用层用 JavaScript 写,看起来这是比较完美的方案。

在所服务的公司中,哪一个公司对你影响最大。为什么?

影响最大的是雅虎,提升最大的是豆瓣。现在雅虎没落了,十年前还是未代王者。技术和设计,特别讲究从理念到方法论的体系性。目的是只要招一个不傻、好学的人,通过这些东西就可以快速培育成符合企业特点的人才。国内的壕公司,这方面做的还不够。豆瓣是一家追求产品创新的公司,如果个人意愿强可以参与各类项目的开发,应用各种新技术也没什么限制。这种环境非常有利于工程师成长。从 2014 年初开始孵化一拍一这个项目,在产品设计、商业方面有了不同程度的经验的积累,是我想超越工程师局限获得的成长。

对刚入门的前端,你有什么好的建议呢?在技术的深广度上如何考虑呢?

从前面我的个人经历出发,建议是:要先耐的住两三年的菜鸟期 (T1) ,这个阶段广最重要,广有两方面,一是全面掌握 CSS/HTML/JavaScript 的基础知识,二是广泛接收各种技术、思想,尽可能多的实践,多写代码,多有体会。书只是陈述技术是什么,无法告诉你什么场景下应该用什么、怎么用。然后是成熟期 (T2) ,可以从容的驾驭足够复杂的项目,这个阶段多看代码比较重要,多做思考和总结。最后是创造期 (T3) ,能造新轮子,能攻坚难题。我个人更看重技术在产品上的创新应用。

对你的了解,你现在在豆瓣参与了一拍一的项目,按你的理解,前端工程师的职业规划可以有哪些可能呢?

前端工程师如何发展其实非常不明确。只能说目前有几种可能性,一是成为专家,我感觉 Hax 还没老过四十吧,有机会跟他聊聊四十岁后有何打算。专家估计会转型为团队 Leader ,发挥经验和判断力。二是成为极客,超越前面提到的 T3 ,追求 T3+ T4 。同样到四十岁后,可以创业、可以带团队。三是成为自由开发者,写出个爆款 App 就真正自由了。四是转行,转产品经理、转设计、转后端皆有可能,取决个人能力。不过没准哪天公司上市、彩票中奖就不用烦恼职业规划的问题了。

作为国内前端的老司机,有哪些图书值得推荐阅读的呢?

Zakas 红皮书不错,不过现要学 ES2015/ES.next 了。书看的不多,大家可以去搜一搜。

最后你可能还需要看看这篇: 【第229期】写给初学前端工程师的一封信

后语

看完这篇,你有分享或提问的冲动吗?那么我们就来聊聊:

情侣是同行?你们觉得利弊在哪里?为什么~~

早读君期待你们哦~~

点赞数第一名的评论,将获得 @ 人民邮电出版社异步社区 赞助的《编写可维护的 javascript 》一本。时间截止到当日 22 点。

专访|前端布道师@张克军

原文  http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=402273083&idx=1&sn=590b94fe4976d3f428463d690e4385cb&scene=0
正文到此结束
Loading...