回顾一下,我的技术能力(不仅仅是编程,而是解决问题的能力)的进步大约有几个重要的节点:1. 刚入行时的入门练习题这个是当年狼厂网页搜索部门的传统,不知道现在还有没有,入职第一个任务是完成两道练习题。入厂之前我在Linux上没有写过代码。两天时间从Linux基本命令的熟悉,vim gcc gdb的使用学习,从malloc和free开始搞内存管理,从0开始码hashtable(还得自己写hash函数),从socket开始实现http client和各种协议码解析,使用pthread多线程和信号量互斥同步,基本把操作系统计算机网络复习了一遍。这两天把我四年本科三年研究生没搞扎实的工程基础全部补上了。结论:有目的的练习,尤其是一个完整的应用问题的解决,是学习的不二法门。2. 接手一个完整的模块(子系统)搞完入门练习,leader过来跟我说:小胡,现在有一个重要的模块交给你,赶紧熟悉一下,然后完成如下功能升级。这个模块是前厂存储网页的核心模块,在当年内存4g的奔腾主机上单机存储几千万网页,几台机器存下了当时整个中文互联网。支持高性能的随机存取和顺序读,可以说把机器性能压榨到了极致。3w行,纯C。
0 评论