一个好的文章,在开头的部分,就能吸引住读者,继续读下去,为此我大费周折思考如何给这篇博客写一个好开头,但是我想了半天也没想出来,而且到目前为止,你看到我写的都是些废话,但你先别急着走,在这篇博客里是没有“你为什么要从现在开始写博客”这样没用的鸡汤型劝说,也不会有任何看似煽情,但是没有一点卵用的矫情句子,而是关于写博客的,总结性的经验技巧。毕竟自己已经写了快两百多篇博客了,技巧方法还是能总结出来一些的,所以接下来我就认真的和你聊聊“写博客这件小事”吧。

博客不是什么?

博客不是学习笔记

你不能把你放到网上的学习笔记称为博客,即使你在学习笔记的周围添加了一些承上启下的客套话。像是“好,下面让我来一起学习python吧。”郭德纲说过一句话,“说相声是什么?就是聊天,看两个人聊天,才叫相声”。同理我私以为,如果你在读一篇文章的时候,感觉就像有一个人坐在你对面,给你朗朗上口的讲一个故事,或者讲一个技术点,或者科普一个知识,那才叫博客。大段的摘抄,总结书的笔记,都不能称之为博客。因为博客不仅仅是写给自己看的,也是写给别人看的。

博客不是故事

我在这里指的故事,是指发行于报纸,杂志,哪怕是公众号这种,纯粹以读者为中心的文章,因为作为一个博客,其本身是自己运营的一种爱好产物,并不完全服务于大众读者,因为读者既没有给你发工资,也没有点击你投放的广告,写博客本身带有自我提升的属性,而不仅仅是为了分享传播,说白了就是不仅为了他人,还为了自己。

博客不是鸡汤

看看那些《让优秀成为一种习惯》,《不完美才完美》,《如何成为一个精致的女人》,这种你还没点开就已经知道里面写的什么的文章,你最好别写,或者最多写一次,我见过有一个人的博客,十几篇博客,其实在翻来覆去的说鸡汤,感觉整个人都陷入到死循环了。文章要写的头头是道,脚踏实地,而不是虚无缥缈的,自己都不相信的大道理。

阅读全文 »

本故事纯属虚构,如有雷同,纯属巧合

某天,我刚午睡醒来,准备给自己做一杯手冲咖啡,拿着手冲壶走向饮水机的时候,无意中看到两个开发对着屏幕在那里指指点点的,仿佛在说着什么,只见一个说的头头是道,一个听得津津有味,我当时觉得他们肯定在谈论什么有意思的事情,所以凑过去打算听听,结果他们谈论的事情令我醍醐灌顶,可以说让我对编程有了新的思路,所以这里我尝试将他们的对话总结出来,分享给你们。

哦对了,他俩的名字我不能告诉你们,本来我想用鲍勃(Bob)和爱丽丝(Alice)来代指他俩的,但是又觉得这个梗早已经被编程界给玩烂了。所以我打算给他俩起名叫老铁和小铁。

小铁:“其实我一直想尝试让自己的代码变得灵活起来,比如把写死的东西给改成配置,但是我并不能满足于此,因为我总觉得自己代码还不够灵活,你能在给我一些思路么?”

老铁:“哈,说道思路,我确实可以给你提供一些,不过我尽量不会给你讲一些具体的例子,因为授人与鱼不如授人于渔,所以我会给你提供一些编程思想上的东西,帮你开阔视野。”

小铁:“好的,我洗耳恭听。”

老铁:“首先我们先来思考下,什么是所谓的灵活性。不说那些课本上比较官方的词汇,你所理解的代码灵活是什么样的?”

小铁:“最起码不用我每次有个什么新需求,都要让我改来改去的上线。”

老铁:“但是有的需求你是不得不上线。”

小铁:“对,这我知道,但是对于有些需求,其实是有些重复的东西,提取出来,然后在调整的时候,修改下配置就行了。”

老铁:“恩,很好,你提到你可以把某些共性的东西,提取出来,所以我们先来看你在初学代码时候的第一个例子。让你从1打印到10,你最开始会写出这样的代码.”

阅读全文 »

