python解題學習地圖
Step 0. 開始之前
編輯軟體
(線上) Google Colaboratory ,可以直接結合雲端硬碟存程式。
(線上) repl.it 程式可以保留在帳號中。
(軟體) spyder,屬於anaconda 軟件包,學校有預設安裝。
(軟體) pycharm ,學校有預設安裝。
(軟體) VS code 微軟免費,學校有預設安裝。
Step 1.Python語法,基本資料結構
必需
kids coding school 紙本講義,請向老師拿。
repl.it(老師開的classroom,請優先以github或是google 帳號註冊以便追蹤進度)。
選擇
Sololearn(請優先以github或是google 帳號註冊以便追蹤進度)。
均一平台微軟提供的課程(請註冊以便追蹤進度)。
註冊登入snakify網站 (英文版本) ,練習其中的1~11章。每章附的Problems務必解完。此站練習題目均來自repl.it(老師開的classroom)中的部分題目。
參考課程
Step 2. 線上解題
基本語法掌握之後,開始用線上解題系統來練習解題思考,目前請用 ZeroJudge(高中生解題系統,附上常用python解題骨架程式碼) 。
進入註冊後從 高通過率 的開始解。請務必把每題的思路都仔細思考過,千萬不要上網找到答案之後直接複製貼上!
解題到達一定程度之後,你會發現有些問題再怎麼改都不會過,大部分是因為需要用到特化的演算法或是資料結構,可以上網查詢相關的資料來學習。
但是如果問題很簡單,寫法思路也都沒錯,可是常常出現TLE(超時錯誤),這是因為 Python 先天上I/O慢的限制,建議
把程式改寫用 Python 內建的函式來取代自己寫的,例如要把字串裡面的 'A' 改成 'a' ,用 replace() 比自己繞一遍字串進行取代快很多。
可以學更進階的語言 C/C++ ,學習曲線比較陡,可是投資報酬率很高,C/C++ 是電腦的基礎語言!
競賽/檢定/線上解題網站
(國中) 宜蘭縣內Scratch競賽 入選 特優 可參加全國賽。 建議報數理解題組。
(國高中) TOI練習賽(3、5、10、12月 ,比賽語言:C、C++、JAVA(4.9版) )
(國高中) 台大NPSC競賽(每年一次10月 ,比賽語言:C/C++ )
(高中) 東區學科能力競賽(每年一次11月 ,比賽語言:C/C++、PASCAL )
(高中) APCS檢定(每年2月、6月與10月,比賽語言:Java、C/C++ 、Python 2/3)
(高中) 圖靈賽(每年一次7月,比賽語言:Java、C/C++ 、Python 2/3)
(高中)青年程式設計競賽(每年八月,比賽語言:Java、C/C++)
(考古題)慧燈學長姐收集的各大競賽歷屆試題
慧燈自架的ZeroJudge(停用)
刷題網站
(中文) 大陸lintcode 刷題網站,有各大企業的考題
(中文) leetcode-cn.com 刷題網站,各企業工程師考古題
(英文) codewars 解題
(英文) codeforces 解題
演算法參考網站
線上課程
台大資訊之芽@均一(較難,適合高中生)
營隊
純軟體專題:
慧燈學長累積下來的專案,有興趣可以找學長傳承學習:
遊戲類(打磚塊,踩地雷...),延伸學習到 pygame及其他python模組。
工具軟體 小算盤,抓youtube檔案...
AI類,用Python玩AI很方便,不需要鑽研高深的數學一樣能做出成品,目前常見的有 機器學習(Machine Learning)的Scikit-Learn ,深度學習(Deep learning)的 google tensorflow。
電腦視覺 opencv
跨軟/硬體專題:
慧燈學長累積下來的專案,有興趣可以找學長傳承學習。
需另點硬體的技能樹,目前學校有設備跟教材的有: arduino uno, microbit, mblock, raspberry pi, openmv, pixy2。較常見的硬體專案教學網站,例如: instructable, hackster.io, makezine, learn.adafruit, learn.sparkfun, projectplus.cc(中文)上去找到有興趣的專案照著做通常可以成功。
常用到的開源硬體站: thingiverse
機器人比賽 : FRC(每年1月初,公佈新主題;1、2 月,是隊伍搭建 機器人的時間。3 月,各地區域選拔賽開始。4 月末,優勝隊伍參加在美國聖路易斯舉行的 世錦賽。 )
大學入學
通常跑到專題之後,在這方面的性向就很明顯了,請依照自己的興趣準備考大學相關的科系吧!
不過如果學到一半發現這不是你的真愛也沒關係,畢竟工程師不是唯一的職業,再多去探索其他領域也不錯。
大學入學 教育部辦理特殊選才管道