阮一峰区块链入门
㈠ 学习前端,有什么好书推荐吗
初级读物
《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和读书公园。