小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于計(jì)算機(jī)專業(yè)的人如何學(xué)好編程

 Ding_GY 2010-07-24
 

  這篇文章是寫(xiě)給低年級(jí)的人的,已經(jīng)工作的就不用來(lái)看我廢話浪費(fèi)時(shí)間了。

     最近總是有人問(wèn)如何確定自己方向的問(wèn)題,說(shuō)是看到有的人在搞手機(jī),有的人在搞網(wǎng)頁(yè),有的人在搞游戲,還有其他的什么的,然后說(shuō)自己只懂得這么一點(diǎn)東西不知道該怎么辦之類的事情。我一直在一些做軟件開(kāi)發(fā)的群里面混,里面有很多學(xué)生,也有很多從業(yè)者。那些人對(duì)于人們?cè)诨A(chǔ)不夠扎實(shí)的情況下就“做各種各樣具體的項(xiàng)目”有兩種說(shuō)法,一種說(shuō)是浮躁,另一種說(shuō)是這樣開(kāi)闊眼界是好的。

     大學(xué)就四年。學(xué)校通常安排前兩年學(xué)數(shù)學(xué)英語(yǔ),然后大一學(xué)語(yǔ)言大二學(xué)數(shù)據(jù)結(jié)構(gòu)。到了大三有很多比較具體而且復(fù)雜的課程,然后就要找實(shí)習(xí),大四其實(shí)就是在找工作,課也沒(méi)有,衛(wèi)生也不檢查了,等于在租學(xué)校的宿舍住。

     于是在這短短的三年里面想在計(jì)算機(jī)那么多領(lǐng)域里面找到自己喜歡的,然后鉆研下去,最后還有所成就的話,還是比較難的。因此很多人經(jīng)常會(huì)看到自己周圍突然有兩三個(gè)人就干了點(diǎn)什么很有成就感的事情了,一問(wèn),以前學(xué)過(guò)的。這種人我也接觸了幾個(gè)。我有一個(gè)同學(xué)說(shuō)是高中的時(shí)候被稱為代碼狂人,給emule寫(xiě)了點(diǎn)代碼,然后還自己做了個(gè)即時(shí)通訊工具賣了出去。到了大學(xué)就一直在重寫(xiě)這個(gè)東西,最后實(shí)習(xí)就到騰訊去了。前幾天還遇到個(gè)人,說(shuō)是小學(xué)就在折騰flash里面的action script了,后來(lái)投靠perl,說(shuō)是一直到了大一才寫(xiě)了一個(gè)超過(guò)2000行的程序。我也沒(méi)去求證,只是覺(jué)得比較不可思議。

     于是我想,就照著那些傳統(tǒng)的路子先搞定一門語(yǔ)言(《C++Primer》),然后學(xué)數(shù)據(jù)結(jié)構(gòu)(《算法導(dǎo)論》),再去學(xué)點(diǎn)庫(kù)(《STL源代碼分析》《深入淺出MFC》),之后弄點(diǎn)設(shè)計(jì)模式(《設(shè)計(jì)模式》),最后寫(xiě)個(gè)某某管理系統(tǒng)(笑)什么的,也是無(wú)聊了點(diǎn)。竟然要學(xué)了那么多東西,才能弄出一個(gè)看得見(jiàn)摸得著的程序,也太考驗(yàn)人的意志力了吧。幾乎是個(gè)人都是從拖控件開(kāi)始的。那些一開(kāi)始就摸著黑白屏幕狂搞算法的人,要么是NOI出身,要么是ACM出身,然后對(duì)著幾道算法題樂(lè)此不疲。但是最后有所成就的,很少。我在學(xué)校認(rèn)識(shí)了那么多個(gè)ACM出身的,最后也就一個(gè)去了google。感覺(jué)風(fēng)險(xiǎn)還是有點(diǎn)大啊。

    但是反過(guò)來(lái)也是有問(wèn)題的。要是一開(kāi)始就從界面開(kāi)始弄,人也是很容易浮躁的。很多人因此就陷入了對(duì)花花世界的追求了(根據(jù)對(duì)群里面的人的統(tǒng)計(jì)),譬如說(shuō)特別關(guān)心怎么在ListView前面畫(huà)棵樹(shù)什么的。這種人里面,其中一些有追求的,最后都會(huì)沿著Windows SDK,再走到DDK,最后寫(xiě)驅(qū)動(dòng),一腳踏進(jìn)泥坑,從此不能自拔,當(dāng)然這些人也是少數(shù)。每當(dāng)有少數(shù)人人對(duì)著剩下的多數(shù)人說(shuō)跟“我今天實(shí)現(xiàn)了讓W(xué)ord不能打開(kāi)某某文件”差不多的這些事情的時(shí)候,他們兩眼大放光芒,然后就開(kāi)始跪求源碼,狂問(wèn)用了什么API,最后當(dāng)代碼終于到手的時(shí)候,就放進(jìn)之前精心準(zhǔn)備好的一個(gè)文件夾里面,封存萬(wàn)世,從此再也不去看了。當(dāng)然也有其他的版本,譬如說(shuō)老是下載書(shū),而且還是rar,然后從不解壓一樣。曾經(jīng)有這么一個(gè)人就在群上炫耀說(shuō)自己有多少多少G的電子書(shū)。我讓他上截圖,結(jié)果全是rar。根本就沒(méi)看嘛,他自己也承認(rèn)了。

     于是怎么看兩條路都是很有危險(xiǎn)的,這就是為了什么到了大四的時(shí)候,能學(xué)成的人總是不多的緣故。 太容易陷進(jìn)去了 。這是什么意思呢?人總是只對(duì)自己做得好的事情感興趣。對(duì)自己還沒(méi)做的事情感興趣那種是好奇,需要嚴(yán)肅對(duì)待。當(dāng)人終于做好了一件事情之后,就會(huì)一直不斷的鉆研下去,這當(dāng)然是好事。但是,從此只見(jiàn)樹(shù)木不見(jiàn)森林,以為全天下的編程就那一件事情,那當(dāng)然是要吃虧的。

     所以首先要開(kāi)闊眼界,知道世界上原來(lái)還有這么多的東西可以做。 在差不多知道編程是什么東西的時(shí)候,需要這個(gè)玩一玩,那個(gè)玩一玩 。不然就會(huì)看到旁邊的同學(xué)這個(gè)用java在手機(jī)上跑一個(gè)能告訴你1+1=2的東西,那個(gè)人用PHP+MYSQL弄了個(gè)留言版,看得唾液直流,心里發(fā)慌,說(shuō)自己對(duì)著C++的黑白屏幕弄了這么久居然連那點(diǎn)小玩意都做不出來(lái),自尊心很容易受到打擊的。

     于是在玩過(guò)了之后呢,要及時(shí)收手,就專門做一件事情好了 。因?yàn)檫@個(gè)時(shí)候自己已經(jīng)大概知道自己看見(jiàn)的東西差不多就是那個(gè)樣子,想做自己也做得出來(lái),看著別人寫(xiě)那些花邊的程序也就不會(huì)給自己施加太多壓力了。專門做一件事情的意思就是,選定一個(gè)方向,然后找書(shū),找人,看代碼,寫(xiě)程序。 譬如說(shuō)可以去弄圖形做游戲,也可以去弄腳本引擎做做編譯器,還可以跟著老師去搞什么數(shù)據(jù)挖掘啊嵌入式什么的 。對(duì)一個(gè)領(lǐng)域的深入研究最大的用處是可以讓自己接觸 復(fù)雜的問(wèn)題 。

     當(dāng)然,當(dāng)研究得深入了之后,程序就越寫(xiě)越大了,這個(gè)時(shí)候就會(huì)出現(xiàn)很多各種各樣的問(wèn)題了。譬如說(shuō)效率太低啦,程序一出錯(cuò)就要全盤推倒重來(lái)啦(這個(gè)還是比較可悲的),代碼太多很難組織函數(shù)啊類什么的啦,或者說(shuō)名字給你用光啦等等。這個(gè)時(shí)候就需要各種各樣的理論知識(shí)了,譬如說(shuō)數(shù)據(jù)結(jié)構(gòu)與算法,還有設(shè)計(jì)模式什么的。當(dāng)然講來(lái)講去也就這幾樣,因?yàn)椤斑@世界上沒(méi)有銀彈”,所以那些通用的東西必然不多,剩下的還是要靠在同各領(lǐng)域里面其他人的積累或者自己的研究才能最終解決的。

     上面所說(shuō)的可以做的各種各樣的事情還是偏向于理論化一點(diǎn),其實(shí)有一個(gè)學(xué)術(shù)上的領(lǐng)域還是不夠的,因?yàn)樽罱K一個(gè)程序在跟計(jì)算機(jī)打交道的時(shí)候靠的是輸入輸出,也就是俗稱IO的東西了。這究竟是什么呢?也就是說(shuō),知道那個(gè)地方放著你要的數(shù)據(jù),你要把它拿過(guò)來(lái)。你自己算出了什么,知道要往哪里放,你要會(huì)放。這里面包含的東西很多,譬如說(shuō)典型的,鍵盤和屏幕上的輸入輸出,網(wǎng)絡(luò)要用的Socket啦Web Service啦,那些看得見(jiàn)的窗口啦控件啦,讀寫(xiě)硬盤啦,還有其他什么的。這種 在某一平臺(tái)上的專用的API 都是至少要熟悉一種的。不然你光學(xué)會(huì)這個(gè)算法那個(gè)算法有什么用啊,譬如說(shuō)你想對(duì)一個(gè)圖片進(jìn)行壓縮,專門學(xué)了那個(gè)知識(shí),但是一個(gè)bmp放在硬盤上你卻讀不進(jìn)來(lái),那豈不沒(méi)意義了么。
 
     于是說(shuō)了這么多,無(wú)非就是剛開(kāi)始的時(shí)候要去見(jiàn)識(shí)世面,然后挑一個(gè)來(lái)慢慢研究,最后研究著研究著程序搞大了,就自然會(huì)碰到很多高級(jí)的問(wèn)題了。這個(gè)時(shí)候去解決了,其實(shí)本科需要你具備的水平其實(shí)也差不多達(dá)到了。

     所以很多人都洗心革面,終于開(kāi)始努力研究一個(gè)領(lǐng)域的問(wèn)題了。領(lǐng)域總是復(fù)雜的,這個(gè)時(shí)候會(huì)遇到很多編程上的問(wèn)題,譬如說(shuō)算法太復(fù)雜表達(dá)不出來(lái)啦,文件讀著讀著就掛啦,一不小心越界了之后造成了很多奇怪的問(wèn)題啦(C++)等等。這種關(guān)于調(diào)試的問(wèn)題,一般只能夠靠自己錯(cuò)得多錯(cuò)得離譜了,最后就成才了。當(dāng)然前人也總結(jié)出了經(jīng)驗(yàn),寫(xiě)了本叫《 Why Programs Fail 》的書(shū),想看的話可以自己去下載。其次, 具體的庫(kù)總是有很多書(shū)和文檔的,沒(méi)事也要多看點(diǎn) ,譬如說(shuō)用Visual Studio的人都得把MSDN給裝了。

     話也差不多說(shuō)完了,雖然我自己也覺(jué)得這篇文章比較虛,因?yàn)檫@也是“通用的東西”。具體自己該怎么辦自己得好好想想。我就把這篇東西獻(xiàn)給現(xiàn)在大一大二那些還在迷宮里轉(zhuǎn)的弟弟妹妹了,要是有什么特殊的疑難雜癥的話,就私底下聯(lián)系我吧。

     總之,無(wú)論什么時(shí)候,手頭上都要留有一個(gè)可以研究的問(wèn)題才好。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多