谈谈关于个人提升的一些思考
剛剛看到一篇文章,轉貼下,分享給大家
今天腦子里突然浮現這樣一段話(因為時間比較久了,可能有所偏差):
? "You just know what you can do with this but you don't know why and how.
You don't care if there are some other ways that can also manage it.
No mention that you care little about why other ways also can and which way is better."
? ?
? 想到這句話,又想到了前幾天在某篇博客后看到的一條回復:
? “現在的時代那么多誘惑,學生浮躁,快餐式的教育才是當今教學之道,不然我們學校附近的培訓機
構也不會那么火了,時代產物”。
? “快餐式教育才是王道”,這句話讓我不禁感到一陣心寒。如果他所說屬實的話,那當今IT行業恐怕有太多的人符合前面?
那段英文描述了。
? 按照前面那段話,我把IT行業(技術類)的人分為下面四類:
? 一、了解一般問題的解決方案,但只知道一種且不知道這種方案為什么、是怎樣解決問題的;
二、了解一般問題的解決方案,可能知道幾種,而且對why和how也有所了解;
三、熟悉一般問題的解決方案,知道多種,而且對why和how也有一定程度的理解;
四、精通一般問題的解決方案及它們相關的why和how,并且遇到非一般問題能基于自己的解決一般問題的經驗或創造力
(靈感之類的)發明新的解決方案。
? 不言而喻,這四類人某種程度代表了當前IT行業下人的一種劃分(當然四類人相互之間可能存在細小的重疊)。但是我在?
這里想對這四類人再做一次簡化,粗粒度地劃分為“卓越的程序員”、“優秀的程序員”和“普通的程序員”。
? 世間萬物一直在發展,這三類人群當然也如此。普通的程序員通過有效的途徑和個人努力可以升級為優秀的程序員。優秀?
的程序員在艱苦卓絕的歷練后可以升級為卓越的程序員。而卓越的程序員如果不注重與時俱進和不斷強化可能會降級為優秀?
的程序員甚至普通程序員。
? 到了這里很多人似乎認為本文該結束了,不然。常規思維是:既然都規劃了發展方向,那就埋頭苦干就行了,說這么多廢?
話干嘛。但是不止一次我看到和聽到有人說個人發展的路上不僅要有埋頭苦干的精神,還要有抬頭看路的習慣。蒙著眼睛埋?
頭苦干可能最后就像拉磨的驢,雖然走了很久很久,但是一直在那個小圈里打轉(開始的時候驢是蒙著眼睛的,由人領著它?
一圈圈拉磨,過一段時間后,就把布解開,驢自己就會拉著磨一圈又一圈地走下去)。(后面的所有觀點都是我的個人看法?
,閱歷有限,可能有偏頗或不當之處,還請大家包涵。如果你覺得我的觀點還行,請支持;如果你覺得我一派胡言,那也希?
望你抱著“看這個人又在胡說些什么”的想法看下去,^_^)
? 埋頭苦干誰都會,只要你有很強的成功欲和旺盛的斗志,誰都可以一天十幾個小時甚至二十四小時對著電腦。可是關鍵是?
我們會不會在這個過程逐漸墮入那個“拉磨的驢”的可怕結局(這里只是比喻,^_^)。
? 為了避免這種可怕的結局,我們別無選擇,必須“抬頭看路”。但是怎么個“抬頭看路”法。我個人覺得首先必須明白“?
卓越”和“普通”的差別(至于優秀者屬于兩者特點兼有部分的中間人群,就不討論了)。
? 一般提到卓越者,我們很自然就想到這些詞“經驗豐富”、“技術牛人”、“踏實刻苦”、“高效”、“有規劃”、“有?
激情”、“自信但不驕狂”、“樂于分享”、“善于借鑒”...
? ?
? 而提到普通者,我們想到的又是這些詞“平凡無奇”、“得過且過”、“缺乏積極性”、“沒有明確規劃”、“效率低下?
”、“眼高手低”...
? 也許很多人開始有情緒了,不過我告訴你一個事實:任何進步、任何質的蛻變都有一個前提,即正視自己的弱點和缺陷(當然人無完人,卓越者不可能具備上面所有的優點,而普通者也可能具備某些卓越者的優點,比如踏實刻苦、有規劃、有激情)。
? 卓越者的特點之一“經驗豐富”,是來自他長期的歷練和積累,這點普通者是不可能在短期內能夠達到的。
? 卓越者的特點之二“技術牛人”,這要看牛人的定義,一般而言是指在某一方面或者幾個方面有比較深的造詣,即他們在?
這個方向或某幾個方向研究得比較深入。遇到這個領域的問題他一般都能迅速給出正確的解決方案,并能夠不斷完善之以應?
對不同的問題場景;有的問題即使一時找不到方案,也不會一籌莫展,而會根據自己的技術積累逐步分解,最終形成解決方?
案,并在解決問題后將此過程的所得所思“物化”成新的經驗加入自己的經驗庫中。這點我想普通者是毋庸置疑非常缺乏的?
,普通者在遇到一個問題后最迫切的是想著如何把它解決,解決了就OK了,這點也與普通者的積累不足有很大關系,而且有?
一些普通者不管遇到什么問題最先想到的是百度、谷歌或者論壇,然后最熟練的copy+paste代碼,并且一般也不會認真看看?
這些代碼是否真的適合這個場景或者這些代碼是如何解決問題的。解決問題之后,少部分人會把找到的代碼歸檔到自己的代?
碼庫里,更少部分的人才會去總結解決問題過程中收獲的經驗。
? 卓越者的特點之三“踏實刻苦”,他們中有的人為了了解Linux操作系統,愿意花時間去逐行研讀那數百萬的代碼;有的?
人為了理解一個底層技術細節,查閱論文無數(當然包括很多國外論文)和實驗無數;有的人可以為了一個“無關大體”的?
小bug,而逐層分析,最終發現可能是操作系統本身的一個漏洞或第三方庫中的一個bug。而普通者中有一部分人把《21天精?
通Java》(21天系列我不想多舉例,大家懂的...)、《一周教會你PHP》、《如何一個月薪上萬》這類書籍捧為圣經,當然?
也有更多的人像前面那位仁兄認為IT專業同其他行業(比如泥水匠)一樣可以通過短期的培訓馬上就業,立刻高薪。普通者?
中也許有人對Linux異常感興趣,但又有幾人讀過Linux內核源碼(當然我不是指每個人都要去讀,也不是指讀了才能成為卓?
越者,因為牽扯到很多因素:興趣、精力、理解力、技術基礎等等)。普通者當中又有多少人研讀過原版英文論文?而又普?
者當中又有多少人在得到問題的一個解決方案后就打住,而一點都不考慮性能、資源消耗以及系統可擴展性等因素。優秀的?
Web開發人員不僅會考慮Web頁面在各個瀏覽器下的兼容性問題,可能還會考慮終端設備因素(比如普通PC上的QQ和Android手?
機上的Web QQ)。而普通Web開發人員能考慮基本的FF、IE等主流瀏覽器兼容就不錯了,有的人甚至連字符編碼都沒有考慮過?
(我個人的真實經歷,那次一個名字以泰開頭的保險公司,具體名字忘了,說我獲得了他們公司的免費公交地鐵一年保險,?
說是和移動一起搞活動,抽取手機尾號為xxx開頭的一百名用戶;然后我去網上查了下這個公司,百度百科里發現還真有,而?
且建成至今已經有近20年了,然后點開它們的官方網站,按照之前柜員的說明找到那一項,一看傻眼了,用戶名密碼的中文?
亂碼了,出現幾個小方塊,當即把頁面關了)。有多少普通Web開發人員在設計網頁時會考慮Web頁面是否遵循W3C標準?又有?
多少普通者意識到代碼重構的重要性,是否認真研讀過這方面的經典書籍如《修改代碼的藝術》(既然經典就必然有其研讀?
價值)?如果在你看來編碼就是copy+paste,從來不看別人代碼如何實現,更別提自己“造輪子”,重構似乎的確很遙遠。
? 卓越者的特點之四“高效”,體現在他們將要處理的事務按輕重緩急分類,并且給自己訂的任務適度。能根據個人特點(?
如有的人上午精力旺盛就在上午做那些需要高腦力的活,而有的人是下午精力旺盛)制定出符合自己的計劃,能夠按質按量?
地完成任務。卓越者定期整理自己的事務,雖然這可能要花去一些時間,但比起所帶來的收益卻是值得的。而普通者中相當?
部分人在這方面是不足的。就定期整理事務而言,一次次會被他們以“太麻煩”為借口而pass掉,其實不整理只會越來越麻?
煩。而且不得不提,普通者常常將時間浪費在打開一個又一個網頁上,這里看到一段搞笑視頻,點開看看;那里看到一篇經?
典雷文,打開瞧瞧;還有那里有一篇《不得不看的人生50個忠告,不看后悔》,當然必須看了。時間就在不知不覺中流逝了?
(其實我也是受害者之一,所以我現在對那種“萬金油式”的文章標題是深惡痛絕)。
? 卓越者的特點之五“有規劃”,規劃自己的職業,規劃自己的生活。職業發展是經濟來源,生活規劃是為了讓自己活的更?
有樂趣,從而促進職業發展(好的心情、樂觀的生活態度應該是能促進職業發展的)。卓越者在規劃好了自己的職業或生活?
后積極實踐。而普通者要么壓根就沒有規劃,每天朝九晚五,要么是規劃著領到薪水后該如何如何,要么是糾結薪水怎么這?
么少啊,還談什么規劃啊,一點興致都沒啊!(當然也有少部分普通者有規劃的,因為卓越者不可能一開始就是卓越者,他?
們也是從普通者走過去的,我說的是大部分情況,因為卓越者畢竟是少數)而少部分有規劃的普通者,要么是不能堅持,讓?
規劃成為一紙空文。要么是按規劃實施一段后常常自我矛盾,糾結不已。比如張三為了讓自己有一個更強壯健康的體魄來面?
對“革命事業”,要求自己每天12點之前一定要睡覺(無特殊情況下),但是某天晚上他玩斗地主,玩的久了點,本來規定?
8:00-10:00要做的一項任務沒有完成,這時他可能會選擇直接睡覺,可能會熬夜完成任務,當然還有一種可能繼續玩會“斗?
地主”反正都已經完不成了,而離12:00還有半個小時呢,不如繼續玩。不管哪種情況他都已經偏離了自己的計劃(很多個計?
劃按照一定的邏輯組織起來就成了規劃),只要他一直這樣發展下去,規劃對他而言也會逐漸成為笑話。
? 卓越者的特點之六“有激情”,他們能夠為某個項目而廢寢忘食(當然我不建議這個,只是說明卓越者的激情程度),這?
個行業不乏這樣的例子,很多如今風靡全球的應用無不來自于此,比如Facebook、Flickr、Plants vs Zombie還有Linux(Linux Torvard在學生期間開發的最初原型,到如今為眾多開發者推崇,大家懂的。當然你會說因為他是天才,或許是,但是即使他145的智商,你有135的智商,這之間的差距也不是很大。傳奇不一定是由天才締造的,而要創造傳奇個人認為激情是不可或缺的。)。而普通者中的一部分人在大學期間做項目就抱著混的想法(前面那位仁兄就說過他在大學的唯一收獲就是“混混”二字),何來激情?何來將自己的創意實現為偉大的發明?
? 卓越者的特點之七“自信但不驕狂”,“高調做事,低調做人”,他們一貫的原則。面對任何一個新提出的問題,不管場?
景是熟悉的還是完全陌生的,他們都有足夠的自信面對,因為他們有底氣。而普通者在看過一本相關入門書籍后就以為這門?
技術已經掌握十之八九了,然后躊躇滿懷。這之中的典型體現就是一些基本編碼素養、常識、論壇基本禮儀的缺乏。比如有?
些人寫出的代碼可能成百上千行沒一個注釋,還得意地說:“瞧我這代碼多簡潔”。還有的人給變量命名全是x1,x2,x3...,?
因為他接觸的參考書里都這樣干的(萬惡的21天系列)。還有的人(主要是初學者)認為調試一點都不重要,寫出一大堆亂?
七八糟錯誤百出的代碼,然后晾到網上,說“主要邏輯都已實現,還有一些小bug,請各位幫忙解決”,其實調試代碼比寫代?
碼難多了,有人甚至說過“傻瓜都知道寫代碼”。事實也的確如此,我們每天說的話,寫的字其實也是一種代碼(誰能說不?
是?),只不過它們過于松散,缺乏必要的邏輯組織,所以我稱之為“未調試的代碼”,想想只要接受過小學教育的人基本?
的聽說讀寫都會,也就是說他們都會寫代碼,但是“調試代碼”卻不是每個人都會或者擅長的了。當然還有的人在論壇禮儀?
方面有待提高,發帖提問,別人的答案如果不滿意,要么說別人不知道不要在這里胡扯(其實別人能花時間看你的問題并提?
出自己的觀點,不管對錯你都要感謝別人),或者發了帖以后十天半個月不來處理(對別人嚴重不尊重的表現,不尊重別人?
的人也不能奢求別人的尊重),還有亂給分現象更是屢見不鮮。
? 卓越者的特點之八“樂于分享”,樂于把自己工作中體會到的一些實用的東西(當然不包括商業機密)分享給別人,有自?
己的個人技術博客,有寫博客或發帖回帖的習慣。而普通者則不用多說了,相當一部分只看帖不回帖,也很少發表什么博客?
。時間緊是最常用的說辭。
? 卓越者的特點之九“善于借鑒”,“山不辭土故能成其高,海不辭水遂能成其深”、“他山之石,可以攻玉”,借鑒之后?
內化為自己的東西。他們很清楚何時該利用現有的“車輪”,何時該造新的“車輪”。就好比賽車,如果引擎更新換代了,?
馬力變得更強勁,如果還用原有的輪胎,顯然不行,必須制造出新的輪胎與之匹配。
? 說了這么多,其實還沒說最關鍵的一點,普通者還有一個最大的致命缺陷——浮躁。正如前面仁兄所說,“浮躁的時代”?
、“快餐式教育”,他也是個浮躁的人。“若求卓越,必須淡定”。這是我諸多人生歪理中的一條。
? 部分普通者編程語言,學的純粹是語法;另外一部分學來學去一直在學如何應用這門編程語言的API。這樣有什么弊端??
打個比方。Ajax最初一般是由原生態JS實現的,通過XmlHttpRequest等等進行一系列的操作。而現在jQuery流行起來了,?
jQuery對Ajax的支持非常好,提供的API讓Ajax實現非常之簡單,如下:
$('#submit').click(function(){
var name = $('.uname').val();
var data = 'uname='+name;
$.ajax({
type:"POST",
url:"welcome.jsp",
data:data,
success: function(html) {
$('#message').html(html);
}
});
return false;
});[color=#008000][/color]
? 不管是通過POST方式還是GET方式提交Ajax請求都非常之簡單,而請求如果成功則返回信息賦給html參數,利用html參數?
可以很容易實現如自動補全、Ajax驗證等功能。jQuery提供的Ajax實現如此之簡單,那如果哪天jQuery提供Ajax的更簡化實?
現,這樣我們永遠只是追隨者(當然我不是鼓吹不用API,好的API能為我們提高效率)。而如果深入理解了Ajax的原理,或?
許你可以寫出個比jQuery支持更好的JS擴展庫,你就不再是一個疲于追隨者了。另外現在jQuery的一些插件(當然大部分開?
發者是外國人)也是非常強大,做出的效果都很酷很炫,但是你是否僅僅因為它很酷或很炫就把它用到你的網站上?基本在?
所有的jQuery插件項目問題反饋頁面,都有人反映各種各樣的問題。你對這些問題是否了解?將來某天你的網站可能因為這?
個插件的某個缺陷或漏洞而遭受攻擊并因此帶來經濟損失,你考慮過沒有?很多人學習C++,認為C++才是編程語言(我的觀?
點是編程語言沒有好壞,使用者水平有高低),其他的都不算(就像那句話“世界上只有兩種方法:oracle的方法和錯誤的?
方法”)。當你用拙劣的代碼寫出一個應用交給一個普通用戶使用時,用戶的系統自此毛病不斷,你是否應該為此負責(我?
認為每個開發人員都要時刻記住職業道德四個字)?學了C++,或者看了多少遍C++ Primer、C++ Programming Language,一?
點都不重要,重要的是你能否用C++寫出高效安全的程序。我記得我的一位老師說過:“寫程序盡量利用你已掌握的東西。”?
當你已掌握的東西足夠完成任務時,你最好不要去嘗試用那些你很陌生的但很新的東西(印象中《The C++ Programming ?
Language》中前面章節作者也提到過)。
? 另外一種很常見的現象是,普通者如果在日常開發工作中一直都是copy+paste,那么當他開發的系統出現問題時,他?
的對策一般是去網上找其他方案一個個試,直到解決為止。但是問題真的解決了嗎?他不知道,其他人也不知道,因為系統是?
他開發和維護的。打個不太恰當的比方,一雙拖鞋有左右之分,你順著穿能穿,反著穿,左腳穿右腳,右腳穿左腳也能穿,?
但是你不覺得別扭難受么?所以如果你的開發模式一直是copy+paste,那么你就不能想象DBA們在應對性能瓶頸時艱難的探索?
,也無法理解架構師們為什么要如此強調體系結構設計的重要性,那么你也永遠成不了優秀的DBA或者架構師。
? 最后不得不提下普通者的“跟風現象”,今年Android流行就一窩蜂地去學Android了,明年MTK發展前景不錯又轉戰MTK了?
,還美其名曰“這才叫IN(或與時俱進)”,到最后門門懂一點,無一精通。人的精力是有限的,想在每一個方面都深入研?
究是不現實的,新技術出來,可以涉獵,但是一定要有自己的核心發展方向。
? ?
? 寫到這里已經說得差不多了,文章該結束了。最后希望大家都能成為卓越的開發者,讓中國成為世界頂尖的IT強國,^_^。
?
?
?
?
?
http://topic.csdn.net/u/20110611/11/8a24efa6-9462-45d9-b37e-8cd96684cb53.html?40623
總結
以上是生活随笔為你收集整理的谈谈关于个人提升的一些思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淡泊明志,宁静致远
- 下一篇: 今天下午接到阔总编的电话