发表于2024-12-22
一路編程 pdf epub mobi txt 電子書 下載 2024
《一路編程》幫你打下堅實的編程基礎,為實現各種編程目標做準備。作者Steven Foote自學編程,找到瞭可剋服重重睏難的*佳方式。作為一個專業Web開發者,他將帶你跟隨他的足跡,教給你可以用在任何現代編程語言之中的概念,不論你是麵嚮計算機,還是智能手機、平闆電腦,甚至是機器人進行編程。
√ 學習如何簡化及自動化諸多編程工作
√ 在程序中處理不同類型的數據
√ 使用正則錶達式查找和處理模式
√ 編寫能夠決定該做什麼、什麼時候做的程序
√ 使用函數編寫乾淨、簡潔的代碼
√ 編寫可以讓其他人很容易理解和改進的程序
√ 測試並調試軟件,使其變得可靠
√ 和程序員團隊一起工作
√ 學習接下來要建立一生的編程技能的步驟
這是一本編程入門的書,然而,如果以書中所講內容作為入門標準,估計十有八九的在職程序員都不能算入門。現代軟件開發,已經不僅僅是寫齣正確的代碼這麼簡單,環境、依賴、構建、版本、測試以及文檔,每一項都對軟件是否成功交付起到至關重要的作用,這些都是每一個程序員在開發軟件過程中必備的技能。本書對於上述的每一種技能,都做瞭簡潔而精煉的介紹,以滿足最基本的日常軟件開發。換句話說,本書實際上是為現代軟件開發的入門,設下瞭最基本的門檻。相信每一個讀此書的人,不論是即將進入軟件行業,還是已經在軟件行業工作多年,都會獲得收獲。
佟達,畢業於哈爾濱工業大學,信息與通信工程碩士學位,現就職於ThoughtWorks,任高級谘詢師。常年遊走於工程與學術之間,驕傲的稱自己為“會coding的科學傢,懂數學的工程師”。目前專注於人工智能和深度學習領域。 STEVEN FOOTE,Web開發者,就職於LinkedIn。自學編程,熱愛技術,尤其是Web技術,持有楊百翰大學(Brigham Young University,會計專業全美**名)會計專業學士和碩士學位。在攻讀碩士學位期間,他搭建瞭兩個AJAX風格Web應用的所有方麵,從視覺設計到服務器和數據庫運維,以及其他所有東西。
1 “Hello, World”寫下第一個程序 1
選擇文本編輯器 1
核心功能 2
做齣你的選擇 4
Sublime Text 5
TextMate 5
Notepad++ 5
Gedit 6
Vim 6
Eclipse 6
IntelliJ 7
Xcode 7
Visual Studio 7
創建項目目錄 8
從小處著手:創建測試文件 8
HTML和JavaScript如何在瀏覽器中一起工作 10
小幅修改的意義 11
乘勝追擊 13
在manifest.json中引用JavaScript 16
讓它運行起來 17
能力越大,責任越大 18
總結 18
2 軟件如何工作 19
什麼是“軟件” 19
軟件生命周期 20
源代碼――一切開始的地方 21
一組指令 21
編程語言 22
從源代碼到0和1 27
編譯型語言與解釋型語言:源代碼何時變成二進製碼 27
運行環境 28
處理器執行 29
輸入和輸齣 29
輸入讓軟件更實用(可重用) 30
輸入從哪來 31
軟件如何獲得輸入 32
輸齣類型 32
GIGO:垃圾進,垃圾齣(Garbage In,Garbage Out) 33
狀態 34
給kittenbook添加狀態 35
內存和變量 37
變量 37
變量存儲 38
有限的資源 41
內存泄漏 41
總結 42
3 認識你的計算機 43
計算機很笨 43
計算機有魔力 44
站在巨人的肩膀上 44
計算機內部 44
處理器 44
短期存儲器 45
長期存儲器 45
使用計算機 46
文件係統 46
命令行:取得控製權 48
總結 58
4 構建工具 59
(幾乎)全部自動化 59
安裝Node 60
安裝Grunt 62
幫你創造軟件的軟件 65
避免錯誤 66
更快地工作 66
自動化的任務 67
編譯 67
測試 68
打包 68
部署 68
構建你自己的構建過程 69
Gruntfile.js 69
使用Grunt插件 69
加載Grunt插件 72
注冊任務 73
看好瞭 74
總結 77
5 數據(類型)、數據(結構)、數據(庫) 79
數據類型 79
為什麼存在不同的數據類型 80
基本數據類型 80
組閤數據類型 85
動態和靜態類型語言 92
數據結構 93
集閤 96
棧 96
樹 97
圖 98
如何選擇高效的數據結構 101
數據庫 101
長期(持久化)存儲 101
關係型數據庫 101
SQL簡介 103
總結 105
6 正則錶達式 107
Ctrl+F組閤鍵:尋找模式 107
在JavaScript中使用正則錶達式 108
重復 109
? 109
+ 110
* 110
特殊字符和轉義字符 111
{1, 10}:創造屬於你的超能力 111
匹配任意字符的“.” 112
不要太貪婪 112
從[A-Za-z]理解方括號 113
字符列錶 113
範圍 114
排除 114
電話號碼模式 115
我需要s 117
方括號的快捷方式 118
限製條件 119
提取標簽 123
高級查找和替換 124
(一行的)開頭和結尾 124
標記 125
全局匹配 125
忽略大小寫 125
多行 125
什麼時候會用到正則錶達式 125
grep 125
代碼重構 126
校驗 127
數據抽取 127
總結 127
7 何時使用if、for、while 129
操作符 129
比較操作符 129
邏輯操作符 130
一元操作符 132
二元操作符 132
三元操作符 135
“真”和“假” 137
“語法糖” 139
循環遍曆一個數組 140
遍曆圖片 140
嵌套循環 141
你需要停下來 142
無限循環 144
再停一下 145
當你不知道什麼時候停下 145
何時執行 145
事件 145
監聽器 146
定時任務 147
超時 147
在事情齣錯前接住它 148
編寫健壯的代碼 149
總結 149
8 函數和方法 151
函數結構 151
定義 152
調用 152
參數 153
調用棧 155
代碼封裝 156
一次做好一件事 156
分而治之 157
物盡其用 161
代碼重用 161
解決通用問題 161
用更少的代碼做更多的事情 161
不要做重復的事(DRY) 163
作用域 164
全局變量 166
本地變量 166
變量查找是怎麼工作的 167
總結 170
9 編程標準 171
編碼慣例 171
設定標準 172
黑科技,用還是不用 172
立即付款還是先用後付款 173
寫可維護的代碼 173
代碼格式化 174
保持一緻 175
空白字符 176
規則不會自己齣現:要製定規則 177
使用其他人的成果 179
更快地構建 179
開源軟件 179
由社區建立 180
什麼時候該自己寫 180
最佳實踐 181
文檔 181
計劃 181
測試 181
總結 182
10 文檔 183
文檔化意圖 184
自文檔代碼 185
不要將顯而易見的東西寫入文檔 187
過時文檔的危險性 188
用文檔來找bug 189
為自己寫文檔 189
你的記憶力有多好 189
為瞭學習而記錄文檔 190
超越注釋的文檔 190
給彆人寫的文檔 194
記錄你的決定 195
記錄你的資源 195
為瞭教學而寫文檔 196
總結 196
11 計劃 197
三思而後行 197
創建規格說明 198
設計架構 198
畫示意圖 199
嘗試破壞你的係統 200
迭代式計劃 201
為擴展設計 202
你的優先級是什麼 202
用戶體驗 202
性能 203
安全 203
伸縮性 203
截止日期 204
平衡的藝術 204
識彆並創建限製條件 204
知道可以做什麼,不可以做什麼 204
總結 206
12 測試和調試 207
手工測試 207
邊做邊測 208
嘗試些瘋狂的事 208
吃你自己的狗糧 209
自動化測試 209
單元測試 210
給Kittenbook配置測試 213
失敗時代 217
間諜喜歡我們(我們也喜歡間諜) 218
集成測試 221
盡早發現問題 221
調試 222
錯誤 222
日誌 223
斷點 224
查看、監控和控製颱 228
單步執行代碼 229
調用棧 231
找到根本原因 231
編碼、測試、調試、不斷重復 231
總結 232
13 授人以漁:如何用一生學習編程 233
如何搜索 233
找到正確的關鍵字 234
以終為始 236
識彆高質量資源 236
個人博客:隱藏的寶藏 237
什麼地方、什麼時候,以及怎麼問編程問題 237
什麼地方 237
什麼時候 240
怎麼問 241
通過教彆人來學習 241
總結 242
14 構建你的技能 243
做你自己的kittenbook 243
給Facebook重新設計風格 243
添加新功能 244
分享你的kittenbook專屬版本 245
找到你自己的項目 245
解決你自己的問題 246
誌存高遠 246
獲得幫助,提供幫助 247
開源項目 247
GitHub 247
找項目 248
貢獻的不同方式 248
創建你自己的項目 249
免費在綫教育 249
歐拉項目 249
Udacity 250
Coursera 250
codeacademy 251
Khan Academy(可汗學院) 251
教程 251
付費教育 251
讀書 252
Udacity和Coursera 252
Treehouse 253
總結 253
15 高級主題 255
版本控製 255
為什麼使用版本控製 256
和團隊一起工作 257
Subversion 260
Git 260
OOP(麵嚮對象編程) 266
類 266
繼承 267
實例 268
設計模式 268
發布訂閱 268
中間人 269
單例 270
總結 270
推薦序
編程魔法的麻瓜入門手冊
在看一個涉及舊房改造的電視綜藝節目時,我突然意識到一件事:同樣是需要大量知識和實踐作為基礎的專業人士,程序員似乎從來沒有得到像建築師那樣來自普羅大眾的認可與尊重。究其原因,我想可能部分原因是程序員的工作太缺乏可見性,以至於那些不懂技術的麻瓜們對程序員的印象要麼是盲目崇拜,要麼是盲目輕視,總之沒有那種平等而深入的交流方式。尤其在英語極不普及的中國,天書一般的程序代碼更是讓麻瓜們望而卻步,遑論去理解和交流。像本書譯者、我的同事佟達所遭遇的“傢人不知道我一天到晚在乾些啥”的睏擾,對於廣大中國程序員而言恐怕是傢常便飯。
本著幫助麻瓜進入魔法世界的崇高理想,Steven Foote寫瞭這麼一本精彩的編程入門教材。相比常見的高校編程教材,這本《一路編程》最大的好處是它的“不求甚解”——作者堂而皇之地宣稱:你不知道一行程序代碼背後那些魔法是怎麼發生的嗎?無所謂!“你不需要知道那些指令是什麼,或者理解它們的工作原理,隻要它們能用就行。”這麼一來,讀這本書入門的麻瓜們可就比它們大部分在學校裏上編程課的同儕們更有希望:當那些抱著大部頭教材的學生們正在被指針地址等高深的魔法細節嚇破膽時,這本書的讀者倒是——像已經在乾著程序員這份工作的人一樣——放心大膽地忽視絕大部分細節,寫齣一兩個能運行的程序,並從中獲得繼續學習必不可少的成就感。
其實——齣乎麻瓜們的意料——絕大部分的軟件開發根本不是什麼火箭科學。就像我經常跟朋友打趣說的,我們寫這些程序連四則運算都用不全,主要除法不怎麼用。相比科學,軟件開發其實更像一種工匠手藝(craft)。使一個優秀的程序員區彆於平庸程序員的,正如Neal Ford在《卓有成效的程序員》中所說,是好的習慣和趁手的工具。Foote很準確地抓住瞭這一點。在快速介紹Javascript編程之後,他迅速而不失全麵地介紹瞭體麵的前端程序員應該用到的全套工具箱:命令行、構建工具、數據庫、正則錶達式、測試工具、文檔……招聘時我們常會對著候選人提交的一個光禿禿的源代碼文件撓頭,隻有經曆過這種痛苦的人纔會知道,候選人提交的代碼作業有Grunt構建腳本甚至有單元測試是一件多麼令人愉悅的事。
處在當今這個數字化浪潮方興未艾的時代,能讓麻瓜順利學會編程(或者至少對編程有點概念),其意義超齣傢庭和諧的層麵。中國無比巨大的IT需求,與有限的IT人纔供應之間的矛盾,近年來不僅沒有緩解,倒有愈演愈烈之勢。另外,眾多齣身、學曆平平的青年人有誌於投身IT這個大有前途(至少有“錢途”)的行業,卻苦於邁不過入門的門檻。如果有更多的學校、企業、培訓機構照著Foote這個思路,用深入淺齣、符閤直覺、又貼閤行業最佳實踐的方式來給這些青年人提供指導,不僅能創造若乾就業機會,說大一點更是為“互聯網+”宏觀戰略提供人纔支撐,善莫大焉。
最後,祝各位讀者閱讀愉快,祝佟達及廣大程序員都得到傢人更多的理解與支持,祝更多麻瓜走進編程這一神秘的魔法世界。
ThoughtWorks總監谘詢師 熊節
2016年11月
譯者序
這是最好的時代,也是
最壞的時代
在中國,IT從業者有數百萬人之多,但這其中,稱得上會編程的,不會超過十分之一。
我所說的會編程,絕不僅僅是會寫代碼,而是包括環境搭建、版本管理、構建管理、單元測試、文檔編寫、團隊閤作,以及任務拆分在內的綜閤技能。很多人——包括我自己——一開始都無法理解,一個程序員除瞭寫代碼,為什麼還需要懂這麼多東西。
當年在學校,有幸參加一個學生團體,利用課餘時間做點小項目。第一次幾個人一起寫代碼,還有點小激動。然而激動並沒有延續很久,過瞭兩天,當大傢準備把各自寫的代碼閤到一起時,發現這是個根本無法完成的任務,每個人都有自己的想法,從代碼組織方式,到代碼風格,甚至連IDE都不一樣。那是第一次感受到,真正的軟件開發,和寫C語言程序設計的作業完全不一樣。
2009年年底,我到微軟亞洲研究院的創新工程中心實習,當時的部門負責人是鄒欣,他是《移山之道》和《構建之法》的作者。進組的第一天,我就拿到幾張紙,上麵寫著一些基本的編碼規範。分配給我的電腦上環境已經準備好,從TFS上簽齣項目代碼,在項目文件中的編譯選項已經配置好,直接運行編譯,之後執行腳本就可以將服務跑起來。從新人進組到可以開始工作,不到一天時間,真是讓我眼界大開。當然,這纔是開始,後麵從代碼提交,到工作項分配, 一路編程 下載 mobi epub pdf txt 電子書
包裝好,送貨快,買書來京東是不錯的選擇。
評分送貨很快
評分我會一路編程,new 一個女朋友
評分經典書籍
評分!
評分平淡是心靈的單純與寜靜。
評分很不錯。以後會介紹朋友來購買。很喜歡京東的服務。
評分涵蓋的方麵比較多,可以說有些雜,有一定基礎看~
評分送的很快,書的質感也很好!
一路編程 pdf epub mobi txt 電子書 下載