吐槽《黑客与画家》

书呆子与骚年

看到本书有关书呆子的描述时,反观自身,有很多感同身受的东西。从小我在大家眼里就是一个安静孤僻的书呆子, 外号“阴天使(方言的谐音)”。也由于安静的性格,使得我能坐得住安静地读书,所以学习成绩比较好。我也一度认为除了读书,我啥都不会,跑步跑别人不赢,跳高跳别人不高,打架也只是挨打的份,人也傻傻呆呆,反应迟钝。也正因为这一份自卑,让我专注在学习上,也让我更想读好书证明自己。

直至大学,我也一直以为我无法处理好各种人际关系,我的圈子也只局限于我的宿舍,我的体育也从来都是挂科,直至后来工作,我表哥问我为什么选择做程序员,我说除了能写几句代码,我不知道我还会干什么。然后我婶说了一句话,让我至今印象深刻,你要相信你什么都可以干好。

特别感激大学毕业离开学校的前一晚,大家坐在宿舍楼下”谈人生”,我很感激大家诚恳指出我的优点和缺点。我记得邓菇凉当时提到我的专注,说跟我考研的时候,连东西掉到地上都完全无视,但是她也诚恳指出我不懂人情世故。我也感激小e师父非常特别的认为我很阔爱和知性,我都被他的评价给惊呆了。感激娟说我不要将自己的想法强加于他人,同时她也认为我学习非常认真。还有方总希望我能兼顾学业与处世……大家的忠告都是我进入研究生尝试改变的导火索。

进入研究生,我非常感激我遇到非常热爱生活的顺子。起初刚和她接触时,我认为这个女孩好傻啊,好萌啊,后来发现从她身上,我真的需要学习的还有很多。她在我和某人分手之后,带我去买漂亮衣服,带我去练习瑜伽,带我打羽毛球,带我出去玩,她让我明白生活还可以这么丰富多彩,她也让我明白,啊哈,小青青打扮出来也是个小美女哦~之后开始和机房的大家接触,特别是后来几个小师弟的到来,机房的氛围活跃了很多,我也从此变得”无节操,无上限”。后来也遇到了温婉的兰,她在待人接物方面的真诚让我感觉非常舒服,顺子由于有男朋友了,她接替顺子,带我去逛商场,穿热裤,陪我天南海北聊各种话题。给我买护肤品,送我钱包,还经常给我买各种零食。顺子和兰在研究生的陪伴也是一直让我分手后永不回头的一个重要元素啊。

研究生顺利毕业,也算拿了一个不错的offer,我开始想学点东西,我在想我要学什么,瑜伽跟顺子一起练了几个月,发现太沉静了,只有沉静下来,才能逐步缓慢完成高难度工作。于是我做出决定学跳舞,学什么舞,那就爵士吧。为什么要学跳舞呢,一方面是一个ted关于舞蹈的视频,说我们一直忙于用大脑思考,而忘记用身体语言表达自己。另一方面我觉得jazz很有活力,很sexy,可以让我放开自己,尽管后来大家都说我口味重,但是非常熟悉我的小伙伴们还是用四个字概括了我——含蓄内敛。还有一个重要原因我觉得本人太缺乏女人味了,我想跳舞有利于我变得更加女人。爵士学了一节课就放弃了,后来自学了一些简单的jazz,再后来上班了,跟罗姐姐在一块,她悟性高,我有幸跟她学了点其他舞蹈。以前我不相信艺术可以陶冶人的情操。但是后来的yoga,drawing都可以让我安静下来,而舞蹈却会让我变得自信开朗起来。

