当我们知道一个“东西”的名字,就会在看到这个“东西”的时候,立马意识到它。
但是如果我们不知道它的名字,可能一辈子也不会认识它。 这就是约书亚树原理。

概念

  • 全栈工程师(Full-Stack Engineer):
    • 一个能处理数据库、服务器、系统工程和客户端的所有工作的工程师。
  • 全栈:
    • 表示为了完成一个项目,所需要的一系列技术的集合。简单来说,全栈工程师就是可以独立完成一个产品的
    • 能力 + 思维
  • Web开发流程
    • 产品设计
    • 交互设计
    • 视觉设计
    • 前端开发
    • 后台开发
    • 测试
    • 发布

一专多长

  • 先在一个特定的方向上有比较深入的钻研,然后再将学习目标渐渐推广开来。
  • 比如先从前端方向入手,掌握了基本的HTML、CSS、JavaScript之后,不要转头向服务器端语言或者App方向发展,而是深入到性能优化、SEO、多种框架、响应式页面等前端细节中去。

解决问题,而不是醉心技术

  • 公司存在的意义就是解决问题,公司要解决用户的问题,而员工要解决公司的问题。
  • 公司的问题可能是降低成本、扩大用户群、增加成交量、优化性能,等等。
  • 设计四大原则:对齐、对比、距离和重复。

Web性能优化

  • 压缩源码和图片
    • JavaScript文件源代码可以采用混淆压缩的方式,CSS文件源代码进行普通压缩,JPG图片可以根据具体质量来压缩为50%到70%,PNG可以使用一些开源压缩软件来压缩,比如24色变成8色、去掉一些PNG格式信息等。
  • 选择合适的图片格式
    • 如果图片颜色数较多就使用JPG格式,如果图片颜色数较少就使用PNG格式,如果能够通过服务器端判断浏览器支持WebP,那么就使用WebP格式和SVG格式。
  • 合并静态资源
    • 包括CSS、JavaScript和小图片,减少HTTP请求。
  • 开启服务器端的Gzip压缩
    • 这对文本资源非常有效,对图片资源则没那么大的压缩比率。
  • 使用CDN
    • 或者一些公开库使用第三方提供的静态资源地址(比如jQuery、normalize.css)。
    • 一方面增加并发下载量,另一方面能够和其他网站共享缓存。
  • 延长静态资源缓存时间
    • 这样,频繁访问网站的访客就能够更快地访问。
    • 不过,这里要通过修改文件名的方式,确保在资源更新的时候,用户会拉取到最新的内容。
  • 把CSS放在页面头部,把JavaScript放在页面底部

重视作品集

  • 作品集(portfolio),是指您个人的项目和作品的集合,一份精心准备的作品集比简历更能说服人。

设计模式

  • 创建型模式
    • 单例模式
    • 工厂方法
    • 抽象工厂
    • 建造模式
    • 原型模式
    • 对象池模式
    • 多例模式
  • 结构型模式
    • 适配器模式
    • 桥接模式
    • 组合模式
    • 装饰模式
    • 外观模式
    • 享元模式
    • 代理模式
  • 行为型模式
    • 观察者模式
    • 黑板
    • 责任链
    • 命令
    • 解释器
    • 迭代器
    • 中介者
    • 备忘录
    • 空对象
    • 模板方法
    • 访问者模式

学习管理

  • 在项目最开始做出合理的时间评估
  • 根据人员的强项来安排任务
  • 唤起团队对项目成功的渴望
  • 保障沟通。理想沟通频率每周至少两次。

扩展阅读书单

  • 【思想类】
    • 《黑客与画家》(美)保罗·格雷厄姆,人民邮电出版社
    • 《专业主义》(日)大前研一,中信出版社
  • 【商业类】
    • 《重来:更为简单有效的商业思维》 (美) 贾森·弗里德 / (丹) 戴维·海涅迈尔·汉森,中信出版社
    • 《精益创业》(美) 埃里克·莱斯,中信出版社
  • 【面试类】
    • 《编程之美:微软技术面试心得》《编程之美》小组,电子工业出版社
  • 【企业文化类】
    • 《打造Facebook》王淮, 印刷工业出版社
  • 【个人展示类】
    • 《您就是极客:软件开发人员生存指南》(美)Michael Lopp,人民邮电出版社
    • 《代码整洁之道》(美)Robert C. Martin,人民邮电出版社
  • 【性能优化类】
    • 《图解HTTP》(日)上野宣,人民邮电出版社
    • 《高性能网站建设进阶指南》(美)Steve Souders,电子工业出版社
    • 《网站性能监测与优化》(美)Alistair Croll / Sean Power,人民邮电出版社
  • 【前端工程师类】
    • 《精通CSS:高级Web标准解决方案(第2版)》(英)Andy Budd/Simon Collison/Cameron Moll,人民邮电出版社
    • 《单页Web应用:JavaScript从前端到后端》(美)Michael S. Mikowski /Josh C. Powell,人民邮电出版社
  • 【服务器类】
    • 《鸟哥的Linux私房菜.基础学习篇》鸟哥,人民邮电出版社
    • 《只是为了好玩 : Linux之父林纳斯自传》(美)Linus Torvalds、David Diamond,人民邮电出版社
  • 【版本控制类】
    • 《Git版本控制管理》(美)Jon Loeliger/ Matthew McCullough,人民邮电出版社
  • 【代码艺术类】
    • 《代码大全》(美)Steve McConnell,电子工业出版社
    • 《代码的未来》 (日)松本行弘,人民邮电出版社
    • 《禅与摩托车维修艺术》(美)罗伯特·M.波西格,重庆出版社
  • 【设计模式类】
    • 《设计模式:可复用面向对象软件的基础》(美)Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides,机械工业出版社
    • 《JavaScript设计模式》 (美)Addy Osmani,人民邮电出版社
  • 【效率类】
    • 《软件随想录:程序员部落酋长Joel谈软件》(美)Joel Spolsky,人民邮电出版社
    • 《卓有成效的程序员》(美)Neal Ford,机械工业出版社
  • 【设计类】
    • 《写给大家看的设计书(第3版)》Robin Williams ,人民邮电出版社
    • 《写给大家看的设计书:实例与创意》Robin Williams ,人民邮电出版社
  • 【修为类】
    • 《卓有成效的管理者》(美)彼得·德鲁克, 机械工业出版社
    • 《麦肯锡教我的写作武器》(日)高杉尚孝, 北京联合出版公司·后浪出版公司
    • 《金字塔原理》(美)巴巴拉·明托,民主与建设出版社
    • 《安静:内向性格的竞争力》(美)苏珊·凯恩,中信出版社