Skip to content

StarRocket/Python-learning-map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

【Star Rocket】Python 學習地圖與攻略

近年爆紅的程式語言之一 Python 程式語言,每個人對它的認識與憧憬,以及學習或開發目標皆不盡相同,坊間無論是線上線下都出現了許多學習資源,往往造成真正想學習的人迷失了方向,更是有許多半路出家的人多走了許多冤妄路,浪費了許多時間,我們都明白,因此,我們希望透過更直白的方式,讓大家一覽 Python 程式語言的學習藍圖及歷程。

為甚麼要學 Python?自 1994年正式發表至今超過 20多年,已經遍佈各重要科技趨勢當中,如:數據分析、IOT 軟硬整合、人工智慧、機器人開發等重要領域,事個不可或缺的重要語言,如今更是開發出多種資料庫及套件廣泛應用在雲端服務平台上;現今使用 Python 為後端重要程式語言的新創企業如 Pinterest、Uber、instagram、Youtube 等(參考文章),Python 語言近年更是興起成為全球最高薪的程式語言之一(文章:中文 / 英文),透過絕佳的跨平台支援性,在不同尺寸、系統設備上,操作同樣的語言環境,更是普遍使用在大數據與資料分析的領域,在全球軟硬體開發領域具有舉足輕重的地位。

Python 程式語言的特色:

  1. 數據分析領域通用語言:簡單且強大。
  2. 語意認識易讀和易撰寫:直白且清楚。
  3. 各類領域應用功能強大:應用且多元。
  4. 跨平台應用且容易擴充:易整合學習。

本次課程活動:連結

本次課程大綱:

  • Python 可以作甚麼?
  • Python 學習地圖是甚麼?
  • Python 各階段學習目標與時間性?

課程學習摘要:

以下內容為經由課程隨堂筆記和上課簡報的重點彙整。

  1. 程式開發常見工作職位:(和 Python 無關,軟體開發領域慨況)
    1. Front-End Developer(前端開發)
    2. Backend Developer(後端開發)
      1. Blockchain
      2. IOT
    3. App Developer(App 開發)
      1. Android
      2. iOS
    4. Data Analyst(資料分析)
    5. A.I. Engineer(人工智慧工程)
  2. 各領域專業分工解析:會特別解析跟 Python 有關部分。
    1. Front-End Developer(前端開發):並無與 Python 直接相關。
      1. 視覺與網頁切版:HTML、CSS
      2. 互動式網頁:JavaScript
    2. Backend Developer(後端開發):與 Python 有關,談到後端亂成一團,學 Python 有機會幫公司架設出一個網站,例如:電商網站。具有 Python 初階程度能有基本工作條件,但需要看很多面向,首先會需要考慮你的「程式語言」,Python 是其中一個選擇,選完會有需要學習對應的「框架」,接者是選擇「資料庫」,再來選擇「雲端服務」,如果選擇後端開發就要學習雲端服務。後端工程師需要把這整串學起來,最後才是選擇「延伸性領域」。
      1. 程式語言:Python、PHP、Java
      2. 框架:Flask、Django、Laravel
      3. 資料庫:PostgreSQL、MySQL、MongoDB
      4. 雲端服務:AWS、GCP、Azure
      5. 延伸領域:Blockchain、IOT
    3. App Developer(產品開發):並無與 Python 直接相關。
      1. Android:Java、Kotlin
      2. iOS:Swift、Object-C
    4. Data Analyst(資料分析):早期學習資料分析,數學能力非常吃重,如果想要長期發展,遲早都需要具備數學能力,大多數據分析工具都跟 Python 有關,Python 是一個很老的程式語言,但因為近年大數據,使資料分析成為很重點的部分。
      1. Data Collection:
        1. Crawler - BeautifulSoup
        2. Database - SQLite, MySQL
      2. Data Analysis:
        1. Pandas
      3. Data Visualization:
        1. Matplotlib
        2. Tkinter
    5. A.I. Engineer(進入人工智慧開發):第一個就是深度學習,人工智慧發展蠻久了,但直到 1998 年,那年發生 IBM 電腦在西洋棋界擊敗世界冠軍,當時是人工智慧的高峰,接著是低谷,研究上幾乎沒有突破,以前當說要走 Ai 領域的人都會被笑,因為根本沒有發展,直到2016年 AlphaGo,在圍棋領域把人類幹掉;AI 這件事情要做的好,需要很多基礎訓練,職位也不多,公司要找工程師都要找資深,薪水十萬以上的價碼都有可能,學習歷程相對較長,要有心理準備,但在 AI 領域 Python 是大家較長使用的語言。
      1. Math
        1. Linear Algebra
        2. Statistics
      2. A.I. Fundamental
        1. Artificial Neural Network
        2. Convolutional Neural Network
      3. Python based A.I. Library
        1. TensorFlow
        2. Keras
  3. Python 學習方式建議:
    1. 基礎語法與套件使用:*實體課程、線上課程
    2. 專案練習:*跟著老師完成微小專案
    3. 獨立完成可用的專案:*最關鍵點是沒人幫得了你,老師也幫不了,重點在於你的解決能力,你必須練習解決問題的能力。這是很難去訓練學生,前半年我感受最深的事情,每周花費40-70小時,一到兩個月完成。學生在這種環境中是能練得起來,有很好的環境跟同儕,去年我去Appworks School,學生一個星期要花70小時,真的是這樣,我進去半年真的是這樣,從早上寫到晚上,寫不完週末繼續,這是一個過程,這樣的訓練很難去實現它在於我收費,如果我收了錢就很難堅持我的立場,但這樣的操作模式資金的投入很大,公司不在乎賠錢,但實際是有效果的!各位如果有機會這個點上有人推你前進,但在商業上很難像Appworks School 不收費這樣做,覺悟很重要,你要花很多時間投入進去。
    4. 當你卡死的時候,是多數人遇到的狀況,一開始好像會了,真正的難的是後面遇到困難很容易放棄。
  4. 如何成為一名 Python 軟體工程師:
    1. 程式語言:入門第一站。
      1. 熟稔基本語法和運作邏輯:能正確追蹤程式。
      2. 能解決定義明確的問題: 例如,給一個數字,判斷是否為質數;從檔案中讀取商品資料,並計算平均售價。
      3. 能寫出乾淨的程式碼(請參考底下:本次課程資源)
    2. 軟體架構:此階段重視模組化、重構程式的能力。
      1. 能應用第三方套件或框架:BeautifulSoup、Pandas、TensorFlow。
      2. 深入理解第三方套件或框架:類神經網路。
      3. 能開發客製化的套件或框架。
    3. 電腦科學:軟體工程師共同的核心能力
      1. 數學:離散數學、線性代數、統計
      2. 系統架構:作業系統、計算機組織、網路概論
      3. 資料結構與演算法。
    4. 完整發展視野:(請參考底下:本次課程資源 -> 完整簡報)
  5. 當初階工程師面試時需要在意的事:
    • 技術能力:*履歷與作品集或經歷,技術是需要被證明,薪資也是從上面有定論。
    • 誠實與自覺:*聊天的形式,面試完立刻打分數,分三種:錄取、可以走了、放中間之後回來看。誠心誠意很重要,不希望裝出來。
    • 溝通能力與適性:*面試官在找未來的同事。
  6. 現場問與答
    1. Q:資料分析上使用 R 跟 Python 的差異: A:R 只用在資料分析上,Python 有很多應用。
    2. Q:Python 跟 SQL 有啥關係? A:兩者都是一個獨立的東西,程式語言挑一種搭配 SQL,Python 是把 SQL 命令下給資料庫。
    3. Q:什麼是資料分析? A:你如果學了 Python,就可以撈取資料與分析,甚至可以做成圖表。把關鍵字都學到一個程度,可以把整套做出來。
    4. Q:坊間有相關 Python 金融預測分析預測實作類似課程,我是不是學這個就夠了,因為我之後也並不會做這相關我只是需要知道此功能。 A:如果就只需要使用在某領域而已,是可以的,但是要更多發展學習 Python 是不夠的。
    5. Q:Python近幾年很紅是為什麼? A:最近因為大數據領域的崛起,導致 Python 開始紅起來,因為都跟 Python 有關。
    6. Q:我不是技術背景,感覺自己要寫一個網站是非常困難,當想要解決問題去用 Excel,光學 Python 是可以解決這個耗時耗工的方式? A:團隊的員工會寫一點程式,手上其實有很多Excel資料,用 Python 就可以分析,用程式自動化展現出來就是個有用的事情,但可能不會是像學習 Excel 這麼容易就是了。

講師介紹

彭兆蔚 - 彭彭:台大心理系、台大資工所畢業、美商昇陽 (Sun Microsystems) 校園大使、資策會軟體工程師、Tomofun 網站工程師、網頁多人線上遊戲開發、Piconion 影像處理軟體開發、類神經網路、人工智慧教學展示、COSCUP 2010、JSDC 2017 講師、iThome Modern Web 2016 - 2018 講師、世新大學、十年創業經驗;講師相關學習資源

本次課程資源

關於本攻略

本攻略由 Star Rocket 三創育成基金會整理分享,採用姓名標示-相同方式分享 4.0 國際 (CC BY-SA 4.0)授權。