【程式學習】程式新手該學哪種程式語言

寫程式這件事聽起來好像很厲害,相信也有許多人覺得很有趣,在求職時也會有一些加分的功能,不過對很多沒有經驗、身邊也沒有人可以帶著學的人來說,新手該學哪一種程式語言就變成了一件很頭痛的事情。

寫程式可以做很多事情也以應用在許多不同的領域中,但如果你不知道自己想要開發一款什麼樣的程式或做什麼應用,那可以用以下兩種情況決定你該先學哪種語言:

身邊有人會寫程式 -> 學他所使用的語言
身邊沒有人可以問 -> 先學Python

網路上雖然學習的管道跟資料非常多,取得也都很容易,不過學習上最有效率的方法還是去問那些已經學過的人,即使不確定未來要做哪種開發或應用,幾乎所有程式語言在邏輯上都是共通的,只有一些語法或習慣上的不同,所以先學好一種語言對未來做轉換也都會容易許多。

圖片來源

上圖為2022年Stack overflow調查所公布的2022最受歡迎城市語言排行前十,有部分人認為HTML/CSS和SQL不能算程式語言,所以多排入了C語言以及PowerShell,可以從調查中看到,撇除HTML/CSS和SQL不看,JavaScript和Python就是第一二名了,可知這兩個語言不論在應用面或是學習的曲線上都是比較容易上手的。

接下來的文章會針對我所使用過的語言進行一些優缺點的比較以及我個人在學習難易度上的看法做一些討論,當然也會介紹所適用的場合給已經有目標但還未下手的人。

網頁前後端開發

片來源

要嘗試網頁的開發一定要學會網頁的三本柱,分別為HTML、CSS和JavaScript,熟悉完這三項之後可以再依照想達到的要求做其他的學習比如一些JQuery、AJAX等等一些技術。

後端方面則有許多選擇,市占率高的PHP、具有相當高跨平台性的Java、微軟的ASP.Net甚至是Python或是Golang都是值得學習。

以新手的角度來看的話我個人是最推薦PHP、ASP.Net以及Python。

推薦PHP的原因為在後端語言中,他是市占率最高的語言,網路上的學習資源非常豐富,國內外許多公司戶或機構也都是以PHP作為開發語言,所以如果你是以後端開發為目標的人學了絕對不會吃虧。

推薦ASP.Net則是因為因為微軟為其提供非常容易開發的環境:Visual Studio,在開發上非常容易,具有圖形化的開發介面、簡單的測試環境。唯一比較困擾的是如果你是Mac使用者的話相容性可能不會如Windows使用者那麼好。

Python則是憑藉著DjangoFlask兩大Web框架在業界中也有許多新創公司採用,也有逐漸熱門的趨勢,其中Django適合較為大型的專案,Flask則在對新手學習上比較友善、易學。

手機應用程式

圖片來源

在手機應用程式方面IOS和Android兩個作業系統中有兩種不同的開發環境和使用的程式語言,主流上來說IOS使用Swift並指可以在Mac作業系統中做開發。Android則是在雞戶任何作業系統中都可以開發,並以Java或Kotlin做主力開發。

也有較為小眾,但使用簡單的App Inventor可以使用積木行程是做開發,不過據我所知,這種積木型的開發只適用於學習階段,在熟悉後還是以較為主流的程式語言做為開發工具應該會比較適合。

Swift因為我接觸的比較少,所以本文先暫時跳過不談,待我未來有機會接觸更多再跟大家分享,也歡迎有接觸過的朋友留言分享!

而Java在學習上我個人認為是比較難一些的,除了有較為複雜的規範以外,Android app開發已經屬於Java較為進階的技術了,初學著在剛接觸到Java到可以真的開始撰寫程式恐怕會有一段不短的路。

大數據分析、人工智慧

圖片來源

此類的應用普遍都會選擇Python或是R語言作為首選。兩者都擁有相當完善的社群以及資料可以進行學習,但除了程式以外此類型的應用也需要具備一些數學的能力,所以有興趣想往這一個方向發展的朋友可能也需要一併學習一些數學以及演算法的知識。

比較在意效能的朋友也可以考慮看看C/C++,但我個人是比較不會建議新手第一個語言就去學C/C++。相比起來C/C++的學習難度對新手極度不友善,很多人都在學習時就失去熱忱了。

PC應用程式、遊戲開發

就我個人的見聞,PC應用程式的開發主要為C家族(C/C++/C#)以及Java較為常見,其中C家族的語言又常常被使用在遊戲開發上。

這邊推薦新手想嘗試開發遊戲的可以試試看在Unity底下嘗試進行C#開發,網路上有許多資源可以教你嘗試做出一個自己的遊戲。

不論你學哪種語言都該注意

不管今天你選擇了哪一種程式語言作為你學習的語言,你都必注意以下幾點

  • 資料的型態
  • 任何有命名的機會都必須注意命名
  • 保持良好的排版習慣
  • 寫程式時一邊撰寫註記

隨時記住以上幾點,讓你在學習時一邊建立良好的開發習慣,好的程式是別人也看得懂的程式,保持良好的開發習慣肯定可以在未來有機會與別人協作時有更好的效率。

結論

上述文章只是以我自身經驗做點分享,當然不是說別的語言不能做到某些功能,比如常見的爬蟲程式只可以使用Python進行開發嗎?那倒不見得,Java也可以做到爬蟲程式,只是普遍比較不會有人以他為選擇而已,相對的,PC的應用程式也不是只有C語言或是Java可以做為開發,也可以使用Python等等許多語言作為開發。

程式語言只是你的工具,不要讓他限制了你的想法,多多想可以做一些什麼樣的開發,即使你的主力語言不適合進行開發,也可以想想看有沒有可能以你的主力語言做出同樣或類似功能的專案,對個人能力的提升也時有所幫助的,重要的是使用鍵盤的人!

Posted in

發表留言