近日一好友去阿里面试,面试失败了,分享了一个他最不擅长的算法面试题。题目是这样的。
题目:给定一个二叉搜索树(BST),找到树中第 K 小的节点。
出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家
参考答案:
- 考察点
- 基础数据结构的理解和编码能力
- 递归使用
不要轻易转行
转行有两种我认为是正常的,一种是行业消失或者没落了,个人无法施展才华。另一种是兴趣不在本行,因此转一个自己感兴趣的。而现在大部分转行纯属是为了跟风,为了那点钱,而忽略了长期的发展。
转行相当于倒退回到原点,重新出发,形象点来说,就是换了个不同的砖头接着搬砖而已(高技术含量的除外)。因此我们更应该去追求质变,而不是平行或者倒退,一次倒退可以承受,多次倒退就很难在35岁后进入上升期。
而且这个行业既没有消失也没有没落,只要目前存在的都有它存在的前景。一个行业不是一朝一夕就会垮掉的,Android全球第一的终端占有量,Android生态也不会轻易让Android倒下。至少在我们这代人的有生之年是看不到Android消亡的。
如何提高竞争力
1.选择一个细分领域
Android现在细分的领域非常多,前面说到的有应用开发、逆向安全、音视频、车联网、物联网、手机开发、SDK开发和智能电视盒子开发等等,在这些领域中选择一个并不断深入。
2.做减法,尽量专精一门技术
现在的社会,技术分工越来越细,越细就意味着大部分企业(小作坊除外)需要专精的人才(最好是精通一门通多门)。你会发现身边脱颖而出的技术人大多都是靠一门技术,却很少看到会一堆技术却都不精通的冒出来。好比在武侠的世界,高手对决都在同一个时间段拿出看家武学,如果看家武学都不精,分分钟被虐,省下的武学也无需拿出来献丑了。联想到现实版本就是去大公司面试Android,结果Android技术了解不深,被各种虐,剩下的前端技术、后端技术、python什么的,面试官也没兴趣了解了。
所以并不是你会的技术越多越好,一定要做好减法,先专精一门,然后再去学别的技术。
3.说说最近Android火热的技术
Kotlin,是Google推荐的官方开发语言,与Java互通,可相互转换,简洁安全等,是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由JetBrains 设计开发并开源。Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
Flutter,Flutter是Google在2018年2月27日,在2018世界移动大会上发布的用以帮助开发者在ios和Android两个平台开发高质量原生应用的全新移动UI框架。由于是是Google发布的,就前景来看,还是值得肯定的。
这两个技术都建议大家来学习,但不要指望它们会给你增加什么太大竞争力,李四1周能学会,张三同样也能。
总结
**其实上面说了这么多,钱是永远赚不完的,在这个知识付费的时代,知识技能提升才是是根本!我作为一名8年的高级工程师,知识技能已经学习的差不多。**在看这篇文章的可能有刚刚入门,刚刚开始工作,或者大佬级人物。
像刚刚开始学Android开发小白想要快速提升自己,最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以这里分享一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。
这么重要的事情说三遍啦!点赞+点赞+点赞 免费分享所有学习秘籍!
直达领取链接:点击链接免费领取【Android高级架构师】
【Android高级架构师系统学习资料】高级架构师进阶必备——设计思想解读开源框架
第一章、热修复设计
第二章、插件化框架设计
第三章、组件化框架设计
第四章、图片加载框架
第五章、网络访问框架设计
第六章、RXJava 响应式编程框架设计
第七章、IOC 架构设计
第八章、Android 架构组件 Jetpack
第六章、RXJava 响应式编程框架设计
第七章、IOC 架构设计
第八章、Android 架构组件 Jetpack