阮一峰區塊鏈入門
㈠ 學習前端,有什麼好書推薦嗎
初級讀物
《JS高級程序設計》:一本非常完整的經典入門書籍,被譽為JS聖經之一,詳解的非常詳細,最新版第三版已經發布了,建議購買。
《JS王者歸來》網路的一個Web開發項目經理寫的,作為初學者准備的入門級教程也不錯。
中級讀物
《JS權威指南》:另外一本JS聖經,講解的也非常詳細,屬於中級讀物,建議觀看。
《JS.The.Good.Parts》:Yahoo大牛,JS精神領袖Douglas Crockford的大作,雖然才100多頁,但是字字珠璣啊!強烈建議閱讀。
《高性能JS》:《JS高級程序設計》作者Nicholas C. Zakas的又一大作。
《Eloquent JS》:這本書才200多頁,非常短小,通過幾個非常經典的例子(艾米麗姨媽的貓、悲慘的隱士、模擬生態圈、推箱子游戲等等)來介紹JS方方面面的知識和應用方法。
高級讀物
《JSPatterns 》:書中介紹到了各種經典的模式,如構造函數、單例、工廠等等,值得學習。
《Pro.JS.Design.Patterns》:Apress出版社講解JS設計模式的書,非常不錯。
《DevelopingJSWeb Applications》:構建富應用的好書,針對MVC模式有較為深入的講解,同時也對一些流程的庫進行了講解。
《Developing Large Web Applications》:不僅有JS方面的介紹,還有CSS、HTML方面的介紹,但是介紹的內容卻都非常不錯,真正考慮到了一個大型的Web程序下,如何進行JS架構設計,值得一讀。
㈡ 什麼是區塊鏈土豆鏈Potato chain又是什麼
關於這個問題,其實建議你去游說社區看一下(網頁鏈接),那裡有大佬大V為你解答。這里我為你分享一篇阮一峰老師的文章,應該能對你的問題作出解答。
一、區塊鏈的本質
區塊鏈是什麼?一句話,它是一種特殊的分布式資料庫。
現在的規則是,新節點總是採用最長的那條區塊鏈。如果區塊鏈有分叉,將看哪個分支在分叉點後面,先達到6個新區塊(稱為"六次確認")。按照10分鍾一個區塊計算,一小時就可以確認。
由於新區塊的生成速度由計算能力決定,所以這條規則就是說,擁有大多數計算能力的那條分支,就是正宗的區塊鏈。
九、總結
區塊鏈作為無人管理的分布式資料庫,從2009年開始已經運行了8年,沒有出現大的問題。這證明它是可行的。
但是,為了保證數據的可靠性,區塊鏈也有自己的代價。一是效率,數據寫入區塊鏈,最少要等待十分鍾,所有節點都同步數據,則需要更多的時間;二是能耗,區塊的生成需要礦工進行無數無意義的計算,這是非常耗費能源的。
因此,區塊鏈的適用場景,其實非常有限。
不存在所有成員都信任的管理當局
寫入的數據不要求實時使用
挖礦的收益能夠彌補本身的成本
如果無法滿足上述的條件,那麼傳統的資料庫是更好的解決方案。
目前,區塊鏈最大的應用場景(可能也是唯一的應用場景),就是以比特幣為代表的加密貨幣。
㈢ 漫畫圖解 什麼是區塊鏈
漫畫圖解:什麼是區塊鏈
什麼是區塊鏈?
區塊鏈,英文 Blockchain,本質上是一種去中心化的分布式資料庫。任何人只要架設自己的伺服器,接入區塊鏈網路,都可以成為這個龐大網路的一個節點。
區塊鏈既然本質是資料庫,裡面究竟存儲了什麼東西呢?讓我們來了解一下區塊鏈的基本單元:區塊(Block)。
一個區塊分為兩大部分:
1.區塊頭
區塊頭裡面存儲著區塊的頭信息,包含上一個區塊的哈希值(PreHash),本區塊體的哈希值(Hash),以及時間戳(TimeStamp)等等。
2.區塊體
區塊體存儲著這個區塊的詳細數據(Data),這個數據包含若干行記錄,可以是交易信息,也可以是其他某種信息。
剛才提及的哈希值又是什麼意思呢?
想必大家都聽說過MD5,MD5就是典型的哈希演算法,可以把一串任意長度的明文轉化成一串固定長度(128bit)的字元串,這個字元串就是哈希值。
而在我們的區塊鏈中,採用的是一種更為復雜的哈希演算法,叫做SHA256。最新的數據信息(比如交易記錄)經過一系列復雜的計算,最終會通過這個哈希演算法轉化成了長度為256bit的哈希值字元串,也就是區塊頭當中的Hash,格式如下:
區塊與Hash是一一對應的,Hash可以當做是區塊的唯一標識。
不同的區塊之間是如何進行關聯的呢?依靠Hash和PreHash來關聯。每一個區塊的PreHash和前一個區塊的Hash值是相等的。
為什麼要計算區塊的哈希值呢?
既然區塊鏈是一個鏈狀結構,就必然存在鏈條的頭節點(第一個區塊)和尾節點(最後一個區塊)。一旦有人計算出區塊鏈最新數據信息的哈希值,相當於對最新的交易記錄進行打包,新的區塊會被創建出來,銜接在區塊鏈的末尾。
新區塊頭的Hash就是剛剛計算出的哈希值,PreHash等於上一個區塊的Hash。區塊體的Data存儲的是打包前的交易記錄,這部分數據信息已經變得不可修改。
這個計算Hash值,創建新區塊的過程就叫做挖礦。
用於進行海量計算的伺服器,叫做礦機。
操作計算的工作人員,叫做礦工。
計算哈希值究竟難在哪裡?咱們來做一個最粗淺的解釋,哈希值計算的公式如下:
Hash = SHA-256(最後一個區塊的Hash + 新區塊基本信息 + 交易記錄信息 + 隨機數)
其中,交易記錄信息也是一串哈希值,它的計算涉及到一個數據結構 Merkle Tree。有興趣的小夥伴可以查閱相關資料,我們暫時不做展開介紹。
這里關鍵的計算難點在於隨機數的生成。猥瑣的區塊鏈發明者為了增大Hash的計算難度,要求Hash結果的前72bit必須都是0,這個幾率實在是太小太小。
由於(最後一個區塊的Hash + 新區塊基本信息 + 交易記錄信息)是固定的,所以能否獲得符合要求的Hash,完全取決於隨機數的值。挖礦者必須經過海量計算,反復生成隨機數進行「撞大運」一般的嘗試,才有可能得到正確的Hash,從而挖礦成功。
同時,區塊頭內還包含著一個動態的難度系數,當全世界的硬體計算能力越來越快的時候,區塊鏈的難度系數也會水漲船高,使得全網平均每10分鍾才能產生出一個新區塊。
小夥伴們明白挖礦有多麼難了吧?需要補充的是,不同的區塊鏈應用在細節上是不同的,這里所描述的挖礦規則是以比特幣為例。
區塊鏈的應用
比特幣(BitCoin)的概念最初由中本聰於2008年提出,而後根據這一思路設計發布了開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。
什麼是P2P網路呢?
傳統的貨幣都是由中央銀行統一發行,所有的個人儲蓄也是由銀行統一管理,這是典型的中心化系統。
而比特幣則是部署在一個全世界眾多對等節點組成的去中心化網路之上。每一個節點都有資格對這種數字貨幣進行記錄和發行。
至於比特幣底層的數據存儲,正是基於了區塊鏈技術。比特幣的每一筆交易,都對應了區塊體數據中的一行,簡單的示意如下:
交易記錄的每一行都包含時間戳、交易明細、數字簽名。
表格中只是為了方便理解。實際存儲的交易明細是匿名的,只會記錄支付方和收款方的錢包地址。
至於數字簽名呢,可以理解為每一條單筆交易的防偽標識,由非對稱加密演算法所生成。
接下來說一說比特幣礦工的獎勵:
比特幣協議規定,挖到新區塊的礦工將獲得獎勵,從2008年起是50個比特幣,然後每4年減半,目前2018年是12.5個比特幣。流通中新增的比特幣都是這樣誕生的,也難怪大家對挖掘比特幣的工作如此趨之若鶩!
區塊鏈的優勢和劣勢
區塊鏈的優勢:
1.去中心化
區塊鏈不依賴於某個中心節點,整個系統的數據由全網所有對等節點共同維護,都可以進行數據的存儲和檢驗。這樣一來,除非攻擊者黑掉全網半數以上的節點,否則整個系統是不會遭到破壞的。
2.信息不可篡改
區塊內的數據是無法被篡改的。一旦數據遭到篡改哪怕一丁點,整個區塊對應的哈希值就會隨之改變,不再是一個有效的哈希值,後面鏈接的區塊也會隨之斷裂。
區塊鏈的劣勢:
1.過度消耗能源
想要生成一個新的區塊,必須要大量伺服器資源進行大量無謂的嘗試性計算,嚴重耗費電能。
2.信息的網路延遲
以比特幣為例,任何一筆交易數據都需要同步到其他所有節點,同步過程中難免會受到網路傳輸延遲的影響,帶來較長的耗時。
幾點補充:
1.本漫畫部分內容參考了阮一峰的博文《區塊鏈入門教程》,感謝這位大神的科普。
2.由於篇幅有限,關於Merkle Tree 和 非對稱加密 的知識暫時沒有展開細講,有興趣的小夥伴們可以查閱資料進行更深一步的學習。
㈣ 初學前端有什麼推薦的書籍
初學者入門書籍:
中文電子書
深入淺出html pdf中文版
魅麗的網頁設計
Web程序設計(第5版)完整版
HTML & XHTML 權威指南(英文+中文版)
Web編程入門經典:HTML、XHTML和CSS (第2版)
CSS商業網站布局之道(朱印宏著)
HTML與CSS入門經典(第7版)
Eric Meyer 談CSS (卷1)
Eric Meyer 談CSS (卷2)
無懈可擊的Web設計
XHTML實例精解
XHTML技術內幕
HTML簡明教程 中文PDF版
Dynamic HTML權威指南 第3版
XML基礎教程 入門、DOM、AJAX與FLASH(Sas Jacobs[美]著)
網頁視覺設計案例教程
英文原文電子書
Dive Into HTML5
HTML5.and.CSS3:Develop with Tomorrow's Standards Today
HTML5 Step by Step
Beginning HTML with CSS and XHTML
Beginning CSS Web Development 從入門到精通
CSS Web Development從入門到精通
HTML,XHTML,and CSS - Visual Quickstart Guide 第六版
深入淺出HTML(英文版)
Transcending.CSS(英文版)
完美HTML設計 - 使用CSS不用Table (第二版)
HTML, XHTML, and CSS Bible, 5th Edition
CSS禪意花園 (高級CSS開發)
O'Reilly CSS: The Definitive Guide 第三版(CSS權威指南)
Sams Teach Yourself HTML5 in 10 Minutes (5th Edition)
HTML5 and CSS3: Develop with Tomorrow's Standards Today
Wrox Web Standards Programmer's Reference
Spring into HTML and CSS
The Essential Guide to CSS and HTML Web Design
HTML & XHTML - The Complete Reference第四版
XHTML Moving toward XML
Mastering Integrated HTML and CSS
Build your Own WebSite - The Right Way Using HTML and CSS
Head First HTML with CSS & XHTML
The Best Practice Guide to xHTML and CSS
The CSS Anthology (第三版)
The CSS Anthology (第二版)
Sams Teach Yourself HTML 4 in 10 Minutes
Teach Yourself HTML in 10 Minutes 第四版
Ultimate HTML Reference
高級進階電子書:
中文電子書
HTML5高級程序設計(完整版)
css3_for_web_designers
CSS精粹(第3版)
CSS Web設計高級教程 第2版
大巧不工-WEB前端設計修煉之道
博客園精華集 Web標准之道
編寫高質量代碼-Web前端開發修煉之道(完整版)
變幻之美——Div+CSS網頁布局揭秘(案例實戰篇)
Web導航設計
Web表單設計:點石成金的藝術
精通XHTML程序設計高級編程
徹底設計研究CSS
CSS時尚編程百例
英文原文電子書
Don't Make Me Think!
Apress Pro CSS and HTML Design Patterns
Professional CSS: Cascading Style Sheets for Web Design 第二版
The Book of CSS3: A Developer』s Guide to the Future of Web Design
Accessible XHTML and CSS Web Sites: Problem - Design - Solution
How to Do Everything With HTML
O'Reilly CSS Cookbook
A Book Apart CSS3 For Web Designers
Speed Up Your Site: Web Site Optimization
O'Reilly Designing Web Navigation
Beginning CSS: Cascading Style Sheets for Web Design
The Ultimate CSS Reference
Wrox CSS Instant Results
CSS Mastery: Advanced Web Standards Solutions
Creating Cool Web Sites with HTML, XHTML, and CSS
Beginning HTML with CSS and XHTML: Modern Guide and Reference
Accessible XHTML and CSS Web Sites
O'Reilly CSS The Missing Manual
Wiley Creating Web Sites Bible
Pro CSS for High Traffic Websites
HTML Manual of Style 4th
O'Reilly HTML5: Up and Running
Stunning CSS3: A project-based guide to the latest in CSS
The Definitive Guide to HTML5 Video
Canvas Pocket Reference: Scripted Graphics for HTML5
Apress.Pro.HTML5.Programming.Sep.2010
Pro CSS Techniques
W3C官方手冊:
CSS完全參考手冊3.0
xHTML完全參考手冊 5合1 W3C官方權威手冊
HTML 4.01 規范 - W3C官方HTML權威指南
HTML 4.0 參考手冊 CHM
W3C HTML 3.2 規范
CSS 2 權威W3C官方參考手冊 CHM
css手冊2.0 3.0
㈤ 阮一峰的es6 標准入門好不好
排版挺不好的。
內容倒是能讓人收獲不少。
㈥ 如何評價阮一峰老師《未來世界的倖存者》這本書
新聞說,今年全國高校畢業生達到空前的756萬,又趕上很多傳統行業壓縮產能,就業壓力很大。
很多曾經的「明星專業」,都已經就業困難。我考大學的時候,國際貿易是最熱門的專業之一,大家認定這個專業容易賺錢。但是現在這個專業的畢業生,想找一份好工作會很難,上海將它列入10大預警專業,即最難就業的十個專業之一。
但是,並非所有行業都不景氣。至少有一個行業的用工需求極其旺盛,到處都是招聘廣告,工作崗位是應聘者數量的好幾倍,通常你都有好幾家公司可以挑。每周都有朋友發來消息,能不能幫忙介紹幾個人過來,我們實在是缺人啊。
這個行業就叫做互聯網開發。
二、
互聯網行業的勞動力需求,可以用「用工荒」來形容。
只要你會做網頁,尤其是手機App的頁面,或者微信的活動頁面,就不愁找不到工作。哪怕你剛剛學會幾個月,或者剛從培訓班畢業,只要能拿出作品,就會有比其他行業高得多的起薪。等到有了一兩年工作經驗,工資就可以達到大學教授的水平。
這樣的就業行情,怎不令人趨之若騖。盡管每年都有好幾萬新人加入,互聯網公司還是在喊,工程師嚴重短缺。
我曾經不太理解,為什麼網頁開發工程師(或稱"前端工程師")這么搶手。直到有一天,看到了一組雞蛋的統計數據,才想通了這個問題。
三、
中國是世界雞蛋第一大國。據統計,2013年全國產量5750億枚,一個中國人平均一年要吃掉400多枚雞蛋。
那麼中國需要多少只母雞,才能達到這樣的產量?
據說,普通母雞一年大概生200~250枚雞蛋。養雞場裡面最優秀的母雞,一年可以達到320枚。以250枚計算的話,中國至少需要有23億只母雞,才能滿足全國人民吃蛋的需求。
四、
如果把雞蛋換成網頁,同樣的問題就是,中國一年需要生產多少張網頁,才能滿足人民消費的需要?
去年,我國手機用戶超過13億,智能手機用戶超過6億。就算其中只有一半人上網,那也是3億多人。這么多人,每天都有幾十分鍾或者幾個小時,要使用手機上網。全體中國人一年消費的網頁和App的數量,是一個天文數字。
雞蛋是母雞生出來的,網頁從哪裡來?歸根結底,所有頁面都需要工程師做出來。那麼多互聯網公司,每家公司都需要前端工程師。而全國的前端工程師,目前可能總共有幾十萬人,對比那麼大的內容消費量,肯定是遠遠不夠的(想一想吧,全國的母雞有23億只)。這樣一想,工程師搶手就不奇怪了。
還有一個很重要的原因,學校不教前端開發,可能會有一些相關課程,但不會系統地教,所有前端工程師都是靠自學的。這也導致了供給偏少。
五、
由於工作好找和工資較高,前端工程師現在成了一個熱門職業。很多不是搞計算機的人,也在考慮轉行加入。社會上的培訓班,每個周末的各種講座和大會,都已經人滿為患。
我經常收到電子郵件,咨詢是否應該改行。
「我是一名會計/教師/導游,現在的工作沒有任何成就感,感到沒有發展空間。如果我拿出一年左右的時間去自學前端類的課程,將來能走上程序員這條路嗎?」
這可怎麼答復?
六、
前端編程入門,確實不難,可以短期速成。只要你對計算機有基本的理解,哪怕編程零基礎,經過三四個月的培訓,也能做出網頁和App。 如果你確實想改行,我覺得,這基本上是一件好事,你應該選擇那些更有前景的職業。但問題是,並非每個人都適合編程。現在那麼多人一窩蜂學習互聯網開發,肯定有人將來會後悔。
你最好事先知道下面三件事,再考慮加入這個行業。
七、
首先,你應該熱愛編程。
職業程序員每天都必須長時間地坐在電腦前面,與機器對話的時間,遠超過與人對話。如果不是真心熱愛編程,這會很難忍受,簡直像是一種懲罰。讓一個人在他不喜歡的事情上面,筋疲力盡地幹上幾年甚至幾十年,那是多麼痛苦的人生。
其次,編程本身雖然是一種智力活動,但是中國的現實卻更像一種體力勞動。
由於運營活動太多,開發是做不完的,App 必須不斷地推出新版本。工作量常常是超負荷的,任務排期一個接著一個,中間根本沒有喘息時間,同時做多個項目也是家常便飯。每個項目都有截止期,做不完只能加班。這樣說吧,製作網頁本身是有趣的,但是像流水線一樣的「製造」網頁是乏味的,好比養雞場的母雞不停得下蛋,每周必須完成5個蛋的指標。
最後,這個行業的新陳代謝很快。
快速的技術更新和極大的工作強度,使得年輕人具有天然的優勢。等到職業生涯後期,你的開發速度開始慢下來,就是你被更年輕的人取代的時候。一隻母雞一生中,大約總共可以生2000枚雞蛋,你的一生中可以製作的網頁(或者 App),大概也是一個常數。
八、
如果你不喜歡編程,體會不到代碼的樂趣和成就感,只是為了一份好的薪水,就跑來干,那就是很糟糕的選擇。想一想如果十年前,你聽說國際貿易很興旺,高考志願就填了國際貿易,今天會怎樣呢?
你應該選擇,那些讓你產生最大興趣和熱情的職業。因為未來所有行業,低端的、低技能的崗位都會被機器取代,只有技能最強、最有創造性的人不會被淘汰。興趣,也只有興趣,才會讓你產生不倦的熱情,鑽研下去,變得更優秀。
用戶提供的回答2:
把網頁比作雞蛋是偷換概念,一個雞蛋只能被吃一次,但網頁可以被無限次瀏覽
正確的比喻應該是永遠在變的需求
不過我同意絕大部分的前端工作門檻都非常低,我就是中文系畢業的前端碼農
用戶提供的回答3:
未來的世界
作為一個無所事事的大學生,其實自己的腦子里偶爾會冒出許多的問題,看到阮老師寫的文章,自己也有很多的感觸,斗膽說出來交流一下。
關於機器與工作
阮老師上來就問了一個哲學上的終極問題-------"世界會走向哪裡「,這確實是個難以回答的問題,阮老師提出了機器替代人。現在九歌已舉出很多的職業將會會被人工智慧和機器替代的實例。那我這里就發一個最近看到的。微軟發布萬能翻譯器 可以充當60個國家的翻譯官 考慮到MSRA曾經有沈向洋,輪子哥,叛逆者這樣的大神。未來把翻譯這個職業幹掉也不是什麼問題。所以如阮老師所說,越來越多的職業,尤其是白領職業會被機器所替代掉,越來越多的人變得」無用「。正式由於機器的發展使得他們的勞動和機器生產比起來低效。而且在自動化的浪潮中,最重要的就是減少工作崗位,隨著技術水平的提升,想想程序員們996就抱怨的不行,一個不受勞動法保護,一周24小時無休,不用付工資和社保,絕對服從,毫無怨言的機器在老闆的眼裡應該是一個完美的員工吧。
在管理上,理想上公司是不應該依靠員工的,更加流程化,規范化的管理和流程就能降低對於人才的依賴,然而悲慘的是人才只有具有不可替代性才能在人才市場上獲得高價,最好公司離開了自己就會倒閉,這樣才能有底氣和老闆談工資。於此同時,大公司也在極力避免這件事的發生。但現在,越來越科學的管理體制,更加強大的機器,使得優勢越來越像資方傾斜也是不爭的實施。而且就工資來說也是殘酷的,今天老闆為工程師付工資並不是因為工程師是人,而是因為他能解決相關方向的問題。是結果導向的,是為你的工作成果付錢,只要合理合法,老闆也是不在乎過程的。如果有一天機器能夠產出相同甚至是更好的成果,那麼我們就失業了。
就拿打車來講,你在乎的是如何更快更好的從家到飛機場,而不在乎具體到底是那個司機送你。所以無人駕駛的發展,確實會讓司機失業。作者用騾子來舉例,我認為是非常恰當的。「......(你)只是一個負責實現領導意志的技術工人,職責就是根據規格說明書寫出代碼,其實與一個挖水溝的工人是一樣的,從這頭挖到那頭,僅此而已,從事的都是機械性的工作。」我承認碼農是這樣的,那難道設計師,產品經理,甚至各種總監,職業經理人,乃至CEO不是這樣的么?沒有人能夠在這次變革中倖免,昨天幹掉了初級碼農,今天就將中高級碼農掃入垃圾堆,明天把各種總監,架構師踹下去,到最後連CEO都會滾蛋。
那有沒有不能被機器人替代的工作呢?作者這里引述了吳曉波的觀點,我們一個一個看。
「(1)個性化服務能力。軟體都是統一的演算法,個性化服務很難做到」
評述:我覺得機器可以做到這一點,雖然演算法是統一的並不代表不能做個性化服務,淘寶不是一直在做一些「猜你喜歡」這樣的商品推薦么,本質上是對於用戶的各種數據和行為進行建模,然後通過一套推薦演算法來進行個性化服務。我沒做過這個方向,歡迎做機器學習和推薦演算法的大牛來進行解答。我覺得個性化服務對於機器人來說也許是個難題,但並不是什麼不可能完成的任務。
(2)人格魅力的能力。機器提供的服務,不會有人格魅力,也不會感動人心。
評述:人格,貼一下網路的定義 「人格是一種具有自我意識和自我控制能力,具有感覺,情感,意志等機能的主體。」人格(心理學術語)_網路,講的是個性和情感,那我就要反問的為啥機器人沒情感呢?那我就要講微軟前EVP陸奇發布的情感計算框架了。微軟全球執行副總裁陸奇談人工智慧:情感計算框架顯EQ「溫度」,包括2015build上發布的cortana,就已經讓很多宅男發出了要女票何用的感慨(╯‵□′)╯︵┻━┻。有興趣的人可以去看2015的build。我認為人工智慧未來會發展成光環里的Cortana,或者使命召喚13里的伊森。而且我認為他們是有人格的,或許現狀是情感這方面做的並不好,但發展起來未來也許並不會比人差吧。囧
㈦ 阮一峰的介紹
阮一峰,70後,英文名Frank。他原是上海財經大學世界經濟博士研究生。主要研究宏觀金融、貨幣政策與美國經濟。於2008年6月獲得博士學位。目前在上海一所當地大學(上海金融學院 國際經貿學院)任教。他本人也是一名IT技術人員,主要關注網站製作,並且對免費軟體有著堅定不移的信念。除了寫博客以外,他還有三個網站:微趣、Italo Calvino in China和讀書公園。