中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

陳梓瀚:關(guān)于編程的胡扯

  寫于 2012-6-22

  博客光寫GacUI的Demo更新也好無聊啊。所以今天先換換口味,胡扯點(diǎn)別的。

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

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

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

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

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

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

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

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

  當(dāng)然,如果你不是一個喜歡寫代碼的人,那這個方法肯定沒有用,因?yàn)橹型痉艞壥裁吹奶嗔恕_@種時候,只能怪你沒緣分,設(shè)計(jì)模式不渡你了。如果你最后撐下來了,雖然你自己覺得你也花費(fèi)了相當(dāng)?shù)呐Γ莿e人反正是看不到你的努力的,就會開始覺得你有捷徑了。為什么呢?因?yàn)樾矢甙。瑫r間花得短啊。

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

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

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

  胡扯到這里也差不多了,這就是月經(jīng)貼,時不時,總是要發(fā)一下的。

it知識庫陳梓瀚:關(guān)于編程的胡扯,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 午夜免费在线电影 | 国产精品一区二区三区久久久 | 黄色av网站在线观看 | 操久久 | 欧美国产一区二区 | 在线男人天堂 | 国产成人jvid在线播放 | 人人插人人| 91精品国产乱码久久久久久久久 | 久久中文字幕视频 | 国产日韩一区二区三区 | 中文字幕亚洲免费 | 黄色在线免费播放 | 欧美一级在线 | 亚洲91视频 | 久久久亚洲成人 | 91久久精品一区二区二区 | 国产一区二区三区不卡av | 亚洲一区二区久久 | 久久新| 欧美日韩中文字幕 | 水蜜桃久久夜色精品一区 | 羞羞视频网站 | 欧美精品一区二区在线观看 | 日日夜夜精品视频 | 亚洲第一成人影院 | 国产在线播放av | 欧美日本一区 | 日本a在线| 亚洲福利av | 精品欧美色视频网站在线观看 | 91夜色在线观看 | 成年人精品视频 | 精品美女在线观看视频在线观看 | jlzzjlzz国产精品久久 | 精品九九九| 一区二区三区国产好 | 99国产在线| 国产日韩亚洲欧美 | 日韩免费看片 | 秋霞在线一区二区 |