这几天,我一直在想:通过直播,我能给观众带来的,最有价值的东西是什么?是C#的语法么,是http://ASP.NET MVC技术么,是如何进行一个Web系统的架构么……
不是的,全都不是。
这些东西,市面上已经太多太多了,我没有必要再重新做一次——我也不一定有他们做得好。而且这些东西,如果要做得好的话,不应该直播,应该先准备,再彩排,最后录制,这样才能做得漂漂亮亮的。如果直播的话,很有可能,duang……一个意想不到的问题冒了出来,卡住了,糗大了,高大上的形象全毁了,/(ㄒoㄒ)/~~
那我为什么还是要直播呢?好吧,好吧,我承认:偷懒,是有指甲大那么一点点儿的原因,╭(╯^╰)╮
但其实更重要的是——大家一定要关注这更重要的哈——是我要给大家一种“真实”的体验。一个真实的项目,一群真正的开发人员,如何在真实的环境下,面对真实的困难,取得真实的进展和成绩……最后最后,这个项目,还真的可以用!(当然,能被多少人使用,还得靠大家的参与、宣传和推广了。)
为什么真实性这么重要?
大概是一年前,我发布《野生程序员:优先招聘》之后,一个同学联系上我,希望能给他一个工作,不要钱都行。我确实想帮他,但我没这个能力,所以只好残忍的拒绝了。他非常难过,“为什么呢?”
“你没有工作经验……”
“工作经验,工作经验,谁TM一生下来就有工作经验的?”他终于爆发了。
隔着电脑屏幕,我都能感觉到他千里之外的憋屈和愤怒,我甚至能想象他眼里的泪光。但我无能为力。那种拒绝别人之后的郁闷,和无能为力的难受,让我——不要幻想我立大志愿发大发慈悲普度众生啥的,没有这回事,我泥菩萨过河呢。这只是让我开始思考一个问题:
工作经验究竟是什么东西?有什么价值?或者,没有工作经验,我们没有的究竟是什么?
为了彻底的搞明白这个问题。我们首先排除那些逃课打游戏的同学,他们找不到工作,不是因为没有工作经验,他们是啥都没有。我们假定一个踏踏实实的大学生,课前认真预习,上课认真听讲,下课认真复习,自然考试成绩也不错——但他就好找工作了吗?他还是要面临“没有工作经验”这个坎,只不过有些用人单位愿意培养新人罢了。
我做过律师。我觉得用实习律师来做例子是最能说明的。能做实习律师,首先要通过司法资格考试。《司法资格证》拿在手里呀!这含金量,这沉甸甸的手感……但有用么?给你个案子,你能啃得动么?为什么啃不动?你猜……
妈逼的连法院的门怎么进都不知道!
书上就写一句“向人民法院起诉”,是的,法院就杵在那里,但你怎么去“起诉”呢?走哪一个门呢?找谁呢?先缴费,还是先递起诉书呢?除了起诉书,还要不要其他材料呢……自己一个人去办还好点,大不了我到处问受点白眼;要是当事人和你一起,你完都完了:豆大的汗珠止不住的淌,那画面不要太美!
转行做程序员,我参加了培训,考过了软考,自己也能东拼西凑的搞出个小网站出来,但我还是铁了心的来到上海,那时候我女儿才三个月大,真的是抛妻弃子啊!为什么?我知道,我还缺一样东西,这东西,不是我自己看书看视频就能倒腾出来的:工作经验。
在《折腾》第三卷《孕育》里我讲了这段经历。其实除了源代码管理,我还学到了非常多的东西。这些东西,是很难用语言来描述或者讲解的——即使像我这样口齿伶俐清新脱俗的话术小王子也不行(傲娇脸)。
这是一种见识,这是一种沉淀,这是一种顿悟。
我是在写完《架构之路(二):性能》之后才明白这个道理的。我举了一个我认为是最简洁明了的例子,来说明应该调用Single()而不是First()以提高代码的可读性,但下面的评论让我崩溃了……我才发现,我真是绞尽脑汁都没办法说清楚:为什么这里用Single()更好。最后的最后我终于找到了一个突破口,我问:既然First()那么好,微软为什么还要弄出一个Single()方法出来呢?
但这也只能把人“问住”。如果他愿意倾听——算了,愿意倾听都没用,得他自己去想——唉呀,光是想也没用,他得去做,边想边做。这样,一次一次碰得头破血流之后,有一天就会:啊!多么痛的感悟。
又要跑题了。扯回来!工作经验,就是那些书本上不教的,但实际上很有用的,没有办法简单传授,只有靠自己、花时间,填完了那一个接一个的坑之后剩下的那些东西。
所以,其实我也帮不了大家太多。这次直播,最多,也就告诉你:当心,这里有坑;或者,“扑通”一声,我也掉坑里了,然后,让你看看我是怎么爬出来的而已。
剩下的,还得靠你自己了。