吐槽了这么多,只是想反思自身,虽然现在的我还是很羞涩,有时候很内向,有时候会害怕与不熟悉的人聊天,害怕说错话,但是我还是鼓励自己走出去,多与人相处。但另一方面我会要求自己能够安静下来,好好coding,毕竟我还是很欣赏程序员的务实与专注。现在想想,我还是很敬佩以前那个虽然什么都不会,只会读书,在所有室友都在看电视,玩游戏,聊天的时候,她可以心无旁骛的在那琢磨数据结构。所以当你看到一个人很不合群的在那沉默不语,看起来呆呆傻傻,或许ta头脑里面有一个神奇的世界,我希望大家对那些非常内向的人多点宽容。对于现在嘴巴越来越贫,甚至有点内外兼骚之趋势的自己,我会告诉自己——乱花渐欲迷人眼,浅草才能没马蹄。在书呆子变为骚年的过程中,有恐惧,有害怕,因为害怕自己会禁受不住诱惑,不能沉静下来好好写代码,成为一个浮夸之人。同时也有期待,期待看到多面的自己,期待证实自己什么都可以做好。

说出这些,一方面是感激一路以来,大家引导我不断地挑战自己,另一方面是希望大家能看到性格的两面。《人人都是产品经理》的作者曾经说过一句话,“一个人成熟的标志之一就是心中可以容忍各种不同的思想而无碍行事”,与大家共勉。就如同深处一个汉子比较多的圈子,我非常欣赏他们的理性,勇敢豁达以及对工作的专注。同时我也从我身边的女性好友圈,看到女性的美丽温柔善良,耐心以及对感情的全心倾注。这一切都是小青青要去多学习的地方。所以我希望不论男女,都能够互相学习,男生可以尝试练习瑜伽,女生可以学学编程。就像大人和小孩要相互学习。有时候小孩子的很多处理方式或许可以让很多复杂的问题得以化解。

说完性格的两面,说说互联网,毕竟这是我所从事的行业。曾经跟一个在腾讯实习的同学探讨过,他说腾讯有非常强大的平台——qq,当时我想有什么可以对qq产生威胁——中国电信行业。可是没多久,腾讯的微信就火了,微信在某一层次挑战了中国电信。还有一个让我非常深刻印象的例子,在微信红包很火的时候,腾讯却选择了面对面给员工发红包,而没采用微信红包。这些都体现了腾讯的远虑。读初高中的时候,我不能相信没有电视的生活,那将多无趣;后来大学我很少看电视。读大学的时候,我无法相信没有互联网的生活;现在的我除了工作,很少上网浏览,可以忍受没有wifi的生活。而且我发现互联网并不是让大家变得越来越亲近,有时候反而让大家越来越疏远,记得有次大学宿舍出奇地安静,波波说有电脑之后,寝室好冷清啊,同在一个寝室,大家用qq代替说话,吃饭的时候大家也是沉默不语,在那玩手机。每天不是跟家人好友吐槽,而是在微博微信上发状态。我发现我在微博上发状态,越发越空虚,老说自己很二很粗心,可是从来没有认真去改正,老说自己嫁不出去,还老矫情。微信上大家每天分享的内容都是差不多,晒幸福的继续晒幸福,吐槽的继续吐槽。所以我在想有没有一天有什么东西会革了微博和微信的命。而且发现现在的app逐渐往生活化服务发展。毕竟生活才是硬道理。

对产品关注不多,也不算微博微信的深度用户,发发牢骚,希望有高人给与更多指点。

黑客与画家

上大学的时候,教我们C++的老师告诉我们coding就和写作一样,要先构思,然后表达,同时需要多读别人的作品和勤加练习。但是C++老师没有告诉我们coding和写作还有一定类似——创造。很多人不能明白为什么程序员能这么喜欢折腾,可以对美女熟若无睹,沉静在代码中。曾经有人说过创造和毁灭能给人带来快感,而coding刚好满足这一点的,当修复一个bug,或者写出一个能运行的程序,感觉这是一件多么神奇的事情。鄙人也画画,但是那只是简单对着比例临摹,还没有达到创造的级别,正如虽然我是一个程序员,但是还是只是模仿和阅读别人的代码,还远不能把语言当做工具,创造出神奇的程序帮助人们解决一些难题。书中有一段类比,描述编程语言之于黑客与颜料之于画家。画家不需要太去深究颜料是如何制造滴,而应该让颜料作为工具,专注去创造出打动人心的作品。但是要知道颜料的基本组成,这样才能更好的运用颜料泼洒出更美丽的图画。同样我们需要了解一些计算机理论,但是不能为了学习理论而学习理论,而应学以致用。这让我想起自己身上的很多毛病,有时候我向PM解释某个问题,我是专注于其实现细节,而不是告诉他这个程序完成了什么需求。大学的时候喜欢去研究数据结构,但是却懒于去用程序实现它,更别提运用它去解决实际问题。

