好幾年前了,在成都的一個(gè)QQ群里,有人問,C語言要學(xué)多久才能學(xué)會(huì),我回答了,4天!一堆人罵我,說我是大忽悠、瞎扯的,唉,心塞……

 

知識點(diǎn)已經(jīng)很多了,如果有大把的時(shí)間,大把的精力,當(dāng)然可以花1年,甚至更久的時(shí)間學(xué)習(xí)了。但是,我們學(xué)習(xí)C語言的目的是啥?能解決什么問題?這才是學(xué)習(xí)的關(guān)鍵!

 

拿來主義,站在巨人的肩膀上成長,不要重復(fù)造輪子,這些經(jīng)常聽的學(xué)習(xí)理念,同樣適用于現(xiàn)在的學(xué)習(xí)方式,以C語言為例,如果僅僅是為了在性能測試活動(dòng)中,能夠利用LoadRunner完成測試腳本的基本開發(fā)、優(yōu)化,能夠調(diào)用dll文件,那我覺得4天絕對夠了。

 

第一天:了解程序編譯的方式,不用去理解原理,照葫蘆畫瓢,裝上編譯器,如DevC++,抄個(gè)C語言代碼,如“hello,world”,跑起來就行。然后學(xué)習(xí)數(shù)據(jù)類型,不用考慮那么多的,只需要知道int、float、char就行了,什么長短的,你管他干啥接著常量、變量定義,寫些簡單小代碼,熟悉熟悉就可以了。

 

第二天:順序、選擇、循環(huán)執(zhí)行方式,寫個(gè)案例小代碼,搞定,練習(xí)可以用小球自由落地,三色球組合等。

 

第三天:學(xué)習(xí)數(shù)組,函數(shù),主要弄清楚基本的業(yè)務(wù)邏輯,比如函數(shù)的調(diào)用,輸入輸出,是否有返回值等,至于什么按值輸入,按引用輸入,什么指針,你管他干啥...

 

第四天:多記記C語言常用的函數(shù),起碼以后用到或者想用的時(shí)候,能夠聯(lián)想起來有這么個(gè)函數(shù),然后再去查。

 

四天,C語言學(xué)完了,然后再用到LoadRunner里就行了,出問題咋辦,百度啊,百度不行,就google啊,再不行,問同學(xué),問老師,問技術(shù)大神啊……

 

 

其實(shí),現(xiàn)在任何人學(xué)習(xí),尤其是進(jìn)入社會(huì)的,在學(xué)習(xí)的過程中,根本沒有那么多時(shí)間給我們,如果你的領(lǐng)導(dǎo)給你一個(gè)任務(wù),就要求你在三天內(nèi)搞定,你怎么辦?你需要多久?完全取決于你的學(xué)習(xí)方法及學(xué)習(xí)能力,人性化,只是相對的,人才,也是在這樣的環(huán)境下顯現(xiàn)出來的……

 

對于Python,從學(xué)習(xí)到應(yīng)用,我花了半天時(shí)間,當(dāng)然,寫出能用的代碼,解決項(xiàng)目中的問題,還得結(jié)合實(shí)際項(xiàng)目來說。

 

Python1-介紹

Python2-安裝

Python3-基礎(chǔ)

Python3.1-輸出

Python3.2-輸入與輸出

Python3.3-變量與數(shù)據(jù)類型

Python3.4-運(yùn)算符與表達(dá)式

Python3.5-字符串格式化

Python3.6-程序練習(xí)(猜數(shù)字)

Python4-控制流語句

Python4.1-if選擇結(jié)構(gòu)

Python4.2-while循環(huán)結(jié)構(gòu)

Python4.3-for循環(huán)結(jié)構(gòu)

Python4.4-for循環(huán)練習(xí)(九九乘法表)

Python4.5-break與continue

Python5-模塊及函數(shù)

Python5.1-模塊

Python5.2-函數(shù)定義

Python5.3-函數(shù)變量

Python5.4-函數(shù)參數(shù)

Python5.5-函數(shù)返回值

Python6-數(shù)據(jù)結(jié)構(gòu)

Python6.1-數(shù)據(jù)結(jié)構(gòu)定義

Python6.2-索引操作符與切片操作符

Python6.3-列表的操作

Python6.4-字典的操作

Python6.5-字符串與列表的轉(zhuǎn)換

Python7-異常處理

Python8-最主要的編程思想-面向?qū)ο缶幊?/span>

Python8.1-面向?qū)ο缶幊趟枷?/span>

Python8.2-類和對象的定義

Python8.3-類變量和對象變量

Python8.4-面向?qū)ο笳Z言的特性

