大概在一个星期前,我发现没有最高温度和最低温度的数据,所以,我大概花了近一个星期的时间,单线程从一个网站爬下了温度数据,并画出了2018年2月温度变化的折线图。

现在不得不说现在一个非常奇怪的现象:一方面鄙视高学历,说什么能力到位就行,另一方面对要长期积累而且只靠学历说话的岗位趋之若鹜。这个现象在亲戚中尤为明显,成天跟我说学历不重要,却又对那些对学历一刀切的老师、医生、公务员等岗位十分热衷。然而,事实却是,医生在市级医院都必须硕士研究生,老师教高中也必须是本科。目前,公务员基本上不招专科。不是世界级名牌大学硕士研究生,不能开算法课程。那些讲架构算法的讲师,基本来自名牌大学。由此说来能力到位,但是学历高一点能少讲很多废话。

在做这个项目的时候,我盘点了项目的技术。结果一眼望去全是开源的语言、开源的框架、开源的算法实现。不得不承认,开源文化早就渗透到软件开发项目的方方面面。但是,在改Python爬虫源代码和PHP接口代码的时候(之前完全没学过,只是看了几本书),真感觉到,数据结构、算法等抽象层真的是心法 。他们很枯燥无味,但是忍受下来,收获还是很大。不仅我能很快学习到语法,更能迅速上手,一下子就通过测试将代码改成我需要的内容。我只要做的便是百度一下API,看几个实例。麻烦一点的,在画折线图的时候做的测试多一点,但依旧速度非常快,很容易上手。

当然,这个前提是,要对某一个平台的开发流程有非常深入的了解,而且一定要有比较好的抽象层知识。算法等内容虽然不必自己亲自去写,但最起码通过学习知道各个模块的关系和运行思路,从而更快上手。但,每每谈到这个问题,总有人说:初等码农不需要算法。没问题,屏蔽拉黑。那就一辈子安心一点吧。在一段时间内,确实有点儿好高骛远,总是对业务层不屑于顾。这个项目告诉我,抽象层最终是要落地的。所以,测试写代码还是要写,对于现在的我而言,70%的时间是应该放在业务层,15%放在初级抽象层,如具体操作系统原理(Linux的APUE等),15%的时间应该放在高级抽象层上(算法、CSAPP等)。而且主要精力在业务层上。

接下来,理论还是要看看,但既然已经有足够多的数据了,我现在应该不断的实践算法,运行算法,以便理解算法在环境信息处理上的意义,这样也能帮助我记忆。