[CS101] 初心者的計概與 coding 火球術

容易理解的簡易版計算機概論

這是個全民寫程式的年代

近年來「全民寫程式」風氣正夯,甚至學校也搭上潮流,在不久的將來,程式設計極有可能成為國中小教育的必修課程。或許你也受到這風氣的影響,覺得在未來,一定要會寫程式才能生存。

於是你開始上網尋找課程,可能學了 python,學了 rails,或甚至學了 iOS。有許多大同小異的課程,總是用固定的開場白、同樣的教學方式。先從程式語言的歷史講起,接著教你資料型態,再來講 if...else 流程控制,然後 for 迴圈。課程是聽完了,語法也學會了。但是要你實際動手做的時候,你卻呆住了。

為什麼?因為你學到的只是程式的語法,而不是內涵。你知道 for 迴圈可以重複做同樣的事情,但卻不知道如何利用迴圈寫出一個九九乘法表的程式。相信我,這些我都懂,因為我也是這樣走過來的。

其實,在你學習這些語法之前,你還可以做更多事情。

這堂課將帶給你的第一個寶藏,就是「程式思維」。你今天碰到一題解不出來的問題,可能不是你程式寫的不好,而是不知道「如何用程式把想法實作出來」。第一堂課將會針對「寫程式」這門學問,讓你能培養程式思維,更了解寫程式到底是怎樣的一件事情。

寬闊的視野,從廣泛接觸開始

無論你寫不寫程式,認識自己生活中最常使用的工具:電腦,我認為都是一件值得的事。因為在你的生活中可能常碰到一些與電腦有關的問題,但你不知道為什麼會發生,也不知道怎麼解決,例如說:

1. 為什麼我的帳號被盜了?我明明有裝防毒軟體。
2. 為什麼這個網站連不上,其他網站可以啊!
3. 電影裡的駭客好帥喔,他們到底怎麼做到的?
4. 這網頁怎麼是亂碼!
5. 為什麼忘記密碼的功能,不能直接告訴我我的密碼呢?

這堂課將會用許多生活化的例子,帶你了解每個領域背後的原理及知識。舉例來說,我們會接觸到電腦儲存資料的方式、網路相關的知識等等。

如果你是程式的初學者,那你就更適合上這堂課了!因為當你把基礎都修完,正準備大顯身手的時候,可能會碰到以下問題:

1. 我是寫網頁前端的,我現在想寫一個留言板,我做的到嗎?
2. 到底前端跟後端是什麼?搞的我好亂阿!
3. 我要怎麼儲存我的資料呢?存成檔案嗎?
4. 到底為什麼 << 運算子可以乘以2,這是什麼巫術?
5. 我的網站怎麼會被駭,我的程式碼看起來沒什麼問題阿!

會出現這些問題很正常。因為通常初學者所專注的都是某一個領域,例如說你是寫 Android/iOS 的,可能就不知道 Web 的前端/後端該如何區分。這都是因為你的知識廣度不夠,所以在碰到一個新領域的時候,往往充滿問號。

這堂課能帶給你的第二個寶藏:知識的廣度。從前端到後端,從資料儲存到網路傳輸,只要是與電腦相關的實用知識,我都能夠幫你一把,帶你認識基本的觀念,至少下次碰到的時候,不會毫無頭緒。

到這為止,你已經拿到兩個寶藏了。

最後,來寫程式吧!

經歷過上面兩段旅程之後,你將會了解自己為什麼要寫程式,並且知道寫程式是什麼。同時,你也已經走過各個領域,認識了電腦中的資料儲存方式、網路運作的概念、資訊安全的基礎等等,別小看這些東西!這些東西之所以重要,就是因為背後隱藏了許多重要的思維邏輯,能夠幫助你在寫程式的時候多加思考。

因此,在課程的尾聲,將會帶給你最後一個大祕寶:寫程式。

在我摸索了許多年之後,才發現 Scratch 這套至今我認為最適合教程式的軟體。利用 Scratch,可以讓你專注在邏輯思考,而不是頭昏眼花的語法(if, else, for, var, int...)。我會用 Scratch 教大家程式基礎,一旦融會貫通之後,學其他語言一定能事半功倍。

一共有三種人適合修這門課

第一種
假你一直想學程式,但一直在觀望,這麼多資源不知道選哪一個,那這堂課很適合你,因為我能讓你理解寫程式是什麼,就算我講解完之後你對程式沒興趣,你依舊可以在其他單元裡面學到實用的電腦知識。

