杨中科说给弟弟的话
【解惑】楊中科說給弟弟的話
剛才和我弟弟通電話聊了聊這一段時間的學習以及下一階段的學習規劃,我弟弟在讀大二,是計算機專業,他也是如鵬網上一個比較活躍的會員。今天和他聊電話,感觸頗多,倒不是因為我發現了新的東西,而是因為竟然連他都不相信我說過的一些我認為非常根本、非常核心的話,“連我的親兄弟都不信我說的話,那些在如鵬網上隨聲附和我、捧我臭腳的同學右有幾個真正信我說的話的同學呢?”,想到這里心里不禁一片悲涼。? ? 到底他說的那句話觸動了我呢,那就是“我現在C++語法學的差不多了,剛才買了一本C#的書,想寒假的時候看看C#,然后下學期C++、C#同步學。”我問他“你難道不知道我經常提醒‘不要在多門語言間徘徊,把一門語言玩熟了 其他語言都是紙老虎’嗎?”,他說“知道, 但是看畢業找工作都是招C#、Java的,招C++的特別少。”,我說“我說過多少次我自己的例子: 我大學大部分時間都是在搞Delphi,然后找工作前突擊了半個月的Java,然后就拿到了Java工程師的Offer,而且還是筆試成績第一名(楊中科:我的大學生活)。如果你現在什么語言都沒有學,你說看C#挺好,以后想找C#的工作,那么我就建議你去學C#就好了,因為那樣會‘一步到位’。但是你已經學C++半年了,剛把C++的基礎語法學了一個大概,又要去學C#,那你就又浪費了半年時間,等半年以后也許你又發現Java挺不錯,又去學Java的基礎,那你這大學四年就完全是在‘學語言’了。”
? ? 為了讓他更清楚的明白這個道理,我舉了一個例子:學游泳,很多人的目標都是蛙泳、自由泳、蝶泳、仰泳都會,那樣才酷。但是有的人學游泳就是練兩下蛙泳,練兩下自由泳,又練兩下蝶泳,折騰了幾個月,還是什么姿勢都不會。而有的人則是從蛙泳練起,把蛙泳游的很順以后,就有了‘水性’了,所謂水性就是“對水的感覺”,也許練蛙泳需要一個月,但是一旦把蛙泳練成了再學自由泳就很快了,如果一開始上來就蛙泳、自由泳一塊學,一個月以后很可能還是在亂撲騰。“同步推進”看似是效率更高了,可能會認為“同時學C++、C#,這樣以后我就兩種語言都會了”,但是其實學編程一開始都有需要一個“形成編程感覺”的過程,假設學會語言的基礎語法需要3個月,真正把語言玩兒到一個比較熟練的程度、找到“編程感覺”需要9個月,那么如果你一直只學一門語言,那么12月以后就等到達有“編程感覺”的程度了;而如果你是兩門語言一塊學,或者學完一門語言的基礎又學另外一門語言,那么你的基礎語法、“形成編程感覺”的過程都至少增倍了, 本想提高效率,反而事倍功半了。
? ? 遙想當年我大一大二的時候也走過類似的彎路,當年感覺Web開發“有前途”,因此放棄了學了幾個月剛有點感覺的VB,去學Web開發的語言,依次把ASP、PHP、JSP學了一個遍,但是最后仍然是什么都不會,只記得for循環、函數等一些模模糊糊的詞匯。反而是后來一門心思搞Delphi,而后又把Delphi里邊一個用來開發Web的IntraWeb的框架玩熟了,回頭再來看ASP、PHP、JSP, 發現其實無論什么Web語言,都是處理Form、Session、Request、Response、Cookie等這些東西,大同小異。我之前走過彎路,浪費了時間,希望同學們吸取我的教訓,不要再走這種彎路。
? ? 他問到“現在總是.net、.net的炒的那么火,學C#多好呀”。我說“學了一陣子C#你又發現‘現在總是J2EE、J2EE的炒的那么火,學Java多好呀’,你就變成了大學四年一直在學語言的‘語言專家’了。 按照火的程度,C#、Java已經是過氣的明星了,現在很多新語言也出來手舞足蹈了,如果你一直追星的話會累死你”。社會上某些人士出于自己的目的總是在炒作“大學學習要和社會保持”同步的輿論,適當的同步是可以的,但是如果總是追著社會上的流行路線跑,永遠學不到真東西, 想學唱歌不應該今天去聽張靚穎的演唱會、明天去聽F.I.R的演唱會,而是應該跟著中央音樂學院的教聲樂的過氣大媽來學;有人總是說IT行業‘技術更新太快’,其實我要說 IT行業技術更新一點都不快,因為技術的進步不是推翻性的,而是改良性的,一門新技術的推出是為了解決老技術的一些問題,但是他們的不同只有10%,剩下的90%的根基部分則是完全相同的,而且那10%的不同部分也是“相同的問題,不同的解決方式”,同一個目的不同的途徑的技術能有多大的差異性呢,很小很小。
? ? 我弟弟又問“我大學一直搞C++,那找工作的時候那么多C#、Java的職位我就放棄嗎?”我回答“別擔心,你一直玩C++,把C++玩熟了,找工作之前如果想應聘C#、Java的職位,可以到時候再找C#、Java的書對照性的突擊一下,學習的方式也會和初學的時候不一樣了, 只要對照一下C#和C++的異同點進行對照性的學習就可以了,你會發現大同小異,很快就可以從C++的高手變成C#的高手,照樣可以突擊幾天的C#而把那些自稱‘精通C#’的人打的稀巴爛”。
剛才在一個網站上看一個同學列出的學習計劃:
需要和打算學習的和要了解的:
編程語言:c#,Java,c,c++,jsp,php,Delphi,Python,ruby,perl,ActionScript3.0
數據庫:SqlServer、Oracle、MySQL、db2、PostgreSQL、SQLite、access
.net:wpf,Silverlight,winform,wcf,linq,mvc
html+css+JavaScript(jQuery)
軟件:vs2009,vs2010,blend,visual C++,C-Free,Photoshop,flash,Dreamweaver............
? ? 相信這樣‘偉大’的學習計劃是很多同學都列過的,也包括我。希望大家以后不要再犯這種‘大而不精’的錯誤,編程語言選一門足以,數據庫找一個就行,‘多多不善,浪費時間’。
C#、C/C++、Java……世上語言千千萬,不存在哪個語言好、哪個語言有前途之類的問題。如果你沒學過任何語言,那么你根據自己的意愿選哪門語言都可以,但是一旦選擇了就不要再 移情別戀, 用情專一的讓自己找到編程的感覺,以后就可以根據實際情況很輕松的 另尋新歡了。舉一個我以朋友說的例子,雖然太三俗,但是很形象:泡完一個妞再泡另外一個妞不難,因為泡第一個妞已經知道怎么取悅女孩子了,再泡第二個、第三個就駕輕就熟了;難的是同時泡好幾個妞,到最后只能是顆粒無收。
? ? 朱老師前兩天給我說了三個字“ 知信行”。知:知道這個道理;信:相信這個道理;行:照著這個道理去行動。“知信行”就是學習的三個層次,只知不信不如不知,只信不行不如不信,只有“知道、相信、行動”這個這是才真是你的。如鵬網上的一些關于‘一通百通’、‘ 不要在語言間徘徊’、‘ 堅持就是勝利’、‘越容易得到的越不值錢’等道理的文章是達到了讓同學們‘知’的程度,然后一些同學的案例證明了這些道理,則可以幫助你‘信’,但是‘行’沒有人能代替你,只能靠你自己了。
總結
 
                            
                        - 上一篇: Python 内置模块之 ConfigP
- 下一篇: 传智播客数据绑定和数据库开发基础(第四季
