首頁>Club>
程式設計思維(想到一個問題,能用程式碼表達出來的能力)特指python,如何用python把一個問題透過程式碼表達。
12
回覆列表
  • 1 # IT人劉俊明

    作為一個從業多年的老程式設計師,我來說說我對程式設計思維的看法。

    很多初級程式設計師總是說自己建立不起來程式設計思維,老覺得解決問題的方式途徑過於單一,很多問題無從下手等等。我也總遇到這樣的學生,剛進課題組時一腔熱血,做了一段時間之後就比較苦惱,覺得自己與同學之間的差距越來越大,而自己總是建立不起來程式設計思維。

    其實,很多人都會談到程式設計思維,那麼到底什麼是程式設計思維呢?在我看來程式設計思維就是解決問題的演算法加程式碼實現的過程的集合,程式設計思維有兩個組成部分,一部分是演算法設計,另一部分是程式碼實現。

    所以,要想鍛鍊程式設計思維,首先要鍛鍊的就是演算法設計的能力。所以我們經常說軟體問題說到底就是演算法問題,演算法設計能力決定了一個程式設計師解決問題的能力。作為一名程式設計師要多瞭解各種不同演算法的特點以及對應的應用場景,這往往需要一個過程。

    程式設計思維的另一個方面就是程式碼實現的過程,對於程式碼實現能力的提高往往需要程式碼量的積累,編寫的程式碼多了自然就會慢慢積累一些經驗,而這些經驗自然就會成為未來解決問題的選項,這些選項的積累就會慢慢形成自己的程式設計思維。

  • 2 # SnailBernoulli

    網易雲課程上有一門課程叫計算機基本原理(大概是這個名字)。哈工大老師講的。去了解一下。可以從人的思維轉到計算機思維(注意一下思維的轉變過程)。

  • 3 # VitalityBunny

    mooc上李曉明老師有一個課講計算機思維方法的,很有意思。

    其次我個人認為,就是邏輯的嚴密性,且所有問題不能只考慮一個解,要找到最優解。

  • 4 # 耕雲不盡釣月無痕

    從抄別人的程式碼開始,參考一些好些的專案。例如所學語言的標準庫實現jdk,開源專案nginx,tomcat,spring,redis,thinkphp等等,瞭解了要解決的問題的來龍去脈,基本慢慢能抽取出個思路。

    站在巨人肩膀上。

  • 5 # 老好學IT

    1.多寫程式碼

    2.閱讀優質的演算法和程式設計書籍

    3.閱讀優質原始碼

    量變到質變,熟能生巧。

  • 6 # 妙小程少兒程式設計

    程式設計思維,說白了就是了解程式設計執行規律而形成的一種邏輯思維。這種思維必須長期浸淫在程式設計中才能形成,所以想培養編成思維,只有一個辦法:多練。

    去抄程式碼,瞭解程式碼邏輯。

    去看優質程式碼,能有效減少邏輯分叉。

    長期以往,程式設計邏輯會自然而然地形成,正如賣油翁所言:“無它,唯手熟耳。”

  • 7 # 日衝資訊 黃

    我覺得程式設計思維有兩道坎,過了這兩道坎程式設計就會So-Easy了。

    機器運算

    這是學習程式設計要過的第一道坎。計算機的運算過程有點象使用計算器做連續計算。每計算一步都需要反覆使用MS,M+,M-,MR儲存結果取出結果。程式設計中真正計算的部分幾句話就完了,大部分程式都在指揮電腦連續動作。這跟我們的思維習慣有點不同。比如,計算1+1對我們來說只有一步,但程式設計的時候則至少要兩步:

    計算1+1結果賦值給變數(a=1+1)將變數的值輸出到螢幕

    再比如,做1累加到10的計算時,必須設定計算終點,否則,電腦會不停的計算下去。

    機器運算的形式是由電腦的構造決定的,和計算本身無關。把同電腦構造相關的內容從程式語言中剔除是自然語言程式設計的一個課題,至今為止,還不能完全實現。因此,簡單理解電腦的處理過程,對掌握程式設計方法是有一定幫助的。

    萬物皆數

    建立了機器運算的思維方式之後,學會建立數學模型將使你的程式簡潔準確。這是程式設計要過的第二個坎。數學模型的名稱給人一種高深的感覺,別擔心這裡所說的數學模型只是指最基礎的數字化模型。簡單地說就是把要做的事情用數字表達出來。比如,算1到10的累加。剛學會程式設計的時候,很多人都喜歡做迴圈計算。其實,這是沒有必要的,下面這句話看起來有點囉嗦,但效率很高。

    a=1+2+3+4+5+6+7+8+9+10

    再舉個例子,你想編一個萬年曆的程式,也就是說,隨便給個日期,計算出是星期幾。基本思路是計算出這一天距離公元一年一月一日(星期日)的日數,求除以7的餘數。這裡省略計算閏年的問題,只說說如何計算當年的日數。這裡有個麻煩就是如何累加每個月的日數。很多初學者喜歡用迴圈進行累加,但和前面的例子一樣,這是沒有必要的。做一個數組就可以了。

    a[]={31,59,90,120,151,181,212,243,273,304,334,365}

    用月份減1取結果加上日期就算出來了。

    有很多時候,需要使用數字來表現某種事物。比如圖片,就是把它拆成一個一個的畫素,用3個數分別表示紅綠藍色彩的濃度以實現調色。這裡就不囉嗦了。

    總結一下,所謂程式設計思維有兩個部分,一是機器運算的思維方式,一是數字化的思維方式。讓人如同機器一般運算,是程式設計最不人道的地方,程式設計師給人一種刻板呆滯的感覺跟這種思維方式有很大關係。而數字化思維則讓程式設計師看起來聰明睿智魅力十足。事物總是有兩面的,你怎麼看?

  • 8 # 修心的流浪者

    編寫無處下手的話,可以多看一下程式完整的程式碼。然後嘗試的去模仿,比如說做一些改動,增加一些功能之類的。慢慢的就會有一個開竅的過程。

  • 9 # 溫書而知新

    我對於程式設計這項技能一直都很嚮往。我經常在做到一些繁瑣的重複型的工作的時候,想如果有一個小程式能幫我做一些簡單的重複工作就好了,這個時候往往就覺得自己如果會程式設計的話,就能幫助自己更好的工作了。但是隔行如隔山啊,像我這種美術出身的人來說,程式設計簡直就像另一個世界的語言,完全不能理解。看了這本《寫給所有人的程式設計思維》之後,我覺得我和程式設計的世界好像拉近了一點。

    這本書的書名叫做《寫給所有人的程式設計思維》,顧名思義,它非常的通俗簡單,可以讓所有的人都懂。所有人是什麼概念,我想大約是從兒童到老人都可以吧。

    這本書的封面上就把這本書的主旨給寫的非常清楚了。什麼是程式設計思維呢?。就是框架設計思維--發現問題,問題拆解思維--思考問題,函式思維--解決問題。如果用“框架設計思維,拆解思維和函式思維”,大家一定都覺得很難。但是如果用“發現問題,思考問題,解決問題”,大家都會發現,這不就是我平常都在做的事情嗎?

    比爾蓋茨說過:學習程式設計可以鍛鍊你的思維,幫助你更好地思考,建立一種我認為在各領域都非常有用的思維方式。

    沒錯,感覺這本書的作者的初衷就是希望大家都能從日常生活中發現自己的程式設計思維,進而對程式設計這門課程有一個非常系統的瞭解。

    一,

    這本書的開始第1章,介紹了一下計算機的特徵,計算機的分類。計算機並不是我們大家所認為的就只有電腦,其實很多的我們身邊的電器現在也都算是計算機的一部分,甚至我們看的電子書也算是一種計算機。第1章還介紹了程式設計與計算機的歷史,幫我們梳理了一下計算機從最原始的狀態到現在遍佈我們身邊這段時間發生了怎麼樣的變遷。

    二,

    第2章就直接跳到了解決問題,這裡就有了一個疑問。“發現問題”這一章在哪裡呢?我思考了一下,發現“發現問題”這個根本就不用專門的講,因為我們平時身邊都是在不停的產生問題。

    如何用程式設計的思維來解決問題呢?這裡面講的其實非常的詳細,大致上來說就是,當碰到問題的時候,我們應該怎麼解決?

    第一, 弄清楚我們碰到的是什麼樣的問題。

    第二, 思考問題是否有不同的解決方法?

    第三, 我們驗證我們想到的這些解決方法是不是可行?

    聽起來是不是很熟悉,這不就是我們平時碰到問題解決問題的一個思路嗎?其實人的大腦就是一臺特別精密的天然計算機,所以計算機可以說是在模仿人的一個大腦,但是並不及大腦那麼精細。所以當人們給電腦下指令的時候,就需要把它拆解成非常非常精細的一步一步的指令。

    比如說疊被子這個指令就需要告訴機器人,

    ——先檢視羽絨被,被子拉平了嗎?沒有的話就拉平。

    ——再看毯子,毯子拉平了嗎?沒有的話就拉平毯子

    ——在看枕頭,枕頭放在毯子上了嗎?沒有的話就把枕頭放在毯子上

    ——然後才能結束。

    這個看起來是不是覺得計算機很傻呢?嗯,其實就是如此,聰明的還是程式設計的程式設計師啊。

    看到這裡的時候才發現,作者其實並不是告訴你該如何程式設計,而是告訴你,我們做任何事情都要有一個程式設計思維,程式設計思維是什麼思維呢?就是把各個方面都想到,然後做到最完善最圓滿最不會出錯的那一個行動。

    麥肯錫公司的第一個女諮詢顧問芭芭拉·民託(Barbara Minto)曾提出著名的思考方式——“金字塔原理(The Minto Pyramid Principle)”。

    其中,提到了一個重要原則:MECE,即Mutually Exclusive Collectively。Exhaustive,中文意思是“相互獨立,完全窮盡”。也就是,將影響一個重大議題的原因,不重疊、不遺漏地拆分,藉此有效把握問題核心,找到解決方案。

    當遇到簡單問題的時候,可能只需要幾個步驟就可以圓滿的解決一件事情。但如果遇到一個很複雜的問題的時候,我們該如何用程式設計思維來解決呢?這本書裡面也給了一個完美的答案,就是把這個複雜的問題拆成無數個,或者說若干個簡單的小問題,然後一步一步的來解決,這個是不是就跟王首富說的,先給自己定一個小目標是一個意思呢?

    當我們碰到一個很難的問題的時候,我想大部分人都可能會覺得非常的棘手,一部分人就會馬上開始做,其實辯證思維告訴我們最正確的方法應該是先把這個問題拆解了,拆解成一部分,然後我們立刻就能知道這些問題的難點在哪裡。我們需要攻克的方向在哪裡?並且這個看起來很複雜的問題拆解完之後就會變成無數個簡單的小問題,這樣是不是對人的壓力更小一些呢?

    作者還提醒我們解決這些問題的時候,要關注那些沒有給出的條件和資訊,因為答案會藏在我們看不見的地方。有些時候這些問題可能會受到約束,我們記得一定要在這些約束條件之下做。

    三,

    第3步學習程式語言。這一部分其實可能是我看的最累的一部分,因為我實在是跟不上理科生的這個思維。

    作者先介紹了各種程式語言,世界上有那麼多的程式語言,人不可能全部都學會。作者把一些經常用的程式語言都做了一個普及性的瞭解,讓我們知道了原來這些程式語言的原理是什麼,該如何的運用。作者在其中還配套了有趣的小遊戲和小小的插畫,讓看的人更能簡單易懂的瞭解作者到底在說什麼。當你的程式語言程式設計思維都已經準備好的時候,剩下的就是不停的練習了。

    這本《寫給所有人的程式設計思維》,看完之後給我最大的感受並不是說如何學習程式設計,而是說原來我們生活中遇到的所有的事情都可以用程式設計思維來解決,讓問題分解簡化,可以大大的減少我們對於碰到問題時候的焦慮,這不是比學會程式設計更大的收穫嗎?

    正如美國麻省理工學院的計算機教授瑞斯尼克所說的:“在學程式設計的過程中教會孩子們如何將複雜的想法分解成幾個部分,不管孩子以後做什麼,都可以用的到,這才是學程式設計的意義所在。”

  • 10 # 少兒程式設計老猿

    要說怎麼訓練程式設計思維,首先要明白什麼是程式設計思維。這個可以從兩個維度來說明,第1個是能夠把人類的語言轉化成計算機語言。第2個相反,是把計算機語言轉化成人類語言。這是不是很像翻譯的工作?其實就是類似的。

    如何來訓練程式設計思維呢?首先必須熟悉計算機,熟悉作業系統。然後學習一門程式語言,理解從程式碼到可執行程式的編譯過程,在不斷熟悉計算機程式設計後。嘗試著把現實問題用程式設計的方法來實現。另一方面,多看一些別人優秀的程式碼。

  • 11 # 亮亮老師之計算機程式設計

    首先,我認為要培養良好的程式設計思維一定要先打好基本功,能比較深刻的理解掌握一門程式語言,因為語言本身也是人設計的,既然設計成這樣使用,一定有它的思維方式在裡面,打個比方,C語言之所以設計了指標功能,就是為了能更靈活更高效的定址記憶體,快速操作資料。我們要充分理解這種思想,並紮實掌握,在實戰中靈活應用。此外,基本功還包括一些基本演算法和資料結構的理解和應用,比如冒泡演算法,連結串列結構這些,它們都是最基礎的程式設計思維的體現。所以狠抓基本功十分必要。

    其次,程式設計要重視架構,架構即設計模式,它本身也是軟體工程中的一個重要組成。編寫一個程式的時候不能只顧完成功能即可,一定要思考軟體能不能分個模組,能不能層次化,方便以後擴充套件。比如完成一個特定功能有好幾種演算法,那能不能設計成工廠模式,方便以後擴充套件演算法,這樣做,看似程式碼複雜化了,但是其內涵就要比普通做法提升了很多。所以設計模式其實就是程式設計思維的一種重要表現形式。

    知道了方法,就要去實踐,方法有很多,多看優秀的開源作品,瞭解其架構設計和設計模式。多動手,精通一門語言,多練習基本演算法資料結構的實現。只要方法得當,堅持不懈,水平自然就提升了。

    在以上的分享關於這個問題的解答都是個人的意見與建議,我希望我分享的這個問題的解答能夠幫助到大家。

  • 12 # 勇士智造

    import 思維包

    Class 問題類:

    def __init__(self,做晚飯_菜,做晚飯_多大火候):

    self.

    菜品=做晚飯_菜

    self.火候=做晚飯_多大火候

    今晚做什麼飯=問題類(大頭菜,大火)

    print(今晚做什麼飯.菜品)

    print(今晚做什麼飯.火候)

    輸出:大頭菜

    大火

  • 中秋節和大豐收的關聯?
  • 喝什麼果汁比較健康?