個(gè)人編程想法心得(不定期更新)

引言

此篇文章是我在編程的過(guò)程中遇到的一些方法和心得, 甚至超出了編程的范疇,以前多記載于紙面或者是備忘錄等, 所以并不權(quán)威, 可能只是一家之言, 不免瑣碎.
引用<大學(xué)的觀念>(<The Idea of a University>)的作者約翰 · 紐曼的一句話

只有教育, 才能使一個(gè)人對(duì)自己的觀點(diǎn)和判斷有清醒和自覺(jué)的認(rèn)知, 只有教育, 才能令他闡述觀點(diǎn)時(shí)有道理, 表達(dá)時(shí)有說(shuō)服力, 鼓動(dòng)時(shí)有力量. 教育令他看世界的本來(lái)面目, 切中要害, 解開(kāi)思緒的亂麻, 識(shí)破似是而非的詭辯. 撇開(kāi)無(wú)關(guān)的細(xì)節(jié).

而知識(shí), 見(jiàn)解, 經(jīng)驗(yàn)的分享和學(xué)習(xí)是自我進(jìn)行學(xué)習(xí)的一個(gè)重要的途徑, 所以, 知識(shí)的分享總會(huì)增值, 非常期待與各位看官切磋想法, 交流心得.


知識(shí)的分類

我個(gè)人會(huì)把我所獲得知識(shí)分為兩個(gè)大類, 陳述性的知識(shí)和程序性的知識(shí).

  • 陳述性知識(shí): 用敘述事實(shí)來(lái)思考他, 他維護(hù)了真相, 事實(shí)的陳述, 舉個(gè)例子, X的平方根是Y,Y的平方是X. 他是個(gè)事實(shí), 也就是原理, 或者說(shuō)是定義,他并不會(huì)幫助你計(jì)算出X的平方根或是Y的平方是多少, 他最多可以幫助你檢查你的計(jì)算, 他會(huì)告訴你怎么才可能去檢查一些事, 但是他沒(méi)有告訴你怎樣的去檢查.
  • 程序性知識(shí): 有了陳述性質(zhì)的知識(shí), 程序性的知識(shí)就非常好理解了, 程序性質(zhì)的知識(shí)可以是對(duì)推論事情的具體的描述, 解決一件事情具體的方法, 是一系列行動(dòng)具體的描述.

一法通而萬(wàn)法通的編程

什么是最好的語(yǔ)言之蓋棺定論

當(dāng)你接觸到了編程, 開(kāi)始編程后得一段時(shí)間, 你會(huì)感覺(jué)到你所寫的代碼, 對(duì)于目前來(lái)說(shuō), 他們已經(jīng)把你所需要的變量, 類型, 甚至一部分功能都已經(jīng)準(zhǔn)備完全了或者說(shuō)是原材料都準(zhǔn)備好了. 你需要做的只是那他去編寫程序, 或者說(shuō)是根據(jù)這些原材料去制作菜肴, 一個(gè)菜譜最根本的其實(shí)就是一堆原材料所構(gòu)成, 包括了柴米油鹽等等.
1936年圖靈展現(xiàn)了6種最基本的數(shù)據(jù)類型,可以在計(jì)算過(guò)程中, 表達(dá)出任何含義來(lái), 六個(gè)基本類型,你可以規(guī)定整個(gè)世界, 6個(gè),你可以編寫任何的程序, 一種編程語(yǔ)言能夠做的事情在另一種編程語(yǔ)言中你也能夠做到, 所以上文說(shuō)道, 沒(méi)有一種編程語(yǔ)言是best language, 他也叫圖靈兼容性


Alan Mathison Turing

參考于Quora
六條基本指令
1.read
2.write
3.erase
4.move left
5.move right
6.halt

基于此我個(gè)人覺(jué)得計(jì)算機(jī)或者說(shuō)是編程知識(shí)的體系結(jié)構(gòu)應(yīng)該是成一個(gè)倒立的金字塔形狀或者是一種菱形.
有趣的是, 在目前來(lái)說(shuō), 或者是目前的大部分人來(lái)說(shuō), 都是先建立起金字塔的最中心部分,在去針對(duì)深度, 廣度, 和高度去拓展(我一個(gè)老師確切的提到這三個(gè)角度, 當(dāng)時(shí)覺(jué)得很有意思) 最后才形成了金字塔或者說(shuō)接近于金字塔的形狀

所以基于圖靈兼容性我可以得到以下結(jié)論

總會(huì)聽(tīng)到一些話, 什么什么語(yǔ)言最好, 但是經(jīng)過(guò)你仔細(xì)的思考你就會(huì)發(fā)現(xiàn)沒(méi)有 best language 他們?cè)谀承┣闆r下,某些環(huán)境中, 會(huì)比其他的語(yǔ)言更好用, 有更強(qiáng)的功能, 更強(qiáng)的適應(yīng)性, 更適用, 這個(gè)世界有上百或者說(shuō)是幾百種編程語(yǔ)言, 有的甚至是專門用來(lái)解決一種問(wèn)題. 所以初學(xué)者要想好你想做什么, 你是真正的熱愛(ài)編程還是想要拿她去賺錢, 養(yǎng)活自己, 或者說(shuō), 你在接觸到or對(duì)編程有一定了解的時(shí)候, 你就會(huì)非常理智的選擇自己學(xué)習(xí)的語(yǔ)言了, 而不是一味的跟風(fēng), 一味的什么火 才去學(xué)習(xí)什么.


對(duì)于編程人員來(lái)說(shuō)(主要為新手)十分重要的事情

