新手如何入門? 3 個我推薦入門的程式語言
===== 目錄 =====
- 現在有哪些程式語言
- 我推薦的 3 個語言
- JavaScript
- PHP
- Ruby
- 推薦學習的方式
- 網路資源搜尋、社群交流
- 借閱或購買書籍
- 線上課程
- 用什麼心態學習
- 大量練習
- 先求有、再求好
- 批評都是正向的,但請無視惡意
- 學會之後
- 總結
現在有哪些程式語言
如果想要透過自學的方式學習寫程式,在面對琳瑯滿目的程式語言的時候應該會有著「到底學哪個程式語言比較好呢?」、「哪個可以幫助我賺到錢呢?」、「學 XX 語言是不是已經退流行了」之類的想法吧?
那天好奇查了資料,目前據說已經近 9000 種以上的程式語言被開發出來了! 說實在的,這根本不可能能夠完全掌握,甚至有許多程式語言其實也都只是一些人自己的實驗作品,不一定能夠應用在商業範圍上,而且實際上真正有在流行的程式語言也就大概不下百種。
我們可以看一下 TIOBE 指數,看看最近的程式語言趨勢中哪些是近期比較熱門的。 TIOBE 是一個程式語言趨勢網站,透過這個網站我們可以查閱近期哪些語言是較多人使用的。 截至 2022/03 ,目前第一名是 Python 這個程式語言。
我推薦的 3 個語言
1. JavaScript
這是一個每個人不用另外安裝開發環境就能夠開始撰寫的一個程式語言,它的執行環境存在在每個人的網頁瀏覽器當中,所以只要你的電腦有 Google Chrome / Apple Safari / Mozilla Firefox 或 Microsoft Internet Explorer Edge 等瀏覽器,你就可以直接用它們提供的「網頁檢閱器」或「開發者工具」進行測試與練習。
不過雖然 JavaScript 在早期是一個只能在網頁瀏覽器中運作的程式語言,但是在後來有工程師將它抽出來之後另外開發出一個叫做 Node.js 的東西,就變成了也可以用來寫一般的電腦軟體的程式語言,所以學習 JavaScript 的話不只可以做網頁動態、前端工程的工作,也可以開發網站後端、系統工具等軟體的開發哦!
JavaScript 的語法在入門階段很簡單,而且其實它與很多程式語言的語法都有相似之處,像是 C 語言 / C++ / Java / PHP 很接近,可以說只要學會 JavaScript ,在一些基礎應用上都是八九不離十的!
我當初也是因為做網頁的時候開始接觸 JavaScript ,然後才掌握到一些程式語言的基本語法,也讓我因此在學習 C 的時候能夠比較快入門。
延伸閱讀
可以看看 Mozilla 撰寫的 JavaScript 教學
2. PHP
雖然不算是我第一個接觸的網站後端程式語言(第一個接觸的是已經被淘汰的 ASP ,而且還不是 ASP.net 哦),但因為接觸了它開啟了我後面十幾年的網站開發人生,也因此接到了一些網站案子,賺到一些零用錢。
原本被稱為 Personal Home Page 的 PHP 一開始是原開發者它為了維護網站而用 C 語言寫出來的 CGI 工具(之後有機會再解釋 CGI 是什麼),後來慢慢演變成多數人開發網站的時候首選的一個程式語言,用它開發出來的幾個有名的應用程式我想大概就是 Facebook / WordPress 等等了吧!
認識我的人都知道我後來是大力推廣用 Ruby on Rails 開發網站的人(也致力推廣好幾年了),不過對於一些想要踏入網站開發的新手來說,我也還是極力推薦從 PHP 開始入門,學習網站開發的底層知識、運作方式,我自己也是透過這個方式一步一步成為一位後端工程師的,所以當你如果覺得接觸 JavaScript 還不夠的話,那不妨也選修一下 PHP 吧?
延伸閱讀
官方網站: https://php.net
3. Ruby
第一次接觸 Ruby 是我還在高中的時候,一開始是在一本程式設計的月刊上看到的介紹,那時候接觸到後就嘗試開發了一些小工具,甚至用 Visual Basic 開發一個叫做「Ruby 執行檔製作精靈」,可以將用 Ruby 寫好的程式碼打包成可以讓 Windows 直接執行的程式,還曾經上過某軟體下載網站的精選程式(雖然我到現在依舊不懂為什麼就是了)。
Ruby 是一個語法很接近英文口語的一個程式語言,寫法優美,在語法設計上也參考了不少其他的語言,所以會看到像是 Python / Smalltalk 等語言的影子在其中,而它是一位叫做 Matz 的日本人開發出來的。
在 Web 2.0 時代,那個時候網站開發的需求暴增,大家都想要學習如何從無到有做出一個網站來,除了 PHP 外,另一個就是橫空出世的 Ruby on Rails 了。 也因為 Ruby on Rails 這個語言框架 (Framework) 帶動了大家開始學習 Ruby 的流行,也算是一件很特別的事情。
不過在你接觸 Ruby 之前,我必須說其實 Ruby 在臺灣算是一個蠻小眾的程式語言,臺灣整體上在網站開發還是以 PHP / Node.js / Java (Spring boot) 幾個為大宗,但如果你開始接觸網站開發之後想要體會到不一樣的開發方式,那可以投身接觸 Ruby on Rails 這個框架,並且同時間一起學習 Ruby ,你會有不一樣的感受哦!
延伸閱讀
官方網站: https://ruby-lang.org
推薦學習的方式
1. 網路資源搜尋、社群交流
這應該是最不需要成本的學習方式了,透過 Google 你可以找到很多的程式設計文章,但缺點是會比較沒有系統性、比較鬆散、資源散佈會帶來比較大的學習困難,不過有時候還是可以看到有一些前輩會系統性地整理出一些教學課程,像是良葛格的筆記,這都是可以參考的。
然而除了線上資源的搜尋以外,各個區域通常都會有人舉辦一些實體聚會,像是我曾經在臺南每週舉辦在臺南市區的 Ruby 小聚,對 Ruby 有興趣的人都可以來參與交流、分享。
高雄也有高雄的 Rails meetup,或者像是比較大型的研討會如 MOPCON 之類的,可能討論的議題會稍微有深度一些,但是作為新手的人前去觀摩、交流是可以得到更多的資源與方向。
當然,疫情期間,請各位參與這類小聚會的時候做好防疫規範,保護自己為上哦!
2. 借閱或購買書籍
早期我還在學習程式設計的那段時間,我是透過購買一些當時比較熱門的程式語言書籍來讀,藉由書中安排的教學或者是練習題反覆練習跟嘗試出題給自己,來逐漸掌握一門語言的特性。
不過一本書動輒五六百塊,沒有一點經濟實力可能會比較辛苦,這時就可以考慮善用圖書館或者是購買二手書的方式來取得相應的書籍。
如果你還是學生,這邊有一個小訣竅,可以去跟你的電腦老師問問看他們有沒有你想學的語言的參考書,如果有的話通常都會借給你哦!但是讀完記得要還就是啦。
其實挑選書籍有一個重點,因為對剛開始學習的人來說其實不太需要追求較新的教學資源,五年內的書籍都可以翻閱學習,但這個前提是你學的是程式語言,而不是所謂的開發框架或是開發工具,如果是開發框架或者是工具的話通常在一到三年內會有一個大變革,這就要稍微注意一下。
3. 線上課程
線上課程的部分,就可以參考我在上一篇 我是如何成為程式設計師的? 分享 5 種自學的方式 所提到的幾個線上教學平臺(像是 Hahow 、 Udemy 這些),去挑選評價高的付費課程。
除此之外,如果有想學習 JavaScript 的課程的話, 那我想六角學院的 JavaScript 新手課程是很值得你去參考的喔!
免費教學的部分就可以參考一下各個語言的官方網站所列出的教學資源,一些語言的官方網站本身會提供蠻完整的教學,或者是互動式學習功能,譬如像是 Ruby ,在多年前有一位叫做 _why the lucky stiff 的很厲害的高手開發出一個叫做 Try Ruby 的線上互動練習平臺,在頁面的左方給出教學與提示,然後在右方輸入教學給的指令進行練習。
後來這樣的練習平臺如雨後春筍出來,也慢慢開始有了像是 CodeSchool / CodeCademy 這幾個網站,透過線上互動的方式來提供各類語言的教學,其中比較常見的也都是教 Ruby / PHP / Python / JavaScript 等,有的還是免費的,可以按照他們的課程編排來嘗試學習哦。
用什麼心態學習
🌟大量練習
其實寫程式這件事就是學習如何跟電腦溝通,你透過學習那些設定好的規則(又稱為語法),將自己的想法轉變成規則寫出來後讓電腦知道,這樣的行為就是程式設計了。
透過學習資源設計出來的題目反覆練習,然後自己再針對題型做一些改變,這樣的方式你才有辦法學到東西。
🌟先求有、再求好
在初期的學習你寫得好寫得不好都不是重點,重點是你對一個語言是否已經有掌握了? 如果沒有掌握的話,行數寫得超多、程式碼寫得超醜都沒關係,即便是有天分的人也是從爬開始才再學會走的不是嗎?
所以,在你熟練掌握語法基礎之前,都不要去追求任何程式碼上的架構或者設計出來的架構內容要有多好,你要追求的是你對語言的熟練度以及你寫出來的程式會不會動。
🌟批評都是正向的,但請無視惡意
如果你寫的東西有問題但你想不出解決辦法,請即時請人給予你建議,不管是 Facebook 社團或者是你的同學、授課老師都可以。
我是可以預見你在網路尋求幫助的時候會有人說你寫得很差、架構很爛、什麼東西不好之類的幹話,但是我希望你聽我的,除非他們告知你你的問題該怎樣解決,不然他們噴的那些垃圾話只不過是因為他們太廢,只能從這種地方(噴你、嘲笑你)尋求一點安慰。
心思放在如何把問題解決、解決的原因又是什麼,請認真做好筆記、學好發問的方式,這樣才能夠在這條路上不斷前行、持續成長。
學會之後
當你開始掌握了一個語言之後,可以嘗試用這個語言去做出一個作品出來。 我當初學會 PHP 後,我第一個做的作品是學校某一個活動的投票系統,透過這個機會讓我更熟悉 PHP + MySQL 的配合方式,也從中找出自己可以調整的問題,繼續修改。
慢慢地,累積了一些作品後,就可以開始接觸其他的工具,像是換一個好用一點的編輯器、學著使用 Git 去管控你的專案、去論壇跟別人分享你的作品等等,這都是你在這個階段開始可以接觸的事情。
總結
所以如果你想要開始接觸這個領域的話,我會推薦你選擇以下三個程式語言做嘗試:
- JavaScript – 每個人的電腦都已經有可以執行的環境,資源多、容易上手
- PHP – 學會的同時直接可以開始開發網站,算是還不錯的一個選擇(只是可能要學的知識比較多)
- Ruby – 語法簡單、上手容易,只是相比前面兩者來說入門難度會稍微高一點,因為還要學著安裝開發環境
在學習的過程中,你也必須:
- 要大量練習 – 不練習就會寫只能說你一定是個天才
- 不要先要求寫得完美而是要先確定結果正確 – 盡善盡美不是身為新手的你該有的責任
- 上網求助的時候請無視一堆罵你的北七 – 你是初學者,本來就有犯錯的權利!
而當你學會之後:
- 替自己設計題目、爭取做作品的機會
- 接觸其他的工具,幫助自己開發 – 像是 Git / 不同的開發工具
如此持續下去,就能夠替自己磨練好一個專業技能哦!
如果有什麼問題或建議想討論,歡迎留言! 我很樂意與你共同學習成長!
Like my work? Don't forget to support and clap, let me know that you are with me on the road of creation. Keep this enthusiasm together!
- Author