【寫程式入門】新手該如何開始自學寫程式
自學寫程式、學習程式語言幾乎已經是一個現代人必學的一門課程了,特別是在這科技發達的年代,程式語言的應用越來越廣泛,如:AI人工智慧、物聯網、網頁設計、機械工程、各類程式應用,都是需要靠這些程式語言來進行撰寫、設計及溝通的;
而在台灣,目前更是有非常多的國小、國中,將程式語言加入到必學的課程及課綱中,且仿間也越來越多學寫程式的補習班林立,加上網路上及線上也有許多自學資源可供大家自行學習;
但是對於一個程式語言新手,在沒有任何程式語言家教、老師或教練的帶領,到底要如何選擇入門的學習方式及設定目標,就成了最難以跨越的問題;
特別像是我該從哪一種程式語言開始學習更有前途,或是我該怎麼開始學習、又或是學習的目標及路徑到底又是什麼等,而這些問題小編都遇過,因此我們將在本篇為各位介紹程式語言的入門,並分析與分享各類程式語言的應用,幫助你找到更清楚的學習目標。
學習的目的
不管學習任何程式語言,或是學習任何專長或技能,我們都必須先有一個「學習目的」,好讓我們知道學習的方向,才能更有效地學習;畢竟人的時間有限,就一般人而言要學習到各種能力都專精是有困難的,因此最好的學習捷徑就是為了「能夠學以致用而學習」,有脈絡且有計畫性的學習,可以幫助你學習的過程更有效率。
「自學寫程式」常見的主要目的,不外乎是為了得到更好的工作、開發自己所想要的軟體及應用、單純因為興趣、訓練加強思考邏輯、預防開發商的詐騙及品質控管等等,因此學習的方向就可能會有明顯的差別。
例如:
– 想要製作及編寫AI(人工智慧)的應用,除了學習一般的程式語言進行編程,還可能需要學習更深入的演算法知識及概念,將其套用在自己的開發研究項目;
– 若只是想要接案、或是擔任工程師,像是製作物流公司的進出存貨紀錄,而衍生需要開發其專屬的應用軟體,則反而需要理解該公司的品項,針對該需求創作系統的架構及邏輯,並試著用習慣的程式語言進行開發。
雖然程式語言學習的領域是學無止境的,但是若不先找到目標而先專攻一個方向,很難培養出自己的一套學習方式及方向的!
程式語言種類
如果你清楚了學習的目的及方向,並且設立的自己的目標,接著我們就要開始選擇學習哪一種程式語言;因此小編做了一個簡單的整理,讓新手、入門的程式語言自學者,能快速有個方向:
Python
「Python」是一門比較簡單的程式語言,同時具有極高的「可讀性」及「靈活性」,是屬於一個相對好入門、好理解且廣泛運用在各種程式的語言。
Python的使用社群提供了非常豐富且強大的「模組」,我們可以把這個優勢如同前人留下的智慧,可以讓開發者把本來需要複雜程式碼才能完成的功能,只用幾行簡單的程式碼就能輕鬆解決。
C語言、C++
「C語言」也是經典、基礎且必學的程式語言之一,就程式語言新手入門來說是非常適合的;C語言除了是工程師最經典的程式語言之外,相較於上述的Python,學習C語言更可以充分了解計算機的相關知識,並且C語言能夠運用的範圍也非常廣泛,是非常推薦的,不對,應該也可以說是早晚「必學」的語言。
學好 C++後,之後學其它語言絕對會感到輕鬆許多,但對新手來說,剛開始學習會有點辛苦。
JavaScript
「JavaScript(簡稱:JS)」是目前幾乎所有的主流瀏覽器上唯一支持的腳本語言,因此是想要學習製作網站、網頁應用的人必學的項目;而JavaScript入門難度偏低,也可在任何瀏覽器上進行開發及測試,且不需安裝額外的軟件。
JavaScript作為一個靈活的腳本語言,其常見用途像是製作網站的前端、後端及遊戲的腳本等。
PHP
「PHP」是一門常見且簡便的Web開發語言,主要可廣泛運用在網站開發、各API的接口、廣告系統、伺服器端、內部系統、各類後台等開發。
PHP的入門難度不難,困難的是如何掌握好一整套開發體系;是一個想要成為全端、後端工程師所必備的程式語言之一。
Java
「Java」是一門相當經典且多面向的程式語言,Java語言具有功能強大和簡單易用的兩大優勢;編寫Java的應用可以非常廣泛,如:Android系統、電腦應用程式、網站應用程式、手機程式、分布式系統和嵌入式系統等應用程式。
Java常運於跨平台及系統運用,因此也適合大型或中型企業所需的管理系統,加上Java本身可運行於所有平台及作業系統,是一種面向對象(註:不限對象)及跨平台的程式語言,其高度的通用性、高效性都為他大大加分。
Ruby
「Ruby」語言是一個近來來備受歡迎的程式語言,同時也是一門有趣的開發語言,優雅且不失實用,Matz在設計Ruby的時候就想方設法讓Ruby成為一個「人性化」的語言。
Ruby語言也廣泛應用於現今最流行的社群網站,最有名的是其開發出來的框架「Rais」,也有人稱作Ruby on Rails,利用這個可以大大縮短工程師們開發的時間。
Ruby的優勢是「靈活性相當高」,可以讓開發者自行改變語言,甚至可以自行添加內容,這顯示了Ruby為一個物件導向的程式設計,將程式當作物件,獨立卻又環環相扣,能夠經常修改並且靈活運用。
SQL
「SQL」是一個專精於「資料庫」的特殊目的語言,主要用於存取數據以及查詢、更新和管理關係資料庫系統,因此也被認定為後端系統架構、資訊安全、資料整理所必學的。
SQL可設定只有某些用戶才具有對指定存儲過程的使用權,安全性高;另外存儲過程可以重複使用, 可減少資料庫開發人員的工作量,開發速度快。
Go、Golang
「Go語言(或稱Golang)」是雲端計算時代的C語言,Go語言的誕生是為了讓程式設計師有更高的生產效率,而Go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用Go編譯的程式可以媲美C或C++程式碼速度,而且「更安全」。
Go是一個不到十年前問世至今的程式語言,是一個歡迎度增長最快的程式語言,幾乎很少有其他新興的程式語言能夠像Go如此快速的擠入前10大受歡迎的語言,因此也證明了它作為「後端系統語言」的地位。
Go的優勢包括:簡單易學、內建提供強大的工具、可跨平臺編譯、內嵌C支援、可直接編譯成機器碼、靜態型別語言、語言層面支援併發等。
Swift
「Swift」是OS X 和 iOS 系統上的專用語言,因此是想要從事蘋果系統、APP開發的必學語言,近年來Swift的受歡迎程度也幾乎都保持在前十名。
為了開發iOS的城市,常會用Swift及Objective-C,但Swift相對簡單許多,它是全新發明的語言,一開始就是以平易近人且容易理解的初衷來設計的。因此同樣的功能,在Swift上,你可用用比Objective-C精簡許多的程式碼做到。
Swift是iOS工程是必學的程式語言,比起Objective-C複雜的語法,簡潔的Swift更為平易近人,更適合App開發的初學者上手 !
學習資源
選擇好上述的想要入門的程式語言之後,我們就可以開始找學習資源了:
1. 工程師、開發者的線上論壇:
不管是國內、海外,都有許多知名的工程師論壇、創作者論壇,通常我們會建議自學寫程式的新手們,可以先花時間尋找、搜集一些熱門、討論度高的工程師、開發者的線上「論壇」,並加入會員以獲得發問、查閱權限;
上面會有很多的創作者在論壇上分享作品、模組、程式碼及各種教學等,甚至是當你遇到各種學習上、開發上的困難及問題時,都可以馬上該論壇發問並獲得專業的回覆;
因此對於程式語言自學者來說,論壇是一個相當重要的學習資源,即便是開發老手也很需要到這類的論壇時時精進自己的功力及實力,或是在論壇搜集可用資源及技術。
2. 線上自學課程:
線上自學課程通常有兩種,一種是付費的、一種是免費的;免費的通常是一些熱心的專家,撰寫自己的教學文章,或是分享個人學習歷程的人,發布在自己的網站或部落格上;而另一種是像是Udemy、Coursera、好學校這類由專家整理的詳細自學資源,並於平台上販售給想要學習的人。
而這兩種學習方式個人認為都是很棒的學習方式,特別是許多自學課程的撰寫者都非常用心,也能夠用較口語、較好理解的方式帶你進入狀況,加上這種學習資源都可以隨時隨地拿出來複習、查閱,因此非常適合程式語言的自學者。
3. 買書來學習:
買書來看也是一種常見的自學方式,但是買書的缺點就是通常程式語言的書都很厚、很重,帶來帶去比較麻煩;雖然可能撰寫的學習內容很完整、很詳細,但是學習寫程式常常會遇到新的問題,如果當下想要解決、了解,還必須往前翻目錄,還不一定找得到想要的答案,而不能直接像是用網路學習,直接Google一下就有詳細的解釋或範例。
所以小編在學習程式語言的過程,只買過一本C語言的書之後,就沒再買過了XD
4. 找個家教或專家來指導
另外,也非常建議新手可以先找個帶你入門的師父,幫助你擬出學習方向,或是隨時隨地解決你的疑惑,也是一個非常棒且有效率的學習方式,不管你想找電腦編程家教、Java老師、JavaScript專家、Python教練、C語言專家都可以上我們的主網站看看,找個好老師幫助你更有趣、更積極的學習。
相關文章:
【程式語言學習】開發人員(工程師)應培養的6個編程習慣
【程式語言學習】學寫程式:自學vs找家教
如果你喜歡我們的文章,歡迎您訂閱我們的Blog,
或是將我們的部落格加入到「我的最愛」,隨時可以到我們網站上搜尋各類新知喔!
有任何問題也歡迎您來信至:service@1on1.today
或如果你有需要其他各類家教、老師、教練或專家來幫助你學習或完成目標,
或者你願意分享你的專業知識、技能來幫助別人賺取一份而外收入,
誠心的邀請您加入我們的網站:1on1 全球家教共享平台
延伸閱讀:
【職場】網站 / 軟體 / 程式設計 工程師薪水與收入結構
【1on1是什麼】使用1on1找家教、找教練的好處與優勢
【家教工具】如何找到適合上課、教學、授課的場地及空間
學德文應該選擇台灣老師,還是外籍母語老師上課?
高效自學英語的方法與學習材料
線上教學最常使用的5大視訊軟體比較與推薦