Python9-程序與系統(tǒng)文件進(jìn)行交互

Python9.1-文件讀取

Python9.2-文件寫入

Python9.3-程序練習(xí)(成績統(tǒng)計(jì))

Python10-程序與數(shù)據(jù)庫服務(wù)器進(jìn)行交互

Python10.1-數(shù)據(jù)庫連接

Python10.2-數(shù)據(jù)庫操作

Python10.3-程序練習(xí)(數(shù)據(jù)庫)

 

以上是孫得雄老師的python學(xué)習(xí)視頻的目錄,新手學(xué)習(xí)挺好的,網(wǎng)易云課堂和騰訊課堂上都有上傳,大家可以按部就班的學(xué),但我的學(xué)習(xí)方法不是這樣。

 

與C語言學(xué)習(xí)一樣,我還是配環(huán)境,然后寫一個(gè)常見的代碼,如“hello,world”,起碼我有個(gè)能夠保證代碼運(yùn)行的環(huán)境,這也是最基本的。

 

接下來,學(xué)數(shù)據(jù)類型,學(xué)變量、常量定義,學(xué)語法控制結(jié)構(gòu),再然后,就直接應(yīng)用到案例。

 

在C語言中,只有面向過程,沒有面向?qū)ο螅侨绻覍W(xué)習(xí)Python,怎么辦呢?

 

我以一個(gè)案例介紹下,其實(shí)就是把我們?nèi)粘5乃伎夹袨?,轉(zhuǎn)化為代碼,就容易解決了。

 

練習(xí):假如有一輛汽車,速度是60km/h,從A地行駛到B地(距離100km),計(jì)算耗費(fèi)的時(shí)間,分別以面向過程、面向?qū)ο髢煞N不同的編程思想設(shè)計(jì)程序。

 

上面的問題,先不要去想什么面向過程,面向?qū)ο螅憔拖胂胍粋€(gè)簡單的算術(shù)題,你咋做?

 

速度60,距離100,耗時(shí)就是100km/60(km/h)=1.67h

是不是很簡單?好,現(xiàn)在用python來寫,基本編程前面已經(jīng)學(xué)了,就直接開干。

 

順序性代碼:

speed = 60
distance = 100
dtime = distance / speed
print('speed=%4.2f' %dtime)

 

上面的代碼,沒任何擴(kuò)展性,就是你們家的東西,別人想用用不了,速度,距離變了,都得直接進(jìn)家門,不安全,不方便。

好,那就用面向過程的方式,封裝起來,用函數(shù)的方法弄:

 

用有返回的值形式,寫成了函數(shù),最后把時(shí)間打印出來。

 

從順序性編程,再封裝為函數(shù),就像我們?nèi)粘I钪械淖鲲堃粯?,沒經(jīng)驗(yàn)的時(shí)候,讓你炒一個(gè)菜,可能需要把各種配料,各種比例都告訴你,等你會(huì)了,自己腦子中有了框架,直接告訴你菜名就行了,這就是一個(gè)轉(zhuǎn)變。

 

現(xiàn)在問題又來了,上面的交通方式,是通用的,比如速度,距離,耗時(shí),但不同的交通工具,可能屬性不同,比如自行車和小轎車相比,有個(gè)典型的區(qū)別屬性,就是小轎車有油耗屬性,自行車沒有(百公里大米飯5碗除外:)),那么問題來了,面向過程的方法無法做到區(qū)分,如果加入油耗,對于自行車來講,又不需要,這個(gè)時(shí)候可以提取公共的屬性,利用面向?qū)ο蟮乃枷雭韺懀?/span>

 

 

小轎車每公里的油耗假設(shè)是0.05,這樣可以在Driver基類基礎(chǔ)上衍生出car子類,這種就是面向?qū)ο?,簡單來說,抽取公共的屬性,做到代碼,結(jié)構(gòu)盡可能簡潔,盡可能省。

 

上面是個(gè)學(xué)習(xí)的小案例,我在學(xué)習(xí)的時(shí)候,都是從最簡單的入手,帶著案例去學(xué),不會(huì)的就上網(wǎng)查,一般都能在很短的時(shí)間內(nèi)解決問題。

 

對于每個(gè)人而言,不可能有太多的精力學(xué)習(xí)太多的東西,也不能什么都會(huì),都精通,我們需要的是學(xué)習(xí)的方法,解決問題的能力,在我做項(xiàng)目外包或人力外包以及企業(yè)服務(wù)的時(shí)候,很多問題都是新的,都需要在極短的時(shí)間內(nèi)完成,如果還是一板一眼的,那基本都失敗了。