2017年的总结
开头
- 大致分成三个阶段吧 学校 -> 实习1 -> 实习2
- 2017年也是人生的一个转折吧。从学校到实习,过程虽说感觉有点漫长但是到了年底回过头去看还是过的挺快的。
- 搞技术的还是要脚踏实地吧,不然怎么找到好(chui)工(niu)作(pi)呢?
第一部分
2017.01 - 2017.02 这段时间没记错的话开始鼓捣爬虫和搞起了大数据【玩起了Hadoop和Spark】,主线还是在爬虫上
2017.02 - 2017.04 这段时间穿插着在上雅思。考雅思当时为了考飞行员(虽然最后挂在体检上,也是难受);后来就想到出国考研了,毕竟梦想破灭了一个还得找另外一个替代(新加坡南洋理工大学)
2017.02.02 - 2017.02.15 依稀记得这段时间在爬维基百科的历史上的今天(也不知道抽了哪根筋想分析哪天发生的历史事件最多)
2017.02.24 - 2017.02.25 和老婆猪去了深圳和香港,第一次吃豚王和一兰拉面。也是第一次和老婆猪出远门旅行。
2017.03.04 - 2017.04 这段时间在研究矩阵降维(主要还是去理解SVD;后来借了本矩阵分析与应用和子空间降维算法研究与应用,虽然看的很懵逼,但是能够开阔思路)
2017.03.11 帮老婆猪过了第十九个破蛋日
2017.03.01 - 2017.03.25 这段时间在研究Ambari这个神奇的部署框架。虽然比不上CDH火,但是我感觉虽然配置麻烦了点,但是整体的使用还是ok的。
2017.04.12 这一天终于狠下心入手了LG 29寸的曲面显示屏(讲真真的爽,之后敲代码的日子真心畅快!)
2017.04 - 2017.05 这段时间貌似一直在酱油弄SpringBoot和HDFS的二次开发。这段时间学的东西真心多,就光HDFS的原理和API的使用我就消化了好一段时间,虽然最后这个WebHDFS还是比较坑爹的,bug太多了,但是对HDFS还是有个较完整的认知。
2017.05 - 2017.06 因为学校开了数据挖掘这门课,便开始回归数据分析了。死磕numpy、pandas、sklearn和真心不好用的matplotlib
2017.06 - 2017.07 大三下交完了课程设计答完辩也选完了毕业设计的导师之后,便盘算起实习了。这之前还跟我的前端小伙伴一直在做码猿博客,虽然过程有点崎岖,但是结果还是ok的,学到了很多:SpringBoot、Spring Security、SpringJPA等等,还有一个CSDN的爬虫哈哈~
第二部分
2017.06.23 - 2017.07.11 面试了几个公司印象比较深的就是触电传媒和后面去实习的浩瀚汇通。
- 触电传媒是广东电视台的,也是我人生第一次走进广东电视台办公区哈哈,感觉就是不一样,虽然最后没有面试成功,当时面试的是爬虫工程师(主要的缺陷还是在爬虫通用性和解决反爬的问题层面)
- 浩瀚汇通这一个,当时面的是研发实习生,面试的时候也说明白了实际上是做ETL的事情(后来跑偏了…),当时面试问的几个SQL也是有点懵圈的,毕竟当时自己的在MySQL的应用不多,太依赖NoSQL了。后来想着没戏了,结果本来要和老大面试的,但是老大要开会就没面了(老大来头不小,这里就不多说了哈哈)。然后就这样稀里糊涂的进了公司开始了三个月的实习生活(后来才知道我是唯一一个实习生,也是因为HR的努力工作早早的就发了通知给我通知我上班,不然晚发几个小时,估计就凉了)
2017.07.12 - 2017.10.09 第一份实习(满打满算三个月)
- 这段时间接触的东西很多,先讲讲大致过程:
- Hive的应用了解,上来虽然看了Hive语句的语法也应用了,但是主要是在于Hive UDF、UDTF的开发上了,写了两个jar包清洗数据。也算头一回在2个礼拜之内弄懂Hadoop生态圈的一个组件(除了Hive的分桶和分区,其他都弄通了)
- 后来的一段时间开始写起了Scala,起因是因为Spark对于Scala的处理效率比Java来的更快,毕竟数据量大了。后来将我mentor的java代码转成了scala,打包成Jar包也跑在了服务器上。
- 再后来公司经历过一场数据迁移后,我的mentor叫我去编译Spark和Hadoop。Spark主要是解决CDH后来的版本SparkSQL对于Hive的不支持(最后怎么编译都编不过去,后来在一个国外论坛找到了相似的情况,但是没解决方案);Hadoop的话主要是加入了Snappy和另外一个压缩算法,主要是处理HDFS文件占用的问题。
- 最后一段也是有点不开心的,后面来了一个搞爬虫的,我的mentor便让我去跟他一起搞爬虫(然而是Go爬虫并不是Python爬虫,原地哭泣…)。这段时间分开说:
- 这段Go爬虫的时间主要不爽的是在于,Go这玩意真的在windows上搞很有毒,经常奇奇葩葩的报错,写代码60%的时间在解决一些不是代码逻辑的问题。最重要的还是带我搞爬虫的问他怎么解决这些Go的问题,每次都说我用的是mac,你用的是windows,你自己百度百度…(无话可说)
- 也是因为之前的一些奇葩的问题,搞得我对Go这门语言是非常的痛恨,虽然说是一门服务器语言,执行速度真的快,但是在这过程也是正由于带我弄爬虫的影响了我对Go语言的看法。
- 在最后弄爬虫平台前端页面的时候也开始接触了Vue和Element-ui,于似乎我后面所有带页面的全栈项目几乎都是用的Element-ui。
- 在9月底最后一个工作就是弄支付宝爬虫,然而奇葩的是直到我现在都不明白当时他用Go写的支付宝爬虫为啥要把图片转成Base64然后再要我去复制Base64还原成图片去登陆。最后的那一个礼拜我遍开始用Python做起了我目前主要在维护的Alipay-Spider项目了(参见我的Github;起初不是用Scrapy的,后来改的)
- 学到的东西还是很多的:
- Hive的应用、Scala和Go爬虫的入门(虽然现在忘得差不多了)、Spark和Hadoop的编译方式
- 公司其实时不时就有一个技术分享会什么的,其实虽然听的很懵圈,但是学到不少东西:HBase的基本架构、Azkaban的应用场景讲解、一些机器学习的分享会等等
- 其实还了解到一些业务层面的上的东西,例如风控;这样东西现在开始吸引我学习的兴趣了,感觉很神奇,打开了一道知识的大门(哈哈)
2017.10.13 - 2017.10.14 参加了DoraHacks的hackthon。其实也是机缘巧合,正好我在上一家公司最后写的爬虫和题目撞上了,是关于支付宝用户画像,正好需要爬虫。当时的支付宝还是比较友善的,用户名密码登陆是完全ojbk的,当时也做了小的分析,熬了一整个通宵把爬虫完善了,把初步分析的代码完善了,也算是对接上了前端页面,也是人生头一回敲一个通宵的代码(完全没停过,不知道喝了几罐的雪碧可乐…)。虽然第二天早上演示的时候出现了Bug,但是总的来讲还是完成了任务;虽然没获奖什么的哈哈,但是头一回参加这种头脑风暴还是长进了不少。在此也希望有小伙伴对爬虫或者其他和技术有关的跟我组队参加2018年的Dorahacks吧~。
第三部分
2017.10.26 这一天是我入职明动软件的第一天,职位是数据分析师。上班的地点离我家就一个地铁站的距离,20分钟就能到公司。
2017.10.26 - 2017.12.31 第二份实习:
- 这段时间刚进公司,任务还是有点重的,但是比较对上胃口,能学到东西:
- 爬虫:爬取了广州市政府公开数据,将原先同事需要跑一天多的爬虫,用Scrapy优化到只要1/4天的时间,而且还加入的页面监控和接口查询状态【Scrapy + Flask + Vue-ElementUI】
- 数据分析:在接触环保大数据之后开始的第一个任务就是预测污染排放量(一个时间序列的预测)。在做的过程中,发现了sklearn在这一方面的缺陷,在运用中发现statsmodels这个统计学的库在ARMA这个模型的代码是有问题的,后来改了下源码就好了;但是再后来发现pyflux这个库,简直神器,有兴趣的真的要去好好看看这个专门做时间序列分析的库,github点赞超过了1000。
- 后面还是就是数据可视化了…苦苦的在matplotlib上挣扎了好一段时间,后来发现pyecharts这个神器,也很荣幸帮助作者改了几个bug,也提了几个issue,虽然还没能力提PR但是,也看着pyecharts越来越好用。
2017.11 - 2017.12 这段时间还有在忙的就是毕业设计的初步框架、广商图书馆的数据分析(Flask + pyecharts + Vue-ElementUI)以及广商图书馆和广州图书馆的爬虫.
总结一下
2017年经历了很多也学习到了很多,毕竟也是人生的一个转折点,希望2018能更加的好。
罗列下我的技术栈吧:
- 爬虫(Scrapy是一个重点)
- 数据分析(pandas、sklearn、pyflux、pyecharts)
- Hadoop和Spark
- Hive(UDF、UDTF和Hive语句)
- MySQL的进一步学习
- Vue的基础(主要是从Element-UI入手的,慢慢了解模块化的意义)
- 自己的Github的开源项目(主要还是在支付宝爬虫【死磕到底】)
最后希望自己在2018年能够学习到更多知识,不断完善好自己的开源项目获得更多的stars~
我的github地址: Github for sunhailin-Leo