一. 為什么要寫這個(gè)教程
我是一名程序員 , 從入行以來身邊就一直有不少朋友對我的工作特別好奇. 隨著近幾年大數(shù)據(jù),人工智能等一系列的概念被媒體大肆宣傳. 越來越多的人都有興趣進(jìn)一步的了解編程, 甚至想投身于這個(gè)行業(yè) .但同時(shí)他們也有一些擔(dān)憂,感覺學(xué)習(xí)編程非常困難,門檻特別高, 比如需要有很好的數(shù)學(xué)功底, 要有很強(qiáng)的邏輯思維能力...等等. 以下是一位同事的原話,我覺得非常具有代表性.
以前讀書的時(shí)候也學(xué)過C語言, 當(dāng)時(shí)也知道學(xué)好編程以后一定很有用. 但是因?yàn)樽约簩W(xué)的不是計(jì)算機(jī)專業(yè), 所以算法,數(shù)據(jù)結(jié)構(gòu)等課程都沒學(xué)過, 所以現(xiàn)在也很難學(xué)會(huì)編程了.
聽完他的話,我覺得不少人對編程還存在一些誤解
誤解一 只有科班出身的人才能學(xué)會(huì)編程
2015 年編程問答社區(qū) Stack Overflow 公布了一份程序員調(diào)查報(bào)告,來自 157 個(gè)國家的 26,086 名開發(fā)者參與了調(diào)查. 其中有兩項(xiàng)關(guān)于學(xué)歷(學(xué)位)背景的調(diào)查, 其中科班出身的程序員比率大致在58%左右(本科生38% 研究生18% 博士生2%), 也就是還有42%的程序員是非科班出生. 所以是否科班出身真的沒有你想想的那么重要.
誤解二 學(xué)編程需要掌握高深的算法
算法的確是計(jì)算機(jī)程序中最重要的組成部分, 某些場景下不同的算法效率上可能相差千百倍.所以學(xué)好算法絕對可以提高一個(gè)程序員的能力和視野. 但是并不是所有的程序都需要糾結(jié)算法. 所以一般只有在設(shè)計(jì)一些核心組件或系統(tǒng)遇到問題的時(shí)候才會(huì)考慮如何優(yōu)化算法.
我想做點(diǎn)什么
明明對編程很感興趣,但由于一些誤解,最終沒能掌握編程這個(gè)技能那真是太可惜了. 所以我就想做一個(gè)課程,,消除這些誤解. 讓大家對編程有一個(gè)正確認(rèn)識(shí), 每個(gè)人都可以學(xué)會(huì)編程.
二. 學(xué)習(xí)編程的正確方式
傳統(tǒng)的編程語言教學(xué)方法往往是介紹一門編程語言完整的語法特性. 我認(rèn)為這種教學(xué)方式更適合已經(jīng)有一定編程經(jīng)驗(yàn)的人,因?yàn)樗麄円呀?jīng)了解編程的核心概念,只需要學(xué)習(xí)這門語言的語法特性即可. 但對于初學(xué)者來說,因?yàn)闆]有編程基礎(chǔ),一下子理解這么多的編程概念,容易產(chǎn)生畏難情緒. 所以我認(rèn)為對于初學(xué)者來說,更好的學(xué)習(xí)方式應(yīng)該是"少學(xué)多做"
少學(xué)多做
- 花最少的時(shí)間了解核心的概念,語法基礎(chǔ)
類似帕累托原則,花20%的時(shí)間,獲得80%的效果.更重要的意義是不會(huì)讓你對編程產(chǎn)生任何恐懼. - 動(dòng)手做一點(diǎn)東西
編程語言就像我們交流的語言一樣,不說不練永遠(yuǎn)都學(xué)不會(huì).所以學(xué)會(huì)編程最好的方式就是"編"程 - 遇到問題,尋找解決問題的方法
這個(gè)階段就能 了解更多語法特性,及算法.
所以學(xué)習(xí)編程的整個(gè)過程,就應(yīng)該和嬰兒學(xué)習(xí)母語一樣,學(xué)一點(diǎn),說一點(diǎn), 不斷說,不斷錯(cuò),不斷改進(jìn)的過程.
三. 總結(jié)
我相信人人都能學(xué)會(huì)編程,使用編程. 并且利用編程協(xié)助解決生活,工作中的問題.
課程特點(diǎn)
- 壓縮概念 -- 篩選最重要的編程概念, 避免初期學(xué)習(xí)過多的概念,產(chǎn)生畏懼.
- 實(shí)例教學(xué) -- 以實(shí)際的例子進(jìn)行教學(xué), 更容易理解
- 邊學(xué)變練.-- 只有自己動(dòng)手寫代碼,才能真正掌握編程.
課程目標(biāo)
- 了解編程的核心概念
- 有獨(dú)立寫程序的能力
四. 課程目錄
其實(shí)編程的核心概念幾乎可以用任何一門編程語言進(jìn)行講述,但考慮到本教程的受眾大多是沒有編程經(jīng)驗(yàn),或者很少編程經(jīng)驗(yàn)的人,所以選擇語法相對簡單,且比較容易上手的python進(jìn)行教學(xué)
基礎(chǔ)概念 (已發(fā)布)
- 編程極簡入門(python)-01-前言
- 編程極簡入門(python)-02-安裝python環(huán)境
- 編程極簡入門(python)-03-第一個(gè)python程序
- 編程極簡入門(python)-04-變量
- 編程極簡入門(python)-05-條件判斷
- 編程極簡入門(python)-06-方法
- 編程極簡入門(python)-07-批量處理
- 編程極簡入門(python)-08-模塊
課后練習(xí)(暫未發(fā)布)