自學程式夯,但是要怎麼開始是令許多初學者頭痛的難題。本文除了介紹寫程式的出路,也提供如何選擇程式語言以及推薦的免費學習資源,希望幫助所有想開始學寫程式,或是剛入門的新手無痛度過新手期,無論是寫網站、遊戲還是開發App,都能順利達成自己的目標!
程式不僅是未來趨勢更是現在進行式,自從108課綱正式將程式設計納入學生必學項目,許多人因此好奇:學程式究竟有什麼用?為什麼現代人人都要學寫程式?也有許多大學生就讀非資訊相關科系,希望透過多學習一門技能為自己的職能加分。
本文將從分析不同背景領域學寫程式的好處出發,帶你一起看見程式學習的無限可能。而正式開始學習前,本文亦提供選擇程式語言的依據,避免學習的語言特性與想要達成的目標不符。最後,供想要自學程式的你參考,免費的學習資源絕不藏私,不怕你用不完,只怕你不夠用。
在真正開始學習之前,你知道為什麼越來越多非理工背景的大學生開始學程式嗎?
程式語言是工具,是手段,是解決問題的方法、促成結果的過程,而不是目的本身。然而世界上的問題那麼多,一個問題更往往涉及不同領域的專業,要想單靠程式設計師本身的力量解決問題實屬天方夜譚。因此一定程度的特定領域知識之下,再加上程式這項工具的輔助,常常可以發揮出1+1>2的效果。
同理,再看到職場上的實際狀況。大多數情況下,一個軟體產品在推出之前勢必經過團隊之手,也就是說,溝通是成為一個好的程式設計師(or軟體工程師)非常重要的軟技能。試想,當今天團隊要開發一款理財APP,A工程師徒具程式開發技術,B工程師卻在具備開發技術的前提下,同時擁有財金相關背景,可以和客戶討論專業術語和確認需求,相較之下,相信大家都知道誰更有求職優勢了吧?
似乎學習程式總離不開這個老問題:我該學哪種語言呢?
常見的程式語言如C、C++、Java、Python...,各有各的特色,儘管學會一種語言之後,要再入門其他語言會容易許多,然而先清楚各語言適合什麼樣的開發目的,既節省時間也少走彎路。以下是小編為大家整理的常見語言對照表:
開發目標 | 適合語言 | 語言特色 | 相關職缺 |
---|---|---|---|
開發硬體驅動程式 | C/C++ | 其實C++是十分強大的語言,但對於初學者而言較難上手,因此不建議一開始就從C相關語言入門(但相對地學會了再學其他語言就簡單很多)。 | Software Engineer - 軟體設計工程師, Windows/C++|天才視野資訊股份有限公司|台北市中山區-104 人力銀行 |
開發Windows App、Unity遊戲 | C# | 由微軟推出,相較於其他C開頭的語言容易入門。值得一提的是也常用來搭配Unity遊戲引擎一起開發遊戲。 | Unity遊戲開發工程師-疫情期間採視訊面試|尊博科技股份有限公司|台中市西屯區-104 人力銀行 |
AI、深度學習、資料分析 | Python | 因為語法平易近人,且AI、大數據皆為熱門關鍵字,因此近年成為許多初學者首選的入門語言,現在大學有程式設計課程的同學應該對它不陌生。 | AI工程師 AI Development Enginner|鉅芯科技有限公司|新竹市-104 人力銀行 |
開發商業軟體 | Java | 因為Java的安全性高,許多大型商業軟體選用Java為開發語言,但Java本身的泛用性蠻高,一般網站或應用程式也可以用Java開發。 | JAVA軟體工程師|聯強國際股份有限公司|台北市中山區-104 人力銀行 |
開發網頁(前端) | HTML、CSS、JavaScript | HTML及CSS其實不算程式語言,但網頁開發基本上避不開;而JavaScript則是讓網頁「動起來」的關鍵。 | JSP前端工程師|聯訊網路有限公司|台中市西區-104 人力銀行 |
開發網頁(後端) | PHP | 一個完整的網頁除了前端能夠正常與使用者互動以外,後端與資料庫之間的資料傳接也是非常重要的一環。而PHP就是非常好上手的一種後端語言。 | Laravel後端工程師|永恆國際網路有限公司|台中市北屯區-104 人力銀行 |
開發Android App | Kotlin | 2017年Google宣佈Kotlin為Android的官方開發語言(本來最常用Java),此語言本身的特性也非常適合開發Android App。 | Android 系統工程師|BigGo_樂方股份有限公司|高雄市鼓山區-104 人力銀行 |
開發iOS App | Swift/Objective-C | 剛接觸iOS相關軟體開發,沒有程式基礎者,建議從Swift入門。儘管都是iOS開發專門語言,但Objective-C的難度還是比較高。 | 【擴大招募!】iOS APP工程師 (Swift)|禾智有限公司|台北市松山區-104 人力銀行 |
相關職缺僅供參考,如果目標是成為工程師的同學,也可以看看除了程式語言以外還需要具備哪些能力或條件喔!
首先跟各位介紹必知的104好用工具—104學習精靈!
104學習精靈主要有四大功能:
看完104學習精靈還覺得不夠嗎?以下再加碼提供其他網路學習資源:
除了上列介紹的幾項,大家也可以善用關鍵字(例:程式語言名稱+免費+學習)至各大搜尋引擎、YouTube、Moocs(開放式課程)平台搜尋,或許會發現意想不到的寶藏。另外,程式學習的過程中總避不開bug的噩夢,這時候到線上社群如FB社團、程式設計論壇Stack Overflow看看其他人的問題,甚至自己發文求救(當然要記得保持基本的禮貌),比較不容易碰壁也會讓學習進程加快許多喔!
無論學習程式是不是一種熱潮,相信此時此刻閱讀這篇文章的你,一定有一個想要透過程式達成的目標,希望學程式這件事情能為你的生活帶來正向的改變,也祝大家在Coding之路上一切順利(顧肝很重要),一起加油!