硬实力:技术岗毕业生应该具备的技术树

以下内容整理自一位阿里 Android 开发工程师的分享,内容是 毕业生应该具备的技术树 ,PART1 为较全面的技术树整理,不同方向的人在这里面各有侧重;PART2 为 Android 开发岗应该具备的技术树 ,希望对你有帮助。

PART1 较全面的技术树

1.c/c++ 推荐阅读书籍:

  • 《c++ primer》
  • 《c primer plus》
  • 《effective c++》
  • 《more effective c++》`

2.Java 推荐阅读书籍:

  • 《Java核心技术》卷 |、||
  • 《深入理解Java虚拟机》

3.数据结构与算法:

  • 链表(指针题)
  • 各种排序算法以及复杂度分析
  • hash算法的原理
  • map的原理(hashmap,treemap)
  • 二叉树、满二叉树、完全二叉树、最小生成树、Dijkstra(单源最短路径)、平衡二叉树、红黑树实现

4.计算机网络:

  • TCP:
    《TCP/IP详解 卷一》(网络、通信、分布式系统、服务器)
  • HTTP:
    《图解HTTP》(web开发)、《UNIX网络编程》

5.五层协议的体系结构

  • DNS的解析过程
  • ping的过程
  • TCP三次握手、四次挥手
  • TCP如何实现可靠传输(UDP)
  • TCP拥塞控制
  • TCP流量控制
  • socket的使用
  • HTTP、HTTPS、HTTP2

6.操作系统:

  • 线程
  • 进程
  • 线程同步
  • 进程间通信
  • 缓存算法(LRU算法)
  • 死锁问题
  • 文件系统

7.数据库:

  • 1NF、2NF、3NF
  • sql语法与命令
  • 索引的原理与作用
  • 事务:原子性、一致性、隔离性、持久性
  • 超键、候选键、主键、外键

8.编译原理:

  • 《龙书》《虎书》《鲸书》
  • 解释器、编译器、虚拟机原理
  • 编译过程:词法分析、语法分析、语义分析

9.设计模式:

  • 《Head First 设计模式》

10.Linux:

  • 《Linux从入门到精通》
  • 《深入理解 Linux内核》
  • 《UNIX环境高级编程》

PART2 Android 技术树:

1.基本功:

  • Java、数据库、操作系统、Android SDK

2.基础:

  • Activity、Fragment生命周期
  • 单线程模型中 Message、Handler、MessageQueue、Looper 间的关系
  • UI 的绘制和更新
  • AsyncTask 使用场景、底层实现、优缺点
  • Activity 任务栈 和 LaunchMode
  • Android 多线程间通信
  • 高效可用的线程池
  • 网络异步加载的原理
  • Android 事件传递

3.进阶:

  • Android 系统架构
  • Dalvik 虚拟机
  • Android 内存回收机制
  • 如何解决OOM
  • 图像缓存策略
  • Android 中的设计模式

4.实战:

  • 如何做好稳定性
  • 如何提升App性能
  • 如何设计应用启动框架
  • 如何做到业务解耦

5.流行开源库:

  • Retrofit
  • leakcanary
  • RxJava
  • picasso/fresco
  • EventBus/RxBus
  • OkHttp / Volley

6.进阶书:

  • 《深入理解Android内核设计思想》
  • 《Android 开发艺术探索》
  • 《老罗的android之路》

7.关注:

  • 标杆公司的动态:facebook、google等

补充加密部分的知识点:

  • RSA、MD5、BASE64、对称加密、非对称加密、Https加密等

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 164,710评论 24 698
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 40,458评论 11 349
  • 01 落幕 点燃一根事后烟,我仰躺在一片凌乱的雪白床单上,口鼻中吐出一串又一串的烟圈。看着她纤细的胳膊向后环拢,...
    周田心阅读 268评论 0 0