在我小的时候,那时候家里还没有热水器,所以只能周末去澡堂洗澡,澡堂一般都会有两个水池,其中一个池子会特别的烫。这个特别烫的池子就是为老年人准备的,大部分年轻人和孩子,别说下去泡了,就是伸手摸一下,就会马上缩回手,那是因为老年的皮肤感官已经“退化”,必须要烫水才可以刺激到,所以经常看到一些老人腌在热池子里一下午的画面。与这类似,老年人爱吃味道重的食物,比如很咸的腌制食物,比如很苦的砖茶,很呛的烟,很辣的酒,才能有味觉的刺激。想到这里是不是对将来自己有天老了,吃不了美食,享受不到淋浴感到惋惜呢,不过在这之前,也让我想到,应该在年轻的时候,好好思考下人间的感官世界到底是什么样的?

食物

之前读过一本很有意思的书,叫《品尝的科学》,在这本书上了解到了许多关于人类味觉的东西,比如关于味蕾的那张图其实是错的,因为舌头上的味蕾并没有那样分区分布,而是每一个味蕾都分布着(甜,苦,酸,咸,鲜)五种受体蛋白质。而且辣并不算味觉,只能算是一种刺激。这些奇妙的味蕾都是因为生存进化而来。比如甜味代表糖,能够为人体带来能量,咸味代表盐,能够带来矿物质。酸味代表发酵过的东西,苦味代表有毒的植物。这种简单的趋利避害的作用,最后被人类进化出如今如此奇妙的体验,并加以精致的利用。比如辣味本来是植物不想被吃掉而进化出来的,却被人加以利用,从而刺激皮肤,获得快感。还有用苦味带来中毒的警觉来提神。不过我还读过一些知识,提到不同的人的味蕾分布和敏感度是不一样的。也就是说,有的人在吃火锅的时候,调碗的时候,只能像我一样,因为觉得加什么都一样,所以干脆挨个都加一点,但是有的人却能根据自己的舌头刺激,搭配出自己最好的用餐体验。我发现在生活中,有的人对食物格外有追求,喜欢尝试不同的菜肴,这并不是吃货二字这么简单,也许是因为他们的舌头,天生就比别人灵敏,天生就能吃出一般人吃不出来的味觉体验,记得小的时候在《读者》上读到过一篇文章,说一家糖果公司,雇佣了一个很神奇的小孩,专门负责品尝把关自家的糖果,或者从竞争对手的糖果中分析出配方,因为这个孩子的舌头非常灵敏,尝一口糖果,就知道里面放了什么材料。仔细想想,还是有点羡慕舌头灵敏的天赋啊,不过吃东西这件事,并不是只靠舌头这么简单。比如你在感冒的时候,吃东西并不香,一方面是你体温过高,导致唾液中的酶无法好好工作,还有一个原因是鼻子不通气,导致不能从嗅觉中感受到食物的香气。我们在吃食物的时候,也在闻食物。而且食物还要做的好看,带来感官刺激,讲究一道美食,色香味俱全。就是要刺激视觉,嗅觉和味觉。当然还要有触觉器官,因为有些人对食物的口感很有讲究,比如有的人喜欢咀嚼毛肚这样柔软的食材,有的人喜欢清脆爽口的嫩黄瓜。而有的人喜欢用舌头在丝滑的冰淇淋上转圈。如果一家稍微高档些的饭店,还会在你用餐的时候,点一些优雅的音乐伴奏,比如去吃地方菜听一些欢快的通俗音乐,吃点西餐什么的,听点古典乐之类的。这么想来,吃一顿饭,把味觉,嗅觉,视觉,触觉,听觉全部都刺激到了。

阅读全文 »

上篇关于电影的博客,目的是让你摆脱“简单俗套的故事剧情”和“看个什么电影都要找个意义”的思维陷阱。这篇博客我想聊聊什么才是一个好的电影剧本,或者如何讲一个好故事。

掌握好的节奏

