2020年-年度总结

开篇

2020年是一个灾难年,上半年的疫情让我们少上了大概3个月的课,好在放假之前我就已经清楚的认识到了《数据结构》的重要性,边玩边学的情况下完成了大半,相比于我的同学们我算是混的极差了,人家在做大数据的项目时候我混了,做了简单的爬虫,这确实让我在秋招找工作的时候吃到了苦头。

比如:要说爬虫,我觉得多进程的爬虫加上引入的IP代理池可以有效的避免IP被封的情况,试问万**老师你知道这个原理?实在不想吐槽一些老师,真的能chui(说)不会还要说自己很会的样子。

其实这个爬虫程序在找工作中是没有用的,爬虫工程师需要会的技能是scrapy+反爬,或者是Coroutine(协程)+反爬。我估计大多数学校都不会教这些东西,即使框架+协程你理解的很不错,但是实际情况下,稍微复杂一点的网站反爬比如图片验证就把大部分人打回去,只要是刚学完这类技术的而且在没有相关经验的人带的情况下,基本上过几天就打回原形,在这种情况下,大数据何尝不是一个稍微低一点的选择呢?可能有的人会说,上面的很简单我早就会了,那在想想你只是解决了爬数据的过程,真正情况下你需要部署分布式的集群(docker即可),这里还是离不开大数据,你不会大数据你的集群不可能搞得出来,而且工作中,即使不是大数据开发工程师linux+mysql数据库基本上每个人都会,在大厂也就潜移默化的变成了必会。你不会你凭什么进大厂?

学了很久的数据结构也没让我在秋招中占多少便宜,自以为比别人理解的很深入的二叉树中的深度优先和广度优先、堆、哈希表、快排、归并这些常见数据结构在真正刷题的时候,是不太一样的,比如一个稍微变了一下的二分搜索很有可能刚学完,刷第二个类似题的时候就不会了,我反思了一下原因在于我自身刷题的方向不太对,能吃透最好,吃不透刷几遍也能理解的差不多。这里我推荐一个微信公众号 labuladong 出了一本书,专门刷题的。其实只要把基本的知识过一遍,不需要刷书上太多的题就可以开始刷力扣和《剑指offer》了。一定要分清楚 工业和学校的要求是不一样的!
在这里插入图片描述
推荐刷这本书,我已经买好了准备春招(如果没有转正成功)的时候好好刷一下。

实习

再说一下实习经历吧,第一家的公司是老师推荐去的,虽然工资比较低,但至少不是995,6点就可以下班了,比起现在的大厂基本上晚上下班8点9点要幸福的多。当然大厂的好处也是有的,比如团建,大厂真心福利好,经常团建,像我们的团建就去吃过火锅、日料。顺便吐槽一下北京的火锅真不地道,还是咱重庆的火锅最好吃。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
看到上面的海鲜,别说大厂真舍得给我们这些打工人花钱。哈哈哈。

转回正题,我的第一份工作,其实就是更早的进入大数据这个行业,即使我并不会。人有时候需要自信点的,不会可以慢慢学,特别是实习的时候,谁都是这么过来的,实习期你表现的好就越有可能发展的更好,你表现的一般经常出错,大家都不会说你的。在第一家的时候,我每天9点上班6点下班,上班后就开始在B站看Spark,这里必须要强调一下Spark,我在某度的面试经历上面看到,大部分的工作,什么算法工程师、机器学习工程师、深度学习工程师,基本上都问了你会大数据吗?你知道spark吗?大部分人都是不会,在我看来,这个技术即使不精,会应该不难吧?其实就是写点SQL就可以了,我现在的工作中基本上都是写SQL,能写SQL坚决不编程。在暑假的时候,我看了很久的Spark,刚开始看的时候,一脸懵逼,而且还没有记笔记,这忘的很快,所以说学习新东西的时候一定要自己学会总结,当后面需要查看遗忘的知识的时候,看看自己的笔记一下子就能想起来,看别人的笔记是不行的,那些知识是别人的自己不动脑就永远学不会。我之前的博客就有写看视频中积累的一些知识。可以看到worker的源码分析,即使不是特别深入,但是你去看了过后和没看就是两回事,这里面有很多的编程思想和数据结构还有技巧等等,都需要自己动脑子看、想、思考,并转换为自己的语言。

在这里插入图片描述
也许有人会反问我,你一个破双非本科看什么源码?你看得懂吗?你自己什么样子心里没点数吗? ---- 咸鱼都能翻身,为啥你不能?为啥我不能? 只要愿意花功夫就可以看懂,其实对与上面的文章不就是封装了一下worker,然后执行了一些executor初始化的配置吗?里面的编程就是并发编程,用了一些面对对象的思想,工厂类这些,提取commond命令的参数等等。要说难,就是不愿意花时间看的。再说面试,我深刻的记得给面试官讲wordcount程序的时候spark底层执行了那些操作,job如何触发,stage如何划分,dag有向无环图如何构造的,讲完人家一面直接给过了,二面的面试啥都没有就说你一面表现的很好,就讲讲工作内容。这你能说看源码没用吗?本来学历就不高,你拿什么和别人竞争?只有另辟蹊径,不一样的地方!