第二種
你已經在學程式,卻覺得程式怎麼這麼難,放心,那不是你的問題。來修這堂課吧,我會從頭開始,讓你了解到底應該怎麼學程式,也讓你了解背後的原理,讓你在面對問題時能夠更有自信,

第三種
你對程式沒興趣,但一直對電腦相關知識很有興趣,那你來對地方了!這邊的許多課程就是在介紹你想知道的一切。讓我們一起拆開黑盒子,仔細研究裡面的東西吧!

要是你是不屬於以上三種的第四種人
你對程式沒興趣,對電腦相關知識也沒興趣,那你可以幫我推薦這堂課給有興趣的朋友嗎,拜託~

完整課程大綱

1. 到底「寫程式」是什麼?

用最簡單的說法,讓你了解到底寫程式是怎樣的一件事情。也會講述程式思維基礎,培養正確的觀念。

2. 透過 Command line 操作學習下指令

你有用過終端機嗎?這堂會介紹常用基本指令,讓你不用滑鼠也能操控電腦!
(包含基本指令與進階指令)

3 .我的錢怎麼變成負的?--電腦中的資料儲存與表示方法
由玩家在遊戲內金錢從兩億多變成負的現象,探討在電腦裡面數字是怎麼儲存的
包含三部分:各種進制相關教學、資料單位與儲存、編碼

4. 為什麼我連不上這個網頁--網路基礎概論
從連網頁這件最重要的小事開始,講解從你電腦連上網到看到畫面的流程。讓你了解什麼是伺服器,什麼是 IP 位置。
包含伺服器相關講解與瀏覽器開發者工具教學

5.駭客是怎麼做到的?--資料庫基礎與系統安全
示範一些常見的駭客攻擊手法,讓你對資訊安全有更深的認識。也會教到基本資料庫基礎以及很基本的密碼學
包含常見攻擊手段、資料庫基礎

6.怎麼會有這麼多程式語言?--程式語言基礎與簡介
這麼多程式語言,大家一定都聽過其中一些,但卻不知道差別在哪,這個主題會直接切入程式語言的運作方式,帶到組合語言、編譯器,最後簡單介紹各種程式語言
包含程式概念複習、逆向工程、程式語言介紹

7.不過就是排序,有什麼難的?--演算法概論
排序可以說是小小事情大大學問,藉由不一樣的排序方法,講到空間複雜度、時間複雜度等等的演算法概念
包含演算法簡介與各種排序法介紹

8.邁向程式之路--Scratch 入門教學
Scratch 基礎教學,帶你認識在各種語言都通用的觀念,只要把基礎打好,想學其他語言都不是難事


你的老師


胡立
胡立

寫過一點後端也寫過前端,還寫了一堆你應該看過卻不知道作者是我的技術文章,致力於推廣淺顯易懂的程式教學。在新加坡工作過兩年半,是專職的前端工程師。一直都對教學有很大的熱忱,相信把話講得清楚又明白是一種專業,相信分享與交流可以讓世界更美好。

我不喜歡把自己講的很厲害,也不喜歡用學經歷說明什麼——我都用作品說話。

底下是我寫過的幾篇文章:

1. 零基礎的小明要如何成為前端工程師?
2. 成為前端工程師的四週年回顧
3. 從拉麵店的販賣機理解什麼是 API
4. 紮實的網頁前端學習路線與資源推薦
5. 當我們在學程式時,要學的到底是什麼?

我在自己的 blog以及 Medium 上面,常常發表許多心得,也曾經免費提供程式教學,希望能幫助那些剛踏入程式界的初心者們。 如果你想更了解我,可以參考:自學、哲學、講學:我的程式之路以及一個工程師的履歷進化史

在嘗試過許多教學方法之後,終於決定自己跳下來開一個為初學者而生的線上程式課程平台。



課程


  課程影片
Available in days
days after you enroll

常見問題


課程什麼時候開始跟結束?
現在就開始,永遠不會結束!這是一堂線上課程,影片跟所有資源都在上面,你可以按照自己的步伐來上課,不用擔心會有時間壓力。
這堂課的有限期限是多久?
只要購買這堂課程以後,你就能夠享有永久觀看的權利。如果要為這堂課加上個保存期限,我希望是:一萬年。
如果我對課程內容不滿意怎麼辦?
我比你還怕你選錯課程!如果你真的對課程不滿意的話,我們提供了 30 天內無條件退費的服務,詳情請參考「注意事項」。 https://lidemy.teachable.com/p/notice/

趕快開始吧!