共计 5931 个字符,预计需要花费 15 分钟才能阅读完成。
毕业后已经回了一次高中学校,被高中老师拉着给高一的学弟学妹做了一次演讲。今年过年的时候,一个小学弟顺着过后留下的联系方式加了我好友,问了我一些问题。
我感觉这些问题很有价值,或者对正处于大学或者行将走进 / 走出大学的敌人有所启发,这里就把我的一些倡议分享进去。
前言
在当今社会,大学仿佛曾经成为了一个必经之路,不论好歹,基本上都会读个大学再进社会。
很多人认为,高中才是学习真本事,学干货的时候,高考完就轻松了,想怎么玩就怎么玩,很多小孩儿在激励孩子读书的时候也是这样说的。然而,这样的观点是谬误的,大学也是一个十分要害的期间,你在学校的体现会间接关联当前的待业。
那么在大学里,咱们应该做哪些筹备能力在当前的工作中怀才不遇呢?
作为一个过来人,明天我以本身经验为前事不忘; 后事之师,给大家解说一下作为一个 Android 开发的本科学生在大学里须要留神的一些事件,和一些须要避开的坑。
前车之轨——从渣硕到大厂
笔者是渣硕出身进入社会的。没错,大四的时候我抉择了考研,然而并没有进入本人的指标院校,过后父亲在工地受了伤,弟弟在上学,家里又在修房子。家里的条件并不容许我二战,我只能承受调剂去了一所双非院校。
往年是我进入社会的第二年,也是我在阿里公司的第二年。是的,我毕业后进入了大厂,当初就分享一下 我是如何在齐全的劣势下凭借本人的致力进入大厂的教训。
隔靴搔痒
计算机专业学习外围就三门课:算法与数据结构,看《算法导论》。操作系统,看 Tanenbaum 的书,这是最最外围的课程。计算机体系结构,看 David Patterson 和 John Hennessy 合写的书。
这里要揭示大家,咱们尤其要器重 System 常识,只有根底扎实能力在突飞猛进的 IT 行业立足。
另外,在这里也送学弟学妹们一本帮忙我拿到 BAT 等一线大厂 offer 的算法笔记,是一位阿里大神写的,对于算法单薄或者须要进步的同学都非常受用
,算法肯定是计算机学习的重中之重。(须要的能够去我的 GitHub)
再细一点,我认为须要重点把握学习的就是:2- 3 门编程语言(1- 2 动态编译型 + 1-2 动静 / 脚本语言)算法与数据结构 System(OS、计算机组成、memory、cache 等等)工程开发能力(git、linux、shell、环境搭建、部署等)计算机专业的外围课简直都是围绕着构建上述这些能力来的,比方:计算机学科导论和 C 语言汇编、操作系统、C++、数据结构、离散数学、数值剖析和计算机组成原理计算机编译原理和数据库计算机网络与平安和软件工程还有高数、线性代数、离散数学、网络原理、网页设计、多媒体技术、汇编语言、面向对象的设计语言、Java 编程、ASP、SQL 等总的来说是 先学习 C 语言和 C++。
教材有:C programming language-K&R、C traps and pitfalls、Algorithms in C 和 Expert C Programming 学习数据结构。清华大学严蔚敏《数据结构》,目前还未找到经典的国外教材学习算法。算法导论和具体数学及其利用计算机组成原理。Computer Organization and Design The Hardware-3rd-David Patterson 计算机系统。CSAPP 操作系统。鸟叔的私房菜和计算机网络当然了。
以上都是根底,不论是当前想搞 Java 还是 Android 等挪动开发都须要把握这些。
上面针对我本人的业余,也就是 Android 开发畛域来进行具体的讲解吧。
Android 开发进阶学习
我感觉本人是一个比拟侥幸的人,在我的学习和工作中,我遇到了很多帮忙我的贵人,受恩于人,我也乐于分享和帮忙别人,上面我来说一下我这一路走来帮忙过很多的资源。
大佬的学习路线
我这里有一个已经带过我的阿里大佬前辈整顿的对标阿里 P7 的 Android 高级架构师的一套大神学习笔记。
大家能够去看一下,如果有需要,能够间接点击此处获取:
耗时 298 天,8 大模块、3382 页 66 万字,Android 开发外围常识笔记!
这份学习笔记绝不是在网上那种打包下载的便宜材料,而是大佬他本人须要学到某个方向常识的时候,须要看了,去网上挨个找的,最初汇总而成。
这个笔记分为几个模块,内容并不算多,但贵在精。
大家能够在这里获取,对于学习计算机的同学帮忙十分大,且非常零碎:这是大佬公众号的原文地址
局部材料展现:
前面的内容大家有须要的能够本人去大佬的原博客去看,我这里就不多说了。
我本人的学习积攒
我在大学期间,买了很多书,泡了很长时间的图书馆,也看了很多技术书,然而,我起初发现,其实看书并不在于多,而在于经典和品质。
你把全副业余相干的书看完了也没有啃透一两本经典书籍来的高效。
读经典的书是站在伟人的肩膀上,看得远、悟得深,所以我在这里列出的书,尽量放弃少,精简。
这是我大学已经看过的一些书:
在这里,我也只举荐我感觉比拟好的书, 宁缺毋滥。
- 计算机思维:
- CS50,哈佛公开课《计算机科学导论》, B 站就有资源,自取~
C 语言:
(不要问我为什么要列举 C 语言,因为挪动开发搞音视频开发要用到,而且,这还是一个十分吃香的方向,不信的话,可看一下大佬的这两个文:
- Android 开发解围:视频制作平台崛起,音视频开发赛道寻求新冲破
- 互联网寒冬之下,Android 开发的港湾:音视频进阶学习
- 《C 和指针》
- 《高质量 C 编程指南》
- 《C 专家编程》和《C 陷阱与缺点》有工夫能够看
- 《C 程序设计语言》
晋升:
- 算法:
- 《大话数据结构》
- 《算法(第四版)》
- 《算法导论》,个别人可能都会被劝退。。。不过能够看下学习 C ++
- 学习 C ++:
- 《C++ primer》
- 《STL 源码解析》
- 《Effective C++》
- 《深度摸索 C ++ 对象模型》
- 看完下面👆四本,C++ 算入门了,接下来靠你本人去进阶~
- 好好学下网络:
- 《计算机网络 - 自顶向下》
- 《TCP/IP 详解 - 卷一》
操作系统:
- 《古代操作系统》
- 学堂在线网站 – 清华操作系统课程
- 如果你想本人试着写写 mini 操作系统,我强烈推荐《操作系统真象还原》,就算不写,这里也能够学到好多其它操作系统书少有的常识
- 计算机系统
- 《深刻了解计算机系统》
- 《程序员自我涵养》– 别被名字蛊惑了,这本书真正该叫《编译链接与运行》,真是好书
- 《设计数据密集型利用》
Java 系:
- 《Java 核心技术》
- 《effective java》
- 《深刻了解 Java 虚拟机》
- 《Java 并发编程实战》
上面是对于我本人筹备面试的教训
(一)简历篇
简历的优化是十分重要的,特地是像我这样的双非院校,在校期间也没什么拿得出手的大我的项目,诚实说,简历下面十分难堪,很可能连面试告诉电话都收不到。
上面和大家剖析一下,能一眼让 HR 留神到的简历到底长什么样。
我有一个多年大厂招人教训的敌人跟我说:大厂招人,个别不会不要求应聘者全能,然而 必须在某一项有专精技术。
所以,这里倡议大家简历的第一页上半页,或者前三行,务必表明本人的技术栈。这里稍加留神:形容时,能够针对本人的技术能力进行一些吹的操作,然而切记 不可瞎吹,也不可吹过头 ,不然,你的 面试问题难度 也会晋升,同时,你的 人品 也会蒙受质疑。
上面的这是一个比拟好的简历模板:
不好意思,放错了图,上面的才是↓↓↓↓↓
1. 在写简历的时候要有侧重点,面试官的工夫是很缓和的,没空看废话,对你的流水账日记不感兴趣(再强调一遍,第一页上半页,或者前三行,务必表明本人的技术栈)。
2. 个人经历的形容尽量往工作和岗位相干的方向聚拢,少提不相干的内容烦扰他们提炼重点信息。
3. 我的项目短板的,通知大家一个技巧,尽量筛选我的项目中本人相熟的畛域以及我的项目的亮点,要突出本人的奉献,是增加了哪些性能,还是优化了那些性能指数,最初再说说受害怎么样,例如这个性能被多少人应用,例如性能晋升了多少倍。(最好依照岗位的要求,向上靠一靠)
4. 切记不要“优化”适度,审慎应用“精通”两字,拿不准的相对不要写在简历上,不然你就是在给本人挖坑。(面试会依据你简历上写得技术从浅再到深刻原理的发问。)
这里给大家举荐一篇文章,大家能够作为参考。
我的项目教训不会说?字节跳动小姐姐手把手教你 ” 套路 ” 面试官!
(二)修炼篇
搞 Android 这行的,大家都是靠技术吃饭的,个别都是,你是什么程度就开什么价。所以 本身的技术修炼也是最重要的一部分,哪怕你的简历掩饰的再好,一到面试,是骡子是马,一遛就知。
20 年校招季,我加入的大大小小的面试不低于 40 家。尽管我的次要指标是字节跳动,然而我一贯认为,把鸡蛋放在一个篮子里的人都是傻瓜(咳,次要是不自信,怕失手后满载而归)。所以其余的面试也没放过(大公司没拿到几个,小公司很多都拒掉了)。
上面的剖析实用于所有公司。
1. 公司的人才需求简析
依据我丰盛的面试教训,市场上的公司个别能够分成两种:大公司和小公司。小公司重视实际能力,大公司看中综合能力。
小公司面试会比拟集中安卓开发这一块,关注的点次要是
- 有没有相似的我的项目教训
- 有没有遇到过他们差不多的问题
所以,面试筹备中,除了根本的一些知识点还须要关注一些安卓开发理论中常常遇到的一些问题,诸如图片缓存,常见的开源框架等等。
大公司面试比拟在意你的综合能力还有基础知识,上面我会列举一下比拟重要的知识点
2. 进入大厂须要把握哪些常识?
进小厂的难度不大,这里就不再详说了,这里次要说一下进大厂须要把握的知识点(大厂都能进了,小厂不在话下)。
- 数据结构与算法
- java
- 安卓
- 计算机网络
- 操作系统
- ……
(以上按重要水平排序)
下面的几大模块的内容都十分重要,我看网上有大佬针对这些模块进行了演绎整顿,这里就不在赘言了。
指路:从满载而归到大厂 offer 收割机:渣硕网瘾 Android 开发逆袭高级架构师之路
这里次要是依据我本人的面试经验还有在牛客网等刷的字节跳动、美团等厂高频面试题整理出来的大厂高频面试题合集(含参考答案和解析)。
大家能够看看本人能不能全副完满的答复进去吧。如果能够,那你的基础知识把握的应该就很棒了,能够退出咱们的技术交换群(找我内推。)
3. 重要知识点整顿(高频面试真题)
图片相干
图片库比照
LRUCache 原理
图片加载原理
实现图片库
Glide 源码解析
Glide 缓存
……
网络和平安机制
网络框架比照和源码剖析
本人去设计网络申请框架
网络申请缓存解决,pokhttp 如何解决网络缓存
从网络加载一个 M 10M 的图片,须要留神的事项
TCP 的 3 次握手和四次挥手
TCP 与 PUDP 的区别、利用
……数据库
Sqlite 降级,减少字段的语句
数据库框架比照和源码剖析
数据库的优化
数据库数据迁徙问题
Sqlite 常见异样
……- ` 插件化、模块化、组
件化、热修复、增量更新、Gradle`
对热修复和插件化的了解
插件化原理剖析
…… 架构和设计模式
MVC、MVP、MVVM 原理和区别
你所晓得的设计模式有哪些
我的项目中罕用的设计模式
手写生产者 / / 消费者模式
观察者模式
适配器模式,装璜者模式,外观模式的异同
用到的一些开源框架,介绍一个看过源码的,外部
实现过程
RxJava 相干
Binder 机制及底层实现
……内容过多,鉴于文章的长度,这里就不一一展现了,须要的能够点击下方蓝色字体获取完整版
以上的问题都是精心整顿过的,每个问题都是一篇长文,大家肯定要好好理分明,因为面试官都喜爱深挖和诘问,大家在某一块知识点必须有深入研究,可能答复面试官 4 到 5 个追加问题(加油)。
点击此处【我的 GitHub】,获取文中材料完整版
4. 数据结构和算法(重中之重)
一般来说,最初出场的都是压轴角色。
数据结构和算法十分重要!尤其是在字节跳动公司(美团,百度,爱奇艺也是一样的)。这个知识点是考验一个程序员技术水平最快的办法,尤其是对咱们这些毕业不久的学生。
家喻户晓,国内互联网面试的流程逐步在向国外聚拢,像字节跳动、BAT 等大厂,手撕算法题
曾经成为了必选动作。
数据结构与算法这个知识点的 筹备须要的工夫比拟长,要尽早筹备 ,多刷一些 leetcode 或是其余相似的题。 我集体的算法能力一开始也很差 ,然而通过我本人安顿的算法专项训练, 成果还是非常显著的。上面我把本人的复习方法分享给大家。
上面是数据结构和算法的面试外围知识点,大家能够参考学习,一一击破。
- 栈与队列:先进先出、后进先出
- 线性链表
- 查找:程序查找、二分查找
- 排序:替换类、插入类、抉择类
- 树、二叉树、图:深度优先(DFS)、广度优先(BFS)
- 递归
- 分治
- 滑窗
- 三大牛逼算法:回溯、贪婪、动静布局(DP)
在刷题之前我倡议你看一些书:
《漫画算法之旅》
如果你之前没有任何算法根底,这边书很适宜你,能够补充数据结构和算法的基础知识,像什么是工夫复杂度空间复杂度、查找、排序等。
如果你有了肯定根底了,倡议你间接跳到最初面的算法实战局部。
《剑指 offer》
十分经典的一本书,学算法的人必刷。然而要留神了,这边书外面的题目是用 C++ 写的,如果你是 Java 开发人员可能会有点影响。然而要记住学习算法最要害的还是解题思路和办法,用什么语言实现是其次的,如果你工夫比拟多我是倡议你用 Java 语言再实现一遍。
《labuladong 的算法小抄》
十分举荐!这是一本很新的书,写书前作者在 Github 开源了一个我的项目,次要解说 LeetCode 解题套路,Start 总数排名前 40。在书的结尾解说了学习算法的根本思维和套路,倡议看这边书的同时再配合 leetcode 刷题,疗效十分棒!
《算法导论》
要是不举荐这本书是不是显得我有点 low 了,这是一本科班出身的同学必看必学的经典大部头。国外大佬写的,国内翻译的经典之作,尽管是经典然而不倡议刚入门算法的同学看,因为看了这本书你可能要放弃算法了,比拟难看懂。倡议有了肯定根底再动手这边书。
如果你感觉看书比拟干燥,能够举荐你看一些极客工夫的专栏,不过是免费,然而品质十分高。
《数据结构与算法之美》
这个专栏是文字 + 语音,作者是王争,前 Google 工程师。他采纳最适宜工程师的学习形式,不拘泥于某一特定编程语言,从理论开发场景登程,由浅入深教你学习数据结构与算法的办法,帮你搞懂基本概念和外围实践,深刻了解算法精华,帮你晋升应用数据结构和算法思维解决问题的能力。
《算法面试通关 40 讲》
这个专栏是视频,作者是覃超,前 Facebook 工程师。作者会用白板带你一步一步解题,层层深刻一环扣一环,每一题还会用多种解题办法。我根本看完了,播种颇多。
leetcode、书和极客专栏能够并行,学练联合,不要光看不练。
5.B 站收费学习视频
- Android 开发骆驼主页
- 大厂 Android 面试专题(记得给我点赞哦~)
最初
我把本人这段时间整顿的 Android 最重要最热门的学习方向材料放在了我的 GitHub,外面还有不同方向的自学编程路线、面试题汇合 / 面经、及系列技术文章等。
资源继续更新中,欢送大家一起学习和探讨。