Masutangu

长风破浪会有时 直挂云帆济沧海

也許我這一生 始終在追逐那顆九號球


工作两年记

转眼间,我也已经工作了快两年了。两年,在互联网行业,是一个尴尬的时间点。一方面,你不再是一个新人,意味着你的潜力已经渐渐被挖掘得差不多了。另一方面,你又还没完全成长,你会承担一些责任,但也许还没办法掌控全局,做到游刃有余。

回想起刚入职,由于自己完全没有工程经验,心里相当忐忑。机缘巧合,leader 给我分配的第一个任务是爬虫。Python 对于新手来说相当的友好,我很快就上手并能够做出一些简单的成果。之后又熟悉了 Django,了解 MVC。之后再尝试空闲时间读一些库的源码,并最终自己用 Python 写了一个开源项目 Elric(基于 Apscheduler )。这些经历极大得提升了我的自信心,也锻炼了我的代码能力和少部分的架构能力。

第二年的时候,我给自己的计划是多学习新的知识点,重在求广。因此我学了 Golang,写了个小项目 SuperScripter 练手(最终这个项目的进化版用在了工作中);学习了 iOS,写了一个简单的 ToDoList, 对客户端有了些了解;读了 NSQ 的源码,大致了解消息队列的实现;还读了一段时间的非技术类的文章(读书笔记:水滴石穿),希望自己的思维可以更宽广,可惜后来没坚持下去。

到了今年的年初,我感觉自己在技术上到了一个瓶颈,对于职业发展也有些迷茫。总会觉得自己在原地踏步,会的更熟练,不会的还是不会,让我有些急躁,心情也不是特别好。有一阵子我每天一闲下来就会想:“到底怎么做才能更进一步?”,始终绕不出这个困扰。后来我发现想要驱除内心的恐慌,取得让自己满意的进步,唯一的方法就是花时间做一些更深入的研究,而不是浮在表面。浮在表面让我非常没有安全感,如果你很快就能学会的,别人也可以。所以我不再把重心放在新知识上,打算打牢基础,并在自己感兴趣的领域做些探索。

想清楚后,我规划了接下来这一年的学习路线:

  • 回归语言的本质

    学再多语言,不深入思考的话,也只是学到皮毛。不应该止步于会用,而是要深入到编程语言的设计哲学。我希望之后在这方面有一些理解。

  • 网络框架读源码,造轮子

    在公司工作,都有了现成的框架。就算自己做项目,也有很多开源框架可以使用。和编程语言类似,我希望自己能够再深入些,比如读读协程/异步/同步框架的代码,比较他们的适用场景,最好是能够自己造一些轻量级的轮子加深理解。

  • 巩固操作系统/编译原理/网络基础

    看书学习理论,造轮子加深理解。也许工作中 90% 的情况下不需要这些知识,但总会有 10% 的概率会出各种奇奇怪怪的问题,这时就是考验基本功的时候了。

我觉得第两年到第三年,是一个关键点。这一年,我希望兑现全部潜力,大幅度提升自己的能力,不仅是代码能力、架构能力,还有工程素养。我希望三年级的我,可以扛起重任。就像 NBA 的球员一样,经历了两年的磨砺,三年级,也该去争取进入全明星,争取一阵,争取属于自己的总冠军了!

最近的文章

简单异步应用框架的实现

两年前刚进公司的时候,第一次接触了异步框架,那时还处于懵懵懂懂的状态。最近换了组,接触到另外一种实现的异步框架,这次有了一定的积累后,对异步框架的设计也有了更多的理解。刚好最近自己基于 libuv 造了个简单的轮子 saf (Simple Async Framework),趁此机会和大家聊聊异步框架的设计思想和实现。异步框架设计思想服务器模型先来看看传统的服务器模型,如下图:一般来说,服务器端可以分为三层:接入层,逻辑层,数据层。接入层负责客户端的接入,逻辑层则实现业务逻辑,数据层就是数据...…

个人项目继续阅读
更早的文章

Elric 使用手册

这篇文章正式介绍下我之前用 Python 实现的分布式任务框架 Elric,包括其API,架构,周边能力以及实现细节。读者可以先阅读之前的这篇文章《Python实现的分布式任务调度系统》来了解Elric的起源和早期设计的思想。一. 简介Elric 是一个 Python 实现的简单的分布式任务框架。Master-Worker 架构,Worker 向 Master 提交任务和执行 Master 下发的任务。支持多种任务类型:即时任务,周期任务,crontab 任务和定时任务。其实现参考了 Ap...…

个人项目继续阅读