code.club

標題: 資深開發者給後輩的七個 Coding 學習心得 [打印本頁]

作者: define    時間: 2014-6-21 22:25
標題: 資深開發者給後輩的七個 Coding 學習心得
(作者 Cecily Carver 目前為資深軟體開發者,她在 Medium 有一系列關於學習 Coding 的文章。以下文字以作者第一人稱撰寫)

我承認選擇學習 Computer Science(電腦科學)是為了證明我是個聰明人,而我想要做聰明人的工作。學習  Computer Science 、Coding 剛好可以滿足我喜歡數學以及理論的興趣。

但,單就這個原因並不能維持我長久以來的動力,將科技與音樂、文學結合在一起,才是我真正想做的事情。

我現在要試著告訴你們一些,在我學習程式設計時非常希望有人可以事先告訴我的事情。

在你開始 Coding 之前,你必須先知道你想做些什麼
學習 Coding 是為了打造某些事物,有可能是網站、有可能是某些系統,也有可能是 App,Coding 這條路會隨著你個人目標越來越清楚而越顯寬廣而明確。

如果你只是為了「學習 Coding」而沒有一個明確的目標的話,這條路可能會走得比較艱辛。

而你到底想要做些什麼?

網站、遊戲、iPhone App、成立一家可以讓你致富的新創公司、互動藝術(Interactive Art),或者你只是想要完成學位、找個工作、在履歷表上加註一條說明,這些不同標都很不錯,並沒有優劣之分,確定你真正想要的是什麼,並勇敢地朝那個方向前進。

學習 Coding 沒有秘訣
學習 Coding 就像學習一個新語言一樣,你必須要了解文法與基本字彙;就像學數學一樣,針對不一樣的問題有不同的解決方法;就像一切其他的技藝或是藝術創作一樣,有一些技巧、工具,有一些前人累積下來的做法可以學習。

你不用害怕不夠聰明,我在 Computer Science 的課程中學習指標(Pointer)還有遞迴(Recursion),當我到職場上開始工作,發現完成一份工作、一個專案與這些概念的相關性並不大。

不過當你的 Coding 工作越來越高深、層級越來越高,所需要的知識也就越多、越來越專業,不過哪個領域的工作不是這樣呢?

第一次也許不會成功,也許第二、第三次也不會
當你真正開始學習 Coding 你一定會遇到這種狀況:

明明已經設定好一切該做的設定,也再三確認過程式碼了,但是程式卻一直  Compile 失敗,也找不出原因,反正他就是不讓你成功。

這時候的你一定很想大罵髒話,甚至覺得自己一輩子都找不出失敗原因,而想要放棄。我也曾經有這種感覺,當時我試著寫 C++ 程式,「Segmentation Fault」不停不停地跳出來煩我。

其實這種經驗是每一個程式設計師都會遭遇到的情形,這跟你聰不聰明無關,如何回應問題、回應錯誤,才是要點。

我發現在新手程式設計師與老手之間最大的不同之處就在於「信念」,不管是對於問題還是完成目標的信念。一個程式從「不會動、 Compile 失敗」到「成功地運行」之間的秘訣也許並不容易找到,但帶著你的耐心、堅持著信念去尋找,終將找到成功的路徑。

也許常常有人說你是錯的
大括號應該要放在下一行、大括號應該要再同一行;你應該要為你的程式加註解、好的程式是不用註解的;括號裡的程式應該要齊頭、齊不齊頭可以看個人習慣。諸如此類的評論不斷地在你身邊出現,指責你的錯誤。

有很多程式設計師非常指責別人的錯誤,或是要別人改成他習慣的模式,但並不代表那是唯一的真理,也許還有很多解決的方式。在我早期從事 Coding 事業生涯的壓力之一,就是總是有人說我做錯了。其實我並沒有做錯,只是並不是用他們所習慣的方式來完成。

在 Coding 生涯中必然會遇到需要與其他人一起完成專案的時刻,也許開始有人指出你的方法錯誤,他們有可能是對的,這也是個反省、更正自己錯誤的好時機。

但有時候,他們只是無法習慣別人不照著手冊、不照著過往遵循下來的方法做事,這只會造成許多無意義的爭執。

也許常常會有人跟你說「你並不是個 Coder」
HTML 並不是一種程式語言,是一種標籤、如果你不是用 vi,根本不算 Coding、真正的程式設計師都懂 C 語言、你根本不應該學 Coding、你根本就不是個程式設計師(但我是)。

「Coding」對不同人來說有很多不同的意義,現在的程式語言看起來跟以前也不一樣。有趣的是,現在因為工具或是框架(Framework)工具的發展,讓寫程式變得比以前更快、更簡單,這不只是對新手來說,對受過訓練的老手同樣有幫助。

但,這似乎也被貼上了「不是真正的 Coder」標籤。

更多時候他們是害怕,如果有一天人人都可以稱自己是程式設計師,那這個稱號將越來越沒有意義、社會地位不再。

就算讓你走進 Coding 世界的只是簡單的 HTML,或是 Excel 的巨集,只要這是你願意堅持的,那就值得花時間繼續努力。

當一段時間之後,你越來越習慣了,自然而然會去找尋更有力量的工具來輔助,得以進階。

不要在意外表,能力才是一切
我以前總是非常擔心自己不像個「Real Geek」,特別是在學校,我浪費了很多時間在讓自己的衣服、談吐、閱讀的書籍甚至是軟體設定符合 Geek 看起來的樣子。因為這根本不代表什麼,你的 Coding 能力並不會因為你越融入 Geek 文化而變得更好。

但是你如果已經是個標準的 Geek,下次在評估別人的時候千萬不要再以「他看起來不像個 Geek」為標準。

堅持比方法更重要
有關如何「正確的」、「最好的」方法學習 Coding 的文章並不缺乏,而且還有很多其他不同的方法。你可以從一本書、網路上的互動練習或是幫其他人 debugging 中學習 coding。你也會因為不同的原因或是帶領者走進不同語言的領域中。

而在學習 Coding 一事中我們常常可以看見一種狀況,不管你是買書自學,還是從網路上學習,一開始當新手、初學者的快樂時光一下子就結束了,隨之而來的是令人煩躁的瓶頸。

你知道如何印出「Hello World!」,去卻不知道如何開始一個「真正」的專案,你只是跟著別人一步一步照做,而不是真正的了解背後的意義。

Coder 應該不斷學習,追求進步

當你走到這個階段,大部分網路上的學習網站對你來說已經沒有什麼用處,他們把你斷定為一個「有經驗」的程式設計師,問題在於「你並不知道你不知道什麼(You don’t know what you don’t know.)」,找出下一步該學習的東西,就是學習的一部分。

學習 Coding 總會遇到撞牆期,唯一可以克服的方法就是繼續堅持下去,這代表你要常是學習新東西、找更多的資訊,從這些破碎的資訊與資源中建立起自己的知識與專案,將會在其中與專案的結尾了解到 Coding 的初衷。

如果你持續地把磚頭一個一個疊起來,在經過一段時間,也許是一段很長的時間,你總會獲得一面牆。這就是前面所講到的「信念」,你如果相信時間與耐心可以讓你把 Coding 完成,那你肯定可以做到。
作者: enter    時間: 2015-8-5 01:02





歡迎光臨 code.club (https://code.club/) Powered by Discuz! X3.2