在程序员群体眼里,雇主是否拥有浓厚的技术氛围似乎是一条足以左右程序员去留的标准。然而,现实世界的公司里,拥有强大工程实力和技术潜力的只是少数。非技术导向型互联网企业的绝对数量依然巨大,他们对于工程师的需求填补了招聘市场的半壁江山。
这些公司的核心业务各有各的特色,企业文化也差异巨大,但身在其中作为技术支持的工程师团队面临的问题却大同小异。尤其是对于大部分以产品为导向的互联网企业,技术要求大多集中于应用开发层面,不涉及底层数据。
这些在非技术驱动性互联网企业工作的程序员们,面对完全没有「工程师文化」基因的企业团队,我们不禁好奇,他们的工作状态和技术经验是什么样的呢?
什么是非技术驱动型互联网公司?
既然要定义非技术驱动型互联网公司,当然得先知道什么是技术驱动型互联网公司。人们总是把「技术驱动」、「产品驱动」、「业务驱动」等名词挂在嘴上,可很少有人真的能说清三者的定义。通常来说,一家公司的核心业务如果建立在技术专利和技术创新上,与用户体验和市场需求相比,更加关注产品的性能与效率,那么这样的公司可以被认为是技术驱动型企业。
在互联网时代,技术驱动型企业的代表无疑是谷歌,而由于谷歌对于技术的推崇,「工程师文化」几乎成为技术驱动型互联网公司的代名词而深入人心,可以说,所有标榜自己具备工程师文化的互联网企业,都有技术驱动型企业的特征。
如此一来,那么在繁星满天的互联网市场,除去技术驱动型企业以外的所有公司,都可被归类为非技术驱动型互联网公司,他们当中经常为大众所熟知的有网络新媒体、视频网站、广告公司、博客平台等等。依照某些技术原教旨主义者的观点,就连工程团队强大的社交网络企业、电子商务平台,都应被归类到非技术驱动型互联网企业中。
非技术驱动型互联网公司的程序员有何不同?
徐源是新媒体公司「好奇心日报」的合伙人兼 CTO,他所在的企业也是 100offer 的客户之一。当这家公司在 2014 年建立的时候,徐源因为机缘巧合,成为好奇心日报的合伙人,并负责其中的产品开发工作。
好奇心日报的内容采编团队几乎都来自传统媒体,以提供精品商业报道服务读者。就产品而言,好奇心日报只拥有一条产品线,那就是它本身。徐源为它组建了一个五六个人的技术团队,从 iOS 客户端、安卓客户端到 PC 网站和移动端网站,这个团队的使命是开发并优化好奇心日报应用,并保证它在任何时候都能够在用户那儿正常运行。
「好奇心是一个做商业新闻的垂直性媒体,人员本身是从杂志转过来的,商业新闻用户量和今日头条一定是没法比的。所以我们更重视自己的品牌形象。跟用户量相比,我们的品牌形象更重要。好奇心的产品迭代以及营收方面的业务调整,都是沿着这条线走的。」
作为 CTO,徐源需要与产品经理、开发人员、广告业务人员以及编辑记者们同时保持沟通,随时准备好将他们带来的可描述的功能性需求转化成待开发项目。
3 年过去,好奇心的应用产品已趋于稳定,手机端产品的迭代周期已经从两周一次迭代降低至四周一次。徐源的五人技术团队也早已扩大到十几个人,包括 3 个后台工程师、3 个手机客户端工程师、2 个前端工程师、1 个测试工程师、2 个设计师和 2 个产品经理。
与程序员规律的职业作息相比,采编团队迥异的工作节奏也带来了明显不同的部门文化。徐源坚持认为,不管好奇心作为公司本身的文化是什么样子,技术团队需要的团队文化应该是一致的,那就是推崇技术和专业的工程师文化。
「我们招的大部分开发人员,不管前端、后端,都是应用层的,不是做底层架构。应用层的开发者其实无所谓技术驱动型或非技术型驱动型,因为他们的工作集中在功能层面,不涉及算法或者大数据处理。」
在徐源的看法里,同样是做应用层开发,即使在 IT 巨头工作的大部分程序员们,面临的技术问题和在创业企业是类似的,就是完成功能点,打通业务流。相对而言,创业企业的技术自由度还要更大一点。
当然随着创业公司的产品迭代,也会有一系列应用层技术的挑战。好奇心日报展示在用户面前的可能只是一个阅读型 App ,但背后其实拆分了十几个子服务,比如和媒体属性息息相关的广告投放与监测,内容自动分发等等,这些已经不局限于阅读了。其中大部分都是我们 16 年~17 年才完善的。
这些程序员们每天都做什么?
程序员小穆的经历一定程度上佐证了徐源的意见。小穆曾经在一家互联网巨头企业工作,不久之后他选择跳槽到一家以提供文章内容为平台的互联网企业,担任安卓端技术开发。
到了新公司后,小穆从熟悉代码开始,逐步完成工作上的小需求,例如界面 UI 的修改、代码的重构,或者用户反馈。两个月时间里,小穆掌握了整个产品在安卓开发上的技术逻辑,彻底接手了工作。「我基本上每天早上 9 点半到公司,午饭后会休息一小时,晚上 8 点下班,全日工作节奏其实是比较宽松的。」
回想过去在互联网巨头的工作,由于工程师受到产品经理的主导,小穆每天疲于应付繁忙的重复性工作,「之前的工作涉及到一个金融产品,有一定得波动性,比如不时会受到新政策的影响。所以在产品比较有灵活性,随时需要修改,很多逻辑不能放在客户端。换了新工作后,开始真正意义上使用 Android Studio 进行开发。」
除了技术工具,更大的思路转变发生在对企业核心竞争力的理解上,「在一个内容平台,优化读者的用户体验是非常重要的,开发工作会更加侧重界面展示这块。」让产品开发要达到产品经理和记者的需求以外,小穆的主要工作就是使代码简洁、技术更优化。
面对网络媒体特有的麻烦
除了产品开发的侧重点,在内容平台遭遇的技术问题也让小穆感到了不一样,不久前,小穆负责的 App 产品遭遇了 JavaScript 函数被劫持了,瞬间冒出各种广告,他不得不进行技术验证,最终改为使用本地缓存的 JS 文件。
对于这类普通互联网企业并不常见的麻烦,身为技术大牛的顾晓敏深有体会。顾晓敏曾是一家知名科普类网络媒体的第一任技术总监。作为一家典型的非技术驱动型公司,网站最大的部门是编辑部,顾晓敏发现,网络媒体面对的技术层面挑战并不难,但容易遭受到一些莫名其妙的 DDoS 攻击和流量过载问题。
为了解决流量问题,他为公司的商务部门设计了一套「数据分片」系统,在这个系统中,商务部门只需要有个前端,就可以随时做出一个动态网站。其原理是将一个网页打成多片,每个片单独缓存,并在服务器端自动加载。这样的一个原本源自「不想让商务部门的同事老烦我」的设计,最终显露了强悍的性能,甚至当网站面临 470 万 PV 的访问量时,服务器的使用效率还不到一半。
非技术驱动型互联网公司需要什么样的程序员?
简书的技术负责人 Larry 是另一位对于内容类产品有长期观察的工程师,从自己的工作经验出发,他向 100offer 如此解释他们和那些技术主导型企业或者大企业在产品开发上的不同:「我们作为初创型的小团队,产品迭代速度会很快,也更愿意去使用开源软件,并且积极去做更新。而大公司或者技术主导型的互联网公司,会有很多人工作在基础上。我们的基础更多在开源社区,因为这个原因,我们产品的更新会比他们更容易。」
显然,Larry 也好,顾晓敏也好,徐源也好,他们都同意一个事实,那就是在非技术驱动型企业中,技术难度并没有特别大的困难。对于应用层面的开发团队而言,等待他们解决的,往往是一个又一个细节问题。
「即便是媒体平台的流量问题,在 2B 业务的企业面前也许是个问题,但与社交网站或者电商比起来,那点流量也不算什么了。」
对于程序员的招聘,Larry 解释他主要考察几个方面:第一是对技术的热情,通常来说比较 Geek 的人容易吸引到他。第二是解决问题能力、编程语言基础以及对程序架构的思考。
「比如我会问,你解决过哪个印象最深刻的问题难点或者 Bug ?其实就是看出来解决问题的能力。如果每次做法都跟 Guide 上指导的一样,肯定不行。」
为什么非技术驱动型互联网公司同样值得一去?
对于程序员而言,去一家并不是由工程师团队主导的互联网企业,很容易被人质疑这会不会带来技术上的浪费与编程能力上的荒废?也许徐源、顾晓敏、包括小穆听到这个问题都会嗤之以鼻。
在入职前,小穆有过一个判断,那就是进入一个创业公司担任工程师,能力和知识上的收获应该会大于原本安居在互联网巨头的部门中。
一年后,我问他这个想法现在看来符合预期吗?小穆非常肯定地点头:「达到了预期。」新公司的技术业务并不算忙,这反倒给了小穆机会写总结与博客。「我就在 Github 上写一些 demo 和技术文档吧。安卓出了新的开发语言 Kotlin,我也会多做尝试。」
而顾晓敏在媒体担任技术总监的时间里,除了解决应急问题,他甚至尝试了一个实验室计划和一个知识图谱型运用的开发。虽然这些产品最终没能问世,但这种高自由度的开发尝试,让顾晓敏锤炼了对于产品开发的思考。如今,他早已在技术圈独树一帜,成为业内有名的架构师。
如果作为一个程序员,你对技术有充分的信息和独当一面的胆量,那么前往一家非技术驱动型的初创企业,不失为短时期内迅速得到锻炼的升级方法。而阻碍人们选择多元尝试的,往往来自有色眼镜之后的偏见。