系统学习运营课程,加入《91运营网VIP会员》,开启365天运营成长计划>>
导读:贺师俊,网名Hax,人称「贺老」,资深Web开发专家。信仰Web标准,HTML纯化论者+CSS理想主义者+JavaScript改革派+REST信徒。现任百姓网前端架构组负责人。 1997年,Hax通过自主招生考试进入复旦大学文科基地班,曾担任复旦国学社《常识》报主编,直到该报纸被禁,可见其犀利文笔和批判精神由来已久。除了办报纸,课余时间Hax都泡在机房,2块钱一小时,到毕业一算,网费超过了2000块。 本科毕业后,Hax意外进入了上海交通大学的机关部门工作,期间负责某国家社科项目网站开发,从前端到后端,Hax带着几个学生,几乎所有事情都要亲力亲为。2004年,网站上线,日均PV达60万。 2004年教师节,Hax放弃高校教师正式编制离开学校,投入一无所知的未来。离开之前,他的Title是教育部下某全国性网站的技术总监。离开半年之后,Hax才得到第一份全职工作,Title是Lead Software Architect,半年后被炒鱿鱼。又半年后,才再次找到工作,Title是应用软件工程师。一年半中只有6个月正式工作,Title迅速从技术总监缩水到码农。Hax戏言:「不知道我当时是不是很怂,不过老婆总是夸耀她当年居然没有抛弃我。」 十多年后的今天,坐在百姓网位于交大徐汇校区的办公室,似乎命运画了一个圈,Hax很喜欢当下的状态:「十年后现在的我没有啥Title,不过大家都知道我是一个前端。」 认清技术驱动力,确定职业方向 从高校到外企,再到盛大两进两出,甚至培训机构兼职,从业经历丰富的Hax对不同类型的公司都有自己的体会。在这位年近40的「高龄程序员」看来,要想避免「技术没练好,产品也没做成」的痛苦,首先要认清自己。 按对技术的热情驱动划分,一般可以分为两类程序员: 1 产品工程师 「实现了功能、产生了价值」,是产品工程师的技术驱动。他们的目标是创造出一款产品可以改变世界。这类程序员比较适合向全栈工程师发展,需要广泛涉猎,在工作中切换各种技术。 2 技术专家 「解决了问题,探索了未知领域」,是技术专家的内心动力。这类程序员适合选定一个技术领域深挖。 以上两者并没有优劣之分,但是会决定你的职业方向。所以你要考虑的是你内心更希望成为哪种人,是能和产品人员一起甚至单枪匹马可以搞定一个改变世界的产品,还是在某个技术领域上做到业界顶尖。极个别的天才能两者都做到,但是大多数人只能选其中一个方向努力。 如何做出下一个职业选择? 在这个供小于求的市场,优秀的程序员从来不缺少工作机会,那么,在面对众多类型的工作邀请,改如何做出正确的选择呢?Hax认为,在职业规划中你至少需要考虑以下两点: 1 确定理想的工作状态 不同类型的公司会带给你不同的工作状态。在缺少技术牛人团队的事业单位,Hax曾苦恼技术能力的瓶颈、和团队协作的缺失。在等级明显、缺少创新机制的盛大,Hax也体会了大公司之下个体的无力感和挫败感。 而在工程师文化盛行的公司,每个人都会很有意思。无论是撸起袖子亲身写代码的CEO,还是对写代码兴趣浓厚的财务、客服,都会为你带来工作的正能量,这也是Hax选择百姓网的原因之一。 2 明确追求的工作目标 在不同的工作阶段,每个人可能有不同的工作追求。经过十多年的代码生活,从盛大创新院出来后Hax并不急着找下一份工作,在他看来,能否「实践职业想法」是挑选工作的主要指标,而这往往是在大公司无法实现的。 在这个猪都能飞上天的互联网风口时代,无数的公司在高速扩张、招兵买马,但是Hax却拒绝加入膨胀迅速的公司,因为在他看来,有两个问题无法避免:首先,公司跑的太快,团队规模太大,必将稀释团队文化,快速老化;另外一点,Hax比较较真,在讨论技术方案的适用性时,需要静下心评估试用场景,讨论优缺点,这在追求速度的、浮躁的公司是难以做到的。 尤其是前端团队,在大公司中常被挑来挑去,一会儿拆分,一会儿合并。其实,技术怎么用、为什么这么写,与公司的组织架构有关系。前端技术与后端、设计、产品都有很多关联,容易受到各方面的挤压。作为开发最末端的一环,前端的工作依赖很多部门,且dirty work比较多,因此在选择公司时必须慎之又慎。 如何成长为优秀的前端工程师? 作为公认的资深Web开发专家,Hax认为,成长为优秀的前端工程师并没有固定的方法,每个人都需要探索一个自己的方式,并有一个方法去衡量。拿Hax的话来说,「首先是程序员,其次才是前端程序员。」对于不同技术阶段的前端工程师,Hax给出了不同的建议: 1 初级前端工程师成长指南 打好基础。扎实地学习一些计算机基础课程,比如算法、数据结构、编译能力等。偏向产品和设计的知识也要掌握——这会影响到将来的高度。 学会翻墙,学会用Google,学会用GitHub、Stack Overflow、知乎等社区。 积极参与技术活动,哪怕自掏腰包也要参与和交流,这是对自己的投资。良好的人脉更有利于在跳槽时获得推荐;如果你不善于混圈子,来100offer参加拍卖不失为一次性收获批量面试机会的好方法。 最重要的是,坚持不懈地学习。比如几天前年近40的Hax刚挑战了全英文报告,因为他深知不进则退,学好英语才能获取全世界范围内最一手的资源和信息。 2 优秀的前端工程师是怎样的? 如果你做到了以上几点,只能算作合格的前端工程师。在Hax这位资深的Tech Leader眼中,能在面试中获得青睐的优秀前端工程师应具备的素质包括以下: 对技术不发怵。比如,前端虽然入门比较简单,但是同其他领域一样,一旦深入下去,就会遇到算法,千万不能给自己设限,要攻克算法。 有用户体验的Sense。前端尤其看重细节,较真儿才能看出人的素质,优秀的程序员做的东西绝对不会是粗糙的。这些细节的养成,不能单靠热情,而要形成良好的习惯。 具备「好奇心」和「懒惰」的美德。比如,你如果对探究某个兼容性问题有兴趣,但当探索完毕后,又厌烦每次都要为这个问题写额外的兼容性处理代码,那么激励自己去寻找工程方法来避免重复的事情,这就是程序员应该具备的美德。 3 顶级的前端工程师是怎样的? 在前端这个当下互联网市场上最热门的领域,可遇而不可求、最被雇主欣赏的前端工程师需要具备: 非常强的用户体验能力和工程能力; 平面设计师/交互设计师的能力和代码能力。 以上两点能精通之一即非常稀少的前端人才。需要说明的是,对任何一项稍微复杂的技术,要说精通都是非常难以定义的。Hax认为,精通可以用「自由」来定义。即运用这项技术来达成目标的「自由度」,达到「信手拈来」的地步,当可算作精通了。 总之,作为程序员,在工作中,对技术问题一定要精益求精,正如Hax所说,「搞技术的,再较真也不为过,怕就怕不较真」。在职场中,一定要将心态放平,「失败是常态,成功才是偶然的」,即便是顶级的工程师在职场上也不可能一帆风顺。站在职场的分岔路口,首先要有信心,有选择的权利说明自己是优秀的;其次,务必弄清楚自己的职业目标,慎重做出下一个职业选择,才能实现自身的价值。 |