淺析編程思維

網(wǎng)絡(luò)圖片

無論在生活中,學(xué)習(xí)中,還是工作中,我們都會(huì)遇到各種各樣的問題,每個(gè)人都有自己的一套處理辦法,每種處理辦法都有其特定的內(nèi)在思維邏輯,最近學(xué)習(xí)python編程語言,在解答各種題目的過程中,讓我清晰的認(rèn)識(shí)到,編程是有一套固定的思維方式的,而這種思維方式,讓我在其他方面也獲益良多,于是就迫不及待的分享給大家。

1.問題本身是什么?

必須先明確問題本身,并對(duì)問題有一個(gè)清晰的認(rèn)識(shí),才能更好的去解決問題。

舉個(gè)我在進(jìn)行python編程語言學(xué)習(xí)的過程中遇到的題目:用天數(shù)計(jì)算年齡。怎么去理解這個(gè)題目呢?用天數(shù)計(jì)算年齡,是不是只需要知道這個(gè)人多少歲,然后把年齡和每年的365天做個(gè)乘法呢?顯然不應(yīng)該是這樣的,這個(gè)題目的含義是需要一個(gè)明確的天數(shù),是從一個(gè)人從出生開始到今天的這個(gè)時(shí)間段內(nèi)有多少天。

在工作中,就經(jīng)常會(huì)碰到某些人,急急燥燥,領(lǐng)導(dǎo)布置一個(gè)任務(wù),還沒搞清楚具體要做什么,就忙著答應(yīng)沒問題,結(jié)果事情完不成,還要其他人給他擦屁股。比如,我有一個(gè)同事,領(lǐng)導(dǎo)讓他幫著寫一個(gè)總結(jié),他立刻滿口答應(yīng)下來,他的文筆確實(shí)不錯(cuò),對(duì)這種總結(jié)那是得心應(yīng)手,僅僅一天之后,一篇聲情并茂的總結(jié)就出爐了。里面以領(lǐng)導(dǎo)自己的口吻,把對(duì)生活、工作、學(xué)習(xí)、管理等多個(gè)方面都做了簡要的介紹,基本都是一些大家常見的但又不影響大局的問題,還有一些冠冕堂皇的收獲之類。領(lǐng)導(dǎo)看了之后就立刻不高興了。為啥?領(lǐng)導(dǎo)想讓他寫的是一篇客觀純粹的工作總結(jié),而不是個(gè)人年度總結(jié)報(bào)告!他完全就沒理解對(duì),浪費(fèi)了功夫不說,還給領(lǐng)導(dǎo)留下了辦事毛躁的印象。

所以遇到問題,一定要先搞明白問題的本身是什么,再去考慮怎么解決怎么做,不要盲目的開始,最后費(fèi)時(shí)費(fèi)力卻事倍功半。

2、明確輸入

只要明確問題本身就行了么?當(dāng)然不夠。

還是繼續(xù)說我的編程題目:用天數(shù)計(jì)算年齡。是不是只要寫個(gè)程序,輸入一個(gè)生日,計(jì)算一下到今天的天數(shù)就可以了?如果你這么想,恭喜你,掉坑里了。用天數(shù)計(jì)算年齡,本身沒有規(guī)定是到今天的年齡,可能是到昨天,也可能是到下個(gè)月的某一天,可以是任何一天。

這個(gè)時(shí)候,我們應(yīng)該意識(shí)到,輸入的不僅僅是一個(gè)生日,還應(yīng)該有另一個(gè)日期來確定年齡,也就是有兩個(gè)輸入?,F(xiàn)在問題明確了,是輸入兩個(gè)日期,來確定兩個(gè)日期間的天數(shù)。

在學(xué)習(xí)中,我們常常忽略明確輸入的重要性。很多人家里都會(huì)買很多本書,擺滿一面墻,但基本不看,偶爾想看了,面對(duì)一墻的圖書,也不知道怎么選擇,往往是隨便拿一本,還美其名曰:“開卷有益!”

我們的時(shí)間是有限的,所以在學(xué)習(xí)過程中一定要有選擇的輸入,要有明確的輸入。比如,我要學(xué)習(xí)哲學(xué),那就明確看什么書,什么時(shí)間看,在哪里看。而不能說,我今天要學(xué)習(xí)的東西有哲學(xué)、心理學(xué)、數(shù)學(xué)、經(jīng)濟(jì)學(xué)、英語……這樣的結(jié)果往往是什么都學(xué)不到,時(shí)間都浪費(fèi)在選擇上了。

