《Web全栈工程师的自我修养》—余果

一、全栈工程师

  1. What?
    web全栈工程师:至少包括服务器(比如Linux),数据库(比如Mysql),服务器端编程(比如Java,Php),前端标记语言和脚本语言(比如HTML,CSS,JavaScript)等。

  2. Why?
    (1)“各司其职”的弊端:
    工程师职责不清导致效率低下
    工程师缺乏主人感导致产品质量差
    工程师缺乏全局的视野影响个人成长
    更多角色导致项目效率低下
    (2)全栈工程师特点优势:
    一专多长
    a.解决问题,而不是醉心技术—公司的存在是为了解决问题。互联网发展很快,问题的优先级不断变化,如果新计划是你不擅长的,应该立马开始学习新的技术,这就是所谓的关注问题,而非醉心技术。
    b.高级工程师可以选择往上下游扩展自己的能力,并承担更多责任,给公司带来更大效益的同时也给自己带来更大的成长空间。
    c.程序员在小公司里主动去承担更多责任,自己跟公司都会获得相应的成长。
    d.在自由职业市场,全栈工程师是最耀眼的明星—-能独立创作产品,容易被市场接纳。
    e.天生的创业者。能够以最快速度测试自己的idea,从工作中锻炼出发现问题、洞察需求、设计解决方案并开发初始版本产品的能力。

  3. How?
    (1)先精后广,一专多长:在满足岗位常规需求的基础上,一定要在某个特定方向上有非常深入的理解。会做,理解背后的原因,理解背后的背后的原因。理解越深刻,找工作就越有优势。
    (2)围绕商业目标:在考虑做什么项目的时候,围绕商业利益作为目标。因为技术是服务于商业目标的。
    (3)关注用户体验:每个糟糕的体验背后都蕴含着商机
    大巧若拙,
    做自己会用的产品,创业公司做产品,CEO一定要是自己的目标用户,要去体验自己的产品

二、从学生到工程师

  1. 选择时先选岗位后选公司,自己喜欢的岗位,然后自己喜欢的公司
  2. 面试中,自己的作品是最强的信号,阅读能力及编码能力(著名开源项目中贡献代码),英文能力
    简历建议:
    a.确定求职意向,针对特定意向填写简历
    b.表达出自己的创意,不要使用简历模版
  3. 实习建议
    a.记住团队里的每一个人
    b.有任何问题,主动问导师
    c.主动介绍自己,告诉大家你是新人,请多关照(大家对新人的天真或愚蠢有更高的容忍度)
    d.每周发邮件记录心得总结,经验教训,学习成长
    e.实习期结束时,用邮件总结所有项目,给出交接文档,并向大家致谢

    注:主动性是全栈工程师必须具备的一个特质,没有一个全栈工程师是被别人逼出来的。

三、工程师事业指南

  1. 积累作品集—作品集是指个人的项目和作品的集合,一份精心准备的作品集比简历更能说服人。
  2. 作品集要突出重点:突出某个技能的深度,可以针对这个技能列出大量作品,项目,专栏等。

四、高性能网站的关键—缓存

  1. 服务器缓存:
    a.基本的数据库查询缓存:
    b.扩展数据库缓存:memecached,数据库自带缓存是在Mysql所在的服务器上开辟的,能使用的内存空间有限。大型网站缓存不够用,这时需要使用服务器集群来实现数据库缓存。
    c.文件缓存:可以将数据库查询结果缓存在内存中,也可以缓存在文件中。
    优点:硬盘容量比内存大,可以缓存更多的数据。
    数据更安全,断电之后数据还在。
    易于扩展,硬盘不够用时可添加硬盘
    缺点:文件缓存存取没有内存缓存快,只能作为内存缓存的补充。查找优先级为:内存缓存,文件缓存,数据库。
    d.静态化

  2. 浏览器缓存:

五、持续集成:

持续集成包括版本控制、包管理、依赖关系、架构优化、自动发布等。