如果你尝试把所有电影的高潮部分都剪辑出来,拼成两个小时,那你的“高潮”也不可能有两个小时,可能十分钟就瞌睡了。前辈们所说的起承转合是有道理的,你无法让一个人,一直集中注意力的看两个小时的高潮。即使你做出再暴力,再色情的画面也不行。人是一个天生就懂得对比,分得清主次的生物。他们记得住开头,记得住转折,记得住高潮,记得住结尾。所以要讲好一个故事,要把握好故事的节奏。把一个好的故事,一层层的拨开给观众看。侦探类电影就是一个最好的例子。比如2016年很火的一部叫《疯狂动物城》的动画片。这部动画片以兔子朱迪为主线。一开始就引入了故事关于食肉与食草动物的主题。并通过朱迪的第一视觉,向观众展现了疯狂动物城的全貌。并逐渐引入狮子市长,羊副市长,水牛警长,狐狸尼克等人物登场。将动物城失踪案件的迷雾一点点的剥离开来。同时带出了狐狸尼克的真实背景故事。小时候曾经欺负兔子的狐狸,在后来帮助到了兔子想到案件的关键。兔子朱迪救到的鼩鼱露露,在后来在大先生面前救下了尼克和朱迪。同时影片带有双高潮。也就是大部分侦探片都有的“第一次破获的案件是错的,真相另有隐情”的套路。最后结局兔子狐狸成为搭档+情侣故事圆满。剧情跌宕起伏,有来有回,可以说节奏把握的相当好。

阅读全文 »

实际上,像我这样堕落在代码,游戏,电影,小说中的男人,早早就被大众贴上了不懂女人,不懂爱情的标签。但是我最终还是尝试来写一篇关于女性,爱情的博客。其实我本来是想写七个短篇小说的。但我现在真的是忙的没有时间折腾这些文艺的东西。所以就采用“偷工减料”的方式,把这些故事,打散成一个个小情节讲给你听。

少女

这里所指的少女并不是说你年少她也年少,你们之间青涩的爱情故事,也不是说这个女人长得可爱,会卖萌,或者声音很嗲,就是少女了。少女的故事一般发生在,一个对生活失去向往的男人和一个初出茅庐的女人身上。我原本想写的小说是这样的:故事发生在我与几个高中同学一起在游戏里打怪升级做任务,在分战果的时候,无意中发现了一个穿着很廉价的装备,等级低,而且技术也不高的玩家妹子在那里被几个怪物这么的死去活来,出于好奇,我上前解决了这几个怪物,然后和这个妹子聊了起来,发现她虽然菜,但是单纯中透着一股勇气。所以我送了她几件装备,带她练级,教她如何释放技能。她是一个叛逆,倔强,又有点聪明,有点天真的女孩。比如很多时候,我告诉她不是这么玩的,她会很生气的说:“不要老是批评我。”然后我们一起聊了很多游戏中的典故和真实生活中的事。从兽人和人类的第一二次战役,一直聊到了她为什么来玩游戏,后来还得知她比我小两个年级,故事的最后,她已经能够在游戏中来去自如,并劝说我不要再玩游戏,好好准备高考,最后高考过后,我登上账号发现她再也没有在线了。

其实我印象最深的少女形象,应该是我带过的一个实习生妹子,她虽然有点笨,还很菜,但是经常一个人专注的写代码很久很久,而且每次调试出一个bug,都很开心的大叫起来。可能是她让我想起了自己刚学会写代码的样子吧。随着时光的流逝,我们早已经被生活磨平了棱角,对生活失去了好奇心。比如让你完成一件事,你要么会平直觉觉得这个事肯定没戏,所以早早的放弃,或者通过你的人生经验推断收益不高,而选择忽略。但是少女不会,无知但是固执的少女会用尽一切办法实现梦想。哪怕这个梦想很小。她的热情会深深感染你重拾儿时的火光。

在电影中有很多少女角色,比如《疯狂动物城》的兔子朱迪,她成功破获了人口失踪大案,同时也让狐狸又回归了儿时那个自己。我记得上高中的时候,有一次我们的一个年级组长被老领导骂道,“你一个二十多岁的人,怎么活成了四十多岁的样子了”。这说明在老一辈的人眼里,年轻人一定要有朝气。要有活力。每次我遇到少女的角色,也不由自主的变得像哥哥一样。守护这份纯真。在我心目中最能代表少女形象的,就是新恒结衣了,因为她的笑容太天真浪漫了,她所出演的 《LEGAL HIGH》,也完美的阐释了少女的形象。作为一个男人,你的妹妹,你的学妹,甚至是你的女儿,都可以以少女的形象出现的。

zgjy

阅读全文 »

回顾

在我上学的时候,一聊到设计模式都是很有格调的话题,仿佛设计模式就是解决软件开发的精髓,但是很长一段时间,我从骨子里是排斥设计模式的,因为我觉得自己连面向对象的知识都没有领悟,谈论设计模式还为时尚早,我尤其排斥那本被吹到爆炸的《大话设计模式》,那本设计模式看上去给你用形象的比喻讲明白了一个东西,但实际上你真正开始写代码的时候,发现自己什么都写不出来。

