前言

作为一名前端开发人员,如果你告诉我你没有看过任何关于前端的书籍,那么我完全可以认为你不是一名合格的前端开发工程师。为什么我要以“看书”来衡量合格前端的标准?因为前端作为一个特殊的极具变化与开拓性的工种,没有较强的自我学习与思考能力,很难在这激烈又纷杂的环境里存活而不被淘汰,而“看书”则是最基本的自我提升与补充知识的途径。
书中自有黄金屋。不管你是想涉猎前端抑或进行系统性的学习,我都推荐大家阅读前端的相关书籍。那么对于想入门或者扎实前端基础的童鞋来说我们应该挑选哪几本适合我们的书籍呢?下面我就推荐5本带我踏入前端并产生较大帮助的图书供大家参考。

书单

1.Web前端开发最佳实践

这本书是前端开发领域的经典之作,是一本扎实前端基本功,规范我们前端代码的实践性书籍。本书主要讲解了HTML、CSS、Javascript以及移动端开发的最佳实践方案,能够对缺乏良好指导的开发者产生很大的帮助。通过阅读本书我们可以掌握如何编写高可读性、高维护性、高性能的HTML、CSS以及Javascript。比如:

<!-- 如果class名称仅作为Javascript调用的“钩子”,可在名称中添加“js”前缀 -->
<ul id="js_mylist"><li class="menu js-active">Web前端开发最佳实践</li><li class="menu">编写可维护的Javascript</li><li class="menu">锋利的jQuery</li><li class="menu">图解HTTP</li><li class="menu">Javascript设计模式与开发实践</li>
</ul>
<!-- 为了做到禁用脚本时页面自动跳转,百度首页中添加了如下代码 -->
<noscript><meta http-equiv=refresh content="0; url=http://www.baidu.com/baidu.html?from=noscript">
</noscript>

2.编写可维护的Javascript

本书是我极力推荐的一本帮助大家改善Javascript编程风格与编码规范的书籍。那么为什么我们要如此注重JS的编码规范?引用高德纳的一句话就是:程序是写给人读的,只是偶尔让计算机执行一下。在我们的日常开发中,往往维护代码的时间占据着很大比重, 既然这样那么为什么我们不在编写代码的时候就重视它呢?以下是书中的两个例子:

// 二元运算符前后必须使用一个空格来保持表达式的整洁
// 好的写法,使用空格  前端学习交流QQ群:328058344
for (i = 0; i < count; i++) {process(i);
}// 不好的写法,丢失了空格
for (i=0; i<count; i++) {process(i);
}
// 函数的第一个单词名称应该是动词(而不是名词),以避免与变量混淆。
// 好的写法,第一个单词是动词
function doSomething() {// 代码
}// 不好的写法,第一个单词是名词
function car() {// 代码
}

3.锋利的jQuery

这本书应该算是学习jQuery必读的一本书,也是讲解jQuery的经典之作。在正式学习这本书之前,你有必要先了解下原生Javascript,才能领悟jQuery其“write less, do more”的理念。本书深入浅出的介绍了jQuery的代码风格、选择器、事件及动画等,结合丰富的实例让读者能够快速理解与应用。比如:

var $ul = $('ul').prev(); // 获取紧邻<ul>元素前的同辈元素
var $p = $('p').siblings(); // 获取<p>元素的同辈元素  
$('input').trigger('focus'); // 触发输入框focus事件并获取焦点
$('input').triggerHandler('focus'); // 触发输入框focus事件但不会获取焦点

4.图解HTTP

作为和浏览器打交道的前端开发者,我们理应学习关于页面从请求开始到呈现的过程和实现方式,而这本书便是快速了解HTTP请求背后原理的不二之选。本书结合漫画图片的形式讲解HTTP协议、工作机制、报文及状态码等,图文并茂,通俗易懂。示例:

// 请求首部字段  前端学习交流QQ群:328058344
Host: www.hackr.jp  // Host会告知服务器,请求资源所处的互联网主机名与端口号
Range: bytes=5001-10000 // 告知服务器资源的指定范围
// 响应首部字段
Age: 600 // 告知客户端,源服务器在多久前创建了响应
Retry-After: 120 // 告知客户端应该在多久之后再次发送请求

5.Javascript设计模式与开发实践

之所以把这本书放在最后是因为阅读这本书需要一定的Javascript基础与功底,当我们掌握了JS的语法与编码规范后再来翻阅此书,你会获得别样的收获。那么为什么我们要研究设计模式?使用设计模式能够给我们解决怎样的问题?
我想答案和小说家为什么很少从开始设计剧情,足球教练为什么也很少从头开始发明战术一样,他们总是沿袭了一些已经存在的模式来解决问题。下面是书中的两种模式:

// 单例模式: 保证一个类仅有一个实例,并提供一个全局的访问点
var getSingle = function(fn) {var result;return function() {return result || (result = fn.apply(this, arguments));}
};
// 策略模式:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换
var strategies = {"S": function(salary) {return salary * 4;},"A": function(salary) {return salary * 3;}
};var calculateBonus = function(level, salary) {return strategies[level](salary);
};

结语

为什么那些工作没几年的人很快就遇到了自己的技术瓶颈? 为什么那些工作了5年以上的人还写着一手难以维护的代码?我想在以上5本书中便可找到答案。