守口如瓶,笑脸相迎

书中提及黑客的思维方式与众不同,不会被表象所迷惑。但是被掩饰的真相往往是某些既得利益者不想让大家所知道的。为了不招来不必要的横祸,黑客要学会守口如瓶,笑脸相迎。曾经在知乎上看到这样一句话,为什么二逼的人比较有想法,其实是每个人都很有想法,只有二逼的人speak it out。我也非常认同这个回答。这世上每一个有生命的人都是一个能够思考的动物,都会有自己的想法,只是坚定不坚定而已。这句谚语也让我想起一部老电影——《飞越疯人院》,该电影的主角非常有自己的想法,并且带领大家“飞越疯人院”,去进行独立思考,体会自己的人生。其中还有一个高大的大傻个。最后的结局是主角被电得大脑严重损伤,大傻个给了主角“解脱”,并且逃出了疯人院。电影的结局让我唏嘘不已。在某一层次这个疯人院映射了很多东西。之所以喜欢看外国电影,可能潜意识认为外国的月亮比中国圆,但是另外一个事实是外国的电影比中国电影更真实。如果这个电影让中国导演拍摄,大结局很有可能是主角拯救了大家,飞越了疯人院。关于对于某些社会问题的讨论,至少现在相对以前是更加开放。微博上经常会就热点话题进行讨论,很多网友的神回复,让我特别不敢苟同,尤其是在看了柴静的《看见》之后,会让我用更加怀疑和宽容的态度看待网上很多热点话题。但是另一方面这些不同观点的交锋正是为了让大家看到事物的多面性,或许偏颇,但是有争议才有反思,有反思才有改变。即一句老话穷则思变,变则思通。微博与微信很大不同,个人感觉微博更加像一个更加开发的新闻平台,而微信是更小众的个人亲友圈的各种新闻。微博要与微信各占一地,关键在于微博能很快的把握住热点新闻,并且就热点新闻引发全民关注和讨论,更甚者推动一些政策变革。个人看法,望勿贻笑大方。

创造财富

本书有一章节谈到如何致富,这个我起初认为是一些tips,后来作者主要围绕大家如何给他人解决问题,从而创造财富。这让我想到一个小故事。小孩向一位富翁请教其如何赚到零花钱,其提到了两点,一则是人们有哪些难题,二是你能够做什么。合二为一即你能做什么来帮人们解决一些难题。后来小孩发现冬天大家都不愿出门去报纸,后来他就开始了送报纸的活计。这两点也同样有利于我们自身,我们拥有什么技能,能帮他人解决何种难题。同样微博具有何种资源,能给人们带来哪些价值?我想微博最大的资源在于新浪网在媒体方面多年的积累。不管是各种V,还是各种无节操的编辑,以及各种运营渠道。其一方面可以让一些大V作为自媒体去传播一些价值,另一些方面其可以传播和引发热点话题的讨论。满足人们喜欢窥探名人隐私的需求。曾经有好友说每次看新闻看微博,感觉世界末日快来了,各种负能量。我个人认为大部分人都是普通人,你是如何生活的,这世界上的大部分普通人就是如何生活的,之所以很多新闻编辑将这个世界描述得多么不幸,是因为想给各位观众一点心理安慰。个人yy揣测,或许有所偏颇。

有品位的设计

(1)KISS——Keep it simple and stupid

