十二 31

关于钱和理想

IMG_7499

今天发现我订阅的大部分公众号都开始写自我检讨了,也不知道他们2015年到底做错了什么。

我深刻反省了5秒钟,发现自己今年做得非常好,堪称完美,没什么可检讨的。不自信,跑到朋友圈问了一下,我司产品总监刘炯回复:你的人生是完美的,不需要检讨。

看吧,英雄所见略同!

非常累,不想写东西。发布会前后这几天是我们团队最紧张的日子,一级战备,每个人刀出鞘,箭上弦,不达目的枉少年……好吧,中年。每个人都轻抚着雪亮的刀锋,蹑手蹑脚,四处巡视,bug 看见一只,砍死一只。用户上来了,分流、限流,排队处理,有条不紊,交易了,准备订单,付钱了,准备发货,退钱了,取消订单……

发布会终于结束了,气质优雅的 T2 和重量级的老罗终于在年前稍事消停,我们也松了口气,暂时不用再去找寻别的什么了,2015年岁末的这场战斗,算是赢了吧。不完美,但也没有大的纰漏,就像你我的生活一样。

2015年1月,去了趟硅谷,见了次老罗,差不多奠定了今年的人生基调。之前7年,我的生活就像一艘行驶在江面上的船,稳定,坚决,在平缓的江面上缓步航行,今年突然闯进了一个入海口,江面变成海面,风暴,激流,险滩,迎面而来,生活变得波澜壮阔,我的世界里突然开启了很多扇门。很多人年过四十开始缅怀往事,追忆似水年华,畅想退休风景,我却迎来了强敌环伺,横刀立马的格局,这是一种不幸,也是一种幸运。

MacTalk 的成熟与坚持,锤子科技的灵动和坚韧,让我认识了更多优秀的人和美好的事物。我收获了十几万的读者,感谢你们的不离不弃;头上顶了一个沉重而难以管理的老板,挑战重重;最重要的是,我加入到了一个活力四射的年轻团队:锤子科技的云平台。我们负责了锤子科技的官网、电商、云平台、内部运营系统、iOS/Mac 软件等,我们常常并行数十个项目,我们与全公司各种部门进行协作,我们在发布会上线的最后一刻完成产品经理变更的需求,这是一群在刀尖上跳舞的程序员,每个人都充满斗志,年轻,腰间挂着两颗滚烫的肾。和他们在一起,我仿佛也变得年轻了。

总有一天,我要让世界知道,他们每一个人的故事!

锤子科技是个有野心的公司,无论现在有多少劫难和险阻,无论是自己造成的,还是外界带来的,但是其野蛮生长的劲头是在骨子里的,这一点一直没有变,我们只是需要更成熟,更稳健,更规范,更完整,更决绝。2016年,希望能给大家带来更加趋近完美的产品。

今天是2015年最后一天,把最后的感谢献给我的家人,我在你们身边得到了最好的照顾和关怀,没有你们,我将一事无成!

最后,回答一个关于钱和理想的问题,曾经有个工程师在微信上问我,如何从为了钱而编程进化到为了理想编程。我的回复是,先把钱挣够了,就可以为理想编程了。

初入职场,最重要的事就是提升自己的能力,而不是去做自己喜欢的事情,这个阶段钱能够养活自己就行。等你到了技能等身、拔剑四顾的阶段,尽快把这些技能转化成银元,这个阶段,不要对自己说,钱我看的很淡。照顾好自己,照顾好家人,为他们提供更好的生活条件才是你应该做的事情。等财富稍微自由一些,你会突然发现,世界变得更加广阔,你的很多顾虑、担心、畏缩消失不见了,这时候,就到了为理想编程的时候!

所以,能多挣一点就多挣一点。

祝大家新年快乐!

23

iOS 9 的字体及其他

