• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-341  評論-2670  文章-0  trackbacks-0
                博客光寫GacUI(www.gaclib.net)的Demo更新也好無聊啊。所以今天先換換口味,胡扯點別的。

                一年一度的高中畢業(yè)生填簡歷的日子即將就要到了,又有很多人問計算機專業(yè)的事情。其實我從心底里覺得,高考后才來問這個,已經(jīng)完了一大半了。當(dāng)然另一小半十分有前途的人可以在大學(xué)四年趕上來,不過估計他們還是要讀個研究生,才能把自己訓(xùn)練成能用的碼農(nóng)。

                編程是一件很難的事情。當(dāng)然我的意思跟那篇著名的《編程是一件很難的事情》不一樣。想把代碼寫好,本來就是一件非常困難的事情。我大三的時候訓(xùn)練一個大一的老鄉(xiāng),就光是C++,長達四年后她還搞不清楚模板元編程究竟是什么。而且還有C語言學(xué)會了轉(zhuǎn)C++會把壞習(xí)慣帶進來啦,C++的人轉(zhuǎn)做C#之后發(fā)現(xiàn)很多C++的好技巧到了C#都只會讓程序變得更慢啦,很多寫動態(tài)語言的人不理解類型的好處還在那里胡扯啦,還有C#和javascript明明放著大好的函數(shù)式風(fēng)格不用,非要把代碼寫的超長(本來光是這樣沒什么問題的,只是有某些人不肯學(xué)習(xí)新知識)??梢姡退惆炎约河?xùn)練了好多年,最終進入了工作崗位,想把代碼寫好,也是一件非常困難的事情。

                當(dāng)然有些人說,如今只有產(chǎn)品做得好才能賺錢,代碼寫的好有個屁用。這只能是人各有志,有些人就不喜歡鉆研代碼,這本來也沒什么。但是這些人老是跳出來忽悠別人,也只會讓編程變得更難。只是幸好,我的單位并不會跟某些單位一樣說一些“把代碼寫得那么好有什么用,搞到我們還非得學(xué)東西才能看你的代碼,趕緊做點新feature啦”的這種話,我已經(jīng)覺得很好了。

                寫得好這個東西還是比較抽象。我認為其中一條就是代碼要好維護。我一直以為,只有代碼寫得好維護,好改,清晰易懂,這樣加新的功能才會容易,不出事情,順利發(fā)布軟件。后來我發(fā)現(xiàn)我錯了,騰訊不也是QQ一版一版的發(fā)嗎,原來加班也是一種方法,啊哈哈哈。如果在一個單位里面,不加班別人就會找你麻煩的話,我相信你也不會花心思把代碼寫好的,反正都要加班。

                不過對于志向就是寫代碼的那一些人,最好還是不要受到這些外來信息的干擾。最近跟我們組里的一個test manager聊天,他是一個菲律賓人,說是從紙帶時代開始就寫代碼了(不過看起來好年輕……),工作的時候還覺得C語言是一個嶄新的語言。后來他跟我說,如果一個人有志向與,代碼一條路走到黑,最好就去學(xué)習(xí)一下怎么當(dāng)architect。他說道,Architect的知識架構(gòu)是由各種pattern組成的,然后就說了自己年輕的時候的很多故事來作證這個道理。然后還講了微軟的其中一個創(chuàng)始人到現(xiàn)在還堅持一線寫代碼的事情,不過沒告訴我是誰。

                在這之前,剛好MSR的Daan Leijen因為來北京參加programming language相關(guān)的conference,就來我們這里參觀了一下。后來我看他做過GUI,做過parser combinator,發(fā)明實現(xiàn)過語言,就前去搭訕,結(jié)果發(fā)現(xiàn)他讀書的時候的導(dǎo)師竟然是Erik Meijer。按照他的話說,“then we are connected”,如果說成中文,就是有緣分吧。接著就跟他討論了一些parser combinator和類型系統(tǒng)之類的東西。我說我之前也搞過這些東西,最后還貢獻了一部分給公司,換了個組之后還開了講座什么的。他講到他讀書的時候,也是學(xué)校沒教自己自學(xué)的這些東西,后來周圍也沒什么人做,但是并沒有讓他喪失動力。然后就說了一句話讓我印象很深刻:“原來你也做這些東西啊,我應(yīng)該可以看到為什么你要從產(chǎn)品組跳到MSRA來了。”他直到今天,頭發(fā)都基本上掉光了,還在那里繼續(xù)研究programming language的東西,還給了我?guī)灼撐?。我覺得很好,人就該像他那樣。

                有些時候,人就得有那個信念,才能把可行但是難度大的東西,也最終搞出來。我自己寫了11年的程序,其實并沒有接觸過十分廣泛的東西,因為很多時間都花在重寫我的一些idea上面了。譬如說編譯器就寫了五六個,GUI庫就寫了八遍,還有些雜七雜八的。不過從這個過程之中,可以明顯感覺到自己什么時候比以前更進一步。這種signal有很多,譬如說當(dāng)你決定要添加一個比較復(fù)雜的功能,也可以迅速知道怎么做而不用動到架構(gòu)啦;譬如說你覺得你的代碼越來越順眼啦;譬如說你因為架構(gòu)不行決定重寫的時候,你發(fā)現(xiàn)前一個版本的代碼可以撿起來繼續(xù)用的部分越來越多啦。

                寫到這里,我想起很多人都問過我,程序要怎么寫才能寫得好,或者說設(shè)計模式要怎么寫,之類的問題。如果把學(xué)習(xí)編程花費的精神代價做標準的話,捷徑是沒有的。但是如果僅僅把時間作為標準的話,捷徑顯然是有的。怎樣才能加速你學(xué)習(xí)的過程呢?答案就是,先寫再看書。對于像編譯原理這種略微高深的知識,總要自己寫過幾遍,吃了一些苦頭,才能知道為什么書里非要把算法那么設(shè)計結(jié)構(gòu)那么安排。對于像設(shè)計模式這種需要大量經(jīng)驗才可以領(lǐng)悟到的知識,如果你從來沒獨立寫過一個上萬行的程序,你覺得你能理解設(shè)計模式在講什么嗎?我覺得這種時候能做的也就是背下來,理解什么的都是扯淡。諸如此類,學(xué)習(xí)程序,如果要加速那個過程,肯定要花大量的時間寫代碼。當(dāng)你把項目做得越大、越復(fù)雜、算法越扭曲、界面越華麗、尺寸已經(jīng)大到你覺得不學(xué)習(xí)新的方法論就肯定會讓代碼失控的時候,這個時候你來看設(shè)計模式的書,保證是每看到一個模式都覺得人家說到你心坎里去了。那你不僅可以迅速理解,而且以后還可以不由自主的想起來使用它。

                當(dāng)然,如果你不是一個喜歡寫代碼的人,那這個方法肯定沒有用,因為中途放棄什么的太多了。這種時候,只能怪你沒緣分,設(shè)計模式不渡你了。如果你最后撐下來了,雖然你自己覺得你也花費了相當(dāng)?shù)呐?,但是別人反正是看不到你的努力的,就會開始覺得你有捷徑了。為什么呢?因為效率高啊,時間花得短啊。

                光寫代碼也是沒用的。同人于野一篇講成年人還能不能進步的博客說得很好,知識分為舒適區(qū),學(xué)習(xí)區(qū)和恐慌區(qū)。舒適區(qū)的意思就是,你很容易就可以做完。學(xué)習(xí)區(qū)的意思就是,你需要花費大量的智力才可以做完??只艆^(qū)的意思就是,你根本不知道如何下手。當(dāng)你在為了練習(xí)編寫大量的代碼的時候,你要盡量把題目都安排在學(xué)習(xí)區(qū)這里,這樣才能讓你進步快的同時,還不會被問題打倒,可以繼續(xù)積累成就感了。

                學(xué)生做這個最方便了,工作之后,如果剛好遇上個黑心公司要你天天加班,你反而沒時間做學(xué)習(xí)區(qū)的內(nèi)容了,公司給你的肯定是舒適區(qū)的苦力活。

                說到這里,如果你還有時間練習(xí)的話,千萬不要去想:“我每一個程序都要跨平臺”,“我只做這個語言”等等。反正將來,語言你都要會,平臺的差異你都要知道,為什么要斷送自己了解這些東西的機會呢?你真的以為不知道垃圾收集的原理,和一些底層的可以通過C++的練習(xí)而得到的的操作,你真的可以在某些關(guān)鍵時刻操縱好C#嗎?當(dāng)然有些人會覺得,我估計一輩子不會遇到這些問題的,所以我還是不管他了。人各有志嘛,C#不渡你,也是你自己的事情。如果你真的可以一輩子都在一個平臺上用一種語言做同一種程序做到退休,那真是幸福的生活啊。

                胡扯到這里也差不多了,這就是月經(jīng)貼,時不時,總是要發(fā)一下的。
            posted on 2012-06-21 09:59 陳梓瀚(vczh) 閱讀(10360) 評論(16)  編輯 收藏 引用 所屬分類: 啟示

            評論:
            # re: 關(guān)于編程的胡扯 2012-06-21 17:37 | Richard Wei
            不錯,正在為平臺而煩惱,支持一下  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-21 21:28 | Pear
            你的博文被光榮登上cnbeta了。。  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-21 23:56 | vczh
            @Pear
            還把來源給去掉了,不過我發(fā)現(xiàn)博客園比這里更活躍啊  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯[未登錄] 2012-06-22 04:41 | 張東升
            有道理,學(xué)習(xí)了。  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-22 04:53 | lwch
            哎~~做產(chǎn)品真的是件很痛苦的事情~~  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-22 10:15 | 張振渠
            師兄的年度帖~
            先寫后看書用的時間真的好多。。試錯的成本高~  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-22 17:29 | 春秋十二月
            做研究當(dāng)科學(xué)家曾是我兒時的夢想,雖然年少曾經(jīng)輝煌而后又曲折坎坷,盡管國內(nèi)大環(huán)境不好,但我從沒有放棄努力,而是愈戰(zhàn)愈勇,因為你不僅是我的榜樣,也應(yīng)該是所有有理想有志向做技術(shù)的一批人的榜樣。如果大多做技術(shù)的人都能像你這樣,中國軟件何愁沒核心,何愁不強大?!  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-22 18:13 | vczh
            @張振渠
            上學(xué)的時間不是成本,工作才是  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-22 18:16 | vczh
            @張振渠
            后期的加速是要是要前期的成本的,趁著讀書的時候搞定他
              回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-24 07:17 | 小魚兒
            怎樣才能加速你學(xué)習(xí)的過程呢?答案就是,先寫再看書。對于像編譯原理這種略微高深的知識,總要自己寫過幾遍,吃了一些苦頭,才能知道為什么書里非要把算法那么設(shè)計結(jié)構(gòu)那么安排。對于像設(shè)計模式這種需要大量經(jīng)驗才可以領(lǐng)悟到的知識,如果你從來沒獨立寫過一個上萬行的程序,你覺得你能理解設(shè)計模式在講什么嗎?我覺得這種時候能做的也就是背下來,理解什么的都是扯淡。諸如此類,學(xué)習(xí)程序,如果要加速那個過程,肯定要花大量的時間寫代碼。當(dāng)你把項目做得越大、越復(fù)雜、算法越扭曲、界面越華麗、尺寸已經(jīng)大到你覺得不學(xué)習(xí)新的方法論就肯定會讓代碼失控的時候,這個時候你來看設(shè)計模式的書,保證是每看到一個模式都覺得人家說到你心坎里去了。那你不僅可以迅速理解,而且以后還可以不由自主的想起來使用它。


            這句話經(jīng)典啊,雖然這樣花的代價很大,但這個只是短期。如果你長期堅持。我想每次付出代價越來越小,獲得回報越來越大。  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-24 22:48 | 裝配腦袋
            前來支持~  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-25 08:51 | 朱峰everettjf
            學(xué)習(xí)了,看到之后有些感觸。  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-25 17:26 | LOGOS
            老板,怎么沒有+1按鈕啊  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-25 21:49 | phoenixbing
            絕對是肺腑之言。有些段落字字珠璣。  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-06-27 18:57 | Flashboy
            @phoenixbing
            人自己都說胡扯了。 呵呵  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2012-07-19 20:50 | wxd
            ”胡扯到這里也差不多了,這就是月經(jīng)貼,時不時,總是要發(fā)一下的?!?br>既然是“月”就不能“時不時”這樣就成為了“不調(diào)”  回復(fù)  更多評論
              
            # re: 關(guān)于編程的胡扯 2013-10-31 01:25 | cottyard
            “先寫再看書”太模糊了,沒有說明具體做法,我覺得可以是先寫一點,然后略看一遍書,懂的吸收不懂跳過,然后寫很多,寫寫看看,最后再狂看。。。  回復(fù)  更多評論
              
            久久综合九色欧美综合狠狠| 国产欧美一区二区久久| 99久久精品午夜一区二区| 久久综合一区二区无码| 久久久久久久综合综合狠狠| 国产精品美女久久久久久2018| 国色天香久久久久久久小说| 天堂久久天堂AV色综合| 无码国内精品久久人妻| 9久久9久久精品| 国产精品久久国产精品99盘| 国产精品久久久久久影院| 久久免费线看线看| 久久久WWW免费人成精品| 久久久网中文字幕| 2021国内精品久久久久久影院| 国产69精品久久久久观看软件| 亚洲国产精品久久久天堂| 精品久久久久久久久午夜福利| 亚洲国产精品热久久| 日日狠狠久久偷偷色综合0| 麻豆av久久av盛宴av| 精品久久久久久无码中文字幕一区 | 影音先锋女人AV鲁色资源网久久| 久久精品国产99久久久古代| 精品无码久久久久久尤物| 国产福利电影一区二区三区久久久久成人精品综合 | 99久久超碰中文字幕伊人| 亚洲国产精品久久久久久| 久久久久国产一级毛片高清板| 色天使久久综合网天天| 99久久99久久久精品齐齐| 欧美一级久久久久久久大| 久久精品国产亚洲AV嫖农村妇女| 日本三级久久网| 久久久久人妻一区二区三区vr| 久久福利片| av无码久久久久久不卡网站| 亚洲国产成人精品女人久久久| 国内精品久久久久伊人av| 久久无码中文字幕东京热|