这篇博客是想退一步思考,总结一些面向对象的知识,比如思考“对象与对象的关系”到底是怎样的。

和大部分人一样,初学面向对象的时候,都会铺天盖地的听到一些词汇,比如“面向对象的三大特性是继承,封装,多态。”,再比如一切都是对象。但如果你仅仅记住这几句话,真的很难领悟面向对象这件事。我记得自己真正对面向对象有过一次深入体会是在读完《c++编程思想》,这本书的第一章是关于介绍oop的,作者通过一个面向过程的c代码到c++的oop书写方式,引出了面向对象的一些精髓,比如面向对象其实是一种思想,早期在用c的时候,也可以用面向对象的思路去写(struct+函数),但这种代码是单向绑定的,支持面向对象的代码的好处是完成方法与数据的双向绑定。而不像struct那样,不知道谁使用了此数据结构。

这些关于封装的知识理论上被称为基于对象,但说句实在的,对于很多人而言,能在系统中用封装的思想将系统建模就已经很不容易了,这可能听上去有点夸张,但仔细想想,对于一个人,一个苹果,一张订单让你去建模,你可能很容易就建了,但如果是类似Controller,Action,Execute这些看上去像是动作的对象呢?

再比如一些复杂的系统,如何抽象出领域模型,让系统能够清晰的交互,这些都不是那么容易的。再说继承与多态,其实继承本身和多态不像是处于同一平行线的概念。这个继承,在java中其实分继承接口和继承类,而继承类则主要是为了代码复用,只不过这种复用是静态的,而多态更像是动态的复用。

在c++中没有这么分类,c++提供的oop看上去更像是为数学公式准备的,所有只有继承类这么一说,只不过你定义一个只有虚函数的类,这个类就成接口了。而且c++的继承还包括公有继承,保护继承,私有继承等等继承权限,还有友元和多重继承。这些东西不是没用,而是一般人用不来,所以在java中都选择了精简。

阅读全文 »

如果要让我列举出自己曾经做过哪些浪费时间的事,我觉得“折腾编辑器”必须算其中之一。但是我为什么还要写这样一篇博客来聊编辑器呢?因为我报着“来都来了xxx”的态度,觉得总要总结点什么东西出来,否则不白浪费这么多时间。来写这样一篇博客。

这篇博客我会主要提及linux的两种重要的编辑器vim, emacs还有现在大多数平台被大多数人接受使用的sublime。还有其它的一些ide比如IDEA, visual studio。

从IDE到编辑器

其实大部分人开始写代码的时候,都是使用IDE进行开发的,那些写c++的可能最先使用的vc9.0,写java的最先使用Eclipse,还有一些像是php,python这样的动态语言,也都有IDE。然后这些人大部分最后都转战到编辑器上了,可能是Editplus,或者是sublime。甚至是古老的notepad++。这大部分原因都出自一句叫:“IDE会害了你,会用编辑器写代码的人才真正的懂代码。”等你以后写了几年代码,你会觉得这话真的是扯淡。但是很神奇的是就在当年大家都不会写代码的时候,这话仿佛真的像什么“箴言”一般,让大部分同学卸了ide改用编辑器甚至是记事本写代码。而后来有一部分人转战vim和emacs,把这两个编辑器的配置写的越来越大。让它们变得越来越像一个IDE。他们说用vim或者emacs的快捷键写代码是最快的,还称一个是编辑器之神和神之编辑器。不过你写了几年代码再想想这句话还是经不起推敲,什么时候写代码快,成了衡量程序员的指标了?再说大部分快速移动的功能是个编辑器都有啊。后来有一部分开始觉得这些东西很蠢,开始转战使用IDE。还有另一部分人仍然使用编辑器开发代码。不愿意的换的人大部分是因为已经都熟练了。好不容易折腾这么多日子,突然转战了,这不就白折腾了么,所以迟迟不愿意放弃,当然你说这是“沉没成本”,但是“沉没成本”真的只是理性的说法,大部分人都不会简单的接受“沉没成本”这一事实的。就像我不愿意接受“折腾编辑器是白折腾”这一事实,而去写一篇博客一样。

阅读全文 »