如何掌握所有的程序语言

对的,我这里要讲的不是如何掌握一种程序语言,而是所有的……

很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道如何掌握所有的程序语言,我总感觉这种“该学什么语言”的问题是如此低级,所以一直没来得及回复 :P 可是逐渐的,我发现原来不只是小白们有这个问题,就连美国大公司的很多资深工程师,其实也没搞明白。

今天休闲活动进入第二个星期,稍微闲下来一点,我想来统一回答一下这个搁置已久的“初级问题”。这个话题貌似曾经写过,然而现在我想把它重新写一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语言的)想法,有了更精准的表达。

如果你存在以下的种种困惑,那么这篇文章也许会对你有所帮助:

  1. 你是编程初学者,不知道该选择什么程序语言来入门。
  2. 你是资深的程序员或者团队领导,对新出现的种种语言感到困惑,不知道该“投资”哪种语言。
  3. 你的团队为使用哪种程序语言争论不休,发生各种宗教斗争。
  4. 你追逐潮流采用了某种时髦的语言,结果两个月之后发现深陷泥潭,痛苦不堪……

虽然我已经不再过问这些世事,然而无可置疑的现实是,程序语言仍然是很重要的话题,这个情况短时间内不会改变。程序员的岗位往往会要求熟悉某些语言,甚至某些奇葩的公司要求你“深入理解 OOP 或者 FP 设计模式”。对于在职的程序员,程序语言至今仍然是可以争得面红耳赤的宗教话题。它的宗教性之强,以至于我在批评和调侃某些语言(比如 Go 语言)的时候,有些人会本能地以为我是另外一种语言(比如 Java)的粉丝。

显然我不可能是任何一种语言的粉丝,我甚至不是 Yin 语言的粉丝 ;) 对于任何从没见过的语言,我都是直接拿起来就用,而不需要经过学习的过程。看了这篇文章,也许你会明白我为什么可以达到这个效果。理解了这里面的东西,每个程序员都应该可以做到这一点。嗯,但愿吧。

重视语言特性,而不是语言

很多人在乎自己或者别人是否“会”某种语言,对“发明”了某种语言的人倍加崇拜,为各种语言的孰优孰劣争得面红耳赤。这些问题对于我来说都是不存在的。虽然我写文章批评过不少语言的缺陷,在实际工作中我却很少跟人争论这些。如果有其它人在我身边争论,我甚至会戴上耳机,都懒得听他们说什么 ;) 为什么呢?我发现归根结底的原因,是因为我重视的是“语言特性”,而不是整个的“语言”。我能用任何语言写出不错的代码,就算再糟糕的语言也差不了多少。

任何一种“语言”,都是各种“语言特性”的组合。打个比方吧,一个程序语言就像一台电脑。它的牌子可能叫“联想”,或者“IBM”,或者“Dell”,或者“苹果”。那么,你可以说苹果一定比 IBM 好吗?你不能。你得看看它里面装的是什么型号的处理器,有多少个核,主频多少,有多少 L1 cache,L2 cache……,有多少内存和硬盘,显示器分辨率有多大,显卡是什么 GPU,网卡速度,等等各种“配置”。有时候你还得看各个组件之间的兼容性。

继续阅读全文 “如何掌握所有的程序语言”

我在阿里这两年

习惯性地打开浏览器,阿里内外的日历提醒我:亲爱的,这是你在阿里的第681天,享受你的这一天!我知道,当那个数字变成688的时候,我就和这个页面再无缘分。

阿里巴巴是我的第一家雇主,所以我还没有换工作的经验,很多或有预期或没有预期的感受不期而至。当工作交接基本完成,你看着曾经一起奋斗、一起吐槽的同事们风风火火地忙碌在各个角落,即便内心满怀对新生活的憧憬,也或多或少会有一些伤感吧。

早上看了一部阿里内部的纪录片,叫《Dream Maker》,至今还未来得及对外公开。这部片子讲述了阿里巴巴从成立至今的关键事件,从产品的演化到文化的形成无不包含,的确有点热血沸腾的感觉,发自内心地感慨,阿里真的是一家伟大的公司。阿里味儿的帖子如是说:十七年,6000多个日日夜夜,所有阿里人,用这种精神谱写了一个关于造梦者的传奇。

伴随着这部纪录片,面向集团组织部所有人提出的问题是:我为何而来?我为何而战?什么会因我而不同?

我想,无论我们在什么样的企业,什么样的工作岗位,都需要回答这个问题。对于有些人来说,当前的环境可以满足自己的需要,所以坚持和奋斗,对于另一些人来说,或许理想与现实时间存在鸿沟,需要通过改变来破局。