2015 年 9 月 9 日,苹果发布了一系列新产品,同时对开发者和众测用户开放了 iOS 9 GM Candidate 版的下载。按照苹果的惯例,除非有重大 bug,否则 GM 版基本上就是最终发布的正式版,所以我也乐得安心下载,并通过 iTunes 的「Option + 检查更新」方式升级了系统。一般情况下,这种升级方式都是安全的,稳妥的,健康的,但也不排除出现问题的可能性,比如你人品不好……

冯老师有一次通过这种方式升级的时候,咣的一声就白苹果了,于是彻底重新恢复,并丢失了一周的数据。从此我对冯老师的为人有了新的认识。另外,在我刚刚升级了9.0GM版本的时候,冯老师悍然把 iPhone 6 升级到了9.1。对于这个在9.0还未正式发布的时候就敢无所畏惧挑战 9.1的汉子,我暗挑大拇指,佩服!然后冯老师咣的一声就不能用微信了,然后就降级了。

早知今日,何必当初,对吧?

iOS 比 OS X 的更新速度快得多,至少没有苹果「重新定义的一分钟」。经过短暂的白苹果界面之后,简单设置,你的系统已经升级到 iOS9了,那个万年不变的主屏幕界面简直是……宛若初见!根本就没什么变化嘛,难道被冯老师、二爷和三表弟骗了?不能啊,以前都是我骗他们的。仔细看了看,我终于见到了这个星球上最为性感和让人着迷(你违反广告法了!有本事去告我啊)的字体:San Francisco 和苹方。

好,今天我们主要来说说字体。

虽然我一直靠技术安身立命行走江湖,但内心柔软,和纯粹的铁面程序员(只认代码不认人)相比,我略显文艺,对优秀的设计交互、简洁的字体排版一直情有独钟,难以自拔。识字以来,我的大部分闲暇时间都花在阅读上了,纸版的、电子的、电子墨水的、只有墨水的,不一而足,读得多了,你自然会关注字体。

在这个信息化的时代,传播最为广泛的,不是音频,不是视频,不是图片,而是文字。无论身处何处,文字都如影随形,在你身边流淌,而字体可以赋予文字声音和感觉。你每天读到文字,看到字体,不同的屏幕,不同的设备会显现出大大小小的文字和字体,有些会让你感到优雅,体味愉悦,感受性感,有些则会让你丧失阅读的兴趣。可以说字体给了文字各种可能性。很多喜欢使用 Mac 和 iPhone 的朋友也会和我一样,最初是被 iOS 和 OS X 的字体吸引吧。

这一次,苹果推出的是 San Francisco 字体和专为中文系统设计的苹方字体。据说是「苹果公司在近20年来设计的第一款新字体」。在升级了新系统之后,我觉得这个字体是成功的、符合人民群众审美的。由于全新的系统字体,我甚至觉得,几乎每一款 App,都有了一个全新的面孔和温暖的名字。是的,就是辣么神奇!

San Francisco 是一种简洁的无衬线字体,最初应用于 Apple Watch 38mm 和 42mm 屏幕上,清晰、柔和和高可读性是 San Francisco 最为鲜明的特点,这种字体让你在狭小的 Apple Watch 屏幕上依然可以毫不费力的攫取信息。San Francisco 字体分为两种,一种是 SF,一种是 SF Compact,Apple Watch 用的是后者,也就是压缩版,最新发布的 iOS 9和 OS X 10.11 都采用了 SF。对应的中文字体就是苹果称之为更加地道的「苹方」。

屏幕快照 2015-09-15 下午11.17.27

SF 和苹方是专门针对视网膜屏幕设计的字体,读来清爽怡人,痛快淋漓,高端大气上档次,低调奢华有内涵……好吧,由于理不屈而词穷,我很难用语言描述这两款字体,把截屏发给以辞藻华丽著称于世的二爷鉴书看,伊也只是发出嗬嗬的声响,最后艰难吐出了两个字:「性感」。苹方在字形和风格上应该介于冬青黑体和兰亭黑之间,字体圆润饱满,「完全去除喇叭口和原系统字体中令人诟病的刺眼起笔,同时保持合适的中宫和字面(1)」,让人百看不厌。同时,SF 字体支持 iOS 的 Dynamic Type 动态字体调节技术,能够根据字号动态调整字间距以及字体高度,简直是设计师和程序员的福音!

