小土刀

个人技能发展指南

工作也有一段时间了,基本上也参与到了公司除硬件外的各条业务与研发线,在具体的学习和开发过程中也逐渐有了对未来的认知。这里以技能树的方式来给自己定简单的规划。


本文的主要技能点来自 StuQ 的云计算工程师/研发工程师/大数据工程师必备技能这三种,按照我个人的喜欢和判断进行了糅合。

写在前面

软件开发能力体系

    • 创造能力:一部分天赋
    • 逻辑能力:训练提高
    • 理解能力:经验积累
    • 基础知识:知识类,计算机、数学、算法、逻辑,通过书本
    • 编程技能:语言相关,多学几门
    • 领域知识:工作具体方向。多媒体要熟悉图形图像声音等等,企业级硬要要熟悉管理制度财务成本仓储

推荐信息来源:教科书、MOOC、技术会议演讲稿、维基百科、博客、问答社区、开源项目

尽量不要重复设计和制造轮子,在巨人肩上起步。

所有的工具都是为了提高我们的开发效率而存在的。知其然而知其所以然。

  • 仔细看文档
  • 注意依赖,注意版本号
  • 仔细看出错提示
  • 不要太早钻研细节

开发

  • 命令行工具: tmux(screen), bash, zsh(oh-my-zsh), git
  • 操作系统: Ubuntu, macOS
  • 语言: Go, Java(maven, gradle), Python(pip, ipython), Javascript(node.js), Ruby(gem)
  • 文档: markdown
  • 编辑器: Visual Studio Code, Vim
  • 流程: Scrum, Crystal, FDD
  • 持续集成: Jenkins
  • 协作: Teambition, Slack, Trello

基础

  • 计算机和代码的本质,能做哪些事情,不能做哪些事情
  • 计算机硬件如何运作:芯片、CPU、内存和存储设备
  • 软件如何运行
  • 互联网是如何实现的
  • 计算机安全
  • 数据结构: JSON, cPickle, protobuf
  • 网络: TCP/IP, VLANs, DNS, CDN, HTTP/HTTPS 协议
  • 调度
    • crontab 最原生的定时调度
    • 基于 redis 实现的分布式调度
    • 基于 rpyc 实现的分布式调度
    • celery/gearman 等调度
  • 并发
    • 协程 gevent
    • 线程池
    • 多进程 os.fork, idea multiprocessing
  • 调试
    • pdb, logging, Sentry, lsof, strace, trace
    • top, htop, free, iostat, vmstat, ifconfig, iftop
  • 算法
    • 一致性: Paxos, Raft, Gossip
    • 数据结构: 栈、队列、链表, 散列表, 二叉树、红黑树、B 树, 图
    • 常用算法: 插入排序, 桶排序, 堆排序, 快速排序, 最大子数组, 最长公共子序列, 最小生成树, 最短路径, 矩阵的存储和运算

大数据

  • 云计算: SaaS/PaaS/Iaas, Openstack, Docker
  • 大数据通用处理平台: Spark, Hadoop, ELK
  • 资源调度: Yarn, Mesos
  • SQL: MySQL, Sqlite, AWS RDS, PostgreSQL
  • NoSQL: MongoDB, Cassandra, DynamoDB, MongoDB, HBase
  • 缓存: Memcached, Redis, AWS ElastiCache
  • 检索: Solr, ElasticSearch, AWS ElasticSearch
  • 数据分析: Pig, Hive, Spark SQL, Spark DataFrame, Impala, Phoenix, ELK
  • 消息队列: Kafka, RocketMQ, ZeroMQ, ActiveMQ, RabbitMQ
  • 流式计算: Storm/JStorm, Spark Streaming, AWS Kinesis
  • 日志收集: ELK, Scribe, Flume, Fluentd, AWS CloudTrail
  • 机器学习: Mahout, Spark Mlib, TensorFlow(Google), Amazon Machine Learning, DMTK(MS), scikit learn

