寫程式, 工程師

【為什麼我們要挑選這則文章】程式語言有好幾種,到處都有人問:「到底該學哪一種?」

下文介紹的 Python ,因為理解門檻不高,與其他程式語言互通度非常廣,廣受大家喜愛。為什麼 Python 歷久不衰?程式語言的入門推薦首選?新加坡科技人才招募平台 Glints 將在本篇文章一次解答,還有提供滿滿的 Python 自學資源。(責任編輯:洪郁萱)

本文經新加坡科技人才招募平台 Glints Taiwan 授權

作者:Tim Kuo

Python 是什麼?

Python 是一個 90 年代就存在的程式語言,至今的 Python 即將邁入 30 年的歷史。不過還是許多軟體工程師的首選。

Python 是一個被廣泛使用的高階程式語言,屬於通用型程式語言,也就是說,Python 它不為特定應用領域而設計結構,而是可以運用在許多方面、許多領域的程式語言(文章後續也會一一介紹)。Python 的設計哲學強調程式碼的可讀性和簡潔的語法,也之所以被稱為直譯語言。相較之下,Python 在開發方面會比 C++ 或 Java,使用更少的程式碼。不管是小型還是大型程式,Python 程式語言都能讓結構清晰明瞭。

相對其他程式語言,Python 有哪些優點?

1、Python 是相對容易理解的程式語言,適合直接閱讀理解。如果程式寫得很好,甚至會感覺像在讀一般的英文一樣,可以快速的了解每段程式碼的功用。

2、連接上一個優點,Python 是一個比其他語言更易學的程式語言。Python 本身雖然是用 C 語言寫的,但是它拋棄了複雜的指針,並且簡化了語法。

3、Python 的社會團體非常龐大,資訊量充足,自由性也非常高。如果想要複製軟體,閱讀、改變其他人的程式碼,或是擷取部分的程式碼,都是辦得到的。

4、Python 有可移植的特性,能夠將程式碼移植到許多其他的平台上。如果能夠避免過度依賴於系統本身,那 Python 程式碼便有機會在最少的改變下,直接移植到一些知名平台上,包括 Linux、Windows、FreeBSD、Macintosh、Solaris、PlayStation 等。

5、Python 的可擴展性和可嵌入性非常高,若是希望讓一段關键程式碼運行得更快或者希望隱藏某些演算法,可以使用 C 或 C++ 編成,再將其程式碼嵌入到 Python。也能夠把 Python 嵌入至 C/C++ 的程式中,建立一個腳本功能。

6、Python 有豐富的框架、模組、元件、函式庫。Python 有許多第三方函式庫可以使用,能夠利用資源幫助處理任何工作,從文檔的生成、程式的測試、網頁的瀏覽,到 CGI、FTP、XML、密碼系統、GUI 與其他系统有關的操作,樣樣都有。

stackoverflow,程式語言

Stack Over-flow 網站統計出年度程式語言詢問度分佈圖(圖片來源:Stack Over-flow)

學習 Python 該從哪裡下手

學習 Python 可以透過以下 4 個方法:

網站

Python 官方本身就是一個很好的資源,裡面有許多有用的內容,網站本身的導航也很簡易,可以嘗試在上面摸索。除此之外,以下幾個教學網站也非常推薦,除了附有範例程式碼說明之外,觀念講解清楚且易於理解:

1. Real Python: Python Tutorials

2. Python Programming Language – GeeksforGeeks

3. ccClub(Coding&Co-working Club)

書籍

Python 的學習也能夠透過研讀書籍,以下介紹幾本適合初學者的 Python 學習書籍:

1. Python初學特訓班(第四版):從快速入門到主流應用全面實戰(附250分鐘影音教學/範例程式)

此書從 Python 最基本的語法,到應用程式的開發,都講述的非常透徹。內容包含了 YouTube、LINE Bot 聊天機器人、網頁爬蟲及資訊圖表繪製等 Python 專案的開發。學習完基礎語法後,還能夠透過實際的專案開發磨練熟悉度。

2. Python自動化的樂趣:搞定重複瑣碎&單調無聊的工作(第二版)

此書也先從介紹 Python 的基本重要語法開始,簡潔易懂,專案實作如書名所言,針對 Python 自動化的處理,包含 Web 擷取資訊、工作排程、影像圖片處理及 Email 發送等。適合初學者及對 Python 自動化處理有興趣的開發人員。

3. Python設計模式

此書會需要一定的開發基礎,內容介紹 Python 常用的設計模式(Design Pattern)及設計原則(Design Principle),藉此設計出好維護及簡潔的程式碼。開發專案時,需要有好的架構,讓程式碼可以被輕鬆維護,透過這本書可以學習到如何讓自己更有效率的寫程式。適合進階且已有實務經驗的開發人員。

TO 推薦閱讀:【程式語言人氣大對決】Python 今年還是拿不到冠軍?

YouTube 頻道

利用 Youtube 來學習也是一個常見的方式,這邊有幾個不錯的頻道推薦給各位:

1. Programming with Mosh