对于很多无视字体的普通用户来说,他们会发出「这不就是黑体吗」的喃喃自语!但是,多看一会,我相信这些用户同样能感受到阅读和字体带来的优雅体验。即使用户很难意识到,但任何细微的改变都会给阅读体验带来本质的影响,这是设计师和程序员的职责和使命。

好的设计就像空气,对于用户来说可能是透明的,无法觉察的,只有失去时才会追悔莫及。要珍惜!

可以说新字体是我最喜欢的 iOS 9 特性之一。等大家正式升级之后,可以细细体味,据说就在今晚。

iOS 9 的这次更新有很多功能改进,具体可以参考:http://www.apple.com/cn/ios/whats-new/ ,我会在后续的文章中谈几个官网少有提及的,但我觉得有趣又有用的功能吧。

另外,大部分人在升级了 iOS 9 之后发现卡顿,确实是这样,那是因为新系统安装后要做各种初始化,建立索引。用一段时间后你就会发现,iOS 9 流畅的不像话。

有时候我们只是需要一点耐心,而不是无知者无畏。

祝各位升级顺利!

19

每个人都该懂点设计

SS

就像编程,设计需要天赋和品味。如果你没有,去多读点书吧,像我一样。

锤子科技是一家非常强调设计和用户体验的公司,披着硬件的外衣,注重软件品质和互联网服务。很多人以为,在锤子科技工作,设计师和产品经理的地位是至高无上的,他们身着华服,或脚踏五彩祥云,或骑了高头骏马,在天空和高山上俯视茫茫大地,思索,探究设计领域的尽头和用户体验的极致……间或扔下一些需求和设计碎片,程序员们欣喜若狂的跑过去捡起来,屁颠屁颠的去实现了……

其实骑在马上的是你们罗哥!

我们常常看到这样一些的对话场景(文学创作别当真啊)……

老罗和产品经理:

罗:你不能这样了
产品:是,我真的不能这样了
罗:你得这样吧!
产品:嗯,确实得这样

老罗和设计师的对话:

罗:这里的打光不够,这里要描个边儿
设计:好的
罗:安卓图标和 Finder 图标的结合度不够完美
设计:-_-#,那我再想想吧

老罗和程序员的对话:

罗:这部分功能实现需要多长时间?
程序:三周
罗:这个效果能实现吗?
程序:……目前不能
罗:产品和设计过来一下,你看看人家说做不了你们设计个啥?

之所以出现这种情况,是因为老罗在很多人以为他是个英语教师或相声演员的时候,已经大踏步的抛开过往,跨越边界,绝尘而去。由于个人的天赋和品味,他自己在用户体验和设计领域形成了一套原则和观点。虽然无法绘制出精美的作品,但是他知道,怎么做可能是最好的。最要命的是,大部分时候,他是对的。当然,老罗还没有神到碾压程序员的地步。由于年龄和精力的原因,他没有时间再去了解操作系统、数据结构、编程语言和各种技术框架和引擎,很早的时候还会让程序员写一段技术语言放到微博上去调侃,现在这个时间也没有了。

在技术领域,他意识到,自己无法做到庖丁解牛,事无巨细,于是他选择了相信技术人员。都是一群老实孩子,不相信你们还能相信谁呢?

于是,我们松了一口气,技术人员在锤子科技的处境,是相对宽松的。我们最大的压力是,面对公司快速成长的业务,如果让现有的团队能力,快速提升,让人、技术和团队,能够为公司和用户提供最大的保障和最好的服务。

