回覆列表
  • 1 # NC少年

    仁者見仁,智者見智。說下我的理解。

    先類比幾個讓人驚訝、又理所當然的現象詠春只有攤、膀、伏三板斧,卻可以一個打十個!數學只有加法和乘法,卻可以發現運動定律,更可以計算衛星軌道!英文字元只有26個,人類卻可以寫出那麼厚的書,不就是26個字元的排列組合麼?漢字永字八法,“點、橫、豎、撇、捺、挑、折、勾”, 從千年前的司馬遷,還是那麼有滋有味!電路只是處理與或非三種邏輯,卻能組合成彪悍的CPU!即使簡單的組合,也可以千變萬化事情應該力求簡單,不過不能過於簡單。

    程式設計本質上只有分枝判斷(if/else)、迴圈執行(For/while)、遞迴呼叫。不信,去看所有的程式碼,不論何種語言,不論何種功能,都是這三者的反覆組合。正是這三種的組合,卻可以:

    支撐起數億人訪問電商網站構建出人工智慧的神經網路解決資料上個千奇百怪的各種場景問題。

    想想不是很神奇麼?

    但是,這三種基礎邏輯組合起來,千變萬化。正是這千變萬化,讓程式設計可以解決那麼多實際中遇到的問題。

    程式設計,本質上是數學。

    自古至今,人類研究來研究去,無非就兩個科目。一個是哲學,一個是數學。從幼兒園到大學到研究生入學,都離不開數學。很多新的學科,尤其是理工類,都是基於數學。

    為什麼數學可以解決這麼多問題?

    我覺得這是一個哲學問題。你的去問哲學家。或者將夜中的盪鞦韆的十一師兄。

    最近兒子經常問為什麼。比如為什麼水是透明的?我回答說因為水就是透明的。有點無賴,唉。

  • 2 # 大資料和人工智慧UPUP

    因為網際網路時代就是資訊的時代,是萬物互聯的時代。那麼物品之間透過什麼建立聯絡的呢?答案就是資料,那麼身為程式語言就重要的功能就是賦予資料一定的邏輯,那麼這些邏輯的組合就變了功能,比如語音識別,機器翻譯,自動駕駛等。之所題主有此疑問,我認為是對程式語言的理解還不夠全面,應該多去了解一些其它的程式語言,你就會發現,語言不過是描述一段邏輯的形式,區別在於語法,其中的邏輯是不變的。

  • 3 # IT的老司機

    程式設計的目的是什麼,就是為了解決實際問題。

    語言只是一個實現工具,工具本身是不會動的,那就要靠人去設計一套動作,讓它動起來,達到幫助人去解決問題的目的。

    資料是什麼,就是日常的各種現象的數字化表象。人可以去分析它們,但是資料量一旦上去,只靠人就不行了(20個指頭數不過來了)人就需要機器去幫忙,而這種重複性高強度的資料整理工作恰好是機器的長處。

    有了機器的幫忙,人就可以透過透過(資料)現象去看(規律)本質了。但是該怎麼分析該怎麼處理資料,這完全要看人的設計能力了。

    至於程式語言,無論是C、PHP、Java、python,那都是工具,就像改錐、榔頭、鋸子一樣,區別就是什麼環境下最適合用什麼。例如鋸樹當然鋸子最好用,但你也能用榔頭慢慢砸,更可以用改錐一下下捅。至於為什麼別人捅三下就能解決問題,而你要去捅一百下,那是你捅的不是地方(不熟練/不會用/沒經驗)。

    簡單的資料處理過程,例如網上購物,透過選品牌、型別、價格範圍就能確定合適的商品範圍,這就解決了找不到想要商品的實際問題。而程式只是按我們的條件幫我們做了過濾而已,但是否滿足了需求,那還要人去判斷,然後根據結果再設定條件去篩選,直到有或沒有。

    至於資料處理,也不是簡單的過濾,也要先分析資料之間的關係,剔除無關的資料,補全缺失的部分,制定處理規則,然後才是程式設計。迴圈幾次才獲得滿意的結果,而不能簡單的只看最後一次。

  • 4 # IT人劉俊明

    作為一名IT行業的從業者,我來回答一下這個問題。

    首先,程式語言看似僅僅是在處理資料問題,但是隨著大量的資源逐漸資料化,程式語言的資源整合和處理能力也會越來越強大,這一點將隨著大資料的不斷髮展而有越來越明顯的體現。

    程式語言一端要對接各種作業系統和資源平臺,另一端則對接具體的開發場景,作業系統和資源平臺透過介面的方式來開放自身的各種功能,而程式設計師則可以透過程式語言來完成對於這些資源的整合和利用,以完成具體的業務邏輯處理,通常情況下,計算和儲存是程式語言主要的任務。

    程式語言能夠解決什麼樣的問題,或者說程式語言自身的功能邊界,在很大程度上取決於程式語言所處的資源平臺,不同的資源平臺往往能夠解決不同型別的問題。隨著產業網際網路的發展,整個開發領域將逐漸進入到平臺化開發時代,其中雲計算平臺、大資料平臺、物聯網平臺和人工智慧平臺將不斷提升自身的資源整合能力,程式設計師基於這些開發平臺也能夠不斷拓展自身的開發能力邊界。

    程式語言本身也與具體的開發場景有密切的關係,比如嵌入式開發往往會採用C語言,Web開發會採用PHP、Java、Python等,而大資料開發可以採用Python、Scala等,所以程式設計師往往需要根據不同的開發場景來選擇使用不同的程式語言。對於初學者來說,如果沒有明確的開發方向,可以選擇學習一門全場景程式語言,比如Java、Python和C#這三門程式語言就是不錯的選擇。

  • 5 # 科級雞

    為什麼程式語言只是在處理資料卻能解決那麼多實際問題?

    問出這個問題可能是將程式語言指揮電腦處理的資料和平常接觸的狹隘資料定義混淆了,電腦處理的資料不僅是指我們平時說的資料,還有資料間的邏輯關係。如果在資料這個地方鑽牛角尖,還會出現一個較真的問題“明明電腦只能識別0和1兩個資料,他是怎麼處理3的?”。0和1能表示比較大的數字,是引入了進位制這一概念,二進位制數當前位置大於一時,向上一位進一來表示更大的數字,這是二進位制數內部的邏輯關係。進位制這一概念解決了表示更大數字的問題。假如僅僅只有這的話,電腦也只能處理純數字,連最簡單的加減都做不到,為了解決這一問題,電腦引入了邏輯閘這一概念,透過資料與邏輯的結合實現加減的處理(想詳細瞭解電腦加法運算的可以看下我這個回答http://t.cn/AikU4Bdj)以及更加複雜的現實邏輯問題的處理。比如“王五吃飯”這個事情。我們把它拆解為“王五”“吃”“飯”以及一個邏輯真值“True”(數字1)代表肯定動作(用計算機交換碼中規定的數字組合來分別代表“王五”“吃”“飯”)。假如沒有吃飯,將吃的邏輯值透過非閘電路,吃的邏輯值就變為假“False”(數字0)。電腦就是這樣把現實中的事情和電腦中的資料聯絡在一起,並處理他們的邏輯變化,更復雜的問題就是更多的資料以及邏輯關係的組合。程式語言就是直到電腦完成這一過程的工具。

  • 6 # 愛吃火鍋的小青年

    資料是資訊,計算機實際上在交換資訊,和從複雜資訊中找到有價值的資訊,這些資訊幫助人現實世界做出決策,價值由此產生。

  • 中秋節和大豐收的關聯?
  • 如何提高免疫力吃什麼?