架构

  • 计算
    • 自动扩展: AWS Autoscaling, OpenStack/Hoo!
    • 负载均衡: AWS ELB, HAProxy, Nginx
    • 虚拟化: Hypervisor, Xen, KVM, Hyper-V
    • 容器: Docker, CoreOS, UnixLXC
  • 分布式消息
    • 消息队列: ZeroMQ, ActiveMQ, RabbitMQ, AWS SQS
    • 事件/消息驱动: AWS SWS, AWS Lambda, AKKA
    • RPC: Thrift, Protobuf
  • 存储
    • 网络存储: AWS EBS, NFS v4, Ceph, Apache CloudStack
    • 对象存储: AWS S3, OpenStack Swift
    • 块存储: SAN, AWS EBS, RAID 概念
    • 灾难恢复
    • 文件系统: ext4, XFS
  • 安全: Firewall, DDoS, iptables, WAF, IDS/IPS, VPN
  • 身份认证: SAML, OpenID, Microsoft AD, AWS IAM
  • 监控: ZABBIX, OBSERVIUM, INICGA, AWS CloudWatch
    • 系统, 日志, 流量, 接口, 数据库
  • 理论: Microservices, RESTful, CAP
  • 设计: 扩展性, 可用性, 可靠性, 一致性, 负载均衡, 过载保护
  • 协议: 二进制协议, 文本协议
  • 接入层: DNS 轮训, 动静态分离, 静态化, 反向代理, LVS, F5, CDN
    • nginx, apache, lighttpd, tomcat
  • 逻辑层: 连接池, 串行化, 批量写入, 配置中心, 去中心化
  • 数据层: 缓存优化, DAO, ORM, 双主架构, 主从同步, 读写分离
  • 同步通讯: RPC, RMI
  • 异步通讯: MQ, Cron
  • 性能优化
    • 代码层: 关联代码优化, cache 对齐, 分之预测, Copy on Write, 内联优化
    • 工具: OProfile, Gprof, JDK 工具
    • 系统优化: 缓存, 延迟计算, 数据预读, 异步, 轮询与通知, 内存池, 模块化
  • 测试: 单元测试, 接口测试, 性能测试, 集成测试

容器

  • 核心: Docker, LXC, RunC, Rkt, Systemd-nspawn, Hyper, VMWare Photon, Jetpack, Kurma, Bosh
  • 监控: Sysdig, Guardrail, cAdvisor
  • 管理: DockerUI, Kitematic, Decking.io, Shipyard, StackEngine, Panamx, Fabric8, Triton
  • 基础设施集成: Nova-docker, Magnum, Clocker, Machine, MaestroNG, CloudFoundry Containers Service Broker, Mesos, Fit2Cloud, Boot2Docker
  • 编排调度: Crane, Compose, Swarm, Yarn, Kubernets, Fleet, Marathon, OpenShift, GearD, Rancher
  • 平台: Alauda, DaoCloud, TenxCloud, CSphere, AWS Container Service, Google Container Engine, StackDock, Orchard, Quay.io, Baremetal.io, Tutum, Giant Swarm
  • 服务发现: Consul, Etcd, Zookeeper, SkyDNS, Skydock
  • 日志收集: Splunk, Elasticsearch, Logstach, Kibana, Heka, Fluent, Flume
  • 相关发行版: CoreOS, Project Atomic, RancherOS, ClearLinux
  • 容器 PaaS: Dokku, Deis, Voxoz, Flynn, Octohost
  • 容器网络: Pipework, Flannel, Calico, Weave, Socketplane.io, Pertino, Nuage
  • 容器安全: Notary, SELinux on docker
  • 数据持久化: Flocker, Ceph
  • 开发流程工具: Drone.io, Shippable, Runnable, NodeChecker, Jenkins Docker plugin, Wercker, Totem, Packet, Docker Repository, Packer

运维

  • DevOps: SSH 证书, Fabric, SaltStack, puppet, pssh/dsh, 运维进阶
  • 部署: 蓝绿部署, 灰度发布, 金丝雀发布, Canary 部署, PHOENIX 部署, AWS CloudFormation
  • 基础服务: LAMP/LNMP, FTP, DNS, SAMBA, EMAIL, NTP, DHCP
  • 配置: Chef, Puppet, Ansible, AWS OpsWorks, Nagios, Zabbix, Cacti, SaltStack, pssh/dsh, Fabric
  • 安全: iptables, ipset
  • 网络: TCP/IP, tcpdump

引用自 Brendan Gregg

前端

  • 语言: JavaScript/Node.js, TypeScript
  • 编辑器: Vim, Visual Studio Code
  • 调试工具: Chrome Dev Tools
  • 框架: Vue.js, React, jQuery, Botostrap
  • 规范: HTTP/1.1 RFCs 7230-7235, HTTP/2, ECMAScript 5/6/7, DOM/BOM/XHTML/XML/JSON/JSONP, CommonJS Modules, MicroData/RDFa
  • 文档: JSDoc, Dox/Doxmate/Grunt-Doxmate
  • 构建工具: make/ant, GYP, Grunt, Gulp, Yeoman, FIS, Mod, Webpack
  • 安全: CSRF/XSS, CSP, Same-origin policy, ADsafe/Caja/Sandbox
  • 移动: HTML5/CSS3, 响应式网页设计, Zeptojs/iScroll, React Native/Week

参考链接

您的支持是对我创作最大的鼓励!

热评文章