中午约了13年校招招我进来的HR聊天,两年时间,她已经生完第二个孩子,重新回到工作岗位上,谈起当年的回忆和我现在的选择,感叹时光。那一年清华过来的同学们,基本也只有我还留在校招时的岗位上了。

犹记得,不知道是出于什么原因,阿里的校招筛掉了我的简历,我一路跟着同学杀到北邮,把简历放在了她面前兴师问罪,才得以两天时间内迅速定下offer,随后,又面临着被分配到数字娱乐事业部万般无奈换部门的折腾,再纠结纠结北京户口的风险,最终能入职,也是曲折的一段经历。

然后,就开始了一言难尽的大数据产品生活,其间,当然也见到了很多人来人往。至今,我在阿里最好的一个朋友也即将离职创业了,她和我讲了个段子,说:“我觉得投资像摩天轮,创业像过山车,阿里像海盗船”历经中移动和网易,在阿里工作两年后选择创业的她的比喻,我似懂非懂。

面试的过程中很多人问我,你说阿里是这么大的一个平台,你为什么会选择离开?

首先,我不得不承认,倘若一切尽如人意,个人能力和自我实现的需求都得到满足,没有人会选择离开。所以,一定有一些地方是出了问题的,而且影响不小。

其次,我们似乎又不得不感谢这个环境,倘若它没有尽早在你面前呈现这些问题,可能不会将你推到一个想要寻求改变的阈值,也就有温水煮青蛙的危险。

最后,即便阿里有那么多的不如意,我也已经收获了足够多。倘若不是因为来了阿里,我的很多知识体系不会形成,也就错过了一个从商业的视角看互联网生态的机会。而一些世俗的东西,比如北京户口,大公司的光环,则真的没有那么重要。

我在阿里这两年

所以,我很愿意与你分享我在阿里这两年的收获和思考,算是对自己的一个总结。同时,无论是校招还是社招,如果你正面临是否加入阿里的选择,希望对你也有一点参考。

1. 一家大公司

阿里是一家“大”公司,业务方向复杂,员工基数庞大,办公地点众多,而任何一家企业,只要大的一定的程度,必然会遭遇所谓的“大公司病”。比如,决策流程长,比如,跨部门协作困难,比如,组织结构调整频繁,比如,团队内部竞争激烈……

最遗憾的,大概就是当你处在某个小团队中,几乎无法从宏观的视角去看集团的战略,只见树木不见森林,还可能为眼前的既得利益受损而耿耿于怀。在不久之前,现任CEO提出,“要做大闭环,不要做小闭环”,也彰显了要打破各事业部之间各自为战的决心。

正因为这些由“大”造成的原因。进入阿里以后,我强烈感知到在这里做产品的思路和当年在有道词典做一个应用软件完全不同。

你需要认真去考虑,你所做的事情,对于集团战略的帮助和价值在哪里,如果想不清楚,估计离团队调整也就不远了。

你当然也得考虑,这件事情如果你觉得有价值且可以做,你是不是能去做,当事业部之间业务差异有没有那么泾渭分明的时候,蛋糕怎么分,也挺有讲究。

同时,很多大的项目离不开跨团队的合作,先不提双11这样的大促活动,就算是走完一个最基本的精准广告营销的解决方案,也涉及多团队多系统之间的整合,往往需要层层汇报研究。

所以,大概没有人能搞明白,阿里为什么会有这么多的会议。

在这个过程中,因为有很多的机会去做跨团队沟通和汇报,倒是练就了一身纵横捭阖的本领,尤其是写PPT和作汇报,在多次被敲打之后,也算是有了一些基本的概念。

曾经有过一些总结,如果感兴趣,可以参考我的历史文章,回复对应序号可得。

两篇干货

AL01:《跟着总监学如何推动VP达成商业目标》

AL02:《写给总监的PPT和写给CEO的PPT有什么区别?》

还有一篇吐槽AL03:《是啥造就了只有老板自high的低效率会议》

2. 一家商业公司

在阿里接受的一个比较重要的洗礼,是关于商业的。

在大多数人的认知,以及我曾经在有道词典实习的经历中,似乎更多的关注点都在如何让产品好用上,对于盈利及商业价值的考虑总有欠缺,也不乏很多人信誓旦旦地表示“只需要积累用户,不需要考虑赚钱的事情”。不知道别人怎么想,我总觉得不踏实。

而阿里,是一个商业价值至上的公司。做任何事情,你都逃不开的一个问题是:“你为客户解决什么问题,你给客户创造了什么价值,你能给公司带来多少收益?”

大概也是在这里,我才理解了用户型产品和商业产品的区别,并喜欢上了这些以商业交换为核心的产品形式。毕竟,无论你的产品多好,如果没有客户买单,总是枉然。

