在開始寫程式之前,你應該先知道

為什麼需要寫程式?

每個人開始學寫程式都有一個理由,也許是因為唸的是資訊系,所以被迫學習,也許是聽說寫程式的薪水比較高,也許有那個夢想,改變世界,無論是什麼理由,其實都好,也沒有哪個理由特別的高尚,哪個理由特別的庸俗,每個人做一件事都有他一個出發點,出發點無論為何,我都希望你們可以變成一個傑出的軟體工程師。

也請你將這個出發的理由謹記在心,每每想要放棄的時候,記得這個理由,不要因為走了太遠,而忘記為什麼出發。

An Imgur Image

寫程式初期不要追求標準答案

我們大部分的人都在台灣受教育,非常習慣找一個標準答案,但是我希望在你們剛開始學習程式的時候先暫時放下標準答案,很多同學在學習的初期習慣找標準答案,在沒有想到標準答案之前,不會將他的手放到鍵盤上打任何一個字,這也許不是一個太好的習慣,無論如何動手寫一個 Hello World 都比傻坐在電腦前駐足,思考許久最後離開你的鍵盤要好的多。

在我曾經待過的一間公司裡,有一間會議室叫試錯,就是希望員工不要害怕嘗試,在高速滾動的時代,要一下就獲得答案不怎麼容易,更別說是接近正確的答案,所以不斷的嘗試,是我們在初期比較需要具備的能力。

希望大家記在心裡的一句話:

If It’s Stupid And It Works… It’s Not Stupid
如果蠢,但卻可以解決問題,那這個解決方法,不算太蠢

程式語言的武林霸主

在選擇哪一門程式語言做為入門的時候,常常會聽到當然是學 xxx 最好,這也許一樣沒有標準答案,如果真要有一個標準答案,那可能是看情境或是更白話一點看情形

  • 如果你需要快速學會一門程式語言,學 C / C++,可能不是一個太好的選項;
  • 如果你想寫手機程式,學 PHP 或許也不像是個答案;
  • 如果想學數據分析學 Ruby On Rails,可能會讓你的旅途稍長一點。
  • 如果你想在台灣找開發的工作學 Rust,你會需要有比較多資產,找工作花的時間可能會長一些。

所以在這種複雜問題底下,如果出現的答案是 當然是 xxxx 最好,可能要多想三分鐘,這是不是一個合理的答案。

寫程式應該具備的能力

在這裡可能會想是不是數學很好,邏輯要清楚,但這些屬於硬能力,我比較想要說的是只要你具備以下兩個能力,其它缺少的能力不會造成太大的困擾。

自信心

當面對一個沒有把握的難題,請告訴自己,我是有能力解決的,只是時間問題,只是最後的解決方法優不優雅,這個是解決問題的自信。

耐心

學習程式語言是一條漫漫長長路,很有可能花了一兩個月,都不會有顯著的進步,但突然可能在睡起來的某一秒像被雷打到一樣,突然什麼都通了,所以給自己一點耐心,也給自己一點時間。