但是,如果一个技术人员,对产品和设计毫无感觉,不仅难以理解需求,也无法做出近乎完美的产品,同时,你还会受到降维攻击。比如有一天,我们在开例会的时候讨论产品,我指着一个设计元素说,这里的厚度减少一些,是否更好呢?罗哥扭头看了我一眼说,池老,这是工业设计语言,不是编程语言……

当时,我感觉受到了1000点伤害,降血5格。大漠孤烟直,长河落日圆。那个时候我就知道,每个人都该懂点设计!你不专业一点,人家怎么和你交流呢?在现代社会,设计和视觉传播已经深深的印入了很多人的脑海,缺乏优秀的设计和交互体验的产品,注定无法具备长久的生命力。

一直以来我个人对产品和设计充满兴趣,只不过之前做平台或架构产品,设计方面的要求没有那么强烈,虽然自己会去通过阅读「设计心理学」「写给大家看的设计书」「Web表单设计」「设计的觉醒」等设计相关的书籍来提升自己的设计素养,但知之甚浅。

对于一名黑客和程序员来说,学习设计最痛苦的是,很多事情无法量化,写惯了代码,算法和引擎的程序员们,难以理解一个设计作品是如何完成。事实上,设计师也无法描述他们自己的创作过程。比如你去问方迟是如何设计出 Smartisan OS 里那些充满情感和灵性的界面和图标的,萌神一般会挠挠头发说,哦,设计呢最重要的部分是隐喻,有时也是最难的。然后转身就躲进他的Retina 5k iMac 里去了。这些设计师们,他们只是充满天赋和设计的兴趣,不断摸索和实践,然后开创出自己独特的设计风格。

设计师的产品,是最好的自我表达,他们用自己的想法创造出一个井然有序的世界,并将其展示给大家,赞同的人自然会聚合而来,不赞同的,就像你身边的风,来去自如,留也无法留住。

好在设计和任何一个领域一样,同样存在一些规则和框架,比如排版、留白、构图、色彩、字体等。如果我们了解了这些知识,即使不能自己设计出精美的作品,但至少能够理解和欣赏这些设计,最终能够参与其中。想掌握这些规则、框架,没有别的办法,就是读书和实践,并与那些设计天才们厮混在一起。

除了之前读的那些书,最近在读的两本「黑客与设计」「日本的八个审美意识」都是不错的设计读物。同时我还请教了另一位程序员兼设计师,他的名字叫做 Felix,曲径的创始人。他对自己的介绍是:

Felix is a designer, product manager and Rails developer. Felix has a strong passion and enthusiasm in design, Zen, minimalism, and Japanese aesthetics in general.

可见这是一位充满了设计、灵性和禅意的程序员,当我提出让他推荐几本书的要求时,他想了想回复我,我需要写一篇文章,于是就有了这篇「推荐几本设计相关的书」。

网址:http://dingyu.me

他在文中推荐了《Zen of Palm》、《知日 断舍离》、《知日 日本禅》和《Japanese Design》,并逐一做了说明,文中间或流露出自己的设计体验和感受,读来收获甚多。

以文中的一首禅意十足诗歌做个结尾吧:

春日傍晚
落日西斜
远海的岛屿渐渐看不见了
忽然岛上亮起了一盏盏灯火
指明了它们的所在
— 正冈子规

10

程序员很穷

bug 修完了吗

程序员很穷,他们要么是显得很穷,要么是真的很穷。

前几天一位做市场的同事跑过来问,池老师,我有一位朋友,快30了,想转行写程序,您觉得有戏吗?我看了看满目疮痍的他说,如果是你就没戏。

