<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 編程筆記 By billryan 彈指之間,從我開始接觸編程至今已五年有余,從大一剛接觸 C 語言到現在對計算機編程的一知半解,其中曲折坎坷一言難盡,這本在線筆記記錄了我在學習計算機編程過程中的點點滴滴。 ## About - 關于本文檔 - 本筆記的在線托管倉庫為 [https://github.com/billryan/programming-notes](https://github.com/billryan/programming-notes) 你可以在github中star本項目查看更新。 - 在線閱讀網址為 [http://prog-notes.yuanbin.me](http://prog-notes.yuanbin.me) 在線閱讀的網頁通過gitbook后端生成,推送到github后會觸發 gitbook 和 travis-ci 的編譯,相應的編譯輸出下載鏈接提供Gitbook官網和七牛兩種下載方式,七牛的鏈接中文顯示比較好。 1. Read on the [website](http://prog-notes.yuanbin.me). **力薦** 1. EPUB. [Gitbook](https://www.gitbook.com/download/epub/book/yuanbin/programming-notes), [七牛](http://docs4bill.qiniudn.com/doc/programming_notes_billryan.epub) - Recommended for iPhone/iPad/MAC. 最適合離線查看,實測效果極好。 1. 離線html. [七牛](http://docs4bill.qiniudn.com/doc/programming_notes_billryan_html.tar.gz) - 解壓后即為整個網站的內容,用于本地查看,目前內容更新頻繁,不推薦下載。 1. PDF. [Gitbook](https://www.gitbook.com/download/pdf/book/yuanbin/programming-notes), [七牛- 適合打印版](http://docs4bill.qiniudn.com/doc/programming_notes_billryan_print.pdf) - Recommended for Desktop. 推薦下載七牛的版本。 1. MOBI. [Gitbook](https://www.gitbook.com/download/mobi/book/yuanbin/programming-notes), [七牛](http://docs4bill.qiniudn.com/doc/programming_notes_billryan.mobi) - Recommended for Kindle. 未測試,感覺不適合在 Kindle 上看此類書籍,盡管 Kindle 的屏幕對眼睛很好... - 全文大體上分為三大部分。 1. 第一部分為 Part I Introduction to Programming, 是對計算機編程相對宏觀的介紹,前身為「碧藍右耳」07年發布的 [C/C++ FAQ](http://www.vcgood.com/BBS/forum_posts.asp?TID=1559),我在此基礎上做了大量的整合,以便適應如今蓬勃發展的計算機浪潮。 1. 第二部分為一些方法論的介紹。 1. 相關編程資料的總結。 - 廣而告之:本書的姊妹篇——[數據結構與算法/leetcode/lintcode題解](http://algorithm.yuanbin.me/) 也在火熱更新中~ 第一部分淺析了一些計算機編程背后蘊含的思想,同時提供了不少方法論層面上的技巧——形而下者是也。目的是希望能為大家從全局去把握編程提供一定的思路,不為細節所困。本書是一篇散文,形散神不散——以編程為神,以各章節為形;它同時又是一篇科普文章,讀起來自然不難理解,甚至是輕松幽默的,不過也不要對這本書期望過高,Part I 是從一個初學者/非 CS 專業學生的角度去感悟計算機編程的,功力自然是比不過各路大神大牛。 ## 為什么要整理并公開這個編程筆記 獨樂樂不如眾樂樂,并且公開之后還可以借助 Google 強大的網絡搜索功能方便自己搜索該文檔,何樂而不為~ 正如許三多當初選擇在五班修路一樣,我們也抱著同樣的信念選擇為大家奉獻這么一本小冊子,雖然自身水平有限,但我還是非常愿意和大家一起分享成長路上所獲得的點點滴滴... 大約是在2009年,也就是我當年大一的時候,對計算機各方面了解都不多,上了很久的「計算機文化」和C語言也沒搞懂編程到底是在干啥,只是覺得編程是一件很神奇的事,就像是魔法一般,不過霧里看花終隔一層,始終也未能親身體驗它的樂趣。那時多希望有個諸葛能扶一扶我這個阿斗,即便不是臥龍,鳳雛也行嘛!我想現在一定也有那么一小撮人抱著這種想法,我只想對你說:「該醒醒了!現在不是立波夢話板塊!」**在任何關鍵時刻,能幫助你的人只有你自己,即便你能找到愿意幫助你的人,那也要你花心思去找不是么?** 作為一個曾經的新手,我深知從新手過渡到老鳥需要撥開天空的烏云,翻山越嶺... 正如你們所看到的,書店和網絡上充斥著無數的編程教材,同時可以肯定的是,目前已經面世的教材,窮一人一生之力是不可能看完的。在這些書中,有大量的垃圾書,海量的平庸之作,還有少量的精品,而即使是這少量的精品,也不可能看全。既然書這么多,我為什么還要抽時間再來整理一篇呢?拿本書藍本創作者碧藍右耳的話來說,他還能多畫幾張效果圖掙倆錢花呢。 情況是這樣的,市場上的書雖多,但其中幾乎沒有幾本是面向初學者的。這樣的書是如此之少,以至于要去購買或是閱讀到它們都是很困難的事。他們要么是一下子告訴你所有的事,好像你能在千分之一秒中突然從菜鳥變成高手,要么就是認為有些事你早就應該知道,拿你當高手看,導致你有一種赤身裸體被拋棄于猛獸橫行的非洲曠野的感覺。你還沒有穿上衣服走出帳篷,連刀子都沒有摸過,他們就試圖告訴你草原上有多少可以捕獲的獵物以及他們的位置,告訴你幾百種武器和毒藥的使用秘籍,告訴你兩百條以上的陷阱安放要領。你沒有經過絲毫的練習,甚至還沒有殺死過一只剛出殼的小雞,他們就要你獨自去捕獵數十頭饑餓的獅子。這種看似荒謬的情況從過去持續到今天,至今仍然存在。這并不是說那些寫教材的朋友都是傻瓜,他們面向的讀者是專業的程序員。專業的程序員就像是獵人,他們更換語言就像獵人更換武器一樣,不管他使用哪一種武器,捕獵的基本原理沒有變化,變化的只是武器的使用方法。對一個成熟的獵人而言,再強調基本原理就沒有必要,所以教材編者們對地球人都知道的一些事也就避而不提。 **一個成熟的獵人,他心中的捕獵知識是渾然一體的,武器的選擇,野獸的習性,陷阱的安放,怎樣做和為什么這樣做都結合在一起,沒有哪一部分可以獨立出來。**一部分一部分的教給別人是極度困難的,要教就只能混雜在一起。編程的情況類似,它的知識體系是一個完整系統,談到一個問題總會牽扯到另一個,只不過初學者平時遇到的問題太簡單了,以至于沒有感覺到一個完整知識體系的存在,學起來自然只能是云里霧里。 那么怎么寫好一本面向新手的教材呢?個人認為除了介紹一些必要的基礎和核心知識外,更重要的是知識背后的思維邏輯,功力欠佳的作者往往很難將其如庖丁解牛般解剖到深入淺出的程度。同時思維上的過程有時只可意會而不可言傳,很少有人能很好地注意到思維過程的彌足珍貴。這兩方面原因共同導致了好教材難以復制。 ## 讀者群 讀完上邊的那幾段話你就應該能猜到本書的服務對象了。沒錯,就是為那些**毫無編程經驗但對計算機感興趣**的人準備的,甚至是**接觸計算機不多**的人。這本筆記的目的也正在于此——**為新手介紹一些編程所必需的背景知識和有利的方法,以便于更好地去開啟計算機編程這扇神奇的大門。** 如果你認為自己已有一定的編程經驗,那你可以把你編程入門的這一段經歷與大伙兒分享一下,完善一下這本書或者提 issue 等都是極好的 :) ## 約定、排版及其它 本書中所采用的語言和句法與正規書籍并不完全一樣,中英文混排貫穿全文,有些例子只是為說明問題方便而假設,嚴謹性可能不夠,偶爾還會耍點小聰明或是利用編程中常用的符號,例如用 && 代表和,|| 代表或者,更多的東西等著你們自己去挖掘。在這次改版中我盡量做到中英文分離,不必要的中英文混排其實對讀者并不太友好。 **盡信書則不如無書**——本筆記僅僅只是把各種資料收集之后再結合我的編程體驗進行一次大的整合,但是水平畢竟有限,無法保證所有內容都是正確合理的,信口雌黃和胡說八道僅一步之差,部分評論我盡量保持中立態度。本文引用參考的地方會盡量標注出處以供進一步查閱,同時希望大家閱讀的時候帶著懷疑的態度。 ## 鳴謝 Blue Auris中文昵稱:碧藍右耳,本筆記第一部分原材料創作者,前言中提到的 C/C++ FAQ 正是出自他之手,經他本人同意以公用創作許可協議重新發布,我只是做了大量的組織和整合。可以說,沒有他的 C/C++ FAQ 就沒有這個合輯,謹在此致以崇高的敬意!Everyone本書的最終完善者,沒有大家的努力與汗水就沒有這個優質的筆記。 ## License(許可證) ![pic](https://box.kancloud.cn/2015-10-26_562db8eaa8c7e.png) 如無特殊說明,本作品采用 [知識共享署名-相同方式共享 4.0 國際許可協議](http://creativecommons.org/licenses/by-sa/4.0/) 進行許可,**歡迎 fork 和傳播本文檔,但是請注意遵循以上許可協議。** ## Contribution - 如何貢獻本文檔 如果你發現本文檔有任何可以改進之處,歡迎提交你的改進,具體形式有如下幾種。 1. 成為本項目的 contributor, 發郵件并把你的 github 賬戶名告訴我就可以了,我收到郵件后把你的github賬號加到 Collaborators 中。 1. 提交 Pull Request, fork本文檔的github repo, 發PR給我就好了。 1. 在本文檔的github repo處提交issue, 指出有問題的地方。 1. 在 website [http://prog-notes.yuanbin.me](http://prog-notes.yuanbin.me) 相應網頁下的disqus評論框中添加評論,指出一些typo或者可以改進的地方。 ### 文檔格式及編輯工具 - GFM && kramdown Markdown 使用markdown編寫,只使用 gitbook 支持的 markdown 語法。gitbook 底層的 markdown renderer 為改動的 kramdown,并增加了GFM支持, 支持的擴展 markdown 語法算是非常多了,具體特性詳見 [GitbookIO/kramed](https://github.com/GitbookIO/kramed) 推薦的 markdown 編輯器為 gitbook 自家的 [GitbookIO/editor](https://github.com/GitbookIO/editor), 支持 Windows/Linux/MAC 三大平臺,業界良心!但是實測在Arch Linux下可能會出現占用內存過高的情況... OS X 下目前表現還算良好,編輯界面如下圖所示,最左邊為章節預覽,中間為 markdown 編輯框,右邊為實時渲染頁面,可選擇使用全屏模式。 ![Gitbook Editor](https://box.kancloud.cn/2015-10-26_562db8eab731c.png) 使用其他如 Mou/Vim/Emacs/Sublime Text也不錯,但是在新增Chapter/Section時就比較鬧心了,嗯,你也可以新建 Section 后再使用其他編輯器編輯。 對 Gitbook 不熟的建議看看 [Gitbook Documentation](http://help.gitbook.com/),有助于了解 [http://algorithm.yuanbin.me](http://algorithm.yuanbin.me) 網頁上的文字及各章節等是如何編輯及渲染的。 ### 章節名及編號 章節等文件名全部采用英文,子章節最多到三級,章節編號無需操心,這種瑣事交給 Gitbook 去做就好,如果一定要手動調整,修改`SUMMARY.md`文件,注意其中的縮進關系,Gitbook就指望這個自動給章節編號了。 舉個例子,我現在想新增「動態規劃」及其子章節。首先在 Gitbook 頂部菜單欄「Book」中找到「Add Chapter」,填入「Dynamic Programming」。好了,在Gitbook左側章節欄中就能看到新生成的「10. Dynamic Programming」了,左鍵擊之,Gitbook 就會生成「dynamic_programming」目錄及本章的說明文件「dynamic_programming/README.md」。如果想在「10. Dynamic Programming」下新增子章節,右鍵擊之,「Add Section」即可,同上,子章節文件名仍然使用英文名,網頁顯示的標題可以通過 rename 更改再加入中文。 嗯,以上步驟均可直接新建文件夾及操作`SUMMARY.md`文件完成。 ### 數學公式 其實代碼里是用不著寫數學公式的,但是偶爾分析算法可能會用著,用過 LaTeX 的都知道她生成的數學公式有多優雅,以至于不用她來寫數學公式都有點不舒服... 這個文檔里對于較復雜的數學公式建議使用 LaTeX, 因為托管在gitbook上,所以就用了輕量級的katex插件,沒有用重量級的 MathJax。行內和行間公式都是 兩個$, 區別在于行間公式寫到下一行行首,而行內公式不能寫在行首(廢話...)。katex非常脆弱,對一些高級的 LaTeX 語法不支持,否則無法編譯輸出到網站和pdf,盡量用簡單的 LaTeX 語法或者不用。 ### 正文書寫風格 1. 中英文混排貫穿全文,優雅美觀起見,盡可能在英文單詞前后加空格,這個使能輸入法的中英文間加入空格功能就好了。 1. 代碼的函數名或短代碼建議使用 `code` 1. 使用空行進行分段,嗯,markdown通用 通過github合作時,添加/修改內容時給出能看懂的commit就好了。暫時就想到這么多,其實沒那么多講究啦,感覺看著清楚就好,其他想到的再補充。:-) ### 附件及圖片引用 圖片統一存放在`images`目錄下,其他附件存放在`docs`目錄下。引用圖片鏈接一般可以通過`![Caption](../images/xxx.png)`聲明。 圖片體積太大不利于頁面加載,建議先壓縮后再放入,如果是png圖片可考慮使用 [TinyPNG – Compress PNG images while preserving transparency](https://tinypng.com/) 說了這么多,好像真的有人會協作一樣... =_= #sigh ### To-Do
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看