再说第二份实习的工作,某度一面的面试官特别友好,现在他就是我们大团队的二三面面试官。面试的时候问我,spark的一些相关问题了,并善加引导,顺理成章的讲自己专门准备总结出来的一些spark的源码细节讲出来,比如resultStage和shufflemapStage这两个stage是怎么划分的,为什么会有高可用spark,spark的容错机制,driver出错如何恢复等等,我故意讲出来底层的细节,让面试官很吃惊,再加上专门花了点时间学习hive,顺带讲了hive的优化。在将mapreduce的时候,引出问题,为什么现在用spark不用mapreduce,为什么要用hive等等这些问题,不能说我说的都是对的,但是我说的至少是有理由的。面试了大约1个半小时,过程中我不断反问面试官,我可以继续讲吗?我还可以讲的多一些,我还知道别的东西。可能是我面试中说的话太多,最后编程的时候就出的比较简单,一个是回文数判断、一个是快排,刚好下午复习的时候操作了一遍快排,不到5分钟就写完了,估计是太顺利,面试了一个半小时,10分钟后hr打电话来约二面。

某度二面,面试官是我现在的导师,面试的时候很不凑巧,刚好抓到我不会的问题,问我时序模型,我当时就懵了,这都多久的事情了,我咋想的起来。可是面试的时候如果回答不上来,被刷的概率就大了,那怎么办肯定只能硬着头皮讲了
面:关系型数据库和Hive有啥区别?
我:关系型数据库一般存的数据量比较小,而hive可以处理大量的数据,默认底层是走的mapreduce。
面:hiveSQL底层触发的MapReduce的过程?
我:简单介绍了一下mapreduce shuffle的过程。
面:我看你的简历写了时序模型,什么是时序模型?
我:这个。。。。我真的记不到了。我就记得参加比赛的时候用过
面:为啥要用这个模型?
我:因为参加的比赛数据只有时间和值,所有就用了时序模型。
面:那你讲讲时序模型是干什么的?
答:好像是做预测。。。。
面:看你简历上面写到你有很多的参赛经验,请讲一下你觉得比较有意义的一次
我:今年的国赛,什么一大堆。。。。
最后聊的太多了,说着说着就讲到大数据那一套去了,幸好面试官没有打断我,让我一直说一直说。。。,面试官中途说了我一次,我刚才的问题是什么?(后面我才知道,她是让我说的,有什么就说出来,不要怕错)。后面我上班了我问她,我当时答的怎么样?为啥要让我过了呢?我回答的好像不是同一个问题。面:面试的时候就是要把自己的见解讲出来,让别人看看你的理解深度和储备的知识,只要你说的有理就可以一直说,即使错了都没什么。(太善解人意了,感激~~)
差点忘了,最后的编程题,出了是全排列,我当时就懵了,我记得我以前刷过这个题的,是一个什么算法来着就可以做到,当时忘了不知道怎么弄,没办法硬着头皮上了,就写递归,然后搞了一个打印一次就交换两者的位置,然后不知道怎么就写出来了。当时出了一个小插曲,就是面试官突然掉线,吓得我马上给hr打电话,我说我的编程题都做出来,面试官掉了,这怎么办?幸好hr告诉我,面试过了。哈哈哈哈

在这里插入图片描述

后来,就顺利的来到北京,成功的进入了百度大厦–几公里外的小百度

其实呢,进入大厂,你会发现周围的人超级优秀,我们部门基本上没有本科生,都是985的研究生,就我这个重庆某高校的混子哈哈哈哈哈。

工作总结

最后在聊一下工作,来到这里我学会了很多东西,比如
Linux下:
如何看机器的负载 top
从日志中提取需要的信息 grep "abc" 文件名 --color
后台运行进程 nohup python3 wordcount.py &
设置定时任务 crontab -l
mysql数据插入脚本 mysql -uroot -p123456 database -e "insert into table value('$val1',$val2)"
Python:
编写邮件任务 例如:QQ
并发编程multiprocessing+concurrent(多进程+多线程)
技巧:functools.wrapsg(装饰器) gzip(读tar包内容)
Java:
maven (java jar依赖包)
concurrent(并发编程)
spark:
SQL 调优
参考内容如下:(不解释)
spark.sql.shuffle.partitions 800
spark.executor.memory 40g
spark.executor.cores 5
spark.executor.instances 80
spark.memoryfraction 0.8
spark.default.parallelism 800
spark.sql.shuffle.partitions 800
spark.memory.storageFraction 0.2
spark.speculation true
spark.shuffle.io.maxRetries 5
spark.hadoop.outputCommitCoordination.enabled true

还有很多东西是不能透露的,哈哈哈。。。

大厂经历有什么好处?

大厂确实可以学到很多学校和小公司学不到的东西,当然前提是要进得去,这里可以秀一下,之前投某厂的时候,基本上没有消息,当我把在某度实习的经历加进简历后,第二天就约面试。
在这里插入图片描述
所以,如果要工作一定要先进大厂,有了大厂认证即使技术不强,学校不是985和211,但是你至少不会卡在简历筛选这一环节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北漂的阿狸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值