30多岁转行做程序员当然可行,毕竟历史上存在一些大器晚成的案例,这些经过渲染和修饰的案例给在时间长河中苦苦挣扎的人们带来些许希望的火光,但那毕竟是火光,一阵风来过,也许就灭了。如果你真的热爱技术和编程,渴望通过自己的代码实现别人的想法,或自己的想法,为世界带来更美好的产品,那么任何时候学习编程都不晚,编程给你带来的好处绝不仅仅限于你的工作领域,关于这一点,你看看李笑来老师就可以了,有时候我觉得,他简直是个专业的程序员,兼产品经理。但是,如果你只是觉得程序员挣钱容易,那还是算了吧,因为程序员不轻松、不浪漫、不被人理解,也许,还很穷。

很多人羡慕程序员工作没几年就可以拿着看起来不错的薪水,但是,如果他们在未来的几年内技术水平没有突破性的提升,或者缺乏一点灵性和品味,那么可能在未来很长一段时间内,他们都会保持这个薪资水平,直到有一天,你不得不接受,比自己小五岁或十岁的程序员,也拿到了和自己一样薪酬。不是经常说程序员年薪百万吗?是啊,那是行业里的顶级程序员,他们为了让自己的水准达到这样的要求,经常要付出十年以上刻苦努力和练习,初春,寒冬,清晨,深夜,当你们去欧洲浪的时候,当你们去卡拉 OK 唱的时候,他们都在不停的 Practice,Practice……

Continue reading

22

谁是你的羁绊?

程序员的禅

前几天在微信后台收到一条读者的信息,长长的一大段,大意是「大学主修金融,但是对计算机和编程非常感兴趣,一门心思想成为李纳斯或沃兹那样的 IT 英雄或传奇黑客,但身边的人都认为他就不是那块料,包括他的父母。好好在金融行业里有什么不好,为什么要去当 IT 民工呢?」

是啊,为啥要去做程序猿、产品汪、市场狗、工程狮这种不知道有没有前途的职业呢?就像明明这孩子可以靠脸吃饭,而你,却要依赖才华!

Continue reading

29

专注和游离

640

该专注的时候,你游离了;该游离的时候,你专注了。

最近一些读者的提问,包括与团队成员的交流,都涉及到了一个问题,如何才能快速的提升自己的能力,或者说为什么我提升的这么慢呢?

这里面其实存在一个误区,世界上根本不存在快速提升的神奇方法,什么21天学通 Linux C 编程,7天自学 Java 语言,17天搞定 GRE 单词,等等,都特么是骗人的。小时候书在我的眼中非常神圣,看到类似的标题我砰然心动,仿佛看到初恋情人,还没入手就开始幻想自己21天之后拔剑四顾满腹经纶的嘴脸。结果买了书之后,一个月发现自己只看了第一章节,而且每次都看第一章节,所以别提学通和搞定了,门都没入。

根本没有什么快速的提升,如果你在某段时间觉得自己提升得很快,那是因为你身边的大部分人成长得更慢,或者,他们安于现状,没有提升。提升从来稳定的,持续的,渐进的。在大部分领域,围棋、绘画、写作、编程、球类等,没有十年的持续学习和实践,基本上很难达到专家级别的水准。

既然明白了这一点,我们「不期速成,日拱一卒」就好了嘛,每天坚持在某个领域学习和实践两小时,那成功不就指日可待了么?有这么简单就好了!事实上,在这个到处充满诱惑力和信息碎片满天飞的时代,能够做到「日拱一卒」的人,少之又少。基本上,由于人的天性,大部分人不可能像苦行僧那样去学习和生活,我们常常是在需要专注的时候,游走在朋友圈、微博、美剧、游戏和各种无聊的垃圾信息之间;在需要游离放松的时候,我们却极度专注,打游戏或刷新朋友圈到深夜或凌晨。

一小部分天才和异人可以非常顺畅的在专注和游离状态之间切换,你看他们在刷微信,其实他们在阅读,你看他们在看美剧,其实他们在编程,这些人具备异乎常人的多线程处理能力,而且能做到「品学兼优」,玩得开心,学得高兴。

