一点总结

最近有一点感慨记录一下。

认清楚一线城市与二三线的差异

我们不得不承认, 目前国内的IT环境, 主要的大公司还集中在北上广深, 一些基础架构以及很底层的工作, 都集中在一线城市。 二三线城市比较多的是应用以及某个大公司的分部,负责前端的开发。在这样的情况下, Java大行其道, 我想大概是因为Java使用了大量的框架, 而这些框架需要挺久的时间才能够熟悉吧。

知识的深度与广度

知识的广度, 需要有机会接触到各种技术, 并且在使用新接触到的技术的时候, 尽量去研究一下相关的原理, 不要只会用, 但是不懂得背后的原理。另外, 有志于成为架构师的同学, 还需要多去接触一些常用的框架, 最好能够去研究其实现的原理, 这样, 才能在不同的场景下, 采用正确的框架与技术解决面对的问题。

知识的深度, 主要包括两个方面:

  1. 工作中用到的技术
    我们在工作中世纪用到的技术, 才是我们最有机会弄明白的技术, 一定要多多折腾, 多动手,多看源码, 做到知其然知其所以然。
    对于开源项目, 我们一定要认真读官方文档, 多去研究源码, 读源码是一个长期坚持的过程, 虽然没办法收到立竿见影的效果, 但是它能够然我们见到很多好的架构、算法等。我们不要一开始就拘泥于一些细节的实现,最重要的将某个功能实现的流程搞清楚, 遇到具体问题才能够比较清楚去哪里查找相关的代码。

  2. 理论知识
    理论知识的重要性, 已经无需赘述, 我们之所以发现很多东西,能够熟练应用, 却无法精通, 归根结底还是相关的理论知识没有学到家。治理的理论知识, 主要包含如下几个方面:

  • Google 三篇论文;
  • Raft & Paxos理论;
  • Gossip 算法;
  • 2PC & 3PC;
  • CAP理论;

基础的重要性

  • LINUX操作系统
    重点是文件系统、内存管理、进程与线程方面的知识。
    文件系统, 一定要弄明白VFS与常见的具体文件系统, 比如EXT3、EXT4、ZFS等, 也要掌握常见的分布式文件系统:Gluster与luster。

    内存管理,重点是系统的内存分部以及物理地址与虚拟地址的转换过程, 有余力的话还可以研究一下tcmalloc或者ptmalloc3等比较成熟的内存管理库。

    进程与线程, 多线程模型与多进程模型需要掌握的比较清楚,进程间通信与线程间同步也要搞清楚。

  • 网络方面的知识
    VPC相关的知识;
    DNS域名解析;
    CDN方面的知识;
    常见网络命令:tcpdump,netstat, lsof等;

  • 数据库知识
    存储引擎方面的知识,可重点研究innodb与wiredtiger;
    数据一致性, 可以研究一下基于Raft协议的一致性;
    事务相关的理论与实现;
    查询引擎的实现过程;
    分片的实现;

  • 算法知识
    一致性哈希算法;
    Ceph的CRUSH算法;

未来的展望

未来的工作重点将会放在数据存储方面, 但是之前经常研究的MongoDB源码不能废弃, 还要继续研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值