而对于to B的产品,我至今收益于老板的那句名言:to B的产品,你的客户并不是你的客户,你需要和你的客户在一起努力去服务好客户的客户。

当然,商业的思维也不唯价值收益至上,阿里将自己定位成一个平台型的公司,所以无论是集团战略还是产品设计,都往往以平台的思维进行。例如,对于大数据的分析场景,阿里从来不会像咨询公司一样靠堆人出报告来盈利,而是在建数据开放的体系,吸引生态里的服务商进来。

两篇关于商业产品的文章,回复对应序号可得:

AL04:《谈谈用户型和商业型产品经理的区别》

AL05:《业务型产品经理和平台型产品经理的区别》

3. 一家数据公司

当大数据的概念像当年的云计算一样火爆,伴随着处理大数据的技术突飞猛进,放眼市场,真正能讲清楚大数据能解决商业问题的有几家?

我想,可能进入一个大数据业务相关的产品团队,对我来说是极大的幸运。我相信,阿里在大数据应用上的尝试,已经走得很前沿。顺道黑一下竞争对手,当阿里的大数据产品已经从数据分析报表走向数据开放平台的时候,京东的数据产品还仅仅停留在流量可视化上……

在阿里两年最珍贵的一段经历,大概是在集团大客户的战略成型,御膳房作为数据团队支持大客户业务的时候,得以和宝洁等传统线下品牌的多个部门合作,认识了一帮和我们思维方式挺不一样的人,也看到了阿里的数据资产加上品牌的行业经验能产生多大的想象空间。

现如今,阿里每年的GMV保持快速增长趋势,无论是用户还是资本市场,都对其有极高的要求,而流量的增长已经达到瓶颈,大数据的力量不仅做到让流量变现更有效率,甚至指导了品牌线下的产品设计及生产,听起来还是挺振奋人心的。

如果你对这一段有兴趣,也可以参考:

AL06:《在阿里做大数据业务的一年》

AL07:《从雕琢细节到追求格局》

AL08:《谈谈数据产品经理的工作职责》

4. 价值观&文化

 

知乎上曾经有个提问,叫“你为什么要从阿里巴巴离职”,一度引发出很多对阿里的文化和HR的诟病,当身处其中的时候,总归是会被影响,当然,自认为作为一个在学生时代就已经形成价值观的人,也不太容易被一些东西洗脑。

阿里的六脉神剑如是说:客户第一、拥抱变化、团队合作、诚信、激情、敬业。

所以呢,你常常有机会看到一群秉持这样的价值观努力奋斗的人们,并乐于参与其中,也的确有机会在一些场合下被所谓的价值观“绑架”,让你去做一些可能你并没有那么愿意做的事情。

这几条价值观本身都是极好的,倘若有些诟病,大概也只是在执行的时候出了一些问题,我无意去抱怨或攻击,仅仅是看过了,了解了,感受了。

其实还真的挺感动一帮人全意全意做一些事情的感觉。直到现在我都记得,14年年底,当时我们整个事业部要赶一个大项目上线,京杭两地996联合办公,在“誓师大会”上,一位技术架构师的女儿刚出生,他义正辞严地说:“我回去就要和我儿子讲,你是哥哥,要好好照顾妈妈和妹妹,因为爸爸要去做很重要的事情,这段时间没有空照顾你们了……”

我当时觉得,如果是我,大概做不到这么坚决吧,但是依然由衷佩服他的精神。后来,那个项目并不算成功,大事业部也随后充足,却被今天的御膳房产品打下了一个不错的基础,那是后话。

还有阿里的政委角色HRG,的确扮演着很重要的角色,他们要求不仅对所支持团队的业务了解,对团队当中的每一个人正在做的项目以及遇到的困难了解,从而在人员激励及人才盘点的时候,做出HRG应有的判断,也可以规避某些业务主管只手遮天的行为。

有个故事讲起来挺感动,当时一个业务Leader正在考虑是否要给已经离职的员工分配年终奖,迟疑的时候,被HRG一口喷回去:“你是主管你自己不会判断吗,这个人过去一年的绩效完成了吗,完成的怎么样,达到你的预期了吗,如果达到了为什么不给!”一时间觉得正气凛然。

关于文化,其实从开始做这个公众号,或多或少讲了不少吐槽的故事,在这里就不一一列出,如果感兴趣欢迎自行寻找。或许正如Lucy所说,阿里没有那么好,也没有那么差。我的确感受到了一些不能忍,可也的确感受到了它的发展和优化,这就是希望吧。

在阿里的最后一周,说得俗一点,还没有走,就已经开始想念,感谢这段经历丰富了我的人生。

互联网的一些事