这叫天赋,我们普通人是学不了的。我直到三十岁以后,才慢慢找到了适合自己的方法和平衡点。等我搞明白了这一切之后,十年的差距已经过去了,想一想还是挺悲哀的。为了给自己打气,我就对自己说,你们这些少年天才也就那么回事,不就是比我们早十年想明白了很多事吗?不就是我们还在摸索的时候你们已经还是奔跑了吗?跑得再快能有刘翔快吗?能有乔布斯和盖茨看的远吗?也就那么回事,都不是神,道哥饿几顿眼里照样没神,说话照样有气无力!我们当北京的程序员,杭州的产品经理,野百合一样有春天!

有了这样的信念,我得以坚强的活到了今天。我的方法很简单,就是把每天晚上完整的时间归一堆,然后用刀切成两半,一半用来专注,一半用来游离。

状态好的时候我就会先专注的干一些事情,这段时间里我会屏蔽掉电话、微信、微博、美剧等一切干扰噪声,把相对完整的时间留给写作、编程、读书,或专心研究点什么,坚持一段时间,你的效率就会大大提升,你会发现自己的提升好像比以前快了那么一点点。

状态不好的时候,我就会处于游离的场景里,刷朋友圈,看微博和推特,看订阅的 Blog,读一些闲书,看美剧,拓展视野,寻找信息,彻底放松。这段时间就是用来消耗的,同时寻找有价值的东西,记下来,留在专注的阶段细细阅读和理解。

专注和游离状态交替进行,对我来说,似乎是最好的选择。一旦专注,你的效率就会比别人高那么一点点。一旦游离,你的视野就会比别人广那么一点点。假以时日,你的高度和广度上就会大大超越常人,把那些稀里糊涂过日子的人抛在脑后,同时可以远远的看见那些天才们的后脑勺或脚底板,这叫大器晚成。

写到这我想起了著名程序员、计算机博士徐宥翻译的一篇文章,叫做「十年学会程序设计」,结果去翻他的博客,居然不能访问了,颇为伤感。还好我摘录过他的一些文字,分享给大家。

关于编程上一些建议:

1、对编程产生感兴趣并因为乐趣而写程序。确信你自始至终都能乐在其中,这样你才愿意将十年光阴投入编程事业.

2、与其他程序员交流;阅读别人的代码。这比任何书任何培训都重要。

3、不断地编写。 最好的学习方法是在实践中学习 。从技术角度说,「在特定领域的个人最高效率并不因为经验够多就会自动获得;但若有意识的通过努力去提升经验,个人效率会变高」而 「高效的学习一般需要明确的任务和因人而异的适当难度,以及及时的反馈和重复或者修正错误的机会」(20~21页)Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life (实践中认知:心智、数学与日常文化) 是这个观点的一本有趣参考书籍。

4、跟其他程序员一起完成项目。在一些项目中成为最好的程序员;在一些中则充当最差的一个。当你是最佳的,你要测试自己领导项目的能力,并以你的能力鼓励他人。当你是最差的,要看看高手做些什么,他们不喜欢做什么 (因为他们会叫你去帮他们做).

5、接手别的程序员完成项目。全心投入并理解别人的程序。当原作者不在的时候,看看在理解与修改时有什么要注意的。想想如何设计你的程序使得后来维护的人容易上手。

6、至少学会六门编程语言。一种要支持类/对象(class abstractions)的语言,如Java或C++;一种函数式(functional abstraction)语言,如 LISP 或 ML;一种支持语法抽象(syntactic abstraction) 的语言 如 LISP;一种声明式语言,如Prolog或 C++模版;一种支持协同式(coroutines)编程,如 Icon 或 Scheme;还有一种支持并行(parallelism)的语言,如 Sisal。

7、并具备良好的判断力,也别老纠缠在语言标准化上。

至少要六门编程语言,想一想自己接触了几门,熟悉了什么,掌握了多少,共勉!