最重要的事情只有一件,明確的輸入也就只有一件,只有輸入明確了,我們才有可能得到我們想要的輸出。

3、明確輸出

輸出和輸入是相輔相成的,輸出倒逼輸入是目前一種非常流行的方法,也確實(shí)挺好用,只有有了輸出我們的輸入才更有意義。

我的編程題目中的輸出就應(yīng)該是一個(gè)具體的天數(shù)了。那這個(gè)天數(shù)應(yīng)該是幾呢?怎樣由輸入運(yùn)算得出呢?這就需要一個(gè)明確的算法了,我得統(tǒng)計(jì)兩個(gè)日期之間有多少完整的年,得出一個(gè)天數(shù),再計(jì)算不完整的年的天數(shù),加到一起得出一個(gè)總天數(shù)。

其實(shí)生活中更應(yīng)該明確輸出。輸出就是我們想要達(dá)到的狀態(tài),用一個(gè)美好的詞來解釋就是夢(mèng)想,我們的輸出就是我們的夢(mèng)想。輸出是我們輸入的源動(dòng)力,是我們成長的啟明星。

我們明白生活問題的本身就是衣食住行,去選擇明確的學(xué)習(xí)內(nèi)容是輸入,而我們想要達(dá)到的目標(biāo)就是我們的輸出,但,這還不夠,還需要對(duì)我們輸入和輸出的關(guān)系進(jìn)行測試。

4、用例測試。

用例測試就是拿一些明確的答案去檢測我們的程序的運(yùn)算結(jié)果是否正確。

我上面那個(gè)程序運(yùn)行之后的結(jié)果就是錯(cuò)的。哪里錯(cuò)了?沒考慮閏年問題。普通的年份是365天,閏年是366天。這就是我用例子測試出來的,我發(fā)現(xiàn)我的程序計(jì)算的兩個(gè)日期之間的天數(shù)和實(shí)際答案總是差那么幾天,才發(fā)現(xiàn)忘記考慮閏年了。

其實(shí)在我們的成長歷程中,測試會(huì)更加的重要。程序錯(cuò)了我可以改,甚至可以重寫,人生可以么?我們的生命只有一次,我們只有一次機(jī)會(huì),那我們?cè)趺礈y試呢?靠想!也許你會(huì)覺得不靠譜,但這其實(shí)是一種絕佳的自我成長的方式。

比如,我們都應(yīng)該知道,很多偉大的人之所以成功,是因?yàn)樗麄冏銐蚺?,付出了足夠多的汗水,這就是一個(gè)有固定結(jié)果的用例。把它帶入到我們的人生里,如果我們努力,就可能成功,而如果我們不努力,那就一定不會(huì)成功。

其實(shí)編程思維就是一種明確的目的性思維方式。我們要先對(duì)問題有一個(gè)清晰的認(rèn)識(shí),然后有明確的輸入和輸出,再用測試用例對(duì)我們的過程進(jìn)行測試,得到和預(yù)期相同的結(jié)果。

其實(shí)人生也是一樣,先要理解我們的生存環(huán)境和社會(huì)地位,然后明確自己應(yīng)該怎么努力怎么學(xué)習(xí)才能達(dá)到自己想要的目標(biāo),為了明確我們的做法是否能更接近目標(biāo),就要拿那些已經(jīng)明確結(jié)果的例子去比較分析,最后進(jìn)行自我的迭代成長。

希望這套思維方式對(duì)你有用!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評(píng)論 19 139
  • 這是一個(gè)涼爽的早晨,微風(fēng)習(xí)習(xí),拂面而來。我洗漱完畢,粥煮上,菜切好,坐在窗下,用文字開啟今天的曙光。 ...
    中原雅音閱讀 807評(píng)論 0 0
  • “1994年4月26號(hào)同一天出道,當(dāng)時(shí)我還是一個(gè)演著小品賣鞋墊的大二新生,狼哥呢一襲白衣,我們倆的節(jié)目緊挨著。我演...
    飯飯__閱讀 1,429評(píng)論 4 7
  • 當(dāng)你感到渾身乏力,總是想躺下,而且睡眠很差,哪怕是睡著了也感覺到輕飄飄的,沒有真正入睡,沒有深度睡眠。 建議你第一...
    傲視蝴蝶在家創(chuàng)業(yè)閱讀 1,218評(píng)論 0 0

友情鏈接更多精彩內(nèi)容