這個頻道推出一系列的 Python 教學影片,內容淺顯易懂,傳授實務開發上的重要觀念及技巧,很多時候會以 Mosh 本人的經驗作為例題。

2. CS Dojo

此頻道是由一位曾經在 Google 擔任軟體工程師一年多的 YouTuber 所製,Python 入門影片清楚明瞭,除此之外,也會著重於分享面試時可能會遇到的程式碼問題,並且說明其中的觀念以及解決問題的技巧,非常的實用。對求職者來說很有幫助。

3. Tech With Tim

這個頻道主要分享 Python 相關的應用教學,包含扎實的 Python 入門影片,以及很多 Python 的實戰影片,從基礎開始打造良好的開發習慣。非常適合初學者,教學方式輕鬆愉快!

4. 彭彭的課程

此頻道的 Python 教學直白並且簡單易懂,不會使用過於複雜的範例,對於初學者來說,非常的友善,使其能夠快速的吸收並且進入狀況。是一個有助於 Python 基礎觀念建立的頻道。(對英文理解比較沒有信心的人可以考慮)

線上課程

除了看影片學習之外,現在也越來越多的人喜歡透過線上的課程學習。以下介紹幾個不錯的線上課程網站,在這些網站都可以找到為初學者量身訂做的課程:

1. Hahow好學校

2. Coursera

3. Datacamp

4. Kaggle

5. CodeAcademy

TO 推薦閱讀:【免費學習資源大補丸】加密貨幣工作一年暴增 395%!想進入新興高薪產業需要哪些技能?

Python 可以運用到哪些領域

上述有提到,Python 最方便的就是擁有非常多函式庫(Library),很多的功能都已經整合過了,透過加以利用,就能夠節省大量的開發時間,這對於人力少又需要快速發展產品的新創來說,無非是一件非常有利的事情。以下跟大家介紹 Python 最常被用運在哪寫領域上:`

數據處理與分析

資料處理、統計與分析不管在商業或學術的領域都非常的重要,這也是為什麼好的資料科學家人才,是每個企業都在努力尋找的。15 年前大家透過 Excel 完成這些任務,但隨著硬體設備提升、互聯網被開發,資料的數量已經達到超越 Excel 能處理的境界了,若真的要做到也需要提高很多成本。

Excel 對於處理大數據(Big Data)分析的限制非常的多,這也是為什麼 R 和 Python 能夠在後期顯得更加有用。Python 有許多專門處理數據分析的函式庫可以方便運用,相比R的功能,除了統計用途,還多能夠建構應用程式、系統或網站,是一個更加多元化的程式語言。

TO 推薦閱讀:盤點資料科學家必備 8 大技能、薪水到底有多高?一文解密 21 世紀最性感職業!

人工智慧

現在這個時代,連小學生在讀的書都已經討論到人工智慧(Artificial Intelligence,AI),可想而知,人工智慧這個產業已經興起,而由於世界正在數據化,未來 AI 發展的速度只增不減。

人工智慧涵蓋機器學習(Machine Learning)和深度學習(Deep Learning),每天都有成千上萬的專案使用 Python 上的相關的函式庫,例如 TensorFlow、Keras、Torch,以及 OpenCV(電腦視覺效果)等,都是已經為使用者寫好的 AI 相關函式庫,只要了解其用途以及統計的知識,就能夠加以運用。這也是為什麼 Python 能夠更進一步發展、運用到人工智慧上。

網站開發

現在資訊公開化,每個人在做消費或做決定之前都已經習慣性會在網路上做調查、研究,非常依靠網路上的資訊。所以網站的開發對於企業的發展也是非常重要的。

至今絕大部分網站開發是用 PHP、JavaJavaScript 等程式語言,但現在使用 Python 開發網站的人也越來越多了,其原因也是它擁有強大的函式庫、廣泛的實際應用,相信在未來 Web 開發上,Python 也一樣有機會成為很優秀的工具。Python 中最常見到與 Web 框架有關的函式庫為 Django 與 Flask 等。

如果想了解更多 Python 的 Web 框架,可以參考以下文章:13 個 Python web 框架比較

自動化測試

任何產品在公開於世之前都會需要經過大量的測試,通常也會需要花費大量時間,但這是使用人工測試的前題下。但如果使用的是自動化測試,則能夠省下時間與人力成本。

Python 也有許多協助自動化測試的函式庫,例如用來幫助測試網頁前端的 Selenium、以關鍵字驅動為主的自動化測試工具 Robot Framework 等。

結論

相信大家讀完這邊文章後,對 Python 的認知也更加的深刻了,若是對 Python 的任何運用有興趣,想要成為 21 世紀企業最需要的人才:軟體工程師,可以去了解文章中提到的學習管道,找到自己最適合的方式,更進一步的深研 Python!

如果想得到更多數位科技職缺資訊,免費註冊 Glints 帳戶,每星期可以獲得國內外精選職缺通知和實用部落格文章。
(本文經新加坡科技人才招募平台 Glints Taiwan 授權刊登,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈入行21世紀夯職業 – 軟體工程師,得先學會Python 〉。圖片來源:Shutterstock)