<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 個人篇:從小工到能手 工作的日子里,每天都會八點多到公司,邊點東西邊看看Google Analytics,看看昨天博客有多少訪問量,吃完了就寫寫代碼刷刷Github。到了九點多,人差不多來齊了——我們不打卡,就開始了上午的工作。中午的時候會趁著午休的小間隙翻譯點書,或者寫點代碼,寫會文章。晚上吃完飯,走到家里休息會兒就八點了。看看書,寫寫代碼,一天就過去了。 生活似乎變成了流水帳,不會發生什么特別大的變化,沒有特別大的故事。日復一日的單調而又不無聊,周末也是碼碼字、寫寫代碼、看看書,玩局《文明》、看部電影或者陪女朋友出去吃好吃的就過去了。 > 上即是下,輸出即是輸入 在你寫過了很多的代碼之后,你也許也發現了一些神奇的事情——即使你寫了再多代碼,你的能力并沒有多少提升。人們通常稱之稱為瓶頸。這不禁讓人想起經濟危機的時候,有的國家發起了戰爭,有的國家開始變革,有的則無為而治,每況愈下。有時候我們發現不了我們有更好的選擇。 ### 編程同寫作,寫代碼只是在碼字 看到一篇文章[《We Are Typists First, Programmers Second》](http://blog.codinghorror.com/we-are-typists-first-programmers-second/),日期是2008年,好早的一篇文章。當現在打算以一個新人的身份重新進入編程領域,或許是受《重來》的影響,或者只是在重新思考——我們究竟應該如何去編程。 ### 寫代碼只相當于寫字 > ?也許這是一篇軟文 編程這件事情實際上一點兒也不難,當我們只是在使用一個工具創造一些東西的時候,比如我們拿著電烙鐵、芯片、電線等去焊一個電路板的時候,我們學的是如何運用這些工具。雖然最后我們的電路板可以實現相同的功能,但是我們可以一眼看到差距所在。 換個貼切一點的比喻,比如燒菜做飯,對于一個優秀的廚師和一個像我這樣的門外漢而言,就算給我們相同的食材、廚具,一段時間后也許一份是誘人的美食,一份只能喂豬了——即使我模仿著廚師的步驟一步步地來,也許看上去會差不多,但是一吃便吃出差距了。 我們還做不好飯,還焊不好電路,還寫不好代碼,很大程度上并不是因為我們比別人笨,而只是別人比我們做了更多。有時候一種機緣巧遇的學習或者bug的出現,對于不同的人的編程人生都會有不一樣的影響(ps:說的好像是蝴蝶效應)。我們只是在使用工具,使用的好與壞,在某種程序上決定了我們寫出來的質量。 寫字便是如此,給我們同樣的紙和筆(ps:減少無關因素),不同的人寫出來的字的差距很大,寫得好的相比于寫得不好的 ,只是因為練習得更多。而編程難道不也是如此么,最后寫代碼這件事就和寫字一樣簡單了。 剛開始寫字的時候,我們需要去了解一個字的筆劃順序、字體結構,而這些因素相當于語法及其結構。熟悉了之后,寫代碼也和寫字一樣是簡簡單單的事。 #### 學習編程只是在學造句 ~~~ ?多么無聊的一個標題 ~~~ `計算機語言同人類語言一樣`,有時候我們也許會感慨一些計算機語言是多么地背離我們的世界,但是他們才是真正的計算機語言。 計算機語言是模仿人類的語言,從 if 到其他,而這些計算機語言又比人類語言簡單。故而一開始學習語言的時候我們只是在學習造句,用一句話來概括一句代碼的意思,或者可以稱之為函數、方法(method)。 于是我們開始組詞造句,以便最后能拼湊出一整篇文章。 #### 編程同寫作 > ?編程同寫作,這是一個怎樣的玩笑?這是在諷刺那些寫不好代碼,又寫不好文章的么 代碼如詩,又或者代碼如散文。總的來說,這是相對于英語而言,對于中文而言可不是如此。**如果用一種所謂的中文語言寫出來的代碼,不能像中文詩一樣,那么它就算不上是一種真正的中文語言。** 那些所謂的寫作邏輯對編程的影響 - 早期的代碼是以行數算的,文章是以字數算的 - 代碼是寫給人看的,文章也是寫給人看的 - 編程同寫作一樣,都由想法開始 - 代碼同文章一樣都可以堆砌出來(ps:如本文) - 寫出好的文章不容易,需要反復琢磨,寫出好的代碼不也是如此么 - 構造一個類,好比是構造一個人物的性格特點,多一點不行,少一點又不全 - 代碼生成,和生成詩一樣,沒有情感,過于機械化 - 。。。 然而好的作家和一般的寫作者,區別總是很大,對同一個問題的思考程度也是不同的。從一個作者到一個作家的過程,是一個不斷寫作不斷積累的過程。而從一個普通的程序員到一個優秀的程序員也是如此,需要一個不斷編程的過程。 當我們開始真正去編程的時候,我們還會糾結于“**僧推月下門**”還是“**僧敲月下門**”的時候,當我們越來越熟練就容易決定究竟用哪一個。而這樣的“推敲”,無論在寫作中還是在編程中都是相似的過程。 > 寫作的過程真的就是一次探索之旅,而且它會貫穿人的一生。 編程只是在碼字,難道不是么! > 真正的想法都在腦子里,而不在紙上,或者IDE里。 ### 寫作 ### 寫作驅動學習 在軟件開發領域有這樣的幾個名詞 - TDD。測試驅動開發(Test-driven development)是極限編程中倡導的程序開發方法,以其倡導先寫測試程序,然后編碼實現其功能得名 - BDD。行為驅動開發(Behavior-Driven Development)是一種敏捷軟件開發的技術,它鼓勵軟件項目中的開發者、QA和非技術人員或商業參與者之間的協作。 - DDD。領域驅動設計(Domain-Driven Design)的一個核心的原則是使用一種基于模型的語言。 而最近我處在于一個尷尬的位置:`寫作驅動學習`(`Write-Driven Learing`)。開始之前我找到了一個相似的概念,`數據驅動學習`(Data-driven Learning)。 當我來到了一家卓越的軟件公司時,開始有了點所謂的`騙子綜合癥(imposter syndrome)`(即常常會發現所有一起共事的程序員都比自己聰明、比自己有天份、比自己有才能),幸運的是并沒有持續太多的時間。只是已經有了所謂的`21天效應`(在行為心理學中,人們把一個人的新習慣或理念的形成并得以鞏固至少需要21天的現象,稱之為21天效應。這是說,一個人的動作、或想法,如果重復21天就會變成一個習慣性的動作或想法。),在剛開始的時候里不斷地學習,以減少這種所謂的`綜合癥`。然而,在這時已經養成了寫作的習慣。 在過去的六個月里: | 時間 | 寫作數量 | |-----|-----| | 2013.12 | 27 | | 2014.01 | 24 | | 2014.02 | 12 | | 2014.03 | 29 | | 2014.04 | 49 | | 2014.05 | 25 | 在我在學習更多東西的時候,我玩了更多的東西。而在這時候因為網站流量的關系,我開始寫作記錄更多的東西。而在那之前的半年里,也就是2013.06~2013.11的文章數加起來才21. 于是在其他程序員開始寫程序的時候我開始寫作,我得好好想想今天要什么,正如那些測試人員要開始寫測試那樣。于是,就有了`寫作驅動學習`(Write-Driven Learning)。 **寫作驅動學習的優點** - 對于我們所要學習的東西,我們可以掌握得更深入,因為我們需要去給別人解釋。 - 除去收獲所學習的東西,我們還可以有副產品——博客。 - 我們在以另外一種方式思問題。 - 我們在不斷地對自己知識總結,對自己知識的一個強化。 - 當然了這是我們的筆記。 **寫作驅動學習的缺點** - 可能會花費更多的時間,在諸如寫作這點事情上。 - 有時學習的結果是為了寫作。 - 付出不一定有相應的回報。 做為一個獨立博客的作者來說我開始在不斷地堅持寫作,而唯一的動力源是來自于因為有更多的訪客。要堅持寫博客可能不是一件容易的事,但是現在似乎做到了,轉變成一種`寫作驅動學習`。 **寫博客的動力** 對于我來說寫博客的動力應該是下面這些: - 對于SEO的學習。 - 成為Full Stack的必經之路。 - 更好地去理解WEB經營。 - 提高自己的綜合能力 - 分享知識與經驗。 - 可以認識更多的人。 - 可以被發掘。 ### 閱讀 看過了很多的技術書籍,到了今天,似乎對技術書籍失去了盼頭。過去,因為是在學校的關系,上課只好帶著書過去,現在工作了看書的時間越來越少,但是看的書似乎沒有比原來少。只是看書的內容變了,以前看的是技術書籍,現在懂的技術多了,看的類型變成了理論類型的。而我本身是更喜歡實踐的類型,于是到了今天技術似乎沒有想象中的重要。 ### 業務與技術 在學校的時候,由于接的一些單子數量比較少,三天打魚兩天曬網,可以有更多的時間放在技術的學習上面。或者說,當時的學習是目的性不強的學習。受一些客戶的影響,當時我們所要做的一些技術方面的東西,也是被驅動著去學的。 工作的時候,主要的東西也是受業務驅動。換句話說,不論在哪我們都是要以營利為目的去寫代碼。只有在Github上寫代碼可以自由自在,換句話來說,這也是寫博客和寫書的區別。 - 作為一本書的作者,我們需要將我們想講述的東西變得簡單一點。有時,我們不得不去重復一些內容,以便讓我們的讀者讀懂我們的思想。這就是我們的主要業務——寫作,最好的寫作是可以按自己的想法而來,而不是讀者想要什么我們給他們什么。然而,我們也需要去考慮讀者的感受。畢竟,這時可以給我們帶來收入。 - 作為一個博主,我總是自己想寫些什么就寫什么。我需要寫點什么就寫點什么,這就是我們的自主。我們可以不需要去重復一些內容。而且相對于寫書來說,我們可以不斷發布我們地新版本的博客。博客可以是我們的筆記,于是我們想要什么就給自己什么。我們不需要考慮太多讀者的感覺。畢竟,這算是一種額外的收入。 于是,我們回到技術與業務上。這也是我們在Github上寫代碼和項目上寫代碼的區別。 - 工作上寫的代碼,絕大多數是以業務為驅動的。有時,我們甚至會抗拒某些功能的代碼,至少從心里上不會認可這樣的行為。然而,在業務上卻是受歡迎——比如廣告。我們寫的代碼多數時候是受約束的,這樣也就意味著我們可以寫出更好地代碼。只是當我們有太多優先級比較高的功能時,我們寫的代碼就會越來越糟。我們沒有時間去重構,沒有時候去寫出更好地代碼。正如:`如果我有更多的時間, 我就能給你寫更短的信了`。 - [Github](#)上的代碼。總是可以隨心所欲地寫,我想有這個框架,用這個數據庫。我們可以在自己的項目上選擇需要的功能,就像Linus一樣,可以決定Linux內核需要怎樣的功能。這時,我們沒有業務驅動,我們可以寫作更好地代碼。我們總會試著去重構我們的代碼,因為我們有足夠的時間。 只是我們靠工作來賺錢,靠Github來保持熱情。雖然,多數時候對工作上的代碼很有熱情,比如某些有挑戰性功能。而我們靠Github來保持更高地熱情,不是么? ### 說說技術書籍 多數時候我們看書是靠興趣,少數時候我們是靠技術上的需要。于是,作為一個興趣廣泛的孩子,我有一堆書,多到我不想去統計到底有多少。 有一天,我發現我的書架上擺滿了太多關于技術的書籍。 于是有時,我開始向一些非技術類的書籍靠攏。畢竟,**了解活著的意義,有時候比更好地活著來得有意義。** ### 如何寫技術書籍 這是一個簡單而又有趣的話題,如果我們寫關于某方面技術的話,我們我想我們要寫關于這方面的書籍唯一缺少的就是恒心。因為我們在這上面工作了一些時間,我們有足夠的能力去寫一本書。當你發現一本書上面的所有知識都是你會的時候,你也有能力寫這樣的一本書。但是你真的會去寫么,如果每天你都想著把睡懶覺的習慣戒掉的話,這可能是一件很能的事情。這需要持之以恒地力量,所以在那之前需要好好地去評估一下這可能性。 聽過不少關于技術方面的講座等等,多數都講得比較顯淺,并不是演講者的水平問題。而是如果演講者講得太深的話,那么多數的人就聽不懂,也就不會有興趣。聽上去,你似乎是一個NB的人物,僅些而已。于是如果我們把一本技術書籍寫得復雜的話,那么受眾就少了,肯看的人就更少了。很難去了解到底有多少出版社真的愿意去出這樣的書,于是多數的技術書籍的主要對象都是那些初學者或者中級。 于是開始慢慢去思考,我們是要寫更多的代碼,還是要看更多的書。只是有時可以少看一些技術,我們真的需要去了解一些不在用的技術嗎?我們把一門語言學得再好,如果用不到的話,是不是只能用來聊天? ### 持續 如果說`持續交付則是一種對卓越的追求`,那么`持續學習應該就是追求軟件卓越`。 如果說`持續集成是一種軟件開發實踐`,那么對于技術人員來說——`持續寫作應該就是持續學習的實踐` 生活總會遇到壓力,來自工作上的也好,來自對于技術上的興趣也罷,我們需要持續來斷地學習。沒有一直能立于不敗的方法,在傳說中的武林上也是如此。 對于持續學習來說,通常會有以下的 - 閱讀 - 編程 - 寫作 有意思的是持續學習有額外的好處便是 - 持續學習可以降低危機感 ### 持續閱讀 持續閱讀對于想提升自己的人來說是必須的。 #### 如何成為武林高手 看過如此多的金庸、古龍小說我們都會發現有那么多的人都在追求武功上的卓越,有的走火入魔了,有的鋌而走險殺人放火,暫且不討論這些。我們簡單的以大部分的主角為例,大部分的主角自小就練得一手好武藝,少部分除外,而他們通過會比前輩厲害,只是因為我們看了前人的說,現在也是如此。 **20年前要建一個淘寶怕是沒有兩三個月十幾個是不行的,但是今天要建出原來淘寶的模樣,也許一個人單槍匹馬一兩天就能搞定了,還能上線。** 有意思的是武林小說的武林秘籍少之又少,正常情況下能學到的或許就是教科書上的種種。而現在,如果我們要學習`UX`的話,我們很容易可以從亞馬遜上拿到一個書單,又或者是某個博客里面列舉出來的:《用戶體驗要素》、《交互設計沉思錄》、《怦然心動——情感化交互設計指南》等等。 我們可以更加方便快捷地獲取我們所需要的知識從書上、網上等等。 `閱讀更多的書籍是持續學習的基礎。` 總會聽到有些人在工作之余看了更多的書,在某種情況下來說是有意義的。我們需要不斷地去閱讀。 ### 持續編程 編程算是一個開發人員工作時一直在做的,而對于工作之后來說,到底還會有多少人繼續編程就是一個有意思的問題。 對于一個有興趣的程序員來說,工作和興趣都是分開的,可以將工作視之為無味的東西,但是休息時間呢?可以用來創造自己覺得有意義的東西,可以用來認識更多志同道合的人,對于不滿現狀的人更是如此,或許為自己創造了更多的機會。 記得 [ThoughtWorks](http://www.thoughtworks.com) 電話面試的時候,有一項就會問[Github](http://www.github.com) 賬號(ps:我的github賬號是 [gmszone](https://github.com/gmszone)。如果工作之后編程,不應該是為了工作而編程,應該為了興趣而編程,或者其他。如果沒有時間,是不是因為加班了,對于剛開始養家糊口來說加班是沒有辦法的,但是如果不是的話,又沒時間,是不是…… ### 持續寫作 對于一個技能人員來說,寫作可能不是一件有意思的事,但是也不是一件很難的事,沒有必要將大量的文字用文本表示。寫給其他技術人員看的,有時候更多的是代碼、思路、圖。寫作對于學習的意思怕是有一大把,寫作是最好的輸入,也是最好的輸出。你需要為你的這篇文章 - 去參考更多的資料 - 更深入的學習 - 更多的時間付出 然而這些都是有價值的,你也許可以從中得到 - 一份工作 - 一些志同道合的朋友 - 一個博客 - 一種習慣 - 還有人生 - 或許還能寫書。 對于我來說,更多的是對于`讀者`和`SEO`的興趣,SEO是一門藝術。 #### 持續學習可以降低危機感 記得在大學期間(ps:現在大四實習)閱讀了大量的書籍(>400),而之所以會閱讀那么多的書籍很大一部分原因來自于危機感。或許對于所謂的重點院校的學生來說,不會有太多的危機感,不幸的是周圍的同學也沒有危機感。對于一個連二流學校出來的學生來說——`學習才是最大的善`,記得這句話是猶太人說的。所謂的學習不是指課堂上的學習,中國的課堂上的學習大家都懂的。因為什么也沒有,什么也不會,所以就有了危機感,在某種意義上來說有點破釜沉舟的感覺。 當我把圖書館想看的計算機書差不多了解了一遍之后,開始到網上繼續汲取知識。所明白的是,好的學校的老師會比一般學校的老師好很多。但是在技術方面來說,正常情況下有能力的都不會想去當老師的(ps:這里沒有鄙視老師的意思,至少對于我們學校來說是如此),當然不包括某些有理想的。 對于危機感來說真正會暴發的年代是大四,在工作中或許就是試用期,還有一些工作的其他方面。持續學習可以降低危機感,從心理學上來說,`忙碌可以降低焦慮`。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看