Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduciton To Hackerdom

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for M157q M157q
September 27, 2013

Introduciton To Hackerdom

交大網路福利社 102 學年度上學期第一堂社課
關於 交大網路福利社 請參考 http://www.nba.nctu.edu.tw/

本投影片請搭配
https://www.youtube.com/watch?v=DFxiYvPY1CU 服用

Avatar for M157q

M157q

September 27, 2013
Tweet

More Decks by M157q

Other Decks in Education

Transcript

  1. Hacker 的起源 • MIT Artificial Intelligence Laboratory • 一群整天想賴在電腦前的阿宅們(? •

    愛吃中國菜 • 為了在半夜偷用 lab 電腦自學開鎖技能 • MIT 鐵道研究社,為了土炮鐵道模型自學各種 電路 推薦書籍: 黑客列傳:電腦革命俠客誌
  2. 廣義 VS 狹義 • 廣義的 Hacker 適用於任何領域中擁有 Hacker 精神的人 無論是科學、藝術或其他各領域等等

    • 狹義的 Hacker 專指 computer hacker 我們接下來主要提及的是狹義的 Hacker
  3. Hacker VS Cracker Hacker 創造;Cracker 破壞 Hacker 們創造了 ◦ 第一台

    time-sharing minicomputer ◦ ARPAnet ◦ Internet ◦ UNIX ◦ Usenet ◦ World Wide Web (WWW) ◦ Many computer games !! ▪ Ken Thompson’s space travel game!
  4. 態度 3. 單調無聊的工作是罪惡 • 重複性的工作代表著並沒有解決新問題 • Hacker 會嘗試將這類工作自動化 (寫成腳本) •

    有創造性思考能力的人不該做些無聊的工作 ◦ 例外:為了熟悉該技能而反覆練習
  5. 態度 5. 態度無法取代能力 • 只具備 Hacker 的態度不能使你成為 Hacker • 需要智力、實踐、奉獻、努力

    • 必須學會質疑事物並尊重各種能力 • 涉及腦力、技巧、專注力且越少人會的能力越 好
  6. 技能 1. 學習如何寫程式 • 寫程式是身為一個 Hacker 的基本技能 • 如果不會任何一種程式語言建議先學 Python

    • 獨立於任何語言之外的抽象思考 • 在幾天內透過手冊掌握一門新語言 • 閱讀書本或程式碼,邊讀邊寫 • Python, Java, C/C++, Perl, LISP
  7. 技能 2. 學習如何使用並執行開源的 Unix-like 系統 • 在個人電腦上安裝並使用 Linux 或 BSD

    系統 • 其他 Unix 系統可能不利你研究程式碼 • Unix 和 Internet 的關聯非常緊密 • 學習閱讀系統程式碼並修改程式碼
  8. 技能 3. 學習如何使用 WWW 並撰寫 HTML • 不是只會用瀏覽器上網(這誰都會) • 學會讀懂並撰寫

    HTML 等 markup language • 建立一個對其他 Hacker 有實質幫助內容的網 站 (分享解決問題的過程等等)
  9. 技能 4. 如果你不懂那些術語的英文,請把它學會 • 英語是 Hacker 們溝通的語言 • 非英語系母語的 Hacker

    仍用英語討論技術 • 英語相關技術書籍的翻譯都令人不甚滿意 (看看那些中文翻譯的原文書課本...) • Linus Torvalds 是芬蘭人,但他用英語註解他 的程式碼
  10. Well-known Hackers John McCarthy - AI, Lisp, ALGOL, timesharing Bill

    Joy - Sun, BSD UNIX, vi Donald Knuth - TAOCP, Father of analysis algorithm, TeX Dennis Ritchie (dmr) - C, Unix, K&R Paul Graham - Lisp, THN, Y Combinator, Hackers & Painters Alan Kay - OOP, GUI Ken Thompson - Unix, B, C, Plan9, Go, Regex, UTF-8 Richard M. Stallman (RMS) - Free Software, GNU, Emacs Linus Torvalds - Linux, Git Larry Wall - Perl, patch Guido Van Rossum - Python