当然除了文本中推荐的5本前端入门书籍,还有很多优秀的书籍没能在此一一推荐,请见谅。

正所谓纸上得来终觉浅,绝知此事要躬行。除了从书中汲取我们所需的知识外,我们还需要将理论化为实践,亲自动手敲击键盘,从而加深并巩固书中的知识点,才能羽化而登仙。

学习前端我推荐这5本书相关推荐

  1. 学习SQL Server推荐的10本书

    今天在sqlmag上闲逛,看到了这篇一年前写的文章,正好在看其中的一本,推荐给大家.原文地址:Top 10 Highly Recommended SQL Server Books. 第一本:SQL S ...

  2. 一名优秀的Web前端开发工程师的成长之路:如何学习前端开发知识以及书籍推荐

    我所遇到的前端程序员分两种: 第一种一直在问:如何学习前端? 第二种总说:前端很简单,就那么一点东西. 我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师. 何为:前端工程师? 前端工程师 ...

  3. 学习前端你必须看过这几本书!

    总是觉得学习前端很难? 那我告诉你,除了掌握学习路线和学习方式外,你还需要好好看看这几本书-- Unix编程艺术 作者:[美] Eric S·Raymond 原作名:The Art of UNIX P ...

  4. 推荐 12 个学习前端必备的神仙级工具类项目与网站

    大家好,我是你们的 猫哥,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 前言 猫哥是一个常年混迹在 GitHub 上的猫星人,所以发现了不少好的前端开源项目.常用技巧,在此分享给大家. 公众号:前端Git ...

  5. 如何高效学习前端新知识,拓展视野,我推荐

    技术日新月异,发展迅速,作为一个与时俱进的互联网人,需要不断地学习扩宽视野. 今天为大家推荐几个技术领域中出类拔萃的公众号,它们的每一篇推文都值得你点开! 1 前端开发爱好者 学习路线 数据结构算法  ...

  6. 如何高效学习前端新知识,我推荐这些~

    众所周知,关注公众号可以了解学习掌握技术方向,学习优质好文,落实到自己项目中.还可以结交圈内好友,让自己融入到积极上进的技术氛围,促进自己的技术提升. 话不多说,推荐这些优质前端公众号 前端之神 10 ...

  7. 碎片时间学习前端,我推荐这些~

    大家好,我是若川.祝大家中秋节快乐. 前端技术日新月异,发展迅速,作为一个与时俱进的前端工程师,需要不断的学习. 这里强烈推荐几个前端开发工程师必备的优质公众号,希望对你有所帮助. 大家可以像我一样, ...

  8. 怎么学习前端开发?求推荐学习路线?

    前端是一个看似入门门槛不高,但要学好很难的领域.前端的知识体系庞杂又松散,技术演进快,如果摸不清脉络的话很容易陷入盲人摸象的困境甚至跑偏. 其实只要掌握了正确的方法,学习前端和学好前端就只是个时间问题 ...

  9. python人工智能入门书籍推荐-了解、学习人工智能必看的十本书

    原标题:了解.学习人工智能必看的十本书 到底人工智能是什么?学人工智能必看哪些书籍?简单来说,人工智能就是研究如何让计算机去完成以往需要人的智力才能胜任的工作,通过生产能像人类一样做出智能反应的智能机 ...

最新文章

  1. mysql 5.7 gtid 主从_MySQL 5.7基于GTID的主从复制实践
  2. 有没有办法检查`null`和`undefined`?
  3. mantelhean.test r语言_请教如何将mantel test报告性的结果转化为表格。
  4. django14:CBV加入装饰器
  5. YBTOJ:采矿战略(线段树维护dp、树链剖分)
  6. Linux php 中文乱码解决
  7. 《天天数学》连载13:一月十三日
  8. python中的pass是空语句一般用作占位语句_1、python基本语法
  9. 电脑也能管理服务器安全 安全狗服云PC端V2.3发布
  10. scala面试题简要总结
  11. QT实现“摇摇乐抽奖”(Lottery和Lottery2)
  12. 配置ouster雷达过程
  13. 网页页面缩小放大的快捷键
  14. Canvas 自由落体
  15. 连不上WiFi了怎么办之网络异常时的网络重置
  16. ScrollMagic结合TweenMax的Demo
  17. 好看的蓝色html生日祝福源码
  18. android仿支付宝弹窗,实现支付宝支付从底部弹窗效果
  19. APP按下home键恢复到登录(主界面)
  20. Rsync 备份服务:基本概述、应用场景、传输模式、注意事项、密码解决方案、服务实践、备份案例、结合inotify

热门文章

  1. [转载]程序员咆哮体
  2. 各种设计模式的使用场景
  3. 电脑无法读取硬盘解决方法
  4. Swift学习:8.字典
  5. 极客学院单线程爬虫py3.x版本
  6. java 一个数的负数次幂_SWT之路:计算某数的负N次方
  7. 游戏是如何打动用户的?
  8. Android-动态注册广播和注销广播
  9. java定焦点_测温型热成像双光谱球机
  10. 计算机网络:试比较xDSL、HFC以及FTTx接入技术的优缺点?