六、高效工程师:

  1. 阅读英文资料:StackOverflow、Google搜索;
  2. 时间管理四象限:如果平时没有重要的事情,就会发现自己常常在做紧急的事情。如果平时没能注意锻炼身体,就会常去医院花费更多时间。如果没有培养后辈,为每个项目设置接班人,就会常常需要到处救火。如果没有配置好版本管理系统就开始工作,就会浪费更多时间去找回丢失的代码。如果偷懒硬编码了一些变量在代码中,后续一定会花费更多时间去调试。
    一:既紧急又重要(立即执行) 二:紧急不重要(请他人代劳)
    三:重要不紧急(制定计划) 四:不重要不紧急(Say No!)
    注:建议工程师把80%的工作投入到第三象限中,避免“瞎忙”。
  3. 消除重复工作
    第一步:详细记录自己一天的时间消耗,识别出时间花费在了哪里,以此作为优化目标。在合并代码上花费太多时间?还是提交测试?发布流程繁琐?编译太久?切图工作枯燥?
    第二步:思考能否使用已有的工具–免费的或是付费的—来无缝衔接已有的流程中。
    第三步:如果不能使用已有的工具,就自己去编写。在语言的选择上可以从这几个角度考虑:工具使用者是谁?用户的操作系统?
  4. 给自己留出不被打扰的时间
    编程需要大量的精神投入,需要整块的连续的思考时间。eg:facebook 周三是没有会议的(No Meeting Wednesday!)
  5. 番茄工作法
    1.每25min休息5min,每四个时间段多休息一会儿。eg:晨练,,,
  6. 纸上头脑风暴
    1.笔和纸是最灵活、最容易修改、成本最低的头脑风暴方式。
    比如写一篇文章前先画一个思维导图,把头脑风暴出来的所有关键词列出来,再根据金字塔形式的写作方法层层分解。如果是开发一个软件,或者写一个脚本程序,可以把每一步主要工作都写下来,类似伪代码,但是抽象层级更高一点。
  7. 使用版本控制工具和构建系统

七、全栈思维

  1. 有兴趣就够了吗?
    a.有没有想着把您的产品和您的名字联系起来?
  2. 学一点管理—-《卓有成效的管理者》
    a.有效的管理者知道他们的时间用在什么地方。
    b.有效的管理者重视对外界的贡献。
    c.有效的管理者善于利用长处,包括自己的长处、上司的长处、同事的长处和下属的长处。
    d.有效的管理者集中经历于少数重要的领域,在少数重要的领域中,如果能有优秀的绩效就可以产生卓越的成果。
    e.最后,有效的管理者必须善于做有效的决策。
  3. 沟通:被忽视的竞争力
    良好的沟通是:“针对目标听众”,“有方法的”,“表达自己的想法”。
    a.针对目标听众:
    b.有方法:麦肯锡的金字塔原理。
  4. 示例:谈谈PPT
    a.不要有太多文字:听众注意力只能放在一个地方,要么是PPT要么是您自己。PPT只是辅助,重要的是您本人。
    b.设定进度:让听众知道自己在哪里,比如一开始告诉听众您的演讲时间,或者在PPT中设置进度表。
    c.对待错误:放松
    d.有条件的话,录像并对比提高:不要相信别人的评论,碍于面子,别人不会提出不好的评价。
  5. 性格内向的竞争力
    a.性格内向尤其独到的价值。我是性格内向,这让我有很好的学习能力和不错的社会意识。
    记住:性格来自基因,有其独特的价值,只要充分利用自己的天赋,就能得到您想要的。不要为了迎合社会主流,而伪装成一个外向、热情、合群的人。

    书籍推荐:

    《卓有成效的管理者》 美 彼得。德鲁克
    《麦肯锡教我的写作武器》 日 高杉尚孝
    《金字塔原理》 (美) 巴巴拉。明托
    《安静:内向性格的竞争力》 (美) 苏珊。凯恩

