sKiwitch Talk 1: 你能用程式做什麼

Kiwi lee
ccClub
Published in
8 min readFeb 20, 2019

歡迎各位來到 sKiwitch 專欄,我是 ccClub 團隊的 Medium 專欄作家 Kiwi 。

你剛開始學 Python 嗎?或是已經開始,但與 Python 的關係停滯了,迷失在程式碼中呢?

剛接觸 Python 的你,新的開始總要有個努力的方向,選定好的、自己喜歡的方向,才能走得穩、走得久。已經在路上的你,想要更與 Python 加溫,就是這篇,就讓我來引導你吧!

這篇文章我們將從讀書會的報名表談起,聊聊大家想學 Python 的動機,再談到資工所的教學領域,讓大家知道所謂的「本科」都在做什麼、可以做什麼,最後希望能給大家更多對於程式的想像,勇敢的幻想,踏實的完成。

好,就讓我們開始吧!

引言

今年 2019 春季 ccClub Python 讀書會收到了 700 則左右的報名表,有著形形色色的自介,但大都是相同的動機,不外乎是程式是目前的顯學,不學習就會落後。 以下是我整理出的報名者動機:

  • 程式很像在未來很重要,該學
  • 大數據、深度學習是未來的趨勢
  • 教授說未來實驗要寫程式,只好快點來惡補

對很重要、是趨勢,但其實我們希望大家能把程式語言,不論是 Python 或是 Html 等等的程式語言,視為一種與機器溝通的外語。話能講得越好,越流利,電腦就會越配合你,完成任何你想叫他做的事情。 因此我們希望看到的是:你真的有想跟電腦說的內容,而不是只是聽到誰講了什麼,而是能真正思考身邊有什麼可以用電腦做到的事情。

我知道,大家一定都還不知道電腦能做到什麼,只知道電腦有 youtube 可以看優質的頻道七月半,KKBOX 可以聽歌,Instagram 可以看正妹,而 Steam 會搶走我的錢。因此我決定先來簡述資工系的學習領域,好讓大家有個初步的方向。

資工所的領域

台大資工所 系所成員

上面的連結是我們台大資工所教授的介紹,皆有列出各自己的研究專長,我不負責任的以最簡單的方式來分類,並簡單的說明,如下:

電腦圖學

跟影像有關的,像是美圖秀秀,畫風轉換,特效生成,3D構建,反正眼睛看得到的
Neural style transfer

延伸閱讀:
*
wiki- 電腦視覺
* wiki- 精典的電腦視覺圖像
* Texture Networks: Feed-forward Synthesis of Textures and Stylized Images
* A Neural Algorithm of Artistic Style

嵌入式系統

跟小型的電腦相關的,輔助工廠或平常生活,像是紅綠燈即是常見的嵌入式系統。你可以自製許多有趣新潮的設備,新一代的鋼鐵人或許就是你
HOW TO MAKE A MAGIC MIRROR

延伸閱讀:HOW TO MAKE A MAGIC MIRROR

自然語言處理

跟語言相關的任何事情,像是自動新聞產生器、廢文產生器、google 翻譯。我們的凱文老師就是這領域的強者了啊

延伸閱讀:Pycon 2018 Day1

資訊安全

跟網路或是個資有關的保護,現在許多的個資或是網購銀行都在網路上,如何避免被盜用,就是靠這個領域了啊

延伸閱讀:沒有人是局外人!史上最嚴個資法衝擊全球,帶你搞懂什麼是GDPR

數據分析

就大家最懂的領域,從國小在做的平均數,到研究領域的迴歸分析,還是當紅的深度學習,皆跟這個有關。不再贅述。

網路

跟網路相關的,專注在網路

金融

程式交易,區塊鏈,這幾個最近當紅的關鍵字,不來湊一腳,聞個香可不行,財富自由或許從這開始。

延伸資訊:
* MultiCharts最專業的程式交易軟體 — 凱衛MultiCharts
* 火幣官網| 全球領先的數字資產金融服務商 — Huobi

演算化優化

很硬,我不會。

其他

像是化學、機械、文學、等等的各種領域,在這裡,想像力是唯一侷限你的地方,程式與世界各行各業的連結。

以上的簡述希望能讓大家更了解資工所會接觸到的領域,其實也只是包含了一小部份,畢竟程式能做到得事遠超出你所想像的。 或許你會說上面的內容實在是高大上,難以接觸,因此接下來會說些簡單有趣的程式,當個引路人,啟發一下大家。

