今天看到马云对996的回复的时候,颇有些感想。大多数的想法,文笔比我好的人已经说完了。我想加一句的是,我个人认为IT是一个不停学习非常重要的行业。996要看水分,有没有把学习的时间算进去。我个人认为作为一个码农,每周花在提高自身水平上的时间不应该少于10个小时。以入职两年以内的初级前端码农为例子解释一下吧。
作为一个代码学徒,首先要学习一些实用的技术用来做好手头上的工作。有些是综合的软件开发常识,如熟用git,熟悉command line,学习如何把代码写得简洁漂亮可读。有些是细分领域的职业技能,比如说前端、全栈、后端、机器学习等。单单是前端工程师的入门材料,就可以有这么多。作为一个前端工程师,你不只是要会写HTML/CSS/JS,会用Framework而已。你要了解怎么写代码,怎么写文档,怎么写测试,怎么build, deploy, release。你也要了解你职业和项目所在领域的玩家和上下游。比如说我们写框架的,要知道自己的框架是给谁用的,都用来干嘛,网上有些什么其他的框架,同我们的框架定位有哪些不同,以及浏览器这个底层技术都有哪些趋势以及用户对网络的应用从电脑到手机都有哪些趋势。
你可能还要了解一下软件工程的一些大趋势,比如说微服务,分布式系统,测试和运维。比如说,关注一下The Morning Paper,或者自己选感兴趣的领域去读读相关的学术论文。
你也要学习领域知识,是无人驾驶也好,社交网络也好,支付和金融也好。不懂领域知识的话,比较难和产品经理达到共识,不能够很好的自主分出轻重缓急,产品的specifications也会过度依赖于产品经理或设计师。也要适当的跟踪一下关系到自己行业政策和新闻,比如说留意一下GDPR对社交网络和广告业务的影响,各个国家对自动驾驶的不同政策态度,新的技术对已有领域的影响,时不时关注一下可能有机会的技术不成熟领域(如早期Twilio想到要提供短信的API,早期的Intuit想到可以帮人自动化报税,早期的Robinhood想到要颠覆clearing这个古老并低效的金融领域)。你要往前看哪些领域现在很赚钱,关注一下哪些领域五到十五年之后有钱赚并且适当了解和学习,然后知道哪些更长远的技术可以留意会不会在十年以上之后成熟并改变或颠覆现有的经济与商业模式。比如说关注一下Ben Thompson的Aggregation Theory来了解经济趋势,偶尔听听Acquired Podcast来了解业内八卦,适当的看看新闻(Techcrunch, The Economist, Hacker News, etc.)。
做技术并不意味着不跟人打交道。相反,要做成技术项目,需要很多技术人员合作和互相协调。上游的API不是一成不变,是有人写的。我们写代码,也是下游有人用,不然直接面向用户的。在一个团队里要能够及时主动找队友要反馈,也要能够及时用别人可以接受的方式提出反馈意见。作为一个刚刚入门的新手,也应该适当的了解老板、经理、管理者的角度,明白管理的逻辑是什么。在冲突或是大家意见不一致的时候,也要学会有效的沟通技巧,能够提出需要提的问题以及维护自己的利益。
有的工作本身是把这个学习时间算进去的,有的则不是。我现在的工作是每周40个小时,工作内学习8个小时,工作外12个小时。我认为合理。有的时候会在工作上花更多的时间把学习的预算也放进去,是因为工作内容本身能够让我成长(前提是不影响健康)。如果工作本身不让我成长的话,我不认为996是合理的(除非你付的工资远超过市场工资),因为这种工作提高的只是公司的利润而已,而公司的利润不等同我的利益、我的理想、和我的成长。