從將近300年前到現在,我們的世界經過了巨大的演變:1760年代的第一次工業革命,1870年代的第二次工業科技革命,1930年代的第三次工業數據化革命,都為人類歷史帶來了巨大的改變。許多專家甚至認為第四次工業智能化革命,將在離我們不遠的未來發生。

在這段過程中,軟體技術持續的進步,現在市面上看到的APP或網站,像是工具、遊戲、社群平台、串流平台都需要軟體技術的支援,這也是為什麼軟體工程師的需求越來越大,為什麼會有更多的人開始投入軟體工程的行列!

說到軟體,就必須要討論程式語言。而在程式語言中最廣用、最有實力的莫過於Python、Javacript、C語言這幾個已經存在一段時間並一直不停進步的程式語言。這篇文章,Glints將會討論到為什麼Python在軟體工程領域,會成為如此熱門的語言!


認識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與其他系统有關的操作,樣樣都有。

chart on stackflow

如何開始學習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),藉此設計出好維護及簡潔的程式碼。開發專案時,需要有好的架構,讓程式碼可以被輕鬆維護,透過這本書可以學習到如何讓自己更有效率的寫程式。適合進階且已有實務經驗的開發人員。

reading books will be helpful

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


Python可以運用的領域

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

數據處理與分析

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

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

人工智慧

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

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

網站開發

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

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

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

自動化測試

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

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


結論

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

如果你希望可以得到更多資訊,可以追蹤Glints的臉書粉絲頁,每個星期都可以看到熱門職缺與職涯資訊 。

你也可以到Glints – Taiwan去了解更多!或是註冊帳號,收到職缺通知!

延伸閱讀:

對軟體工程師求職有興趣的人,可以看看Glints的其他精選文章

About Author

Passionate writer, who love to tell stories that are both informative and impactful!

Leave A Comment

Your email address will not be published. Required fields are marked *