曾经在新东方的presentation也看到一个KISS原则——keep it simple and straightforward。这也让我想到一个曾经说到presentation的原则——sexy presentation。非常形象。说如果是一个裹得严严实实穿着正装的女人和一个穿着比基尼的女孩,what do u choose?我想答案在大家心中。有两点比较重要,one is that the less, the better; the other is that most important points should be covered. 翻译成中文就是to be less is to be more. 四个字——言简意赅。

同样很简单的设计也是能给人醍醐灌顶。比如iphone手机home健的设计,有时候菜单选择并不是越多越好,常用的选择有了即可。另一反面简单是比较容易,即don’t make me think,非常推荐《don’t make me think》本书就是言简意赅和don’t make me think的典范。ios的产品基本都没有说明书。维修也只需要提供appid,而不是保修证书。鄙人不是生活中的有心人,我想生活中简单的设计比比皆是,比如仿大象腿的塑胶凳子,可以让凳子不坐得时候累积起来,还有各种便携的折叠床椅。希望大家多留心,生活处处皆智慧。

(2)经得起时间

读初高中的时候特别反感所谓的经典以及那些大家都喜欢的东西,想因此而显示自己的与众不同。后来读大学喜欢上了看电影,而且专门选那种经典老电影看,突然发现时下的热门电影 跟老电影不在一个层次上。毕竟老电影是经过岁月沉淀的,就像感情,或许细水长流才能经久弥新。

(3)能够解决实际问题

曾经买了一本关于设计的书籍,没怎么看,但是里面有句话我非常赞成,设计应该是为解决实际问题而服务。对于华而不实的设计可能很有”设计感、时代感、超现代感”,但是个人认为还是不能称之非常优秀的设计。正如我非常喜欢可可香奈儿的服装设计,对服装设计关注不多,但是我非常喜欢香奈儿衣服的设计,简单细致舒适。我想coco设计女裤子以及女士小西装引起一代潮流,很大的原因是裤子比古典裙子穿戴更加方便,也更舒适实用。

(4)具有美感的设计

美很简单一样,很抽象。某方面可能是比例比较协调,比较对称,比较整洁的东西能让人产生美感。就像音乐与噪音的差别在于,其有一定的律动和节奏。就像我很想成为一个淑女和美女,我想良好的精神面貌是前提。

(5)看起来容易,实则艰难

又回到iphone产品的设计,看似简单,实则把复杂度都转到工程师了。工程师必须尽可能做减法,尽可能让其操作简单完成复杂的功能。

编程语言与编程思维

刚开始看这本书,关于编程语言的章节,我都是跳过的(因为潜意识觉得更细节的技术费神),前几天室友又在跟男友煲电话粥,而且有愈演愈烈之势,so“空虚寂寞无聊”的我身边只有一个不能联网的pad,于是开始点开ibook,刚好是《黑客与画家》梦寐以求的编程语言那章,最后结果是我将编程语言的所有章节都看完了。吐槽完毕,还是讲点这些章节吸引一个“空虚寂寞女”一口气读完的原因吧。

