《Web全栈工程师的自我修养》这本书是在豆瓣淘书的时候看到的,评分还不错,就在工作室购书的时候,随便就写了上去了。想买这本书起初就两个原因。一是:因为第一样看到这个书名的时候就让我很印象深刻,因为我记得有一本叫演员的自由修养的。二是:自己对全栈很感兴趣,第一次听到全栈这个词就感觉很新鲜,找了好多脑图。但是我对全栈还是没有很清晰的定义。直到遇到了这本书。读了两遍:感觉提升了对全局的视野。
什么是全栈工程师?
文中的有两种解释:
一是:一些高级工程师向上下游扩展自己的能力并承担了更多的责任。对公司带来收益并且自己也得到了提升。
二是:创业公司或者小公司的程序员自愿或非自愿的去做那些自己“舒适区”外的工作,自己承担了更多的责任,对公司对自己都得到了很大的提高。
但大多数全栈工程师的成长都不是靠外力,而是自我驱动。当然,很显而易见。
如何成为全栈?
每个小菜鸟都有想成为全栈的梦想。当然只能从少到多,慢慢积累经验和知识。作者推荐了一种方式:“先精后广,一专多长”的学习流程。这个也比较符合一般人的职业发展。先在一个特定的方向上有比较深入的钻研,然后再将学习目标渐渐推广开来。
还有两个建议:一是围绕商业利益为目的,归根结底,技术是服务于商业目的的。二是关注用户体验,(不要说我们技术的就不用太上心用户体验),因为每一个糟糕的体验背后都蕴含这商机,而且你要学会做自己会用的产品。
上面就是对全栈工程师的三个能力:一专多长、关注商业目标、关注用户体验。
三种人:
一:学生
作者对学生的建议,
在校园要把握好校招的机会。
对工作的选择中岗位优先于公司。
毕业之后选择大公司对自己发展前途来说更加明智。
1.小风险
2.垂直专精的技能
3.服务海量用户的经验
4.软技能
5.人脉
6.心态
对实习的建议:
1.是记住团队里的每个人。
2.有任何问题,主动问导师。
3.主动介绍自己,请大家多关照。
4.每周总结心得、经验教训、学习成长。
5.实习结束,总结所有项目,给出交接文档,并向大家致谢。
二:野生程序员
对“野生程序员”的定义是:没有计算机基础知识和相关教育经历,靠着计算机开发兴趣进入这个行业,虽然知识面比较广,但各方面都一知半解的开发者。
显然这样字是不好的。自己没有什么竞争力。
下面作者给出的能力模型例子每项都差不多60分左右,而且也有精通的技能,就应该不错的例子。可以对照自己做一个自己的能力模型去评估看看。缺少什么,要补充什么。
三:工程师
对工程师的事业指南
有3个关键:技术,成长,声望。
技术:当然不用说的啦。缺什么少什么,不用说,去补就好了,你自己一定更加清楚。
成长:对于成长最好的解释就是累计自己的作品集。一份作品集比简历更能说服人。要善用GitHub,而且不要自己感觉自己的代码不够好而不开源,这样很不好,也不是理由和借口。
声望:就像那个什么都懂的人。感觉他什么都能解决。身边是不是有这种人,可能你喜欢也可能你不喜欢,但是你一定不会排斥成为这样的人。很简单,就是“答应做的事情,全部都要完成,但是你也要学会正确的拒绝。”
全栈工程师需要的一些重要技术
HTTP
前端的视角
发出的请求列表
每个请求的开始时间
每个请求从刚开始到结束花费的时间
每个请求的类型
每个请求的状态码
每个请求产生的流量消耗
每个请求gzip压缩前的体积,以及在本地gzip解压后的体积
优化方案
尽量减少同一域下的HTTP请求数等
尽量减少每一个资源的体积,压缩合并等
后端的视角
提高服务器的请求处理能力。利用nginx等服务器做负载均衡等
预防DDoS攻击。生成静态页,利用cdn等
缓存
服务器缓存
基本的数据库查询缓存
使用扩展数据库缓存和缓存工具,如memcached
再加一层文件缓存。
查找优先级:内存缓存 ——> 文件缓存 ——> 数据库
页面静态化
浏览器缓存
Expires
Last-Modified
Cache-Control
Restful Web API
移动端
混合App:web技术 + 原生程序外壳
而且移动端是趋势,都应该去接触一下。
持续集成
版本控制
SVN(集中式版本控制)
Git(分布式版本控制)
最佳实践
鼓励频繁的提交
确定分支流程
定义主干原则,并且坚守它
不要把逻辑的修改和代码格式化操作混在一起
不相干的代码分开提交
保持工作代码库的“干净”
包管理
Nmp
Bower
根据Semver的规范,版本号用小数点分隔为三个数字。比如v3.2.1中3是主要版本号,2是次要版本号,1是补丁。
主要版本号:有API变更导致不兼容旧版本的时候使用
次要版本号:新增功能,但是向前兼容的情况下使用
补丁:修复向前兼容的bug时使用
全栈工程师的成长途径
初级前端知识体系
对浏览器兼容性的了解
对HTML/CSS/Javascript语法和原理的理解
对编辑器和插件的熟悉程度
对调试工具的了解程度
对版本管理软件的熟悉和应用经验
对前端库/框架的使用
标准/规范
中级前端知识体系
对代码质量、代码规范的理解
对Javascript单元测试的熟悉
对性能优化的应用和理解
对SEO的应用和理解
代码部署
移动Web
高级前端知识体系
代码架构
安全
对自动化测试的理解
VPS选择
内存一般是主要瓶颈,建议选择最少512MB
CPU是相对没那么重要的性能指标
硬盘的大小和读写速度是关键
服务商的客户服务
自己搭建网站是个很费时费力的事,途中会碰到很多问题,确实可以学到很多东西,适合有精力有兴趣的同学。
全栈工程师扩展技能
设计模式
创建型模式。用来创建对象的模式,它对实例化的过程进行了抽象。如单例模式
结构型模式。主要解决类、对象、模块之间的耦合关系。如适配器模式
行为型模式。用来识别对象之间的常用脚力模式并加以实现。如观察者模式
设计原则
DPY Don’t Repeat Yourself
惯例优于设置。
KISS原则 Keep it simple,stupid
最少知道原则 减少耦合。
高效方式
阅读英文资料
英文的技术资料更多
Google的搜索能力非常强
英语世界的语言风格比较严谨
时间管理四象限
如果您平时没有做重要的事情,就会发现自己常常在做紧急的事情。
消除重复工作
给自己留出不被打扰的时间
番茄工作法
跨界思考
纸上头脑风暴
使用版本控制工具和构建系统
加班是一种文化?
拿工作时长来拼,这还是体力劳动时代打工者的心态在作祟。
架构模式
MVC模式(Model-View-Controller)是最有名的一种架构模式。
学习设计
设计的四大基本理论:
亲密
关系亲密的元素要放在一起,关系疏远的元素则要分开。位置的亲密性直接表现出意义的相关性。
对齐
重复
视觉上使用重复的图形和元素、线条、颜色等。
对比
如果两个元素不一样,就让它完全不一样,产生视觉冲击力。
Axure
Sketch
Quartz Composer
学习管理
在项目最开始做出合理的时间评估
根据人员的强项来安排任务
唤起团队对项目成功的渴望
保障沟通。理想沟通频率每周至少两次。
添加一张读书的脑图:
《Web全栈工程师的自我修养》读书笔记
2016.04.28
《Web全栈工程师的自我修养》这本书是在豆瓣淘书的时候看到的,评分还不错,就在工作室购书的时候,随便就写了上去了。想买这本书起初就两个原因。一是:因为第一样看到这个书名的时候就让我很印象深刻,因为我记得有一本叫演员的自由修养的。二是:自己对全栈很感兴趣,第一次听到全栈这个词就感觉很新鲜,找了好多脑图。但是我对全栈还是没有很清晰的定义。直到遇到了这本书。读了两遍:感觉提升了对全局的视野。
什么是全栈工程师?
文中的有两种解释:
一是:一些高级工程师向上下游扩展自己的能力并承担了更多的责任。对公司带来收益并且自己也得到了提升。
二是:创业公司或者小公司的程序员自愿或非自愿的去做那些自己“舒适区”外的工作,自己承担了更多的责任,对公司对自己都得到了很大的提高。
但大多数全栈工程师的成长都不是靠外力,而是自我驱动。当然,很显而易见。
如何成为全栈?
每个小菜鸟都有想成为全栈的梦想。当然只能从少到多,慢慢积累经验和知识。作者推荐了一种方式:“先精后广,一专多长”的学习流程。这个也比较符合一般人的职业发展。先在一个特定的方向上有比较深入的钻研,然后再将学习目标渐渐推广开来。
还有两个建议:一是围绕商业利益为目的,归根结底,技术是服务于商业目的的。二是关注用户体验,(不要说我们技术的就不用太上心用户体验),因为每一个糟糕的体验背后都蕴含这商机,而且你要学会做自己会用的产品。
上面就是对全栈工程师的三个能力:一专多长、关注商业目标、关注用户体验。
三种人:
一:学生
作者对学生的建议,
在校园要把握好校招的机会。
对工作的选择中岗位优先于公司。
毕业之后选择大公司对自己发展前途来说更加明智。
1.小风险
2.垂直专精的技能
3.服务海量用户的经验
4.软技能
5.人脉
6.心态
对实习的建议:
1.是记住团队里的每个人。
2.有任何问题,主动问导师。
3.主动介绍自己,请大家多关照。
4.每周总结心得、经验教训、学习成长。
5.实习结束,总结所有项目,给出交接文档,并向大家致谢。
二:野生程序员
对“野生程序员”的定义是:没有计算机基础知识和相关教育经历,靠着计算机开发兴趣进入这个行业,虽然知识面比较广,但各方面都一知半解的开发者。
显然这样字是不好的。自己没有什么竞争力。
下面作者给出的能力模型例子每项都差不多60分左右,而且也有精通的技能,就应该不错的例子。可以对照自己做一个自己的能力模型去评估看看。缺少什么,要补充什么。
三:工程师
对工程师的事业指南
有3个关键:技术,成长,声望。
技术:当然不用说的啦。缺什么少什么,不用说,去补就好了,你自己一定更加清楚。
成长:对于成长最好的解释就是累计自己的作品集。一份作品集比简历更能说服人。要善用GitHub,而且不要自己感觉自己的代码不够好而不开源,这样很不好,也不是理由和借口。
声望:就像那个什么都懂的人。感觉他什么都能解决。身边是不是有这种人,可能你喜欢也可能你不喜欢,但是你一定不会排斥成为这样的人。很简单,就是“答应做的事情,全部都要完成,但是你也要学会正确的拒绝。”
全栈工程师需要的一些重要技术
HTTP
前端的视角
发出的请求列表
每个请求的开始时间
每个请求从刚开始到结束花费的时间
每个请求的类型
每个请求的状态码
每个请求产生的流量消耗
每个请求gzip压缩前的体积,以及在本地gzip解压后的体积
优化方案
尽量减少同一域下的HTTP请求数等
尽量减少每一个资源的体积,压缩合并等
后端的视角
提高服务器的请求处理能力。利用nginx等服务器做负载均衡等
预防DDoS攻击。生成静态页,利用cdn等
缓存
服务器缓存
基本的数据库查询缓存
使用扩展数据库缓存和缓存工具,如memcached
再加一层文件缓存。
查找优先级:内存缓存 ——> 文件缓存 ——> 数据库
页面静态化
浏览器缓存
Expires
Last-Modified
Cache-Control
Restful Web API
移动端
混合App:web技术 + 原生程序外壳
而且移动端是趋势,都应该去接触一下。
持续集成
版本控制
SVN(集中式版本控制)
Git(分布式版本控制)
最佳实践
鼓励频繁的提交
确定分支流程
定义主干原则,并且坚守它
不要把逻辑的修改和代码格式化操作混在一起
不相干的代码分开提交
保持工作代码库的“干净”
包管理
Nmp
Bower
根据Semver的规范,版本号用小数点分隔为三个数字。比如v3.2.1中3是主要版本号,2是次要版本号,1是补丁。
主要版本号:有API变更导致不兼容旧版本的时候使用
次要版本号:新增功能,但是向前兼容的情况下使用
补丁:修复向前兼容的bug时使用
全栈工程师的成长途径
初级前端知识体系
对浏览器兼容性的了解
对HTML/CSS/Javascript语法和原理的理解
对编辑器和插件的熟悉程度
对调试工具的了解程度
对版本管理软件的熟悉和应用经验
对前端库/框架的使用
标准/规范
中级前端知识体系
对代码质量、代码规范的理解
对Javascript单元测试的熟悉
对性能优化的应用和理解
对SEO的应用和理解
代码部署
移动Web
高级前端知识体系
代码架构
安全
对自动化测试的理解
VPS选择
内存一般是主要瓶颈,建议选择最少512MB
CPU是相对没那么重要的性能指标
硬盘的大小和读写速度是关键
服务商的客户服务
自己搭建网站是个很费时费力的事,途中会碰到很多问题,确实可以学到很多东西,适合有精力有兴趣的同学。
全栈工程师扩展技能
设计模式
创建型模式。用来创建对象的模式,它对实例化的过程进行了抽象。如单例模式
结构型模式。主要解决类、对象、模块之间的耦合关系。如适配器模式
行为型模式。用来识别对象之间的常用脚力模式并加以实现。如观察者模式
设计原则
DPY Don’t Repeat Yourself
惯例优于设置。
KISS原则 Keep it simple,stupid
最少知道原则 减少耦合。
高效方式
阅读英文资料
英文的技术资料更多
Google的搜索能力非常强
英语世界的语言风格比较严谨
时间管理四象限
如果您平时没有做重要的事情,就会发现自己常常在做紧急的事情。
消除重复工作
给自己留出不被打扰的时间
番茄工作法
跨界思考
纸上头脑风暴
使用版本控制工具和构建系统
加班是一种文化?
拿工作时长来拼,这还是体力劳动时代打工者的心态在作祟。
架构模式
MVC模式(Model-View-Controller)是最有名的一种架构模式。
学习设计
设计的四大基本理论:
亲密
关系亲密的元素要放在一起,关系疏远的元素则要分开。位置的亲密性直接表现出意义的相关性。
对齐
重复
视觉上使用重复的图形和元素、线条、颜色等。
对比
如果两个元素不一样,就让它完全不一样,产生视觉冲击力。
Axure
Sketch
Quartz Composer
学习管理
在项目最开始做出合理的时间评估
根据人员的强项来安排任务
唤起团队对项目成功的渴望
保障沟通。理想沟通频率每周至少两次。
添加一张读书的脑图:
共同学习,写下你的评论
评论加载中...
作者其他优质文章