开头
先说一下我大概的情况吧。渣本毕业,工作已经有快两年了,从高中就开始玩小破站。无论是学习还是日常放松都是在b站。大学主学的软件技术专业,所以,进大学校门那一刻起,去上海bilibili工作就在心里埋下了种子。在学校,专业学的挺好的,自己写过一些小项目,也参与过一些协会开发的项目。
两年前刚毕业时候,b站也有校招,我当然满怀期待的参加了,但是并没有被录用。当时,挺失落的吧,当时也有想过放弃:我一个渣渣二本毕业,凭什么去上海,进b站啊。所以就找了个普普通通的公司开始了我的程序员生涯。
到今年年初的时候,疫情爆发了,各行业都收到的很大的影响,也包括我任职的小公司。在家隔离了一个多月,在家玩手机的看到了b站的社招,人闲下来的时候还真就会有各种想法会冒出来,我突然就想到,要不再试一次吧,反正工作也没了,在家闲着也是闲着,就着手准备bilibili的面试。刷面试题,看别人的面经,总结了一下校招时的失败经验…准备了挺久的,得有20多天吧,把学习所学的和工作两年的所学以及网友的经验,系统的梳理、巩固。世间所有的付出终是有回报的,努力的耕耘,肯定是有收获的。我成功的入职了bilibili,也是要感谢网友们提供的宝贵经验,所以整理了一下,把我的面经分享出来给大家。
在这个知识膨胀的时代,每天面对铺面而来的海量信息,我们的学习也不再是按照以往传统的学习模式了,更重要的是我们要进行科学学习,什么是学习?学会学习才是根本,如何学会学习,那就要讲求方法了,我们经常看到一些学霸等传奇人物,听他们的经历,学他们的方法,路有千千万,但是你想过没有,也许适合你走的只有一条而已,所以,别人的不一定适合你,适合自己的才是最好的,但是学习效果不佳的原因却大致有以下几个:
- 没有正向反馈(学习到什么程度自己心里没数)
- 学习方法不对(用错误的方式去学习)
- 知识不成体系(学的知识很杂,东一块西一块)
- 有效时间不多(感觉每有多余的时间用在学习上)
关于“没有正向反馈”
这应该很好理解,这里的没有正向反馈指的就是我们在学习的过程中并不能看到感受到因学习而真正给我们带来有什么不一样的东西,哪怕是一种感觉,又或者是物质上的东西,总之,这是能够让我从内心觉得“学习真好”,可是我们往往却很少遇到。我们总是希望付出了就能立马看到收获的,一旦达不到自己的期望,我们也就失去了激情,甚至开始抱怨,自然学习效率就会下降,所以学习中,我们一定要对正向反馈加以重视,这里说几点关于我学习中用到的正向反馈吧!
-
我学习编程有写博客的习惯,当我刚写完一篇博客的时候会有点小小成就感,随后我会发给我认识的一些前辈,很多都给予了肯定,哪怕是鼓励我我也高兴!
-
有的时候我也会给一些大牛投稿,一旦被采用,那种心情是相当的说不出口的(太高兴了)
-
在专业上我会帮别人解答一些问题或者分享一些知识等
以上都是我的一些正向反馈,这些都能激励我更有动力的去学习,学习,你也有该有自己的正向反馈!
关于“学习方法不对”
这几天特别中意一句话“当你找到了适合自己的努力方式,你就如同万千牛人一样走在了光彩夺目掌声阵阵的人生征途上”,这句话就强调了方法是多么的重要,有的时候我们很项目那些学霸,觉得是自己智商不够,其实不然,最重要的是那些所谓的学霸都有自己的一套学习方法。我们可以扪心自问,我们大多数人每天都在学习,但是又有多少人真正思考过自己学习方法的问题呢?我只是机械式的去学习而已,并没有想着找寻一套属于自己的方法体系,这就是我们与学霸的差别吧!
前几天在读美国作家本尼迪克特•凯里的《如何学习》一书,读完很受启发,其中书中提到了一种学习方法叫做“分散式学习”,讲述的是利用间隔效应去学习,通俗来说就是我们把大块的学习任务拆分开来去学,书中提到,你花两个小时一口气把一个知识点给学了没有分两天每天一小时的学习效果好,这就是方法
关于学习方法的探讨很多很多,只是我们貌似从来没有在意过,另外,切记只有适合自己的才是最好的,成功的人有很多,但是他们的路你不一定走得了,去寻找属于自己的学习方法论吧!
关于“知识不成体系”
不知道大家在学习的过程中有没有做笔记的习惯,我一直觉得做笔记是非常重要的,记得在高中的时候,我会给每一科都准备一个笔记本,上面写满了笔记,但是后来愈发的觉得笔记很乱,经常是一个知识点在很多页记着,这就导致了很多问题。我们在回过头来说“知识不成体系”,确实如此,我们每天都在学习,每天都接收了大量的信息,而且这些信息又是零散的,不成体系的,如果我们再不加以记录,很容易遗忘,而且会感觉乱糟糟的,一点也不清晰明了,该怎么办?很简单,将我们学到的知识都记录下来,而且是分门别类的记录下来,将知识体系化,做一个属于自己的体系化知识库,这样我们不仅会对我们学习的知识有个全面的了解,而且非常方便我们的复习巩固等!还可以让我们看到哪地方是自己的弱势,方便弥补!这里以我自己举个例子,方便大家理解!
我在学习Android的时候会将自己学到知识都分类别的进行整理,将自己学到的知识体系化,例如我会分成如下类别:
- 性能优化
- 多线程
- 源码分析
- 数据结构和算法
- 设计模式
- 框架设计
- NDK
- APP开发
- 微信小程序
- Flutter和kotlin
再比如我在学习中制作的一个学习思路脑图,由于内容过多,这里就放上一个大概的思路脑图分享给大家 高清图可以看文末
有了以上的分类记录,我就对Android的一个大概的知识体系有个了解,以后相关学习都会放在对应的目录下,平常看看,也知道自己哪方面不熟悉,随时复习巩固,做到对学到的知识心中有数,体系化知识构建不可缺少!
总结
首先是感觉自己的基础还是不够吧,大厂好像都喜欢问这些底层原理。
另外一部分原因在于资料也还没有看完,一面时凭借那份资料考前突击恶补个几天居然也能轻松应对(在这里还是要感谢那份资料,真的牛),于是自我感觉良好,资料就没有怎么深究下去了。
之前的准备只涉及了Java、Android、计网、数据结构与算法这些方面,面对面试官对其他基础课程的考察显得捉襟见肘。
下一步还是要查漏补缺,进行针对性复习。
最后的最后,那套资料这次一定要全部看完,是真的太全面了,各个知识点都涵盖了,几乎我面试遇到的所有问题的知识点这里面都有!在这里也免费分享给大家,希望大家不要犯和我一样的错误呀!!!一定要看完!
获取方式:点击我的GitHub
E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)