你可以做的專題

從懶惰出發

首先從下面這本書講起, Python 自動化的樂趣:搞定重複瑣碎&單調無聊的工作

一本很奇特的書,簡易的提供了一些程式能做到的事,像是複製檔案、製造excel、爬網站、寄垃圾信等等。你程式不需要很強,或是很強的數學與邏輯,也不需要寫得漂亮效率很快,你需要的只是一個懶惰的心,想把一些無聊瑣碎的事扔給電腦來做,然後就可以再用電腦去追劇打電動。生活多麼愜意啊!

這邊提供幾個實際案例給大家參考:

  1. 找房子
    像是我朋友之前要找房子,但是不想要一直逛各個網站,又怕沒有即時的看到而被別人訂定。
    因此他寫了個爬蟲去抓PTT、591、租屋網,然後透過 regular expression 篩選資料,最後直接寄信到他的信箱。宅男不上網,能知天下事
  2. 整理數據
    這個是我個人的案例,之前當兵的時候,要幫課室整理將近100份的量測數據,並將其全部匯整到一個檔案裡,簡單來說就是不斷的開檔案複製貼上,如此重覆一個禮拜,太折騰人了。
    因此我寫了個巨集程式,一鍵匯入全部的資料,看著電腦做著做著,10分鐘就結束了。然後就拿到3天榮譽假,開心。
  3. Github: svenstaro/genact
    最後一項來分享有趣的事情,工程師的裝忙神器。不斷跑動的記錄,配合著自己認真的神情,老闆看到還不奮力的加薪加起來呢!
Github: svenstaro/genact

從所需出發

  1. g0v 零時政府 成果列表 講起,許多的時候你的專案不是為了自己,而是為了幫助世界,了解世界,解決世界。把程式當做工具,去挖掘查看哪裡有不足的地方。
g0V 成果列表
  1. 查看 Hackathon 大家想到的題目 (雖然目前 Hackathon 的活動越來越少),互相討論間更能發想奇特的想法。

Just for fun!!!!

有時不需要想那麼多,只是為了好玩,做些小廢物,但很趣的事情。難保有一天會起飛呢,像是 Snapchat 的發想,原本只是一個班級作業呢。這部份就要看你的惡搞能力了啊,以下提供一些有趣的案例,你或許會想無聊~ 但人生不需要總是如此嚴肅呢。

  1. 從自己的日常開始玩起,例如 Github: billcccheng/instagram-terminal-news-feed 的專案,就是給你可以從 terminal 查看 instagram 的資訊。
  1. 創造自己的蘿莉,可以選頭髮、微笑等等,自己玩看看就知道了! https://make.girls.moe/#/
  1. Youtube- 用 GTA5 來訓練自動駕駛
Acquiring a Vehicle for the Agent — Python Plays GTA V p.20

結論

這篇希望能給大家想用程式做的事情一些啟示,如果寫程式只是為了交作業為了未來的需求,那就有點太浪費了,試著把程式當作跟電腦溝通的語言,說出你的願望,電腦就能完成你的要求。從硬核的資工所,到平常的應用情境,不同的想法構築都需要程式做為後盾,希冀各位都能努力的學好程式。

當你能信手捻來一個好程式,來處理分析任何看到的問題或現象,你就會發現未來的路有著無限的可能。

現在就立刻拿起紙跟筆,寫下你腦中的胡思亂想,然後一點點的完成,接下來就讓 Python 為你實現願望吧!

歡迎各位來到sKiwitch專欄,我是 ccClub 團隊的 Medium 專欄作家 Kiwi 。

你我都沉迷的 Nintendo Switch,就是我的專欄名有 Switch 為其中的原因,因它有著多樣的模式,隨時隨地都可以操作使用,更賦予著「改變遊戲體驗」的精神。希望我的 sKiwitch 也能承繼這個精髓,提供你各種角度的思維,改變你對學習 Python 的體驗。

我們是 ccClub 團隊,致力於讓 Python 成為大家的第二外語,希望能用淺顯易懂、循序漸進的方式,帶領新手一步步跨入程式設計的世界。如果你喜歡這篇文章,請給我們 1~10 個掌聲。
如果你喜歡「sKiwitch」的教學系列文,請給我們 21 個以上的掌聲。


Facebook: ccClub Python讀書會

--

--