再講這個(gè)事情之前我會(huì)把一個(gè)程序的要素分為語(yǔ)法和語(yǔ)義

  • 語(yǔ)法: 語(yǔ)法的含義就是, 在語(yǔ)言中合法的表達(dá), 或者說(shuō)是在這個(gè)語(yǔ)言中一句話or一個(gè)功能的合理表示是什么.
    所以需要你掌握一個(gè)語(yǔ)言正確的語(yǔ)法, 需要對(duì)你怎么把寫好的表達(dá)式合理的放在一起進(jìn)行描述
  • 語(yǔ)義: 語(yǔ)言的含義, 或者說(shuō)在編程中可以直接的表達(dá)一定的含義的一段代碼, 我更傾向于把他歸類為整體(這個(gè)整體甚至可以小于一行代碼)的含義. 或者說(shuō), 當(dāng)我運(yùn)行了這段代碼他會(huì)發(fā)生什么

對(duì)于新手來(lái)說(shuō), 經(jīng)常性的會(huì)出現(xiàn)的問(wèn)題就是BUG, 這并不是說(shuō)老手或者是大神就不會(huì)出現(xiàn)這種問(wèn)題, BUG是每一個(gè)編程者都無(wú)法躲避的東西.


痛苦的debug
痛苦的debug
為什么針對(duì)新手說(shuō)呢?

這就是一些新手經(jīng)常性的犯一些語(yǔ)法的錯(cuò)誤, 如果你犯這種錯(cuò)誤, 恭喜你, 目前絕大多數(shù)的開(kāi)發(fā)平臺(tái)都會(huì)以一個(gè)大大的紅色嘆號(hào)或者是一個(gè)黃色的警告提示你,他很容易會(huì)被發(fā)現(xiàn), 而且你一般無(wú)法帶著這種error去運(yùn)行程序, 你會(huì)很容易的修正他.

什么是不容易被發(fā)現(xiàn)的錯(cuò)誤 & 有什么后果

但并不是所有的錯(cuò)誤都是語(yǔ)法上的錯(cuò)誤, 或者說(shuō)是被開(kāi)發(fā)平臺(tái)所捕獲, 有一些問(wèn)題會(huì)躲過(guò)檢查, 這些錯(cuò)誤多是語(yǔ)義的錯(cuò)誤, 是程序無(wú)法去做出判斷的, 或者說(shuō)你的邏輯超出了開(kāi)發(fā)平臺(tái)的偵測(cè)邏輯.
這些沒(méi)有被偵測(cè)出來(lái)的錯(cuò)誤就意味著你成功的運(yùn)行了你的程序, 你的程序給你返回了一個(gè)值, 但是這個(gè)值卻不是你想要的, 最可怕的是你可能會(huì)分辨不出來(lái), 甚至這個(gè)錯(cuò)誤會(huì)與你的程序整體產(chǎn)生聯(lián)動(dòng), 沿著程序的運(yùn)行一直的傳播下去, 直到他深埋于程序的最深處, 你卻找不到他在哪, 產(chǎn)生可以稱為災(zāi)難性的后果.

有什么解決的方法

因此, 所有的程序員都會(huì)希望開(kāi)發(fā)平臺(tái)可以提示出所有的error, 但是并不能做到, 但是這就是一個(gè)程序員需要做的事, 解決BUG, 甚至是這種BUG也是我們工作的一環(huán),所以, 當(dāng)你的代碼中語(yǔ)法沒(méi)有錯(cuò)誤, 而且也沒(méi)報(bào)錯(cuò)的時(shí)候, 你就需要考慮你的語(yǔ)義是否有問(wèn)題了, 為了解決這種錯(cuò)誤避免他的發(fā)生, 除了你要對(duì)本身所學(xué)習(xí)的語(yǔ)言所有了解, 你還需要一種不會(huì)觸發(fā)這些錯(cuò)誤的編碼風(fēng)格 — 無(wú)論你在學(xué)習(xí)或是使用哪種編程語(yǔ)言, 所以你需要形成一種良好的編碼風(fēng)格, 一種容易發(fā)現(xiàn)程序中的語(yǔ)義BUG的風(fēng)格

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評(píng)論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,615評(píng)論 3 419
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,606評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,044評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,826評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,227評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,447評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,992評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,807評(píng)論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,001評(píng)論 1 370
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評(píng)論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,243評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,667評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,930評(píng)論 1 287
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,709評(píng)論 3 393
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,996評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,666評(píng)論 25 708
  • TITLE: 編程語(yǔ)言亂燉 碼農(nóng)最大的煩惱——編程語(yǔ)言太多。不是我不學(xué)習(xí),這世界變化快! 有時(shí)候還是蠻懷念十幾、二...
    碼園老農(nóng)閱讀 5,348評(píng)論 2 35
  • 本文把程序員所需掌握的關(guān)鍵知識(shí)總結(jié)為三大類19個(gè)關(guān)鍵概念,然后給出了掌握每個(gè)關(guān)鍵概念所需的入門書(shū)籍,必讀書(shū)籍,以及...
    dle_oxio閱讀 11,160評(píng)論 6 244
  • 黑夜漆黑 但是有漫天的星斗 有未盡的空間 有無(wú)限的時(shí)間 無(wú)限大 無(wú)限廣 無(wú)限長(zhǎng) 偉大和磅礴都不足以形容 他是時(shí)間和...
    子風(fēng)乄閱讀 216評(píng)論 0 0
  • 每一片葉子都不一樣~
    天野丟閱讀 697評(píng)論 1 3