10x程序员工作法
郑晔
火币网首席架构师,前ThoughtWorks首席咨询师 ,TGO鲲鹏会会员
立即订阅
7975 人已学习
课程目录
已完结 56 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 程序员解决的问题,大多不是程序问题
免费
思考框架 (1讲)
01 | 10x程序员是如何思考的?
以终为始 (11讲)
02 | 以终为始:如何让你的努力不白费?
03 | DoD的价值:你完成了工作,为什么他们还不满意?
04 | 接到需求任务,你要先做哪件事?
05 | 持续集成:集成本身就是写代码的一个环节
06 | 精益创业:产品经理不靠谱,你该怎么办?
07 | 解决了很多技术问题,为什么你依然在“坑”里?
08 | 为什么说做事之前要先进行推演?
09 | 你的工作可以用数字衡量吗?
10 | 迭代0: 启动开发之前,你应该准备什么?
答疑解惑 | 如何管理你的上级?
划重点 | 关于“以终为始”,你要记住的9句话
任务分解 (11讲)
11 | 向埃隆·马斯克学习任务分解
12 | 测试也是程序员的事吗?
13 | 先写测试,就是测试驱动开发吗?
14 | 大师级程序员的工作秘笈
15 | 一起练习:手把手带你分解任务
16 | 为什么你的测试不够好?
17 | 程序员也可以“砍”需求吗?
18 | 需求管理:太多人给你安排任务,怎么办?
19 | 如何用最小的代价做产品?
答疑解惑 | 如何分解一个你不了解的技术任务?
划重点 | 关于“任务分解”,你要重点掌握哪些事?
沟通反馈 (12讲)
20 | 为什么世界和你的理解不一样
21 | 你的代码为谁而写?
22 | 轻量级沟通:你总是在开会吗?
23 | 可视化:一种更为直观的沟通方式
24 | 快速反馈:为什么你们公司总是做不好持续集成?
25 | 开发中的问题一再出现,应该怎么办?
26 | 作为程序员,你也应该聆听用户声音
用户故事 | 站在前人的肩膀上,领取属于你的高效工作秘籍
27 | 尽早暴露问题: 为什么被指责的总是你?
28 | 结构化:写文档也是一种学习方式
答疑解惑 | 持续集成,一条贯穿诸多实践的主线
划重点 | 一次关于“沟通反馈”主题内容的复盘
自动化 (12讲)
加餐 | 你真的了解重构吗?
29 | “懒惰”应该是所有程序员的骄傲
30 | 一个好的项目自动化应该是什么样子的?
31 | 程序员怎么学习运维知识?
32 | 持续交付:有持续集成就够了吗?
33 | 如何做好验收测试?
34 | 你的代码是怎么变混乱的?
35 | 总是在说MVC分层架构,但你真的理解分层吗?
36 | 为什么总有人觉得5万块钱可以做一个淘宝?
37 | 先做好DDD再谈微服务吧,那只是一种部署形式
答疑解惑 | 持续集成、持续交付,然后呢?
划重点 | “自动化”主题的重点内容回顾汇总
综合运用 (7讲)
38 | 新入职一家公司,怎么快速进入工作状态?
39 | 面对遗留系统,你应该这样做
40 | 我们应该如何保持竞争力?
答疑解惑 | 如何在实际工作中推行新观念?
划重点 | “综合运用”主题内容的全盘回顾
总复习 | 重新审视“最佳实践”
总复习 | 重新来“看书”
结束语 (1讲)
结束语 | 少做事,才能更有效地工作
10x程序员工作法
登录|注册

31 | 程序员怎么学习运维知识?

郑晔 2019-03-22
在上一讲中,我们讲到了开发过程的自动化,我们的关注点在于如何构建出一个有效的部署包,这个包最终是要上线部署的,那接下来,我们就来关心一下部署的相关工作。

零散的运维知识

