前言
作为一个90后,我可能有比较深的感悟,大学毕业做了自己的本专业的工作,记得刚出来找工作的时候,基本都是有公司要,就去上班
刚从事这份工作的时候,什么都不会,学到的东西在实际工作中用的不多,很多东西都是靠百度,这样的日子过了一年半,那会感觉目前的薪资已经满足不了我的现状。
后来在自己的努力学习提升下,面试了几家公司,拿到了很多offer,薪资也翻倍了。
对于架构师,是我现在追求的目标,我也有我对架构师的见解,不知道跟大家是否一样。
架构师是一个团队的灵魂,也是团队的核心人物。
首先,必须具有丰富的软件设计与开发经验。这有助于理解并解释所进行的设计是如何映射到实现中去。
其次,要具有领导能力与团队协作技能。有着高超的技术,能在关键的时候做出有效的决定。
第三,是具有很强的沟通能力。架构师需要与各路人马经常打交道,客户、市场人员、开发人员、测试人员、项目经理、网络管理员、数据库工程师等等,而且在很多角色之间还要起沟通者的作用。
架构师一般都是工作8年左右的老司机,大致的历程是这样的:程序员→高级程序员→架构师,每一个成长的过程都需要自己多学习、摸索。
技术更新很快,自己也要不断的充电,一个人的资源有限,并且又是刚入行不久,所以就要有有效的资源跟途径去学习,这样才能缩短成为架构师所需要的时间。
虽然现在“996”俨然成为互联网行业的常态,也不符合劳动法的规定,但是大家都默默的接受了这样的工作时间的安排,为什么呢?
原因有以下几点:
1.其劳动强度完全由领导决定,项目什么时间上交,必须在截止时间之前上交;
2.人力成本是整个项目中最大的成本因素,互联网行业不像其他行业,它最主要的成本就是人力成本;
3.目前从业人员也多,你不想做,后面有的是人做。
那么,我们如何来摆脱现状呢,那就是要技术够硬,脱离底层程序员的行列,让自己去掌控自己的未来!
没有人能随随便便成功,但是成功的路上肯定有捷径,只要你肯付出相应的时间成本、金钱成本,给你带来的受益肯定超乎你的想象。自己的未来掌握在自己手中,相信自己,我可以的!
在我不断的学习成长的过程中,被面过各种问题,在面试完了我都会把面过的问题收集整理出来,相对面试的技术点,归纳出来,希望给即将面试和跳槽的有所启发今早准备
一丶BAT相关面试点:
1.Binder通信原理和机制
2.多进程通信
3.组件化.插件化的区别以及如何选择
4.插件化的理解
5.热修复原理
6.对于AMS的认识
7.AOP 与OOP 有什么区别, AOP 的原理
8.QQ换肤原理以及大致思想
9.Android虚拟机
10.图片压缩的具体步骤和应用
11.反编译和加密如何进行
12.序列化和反序列化的原理
13.Handler的原理和认识
二丶算法合集笔记
1.Hash
2.最小生成树算法
3.最短路径算法
4.KMP算法
5.查找算法
6.排序算法
三丶线程.多线程.线程池和面试中的小问题
1.开启线程的方式
2.run()
和start()
方法区别
3.如何控制某个方法允许并发访问线程的个数?
4.在 Java 中 wait 和 seelp 方法的不同
5.导致线程阻塞的原因
6.线程如何关闭的思路?
7.如何同步以及保证线程安全
8.减少APK包的大小
9.关于内存泄漏,内存抖动的优化以及解决方案
四丶小知识的清单
1.面向对象和面向对象的区别
2.Java和C++的区别
3.面向对象的特征
4.接口和抽象类的区别
五丶数据结构和设计模式
1.设计模式六大原则简要概述
2.设计模式的分类
3.HashMap 实现原理
六丶java核心小知识清单
1 .线程中 sleep 和 wait 区别
2.Thread 中的 start()和 run()的区别
3.Java 中重载和重写的区别
4.Tcp /IP三次握手,四次挥手
七丶性能优化
1.图片的三级缓存中,图片加载到内存中,如果内存快爆了,会发生什么?怎么处理?
2.WebView 的性能优化 ?
3.加载一张高清图片应该占用多少内存
4.内存泄露和内存溢出的区别 ?AS 有什么工具可以检测内存泄露
5.Bitmap 如何处理大图,如何预防 OOM?
6.性能优化,怎么保证应用启动不卡顿? 黑白屏怎么处理?
(顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找)
https://github.com/xiangjiana/Android-MS
希望2020年 你我都有所收获
(VX:mm14525201314)
来源:51CTO
作者:Android丶VG
链接:https://blog.51cto.com/14541311/2473296