读《Web全栈工程师的自我修养》相关推荐

  1. 读《Android 安全架构深究》

    Android 安全架构深究 安全是一个非常立体而丰富得概念.在不同的场景下,安全有着不同的含义. 比如对于网络传输,安全指的是传输的数据不会被其他人看到.篡改.伪造及仿冒,传输的数据不会遭到破坏,数 ...

  2. 《最强Android书 架构大剖析》读书笔记

    文章目录 第一章 Android 体系结构的变革之路 1.2 Android系统源码目录 与Linux的异同 Android的框架 原生二进制可执行文件 Android 的原生库 核心(core)库 ...

  3. Android Jetpack架构组件之 Room(使用、源码篇)

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...

  4. 抖音、美团等大厂千万级用户的Android客户端架构演进之路—

    在移动开发中,对开发者来说不同的人具有不同的能力.就像读一本书一样,一千个读者,有一千个哈姆雷特.但不管怎样,只要你是个软件开发者你就必须学习windows或Linux等操作系统的运行原理.Andro ...

  5. Android 图形架构之一 ——概述

    前言 本系列的文章,可以让你明白,一个View最终是如何显示到屏幕上的,从应用层到硬件抽象层.对分析app的卡顿,掉帧等 有很大帮助. 由于图形架构的涉及到的代码量很大,所以本篇先来个总体的概述,有个 ...

  6. Android display架构分析-SW架构分析(1-8)

    参考: Android display架构分析二-SW架构分析 Android display架构分析三-Kernel Space Display架构介绍 Android display架构分析四-m ...

  7. 高通Android display架构分析

    目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...

  8. [Android] Android MVP 架构下 最简单的 代码实现

    Android  MVP 架构下  最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...

  9. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  10. Android系统架构图及简单的系统架构介绍

    2019独角兽企业重金招聘Python工程师标准>>> ndroid的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层. ...

最新文章

  1. spring mvc xml格式输入输出
  2. JZOJ 5236. 【NOIP2017模拟8.7A组】利普希茨
  3. Asp.net TextBox常规输入验证
  4. javascript-DOM-节点
  5. Solr4:加入中文分词IKAnalyzer2012 FF
  6. 关于setInterval设置倒计时只执行一次,clearInterval停止
  7. 97 个 Linux 常用命令大全
  8. 【计算机视觉】【并行计算与CUDA开发】GPU硬编码
  9. 绝地求生登录计算机需要授权,Steam第三方授权登录错误 《绝地求生大逃杀》国服绑定受影响!...
  10. HTML5和CSS3新增
  11. 解读x86、ARM和MIPS三种主流芯片架构
  12. 【转】用 Go 构建一个区块链
  13. 算法实践——数独的基本解法
  14. S9300系列交换机升级系统版本
  15. 《愤怒的小鸟》——大一下C语言程序课设
  16. MATLAB小白之图片合成
  17. python代码画樱花落花-Python:绘制樱花树
  18. 一个Activity左右分别显示一个ListFragment
  19. BZOJ 3159: 决战 解题报告
  20. 【HaaS Python 硬件积木】 BMP280气压传感器

热门文章

  1. 快速开发一个混合APP(Hybrid APP)
  2. go-channel
  3. 20180514-A · Star Wars Survey · ggplot2 ggdraw geom_bar facet_grid magick 柱状图 条形图 · R 语言数据可视化 案例 源码
  4. Android之Activity界面劫持反劫持
  5. 优化设计鲍威尔法c语言,机械优化设计鲍威尔法编程
  6. 电脑记事本增强版notepad++
  7. iOS 整理iOS9适配中出现的坑
  8. miui国际版/波兰版 开通公交卡 / 模拟门禁卡
  9. 一键刷入twrp_小米红米如何正确TWRP卡刷MIUI12波兰版或者欧版等系统详细教程
  10. 小米max2装鸿蒙,小米Max2最全评测 小米Max2值不值得买?