編程哲學之C#篇:01——創世紀

来源:https://www.cnblogs.com/weixb/archive/2018/07/06/9269358.html
-Advertisement-
Play Games

我們能否像神一樣地創建一個世界? 對於創建世界而言,程式員的創作能力最接近於神——相對於導演,作家,漫畫家而言,他們創建的世界(作品)一旦完成,就再也不會變化,創建的角色再也不會成長。而程式員創建的世界,每次運行都可以有不一樣的內容,而且最為重要的,我們還能給與角色不能學習的能力(AI[人工智慧]... ...


我們能否像神一樣地創建一個世界?

對於創建世界而言,程式員的創作能力最接近於神——相對於導演,作家,漫畫家而言,他們創建的世界(作品)一旦完成,就再也不會變化,創建的角色再也不會成長。而程式員創建的世界,每次運行都可以有不一樣的內容,而且最為重要的,我們還能給與角色不能學習的能力(AI[人工智慧])。本章就向你展示程式員像神一樣創建世界的可能性以及為什麼這一系列的文章叫《編程哲學》。

創世紀

  • 起初...空虛混沌,淵面黑暗
  • 神說:要有光
    • 於是,就有了光...
  • 神說:天上要佈滿星辰
    • 於是,宇宙間佈滿了數不清的大大小小的星球...
  • 神說:水應聚集在一起,使旱地顯露
    • 於是,有了陸地與海洋...
  • 神說:陸地上要生出草木和各種蔬菜
    • 於是,整個大地上一片生機盎然...
  • 神說:水中要有眾多的魚,天空中要有無數的鳥
    • 於是,世間出現了各種各樣的魚和飛鳥...
  • 神說:要有人
    • 於是,神照著自己的形像造人...
      • 人通過觀察與學習...
        • 人說: 要有光

人創造的世界(宇宙)

網路世界

維基百科
其代表:維基百科,人類將現在的知識不斷地編寫到這個網路世界中,方便人交流與學習。

在這個世界中我們創造了文字、圖片、聲音、影像,但比起神所創造的世界,還遠遠不夠,繼續提升技能吧——上帝見習生(叫程式員,太low了,這系列我都會將想學編程的人稱為上帝見習生,我們的目標是像神一樣創建世界!)

游戲世界

頭號玩家
《頭號玩家》——電影中,玩家通過VR設備進去游戲,可以在金字塔上滑雪,可以和蝙蝠俠一起去登陸珠穆朗瑪峰,可以穿梭游戲中各個星球,可以通過穿著X1觸感套裝將游戲中觸覺傳給身體。

在這個世界中,我們可以360度觀察我們創造的世界,可以通過穿著觸感套裝來增加對游戲世界的體驗,但比起神所創造的世界,還遠遠不夠,繼續提升技能吧——上帝見習生

I'm a dreamer, I build worlds
我是一個夢想家,我創建世界——詹姆斯·哈利迪《頭號玩家》

虛擬世界

黑客帝國_覺醒
黑客帝國_尼奧
《黑客帝國》——電影的故事背景是,21世紀中葉人類發明人工智慧,在隨後的幾十年迅速發展。也不知道是人類還是機器挑起了戰爭,不過可以確定的是人類為了消滅機器燒焦了天空,從此地整個球被一層黑雲籠罩著。地球不再有陽光,人類自認為機器沒有了陽光很快就完蛋了(當時地球的主要能源是太陽能,其他的資源都消耗完了),而人類依靠有機物可以堅持一段時間。但是結果人類想錯了,沒有了陽光地球唯一的能源就是有機物。最終機器發現人類的生命活動可以釋放大量的電能,於是機器利用人類發明瞭有機電廠,利用活體人類發電。為了讓人類的意識活著,機器人將人類的大腦連接到一個虛擬世界中。而上圖圖1就是電影男主覺醒後看到世界的真實樣子。

在這個世界中,我們創造了有智慧的人工智慧,但有一個瑕疵,就是人類和人工智慧在同一個世界中,你覺得呢——上帝見習生

子世界

異次元駭客
《異次元駭客》——男主和他的好基友用電腦模擬出一個逼真的世界,他們可以通過電腦進入這個虛擬世界,真實地體驗的生活與自己。然而一個夜裡,好基友被人殺死,種種線索都表明似乎是男主所為。可男主卻對當天夜裡的事情全無記憶。而真相是:如同男主可以進入他用電腦模擬出的虛擬世界一樣,他可以控制裡面的一個人物,男主也是這樣被更加上層的世界的人所控制殺了好基友。最後男主在女主的幫助下,打開了現在世界的門,前往了更加上層世界。

在這個世界中,我們創造了子世界,而子世界的人又創造了另外一個子世界...每個世界的人都富有智慧和創造力,或許這就是我們的目標——上帝見習生

這部電影給了我一個很大的啟發,我們可以編程創建一個新的世界出來,給世界中的人類智能,如果裡面的人突然有一天發現他們的世界被創造出來的,並且找到前往創作者世界的方法,那麼我們是不是可以從中找到跳躍出宇宙外的可能性呢?

編程哲學

我們要如何創造一個世界(宇宙)呢?正如我在上面創世紀小節說了,人通過觀察與學習,我們要創造一個世界(宇宙),入手點就應該好好地觀察和分析我們的世界(宇宙)是怎麼樣的。而研究這個世界(宇宙)的性質、世界(宇宙)內萬事萬物演化的總規律、人在世界(宇宙)中的位置,是哲學的範疇。

哪為何編程語言和哲學掛上勾,請看下麵表格

語言符號 哲學代表
強類型語言 哲學代表:帕拉圖與亞里士多德的“永恆世界”
弱類型語言 哲學代表:釋迦牟尼的“佛學”
二進位 哲學代表:伏羲、周文王、孔子的《易經》與太極八卦圖

上面的表格的內容,本系列會一一解答,讓你明白每種編程語言都代表一種思維方式,一種哲學觀

本系列核心內容是介紹各種哲學觀和思維方式,隨便把某種編程語言學了。

霍金在他的《大設計》中表示哲學已死,因為哲學已經遠遠趕不上現代科學的步伐了。然後我的觀點是,現代科學只是在告訴我們所生存依賴的世界是怎麼樣的,但如果我們要創造一個世界的話,一般都會加上自己的“想法”,而這個“想法”誰可以來告訴我們呢?

由於我們的文化原因,我說明一下我對佛學和佛教的看法。教你戒色,戒酒,戒肉,這些是屬於佛教的內容。而“看山是山,看山不是山,看山還是山”這些是屬於佛學內容。簡單來說,佛學是教你怎麼看這個世界——這是哲學的範疇。

結束語

這也許是編程史上最強的打雞血文章:程式員是像神一般的存在。但創造一個世界不會真的像創世紀的神一樣說幾句話就成了,唯有學習才能賦予我們神一般的創造能力。

下一章將介紹在閱讀本系列時,需要應用到的學習思維。

最後留下一道可以思考一生的問題:你認為的世界是怎麼樣的,你想創造一個怎麼樣的世界?


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 數組是一個變數,存儲相同數據類型的一組數據 聲明一個變數就是在記憶體空間划出一塊合適的空間 聲明一個數組就是在記憶體空間划出一串連續的空間 數組長度固定不變,避免數組越界 數組是靜態分配記憶體空間的,所有元素存放在一組連續的存儲單元中,一旦分配,不可更改,不便於擴展, 數組便於查找和修改,不利於插入和刪除 ...
  • 先看一下項目圖,基本就理解了整合的內容 這次主角不再是Mybats的配置文件SqlMapConfig.xml了,而是Spring的applicationContext.xml applicationContext.xml Spring同樣開始整合數據源datasource IoC控制反轉生成sqlS ...
  • RabbitMQ系列目錄 1. "RabbitMQ在Ubuntu上的環境搭建" 2. "深入解讀RabbitMQ工作原理及簡單使用" 3. Rabbit的幾種工作模式介紹與實踐 4. Rabbit事務與消息確認 5. Rabbit集群搭建 6. 使用HAProxy為RabbitMQ搭建負載均衡 7. ...
  • 一. 字典的簡單介紹字典(dict)是python中唯一的一個映射類型.他是以{ }括起來的鍵值對組成. 在dict中key是 唯一的. 在保存的時候, 根據key來計算出一個記憶體地址. 然後將key-value保存在這個地址中. 這種演算法被稱為hash演算法,所以, 切記, 在dict中存儲的key ...
  • 上一篇:LeetCode鏈表相加-Python<二> 以前沒怎麼做過演算法題,來來去去都是那些迴圈,所以先從數組簡單題開始做。 這兩天最大心得: 總在邊界里考慮不周到,導致錯誤 做暈的時候,連變數名都跟參數重名了 有時候,開始考慮的情況太粗糙 幸好,都找出了問題,並通過。下麵貼貼代碼: 題目:無重覆字 ...
  • 一. 字典的簡單介紹 1,字典(dict)是python中唯一的一個映射類型.他是以{ }括起來的鍵值對組成. 在dict中key是 唯一的. 在保存的時候, 根據key來計算出一個記憶體地址. 然後將key-value保存在這個地址中. 這種演算法被稱為hash演算法, 所以, 切記, 在dict中存儲 ...
  • 使用要求: Sender代碼必須要在一臺有攝像頭的電腦上運行起來。然後把數據編碼,壓縮之後,再傳給另外一個電腦 Reciever作為接受端,沒什麼特別的要求。 兩個電腦都必須要按轉好numpy + opencv (安裝方法的話,在我的opencv文集中有一篇就是寫這個的) 對了,我的接受端關閉操作是 ...
  • 熟悉ASP.NET架構的開發者一定對於HTTP Modules與HTTP Handlers不陌生。兩者的作用主要是對網路請求執行特定的處理工作。而在.NET Core中,它們都被Middleware(中件間)取代了。 之前的Http Modules和HTTP Handlers是如下圖般處理請求的: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...