漫谈程序猿系列:看看你离优秀有多远
前段时间(大概是8月份吧)我最终拿到了驾照,科目一、科目二、科目三、科目四都是一次性过的,没有给教练塞钱也没有给教练递烟。考科目三(路考)时,有个女生没能通过还被陪考员讽刺,伤心地哭了,梨花带雨让人心疼。同行的还有两个学员考了三次都没过。媳妇的同事听说我什么致礼的事儿都没干竟然一次性过了,对我表示了一些些仰慕之情。好吧,我承认这让我有点儿沾沾自喜。但是我们在谈程序猿啊,和驾校有两毛钱关系没有?别急,兄弟姐妹们,有的,这个真的有。
软件开发的未来世界
有一次我在上海Qt开发群(企鹅号279906625)和人讨论软件开发与炒菜大妈的可比性,当时我说将来的软件开发会非常easy,成为像英语、驾驶一样的基本社会能力,你能学会炒菜就能学会编程,能够依据自己的须要从半成品软件商店里购买组件,按自己的需求加工成成品软件。我相信不久之后这个就会实现,用户能够用自己的需求和智慧,借助一个平台,像搭积木一样生产软件。尽管实际上他们不懂我们如今谈论的所谓编程、开发,但确确实实,他们能够按需开发出自己的软件来,而且非常可能他们都不须要懂计算机,仅仅要在手机之类的移动设备上搞两下就好啦。
事实上如今硬件已经在往这个方向发展了,什么面包板,什么模块化,什么什么什么呀,看看这个文章:Make!Sense 动手好伴侣,带你轻松做实验。摘要:
“
简单来说,Make!Sense 能够看作是一套传感器连接系统,它自带通用接口,能够高速便捷地将不同类型的传感器连接到电脑或智能手机。作为一个有趣的学习互动平台,Make!Sense 最大的亮点就是操作简单,小盆友们能够用它感受身边物体细微的运动、空气中的水分、光线、温度甚至心跳,好奇什么,就感受什么。
”
配图:
一下子又跑偏了,下笔千言,离题万里……
驾校教给我们什么
要说司机就得说驾校,我还想说出租车、快的、滴滴、易到用车……由于我是个真诚的喷子,想到哪里喷哪里,不会掩饰,我打星际争霸时最喜欢的是口水虫,编上个七八队,哇喔,喷的那个叫壮观,瞬间平地变湖泊……如今社会上有些资源被某些谋取私利的官、商占领了,所以产生了非常多问题。就比方说驾校,为什么那些无牌驾驶十几年的老黑司机也要到驾校来花个钱呢?这不扯淡吗……应该有自考的途径啊。
我们还是回归正题,看看驾校能教会我们什么。
驾校会教我们控制汽车,比方怎么把握方向盘,怎么使用离合、油门、刹车,怎么半联动,怎么起步,怎么半坡起步,怎么过S弯,当然还有调整后视镜、側方、倒库等等,对于新手来讲,这些事实上也是比較伤脑筋的。但是全部这些都是相对简单的事情,大部分学员通过练习都能掌握,不会有太大的问题。多练习一下,科二、科三不成问题,至于科一、科四,到驾校一点通做两遍题,对于上过初中的朋友们也没太大问题,我的堂兄弟小学文化水平也过了,去年春节回家他开车接的我。
当你花上五块钱买了个实习的黄牌子贴到车屁股上准备上路时,真正难受的经历才正式開始。这时才是真正学习开车的时刻!尽管控制汽车是成为好司机的非常非常重要的前提条件,但远远不够,非常远非常远,比你爱一个人那个人却在搞基还要远。仅仅有你看淡了风云,能够预料和避免大多数意外的情况时才能成为一个好司机。不幸的是,驾校不可能教给你这些技巧,你会漂移的朋友也不可能教会你,神仙姐姐来了也教不会你反倒会让你分心YY。
总之中的一个句话:拿到了驾照,实际你会不会开车,仅仅能听天由命了。哦不,我要传递正能量,靠人不如靠己,此时此刻,仅仅有你能对自己的生命负责,所以你必须Fighting,学会应对全部的紧急状况,你必须亲自经历过非常多驾驶危急而且要幸存下来才能拥有教练们企图通过说教、演示来教给你的那些应急反应能力。这是少林寺的十八铜人巷,要下山必须得通过。什么,你想启用飞行模式?抱歉,待你长发及腰,肋生双翅再说吧。
舒马赫,阿隆索,汉密尔顿,阿兰琼斯,普罗斯特……这些名字你可能知道。好吧,或许,韩寒这个全民岳父你更熟悉……这些知名的赛车手,还有在《头文字D》中送豆腐却能在山道神漂移的周董,与刚走出驾校拿到驾照的学员们,究竟有多大区别?究竟哪些新手司机能够成为未来的神司机?
这是一个问题,非常大的问题。
优秀是有门槛的
在《漫谈程序猿系列:程序猿零门槛?》中我说软件开发门槛为零,在本文開始也45度角仰望星空畅想了404也能开发软件的悲慘未来。亲们,不要怕,这里我要做一点点修正,所谓失之毫厘谬以千里,我这点微不足道的修正,会大大改变本系列文章关于软件开发门槛这一话题的未来走向。
所谓的没有门槛,是指:成为新手程序猿没有门槛。或许之前你已经笑话过我图样图森破,我这么一改,哈哈,Bug没了吧。
如今要goto到驾校了。
假设你想成为程序猿,或者被逼迫必须成为程序猿,那能够去达内、北大青鸟、黑马、野马等等培训机构学几个月,也能够自己到软件开发4S店当几天学徒,基本上就能够掌握一门编程语言,能够控制某个IDE,让它Run出一个Hello World或者别的什么。此时此刻,你满怀激情地成了4B青年,但是“金樽清酒斗十千,玉盘珍羞直万钱”,买个房子贷难还,娶个媳妇岳母嫌,压力不是一般的大啊,于是你停杯投箸不能食,拔剑四顾心茫然,最后仅仅能辗转反側寤寐思服……那么,你想什么呢?
最终能够连连看了,此时你就相当于刚从驾校出来的新手司机,站在钢筋水泥的丛林里,面对着人潮拥挤又车来车往的十字路口,眺望堵到霾云深处的车流,開始了事关将来的深度思考:什么时候我才能成为一个神乎其技的好司机,穿越这神鬼难破的堵局?
事实上作为程序猿,你也要想这个问题:我来了,面对那么多的大拿、怪咖、呆萌,我的路在何方?如何找到那条通往优秀程序猿的羊肠小道?
入门不难,优秀非常难!上有六龙回日之高标,下有冲波逆折之回川。黄鹤之飞尚不得过,猿猱欲度愁攀援。肿么办?肿么办?
不是每一个人都能成为舒马赫,也不是每一个程序猿都要成为王江民。
摆在你面前的有非常多选择:蹩脚的程序猿、合格的程序猿、优秀的程序猿、卓越的程序猿,还有在职退休的好汉……
你要做哪一个?你能做哪一个?如何成为你想做的那个?
Big Problem ! 你须要看《自我发现,找到适合自己的职位》,step into ,或者F11,进去看看吧。只是这篇文章目标太大,说的都是一般之理,没有针对“程序猿”这个与“农民工”、“保洁员”一样响当当的称谓所代表的社会群体投去特别的温暖与关注。因此,我会在漫谈程序猿系列文章中来讲这个问题,略微具体一些的来唠一唠它,只是不是如今……
优秀与普通的区别
如今我们要看看优秀程序猿与普通程序猿之间的区别。
有个哥们儿(叫他GG吧)考科三,起步、百米加减档、超车都O了,快结束时,陪考员说,减速停车,这哥们一听暗暗吐了一口长气,心想最终通过了,然后右脚猛踩油门,陪考员反应挺快猛踩副驾的刹车,结果呢这哥们挂了……
你说GG是否能成为舒马赫?
事实上我的神经好错乱的是吧……
还是看看优秀程序猿的表现:
普通程序猿的循环:
当然普通程序猿和优秀程序猿可能不像两幅图里的区别那么明显,但他们之间确实有一条鸿沟……
有哥们儿已经红眼了,愤慨了:博主,丫究竟敢不敢说明确!究竟区别在哪里?
咦,你真关心这个呀……事实上我不是马路边的贾半仙,非常难一言半语说明确,但是,姑且从下面三方面喷喷吧。
- 才能
- 行为
- 结果
才能上的区别
请先阅读《漫谈选人与培训》了解知识、技能、才能的区别。这里咱搞个摘要:
“
才能就是你那些贯穿始终的思维、感觉和行为方式,它基本上是与生俱来的。不论什么能够产生效益的贯穿始终的行为模式都是才能。多数时候我们并没有意识到它们的存在,仅仅要你有意识的识别出它们并发扬光大,就能够有所成就。由于,取得出色成绩的关键在于使你的才能与工作相匹配。
”
举例来讲,精确、好学、好强、严谨、秩序、乐观、开朗、专心等等都是才能。
理解了才能这个说法,我是再也不迷信“勤能补拙”、“扬长补短”这些个看似励志的说法啦。假如你要干好一件事情,必须要改变你的才能和个性,仅仅有当你非你时才能够干好它,那这件事情压根儿就不适合你。换句话说,它不是你的菜。
上小学时老师总是批评有的小朋友马虎,是马虎虫……马虎能够改变吗?对于有些人能够,对于有些人不能够,由于马虎是他的天性。有的人小学马虎,中学照样,成家立业了还是粗心大意丢三落四马马虎虎……你让他改什么?马虎就是他的天性啊。请表逆天,亲。
还有些项目经理对团队里的程序猿不惬意,说P1要是多想想,用心一些,就不会写出臭虫乱爬的程序;说P2要是责任心强一些,就不会天天上班打游戏……事实上,哥呀,有的人就是不认真,不用心,天生就那样;而有的人就是不负责任;这些都是教不会的,改变不了的……你寄望于改变那些无法改变的东西来提高某人的工作效率和产出,那可真是痴人说梦话缘木求鱼……
那造就优秀程序猿的,是哪些才能呢?
- 学习能力
- 学习欲望
- 好奇心
- 成就欲望
- 执著
- 追求完美
- 抽象思维
这些都是……必定还有别的,请脑补下。
行为上的区别
由于才能不太能直接看得出来,但它会决定你有什么样的行为。所以,从行为上,事实上也能够看出普通和优秀的区别来。
优秀程序猿的一些行为:
- 拿到任务,就開始仰望星空或天花板上那盏高悬的电灯棒,状如老僧入定
- 忽而皱眉,忽而展颜一笑,忽而手舞足蹈,忽而在纸上指指戳戳,忽而口中念念有词,忽而长吁……感觉有点神经病啊
- 桌子上摆的是代码大全、设计模式、敏捷实践之类的书籍,而且没有灰尘
- chrome或firefox的书签栏里分门别类,类别多于10个,8个以上是技术相关的
- 容不得破窗户,看见别人的烂代码就想改过来
- 随手就能在白板上画出软件的流程图或者时序图……
- 项目做完了,别人在打游戏、看视频、忙着回复QQ、向剁手族前进,他在想:这样重构好呢,还是那样……
- 你发现他总能说出些你不知道的技术来……
- 看这厮的代码比看你自己的还好懂……
- 老得你叫他吃饭……
普通程序猿的行为:
- 拿到任务就開始噼里啪啦敲键盘,一天写了好几千行代码
- 没事儿就被測试MM叫过去沟通……
- 都早上10点多了还想着昨晚的球赛,10点半就琢磨中午要吃拉面、扯面、刀削面、牛肉面、旗花面、臊子面、窝窝面还是炒细面……
- 过了一阵子,看到自己的代码,感到非常惊奇,觉得是别人写的……
- 回家就看电视、打游戏、看球赛
- 周一上班不知道要干啥,迟迟进入不了角色
- 哇,能Run啦,搞定啦
- 这谁写的代码,这么烂……算了,管它
- 问别人问题的时候多,别人请教你的时候少
- 世界上最遥远的距离不是生与死,而是你亲手制造的 BUG 就在你眼前,你却怎么都找不到她……
当然还有其他的……这个列表能够非常长非常长
结果上的区别
最重要的区别在这里:
由于普通程序猿老是和測试MM沟通,告别单身的几率比优秀程序猿大100倍。
-----------回想切割线-------------------