在一些稍具规模的公司,为部署工作设置了一个专有职位,称之为运维。当然,这个岗位的职责远不止部署这一件事,还要维护线上系统的稳定。不过,如果你的团队规模不大,或是项目处于初始阶段,这些工作往往也要由程序员自行完成。
对于一个程序员来说,了解自己的程序怎么部署上线,是非常重要的。我们既要了解一个软件的逻辑,也要知道它的物理部署。只有这样,出了问题才知道怎么修复。
更重要的是,我们在设计时,才能尽量规避部署带来的问题。而部署,恰恰也是最适合发挥自动化本领的地方。
好,即便下定决心准备学习运维相关知识,你准备怎么学呢?我先来问你个问题,提到运维,你会想到什么?
如果你是一个刚刚步入这个行业的程序员,你或许会想到 Docker,想到 Kubernetes;如果再早一点入行,你或许还会想到 ChefPuppetAnsible;更早一些入行的话,你会想到 Shell 脚本。没错,这些东西都是与运维相关的。那我就这么一个一个地都学一遍吗?
就我个人的学习经验而言,如果所有的知识都是零散的,没有一个体系将它们贯穿起来,你原有的知识无法帮助你学习新知识,这种学习方式效率极低,过程也极其痛苦。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《10x程序员工作法》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

  • hua168
    现在运维流行DevOps,高级一点就是AI,
    其中一篇文章《DevOps 详解》不错,链接如下:
    https://infoq.cn/article/detail-analysis-of-devops
    《DevOps知识体系与标准化的构建》也不错,下载地址:
    https://yq.aliyun.com/download/778
    运维知识体系:
    https://www.unixhot.com/page/ops
    Web缓存知识体系:
    https://www.unixhot.com/page/cache


    运维技能:
    1.懂网络:
    一般要求CCNA(最好CCNP)或同等水平

    2.懂系统:
    懂得主流的linux系统操作(Centos、ubuntu、debian等)
    操作命令、维护、性能优化、故障排查

    3.简单安全:
    一些简单的安全知识

    4.半个DBA:
    一般中小公司前期没有DBA,需要运维做
    最起码会SQL语句、主从
    群集:redis、mysql、MongoDB等


    5.会运维开发:
    一般用于开发运维工具、运维系统(如CMDB、ELK日志系统等)
    运维主要语言是shell、python/Go
    python web框架:Django、tonado等
    Go web框架:Beego、Gin、Iris等
    有的还会用PHP及框架(TP、YII、Laravel做web前端)
    中小公司运维一般都没有专职的前端,需要运维兼职所以要学前端知识


    6.懂点开发:
    般都懂一点本公司开发的语言,如公司用PHP需要学习、如公司用java web也需要学习一下,目标:
    1)更好的维护网站,排错
    2)运维自动化、DevOps,因DevOps是基于敏捷开发,极限编程的思想,所以得懂一点软件工程


    7.主职:
    1)各种环境的搭建:LAMP、LNMP、负载均衡(nginx、haproxy、VLS等)、web群集、数据库群集、主流的docker[必会]
    2)排错[必会]
    3)批量安装系统安装:Cobbler[少]
    4)部署工具:Ansible/SaltStack[重要]
    5)主流的部署方案:如云、docker、k8s等[必会]
    6)监控系统:zabbix、Open-Falcon[至少掌握其中一种]
    7)自动化:gitlab CI/CD、jenkins结合ansible/salt、docker[必会]
    8)运维流程的制定
    9)减少背锅的次数:运维是出名的“背锅侠”,制定明确的责任可以减少背锅
    10)等等

    8.会点构架
    一般中小公司没有构架师,所以当业务增大出现瓶颈,运维得给出解决方案
    和开发讨论如何扩展

    总结:
    在中小公司运维工作就是一件很杂的工作,什么都要求会一点

    作者回复: 多谢补充!

    2019-03-22
    12
  • hua168
    你们开发做兼职做运维了,那我们运维出路怎么办
    运维又怎么学开发?😂

    作者回复: DevOps,马上就来!

    2019-03-22
    2
  • 小白菜
    如何系统学习呢?就是按照上面的表格类比,类比思维?

    作者回复: 一层一层地了解,至少要了解基本的用法。还有一种极致的方式,联系柴锋老师去上他的课。

    2019-03-22
    2
  • 西西弗与卡夫卡
    还有性能分析和调优,比如Java有JVM内存模型和运行参数调优,运维有单CPU多CPU的硬件模型和操作系统参数优化

    作者回复: 这个类比很不错!

    2019-03-22
    2
  • 可视化监控衍生出的网络协议、网络与安全设备、软硬件性能指标等相关方面的知识与工具也是运维工作需要关注的。
    2019-03-25
    1
  • enjoylearning
    运维对网络和操作系统需要了解多一些,深一些

    作者回复: 是这样的!

    2019-03-23
    1
  • Ankhetsin
    vagrant,webpack,npm,jcenter,mavencenter,apt,brew,cocoapod,rip,pip,composer算运维吗?

    作者回复: 当然算运维知识了!

    2019-03-23
    1
  • 小伟
    实际情况里,开发框架到单机部署还有很多步骤,如代码自动化编译、提交、环境版本管理、发布策略管理等。常用的工具依次是maven、github、jenkins。

    作者回复: 下一讲就是持续交付、DevOps 登场了。

    2019-03-22
    1
  • 极客不落🐒
    DevOps 就是让 Eating your own dog food 来得再猛烈些,发布也得自己感受下。

    作者回复: 做得越多,越全面!

    2019-03-22
    1
  • maks
    我有一个困惑:“我开发完成之后,现在提测。提测需要发送测试邮件,然后把代码上传到svn。再由编译人员拉下代码,编译部署。”
    但是在这过程中发生了几个问题:
    第一,部署涉及三个服务器环境,但是其中有两个环境的服务(包括数据库)挂掉了,而且我们实现并不知晓。
    第二,编译人员并不知道,他所负责环境下的项目服务器的用户名和密码还有数据库的用户名和密码
    第三,项目经理坦言这几个环境不归他管理,但是对应的服务必须由他开启。然后我们并没有服务开启的文档,只能从百度上一点一点的尝试。
    那现在的问题是,这一些都需要我去串联。
    2019-10-14
  • wesleydeng
    比较系统又相对快速的学习shell语言有没有什么推荐资料呀?
    2019-07-08
  • 陈斯佳
    我看完这篇文章的收获,可能和老师写这篇文章的初衷有所不同,老师写这篇文章的初衷是写给那些想学习运维知识的程序员,通过Java的框架来类比于运维的框架。而对于我来说,我本身是运维,目前正在学习Java语言,所以反而能让我从运维的视角,更好的理解和学习Java语言这门工具。
    2019-06-13
  • helloworld
    文中涉及的一些技术有时间可以了解下
    2019-05-03
  • 苦行僧
    有体系才能在心里有数 不会临时用 临时查
    2019-04-25
  • 旭东
    https://chaifeng.com/devops-tech-stack
    2019-04-16
  • we
    网络大类
    2019-03-22
收起评论
16
返回
顶部