想想从大二开始接触编程,最初接触的C++,后来碰过C#,也见过java,再到后来读研究生,用matlab写算法,再到做图像处理的课程和科研项目,再次拾起C++,之后为了找工作,学了点python,最后到工作中接触过JS,用php写一点代码。这是我接触到的所有编程语言。大二至今其间也一直纳闷什么样的编程语言是好的编程语言,各编程语言适用什么样的情况?作者归纳了几点,好的编程语言不但能解决实际问题,而且简洁好用。简洁突出在简短且易读,好用突出在源码免费开放,有一本很多实际经典范例的薄书对其介绍,有具有正交性的函数库,有良好的性能分析器,有一个该语言发挥的稳定平台。比如适合UNIX的C,比如适用浏览器开发的JS和Java,适用网络服务器开发的php,比如Emacs编辑器的Lisp语言。于是乎,我对照之,awk是不是一门好的文本处理语言?有linux这个稳定发挥系统平台,类C的语法,但是却是不用声明类型的弱类型语言,字符串和数字类型可以根据上下文背景灵活转换,支持关联数组,同时秉承one-liner的原则来解决文本处理问题。文本中字段计算是常见的问题,awk能很好解决且简洁好用,有一本awk圣经——《the awk programming language》。故据此结论是awk是一门比较好的语言。对于我接触的C++,我想其适合图像处理相关应用,在于其内存管理相对灵活,对于像图像处理比较消耗内存的应用,需要更低层次的语言来灵活管理内存来节省内存空间,从而提高程序运行效率。而对于js适用在浏览器端进行编程,在于其能够更方便实现用户交互。matlab之所以适用进行算法实现,原因一是其丰富的数值计算和矩阵计算函数库,这样可以让coder快速建立算法原型。这样coder只需要集中更多精力在算法逻辑上,而非编程实现上。python因其丰富的数据结构变量类型(如字典,列表集,集合等),各种扩展库,以及方便字符串处理,所以其也是一个适合进行算法验证的语言。matlab与python不同的是,matlab比较专注于数值计算,而python比较侧重于文本处理。对于PHP, 我估计我工作以来写的不到1k行代码,印象比较深的是好用的关联数组。至于php是网络服务器语言,实在没有很深的体会。计算机网络和web开发小青青还要多多补课呀。

对于编程语言之争,就不得不提到弱类型和强类型,静态语言和动态语言,编译型和解释性语言。以我个人理解,弱类型语言一般不需要进行变量声明以及变量初始化,并且可以根据上下文背景进行变量类型灵活转换。比如php和python就属于弱类型动态语言。而强类型的语言需要进行变量声明以及变量初始化,虽然类型之间也存在隐式和强制类型转换,但是其也有更强的类型检验。比如C++和Java就是强类型静态编程语言。编译型语言是该语言需要先声明后使用,需要对整个代码先编译成机器码,再进行执行,而解释型语言可以写一句,执行一句。C++是编译型语言,PHP以及python都是解释型语言,至于Java,貌似既具有编译型语言特征,也具有解释型语言特征。如果想说这些语言那种语言比较好,两句话总结之,各有千秋,让历史来见证之。

书中关于优秀的编程语言,还提到一点。评价一种语言的优劣不能简单地看最后的程序是否表达得很漂亮,而要看程序从无到有的那条路径是否表达很漂亮。怎么理解编程语言?你不要把它看成那些已完成的程序的表达方式,而应该把它理解成促进程序从无到有的一种媒介。也就是说这门编程语言既能快速灵活的搭建原型,又能不断完善扩展优化实现出较为完美的系统。以一年接触php的感觉,我觉得php符合这个特点。书中谈到一百年后的编程语言,我想作者不是想预言一百年后的编程语言是怎样的,而是想让大家知道好的编程是怎样,如何朝着好的编程语言标准在一百年后实现很好很强大的编程语言。

后记

《黑客与画家》很久之前就闻之名,甚至有人奉为圭臬(guī niè标注拼音,以便拼音打字的俺下次能够打出来show下~),但是一看这标题名,oh,my god,算了,电脑菜鸟还是不要去看黑客这么深奥的书籍吧。所以一直没有见其面。工作之后,一次百无聊奈的我随便下了几本电子书,初看此书,我就一个人在欧美汇的楼下捧着ipad来回走了很多圈,因为里面的内容太下里巴人,很贴近实际,根本不是我所预想的高深莫测。甚至看完之后,我推荐给那些并非从事技术的好友看。因为我觉得这本书的很多想法不单单适用于从事IT的人,同时适合于生活中的男女老少。所以没看过的,我也强烈推荐之,这本书我想也适合我去看第二遍。

以上个人看法,共吐槽之

posted @ 2015-05-22 19:13  TsingTsing  阅读(316)  评论(0编辑  收藏  举报