小公司的苦恼,最近好郁闷, 年前到现在投了七份简历,面试完后就怀疑人生了

前言:

年前到最近投了几份简历,面试完怀疑人生了。感觉自己就是那种一年工作经验用三年的人。技术的一些新特性没有使用,实现原理也没有去深究。

三本毕业,正式工作快三年了。一直在目前这家小公司,Android团队约等于我一人。说好听点是独当一面。其实是闭门造车,能跑就行。一直待在一个舒适的环境里(没有技术要求,只要实现功能不出 bug ),温水煮青蛙。感觉再待下去会变成废人一个。

去年下半年本来拿到了一家体量还不错的公司 offer,Android团队大很多,去的话肯定能学到很多东西,技术成长肯定很快。但是最后被老板加薪挽留了。现在很后悔,觉得我目前这个阶段还是“技术”更重要一些。小公司的局限性太大了,或者说目前公司实在是太小了。

目前打算好好准备面试,待六月三年之期满时,希望能找到一份好工作。

想着希望有类似经历的小伙伴能给我一些慰藉,没想到还真有靠谱的网友给我发了邮件,帮我对Android现状和发展以及必会的知识点做出了详细的分析,真是要非常感谢他,现抱着感恩的心将它分享出来,希望能帮到有需要的人。

互联网现状:

如今的互联网,延续了2018年的态势。虽然前些年,每到年底的时候大环境都不好,然而来年照样春暖花开。但是2018下半年的颓势,在2019年春天并未得到缓解,所以现在的互联网环境是真的不好了。

首先各大公司争相优化员工,小公司我就不提了,咱就只说大公司。先有阿里、百度、京东、网易、美团和滴滴,再有外企甲骨文和IBM。前些年各大公司优化员工的时候都藏着掖着,而且用词很含蓄,都说是正常的人员流动和业务调整。今年就不同了,没必要藏着掖着了,而且有些公司由于补偿到位,还裁出了一片好评。

最开始大家以为只是移动端环境不好,到现在才发现,是整个互联网环境都不好了。所以,谁也别笑谁,大环境不好,谁也跑不了。

百度前段时间公开财报,2019 Q1亏损3.27亿,这是百度自2005年8月5日登陆纳斯达克后,第一次出现季度亏损,百度股价大跌。与此同时,腾讯和今日头条的广告收入也受到影响。究其原因,是很多广告主缩减了广告投放预算。缩减广告投放预算的背后,还是因为缺钱。互联网就是这么奇妙,一环扣一环,大环境不好,公司和员工同样难受。

市场的需求:

这个想必是很多人比较关心的一个问题,说Android开发市场饱和了,找工作难找,所以在纠结到底要不要学习,要不要考虑换行。

不得不说,前几年的移动端的开发很火,为什么?因为一个行业刚兴起,智能手机发展的快速让人震惊,加上4G时代的时候,短视频的兴起比如抖音,快手,火山等等,再加上创业的越来越多,基本上创业都需要做一个自己公司的App,以上种种原因综合下来导致移动开发人才特别紧缺,再加上5G时代的到来,移动端对市场的需求还是很大的,可以说随便能鼓捣出来点东西都很容易找到工作。

而现在明显降温了,对人才的要求也越来越苛刻,现在搞一个公众号就可以创业融资了,App 不再是刚需了,所以跟前几年比需求确实少了很多。

但是跟同类其他编程行业比移动开发依然需求蛮大的,这种现象只能说明以前是「疯狂」,而现在才是「正常」,所以那些说 Android 开发饱和了,我并不认同,因为我看到各大招聘网站 Android 跟 iOS 开发的职位跟其他岗位的招聘比并没有少,所以所谓的「饱和」只是一种从「疯狂」到「正常」的错觉而已。

目前现在是需求量趋于平衡,对初中级水平的开发人员需求量变少,但是对高级以上的需求市场还是很匮乏,特别是对于特定细分领域的Android开发人员也是很匮乏,对Android开发的综合能力,特别是基础原理性要求也越来越高,比如很多公司要求会对对某项要求会优先考虑,比如现在流行的Kotlin,混合开发,跨平台开发,NDK,高级图像处理等,市场上很火爆的直播和小视频对音视频这个细分领域的高级人才需求量也是比较大的,以至于AI、AR、VR等技术也需要通过终端展示给用户,所以说移动端开发未来还是会有所作为。

为什么感觉不好找工作:

这个也是很多人的疑问,说投了很多简历,都没有回应,总感觉今年工作特别难找。这个在这里解释下原因:

1.不知道我的读者们关注经济不,我老板是做投资出身的,所以跟着他我也了解了不少知识。从15年下半年开始,中国经济特别差,企业亏损严重,股票大跌,投资人手上也没多少现金了,所以看到16年下半年很多公司倒闭,老板跑路,我亲身经历的一好哥们公司倒闭了,还拖欠了两个月工资没发。这还只是上海这边,相对影响已经算小了,如果你仔细观察,应该能发现小城市经济更差,我是亲身体验过的,16年回家,家里很多煤矿倒闭,房地产不经济,钢铁厂亏损严重,村里很多人都没有工作,我是亲眼见证的。

2.因为移动开发前几年的火爆,导致很多新兴的培训机构大举招聘移动开发,所以这几年你会发现培训 iOS、Android 开发的人特别多,我自己是能感受到的,收到的一些简历比以前培训的多多了。而且相对来说培训iOS的人要更多些,我自己也是培训出来的,我这里并不是看不起培训的。只是人越来越多,质量也是越来越差,现在很多培训的都是伪造简历来求职,所以你会发现应届生、没工作经验的人找工作较难些,因为没工作经验的初级太多了,而现在企业也优先选择有工作经验的,现在再也不像几年前招不到人需要自己培养了,现在可选的人一大把,我为什么要先招进来再培养你呢?

到底该如何选择:

所以综上,真的别杞人忧天,沉下心来学好基础,提升技能比什么都重要,如果你找不到工作,只能说你学的还不够好,或者能力还不达标,并不能说明没有这个岗位的招聘,以个人能力的不行来否定整个市场的需求是弱者的行为!

还有很多人纠结到底是选择 Android、iOS、web前端还是后端?虽然我是做Android开发的,但是我必须客观的说,没有什么区别,谁也不知道以后 Android、iOS 谁把谁打败了,谁也不知道web前端还是后端以后更吃香,我能给到你的建议是看你的兴趣所在,别纠结太多,学好了哪一个都能找到一份好的工作,先跟着你内心的感觉学好、学精一门,而且编程语言都是互通的,以后你都会有机会接触其他领域,目前第一重要的是全身心的投入你现在想要从事的职业上,吃饱饭比什么都重要!

所以这个时候,出色的开发能力能让你的开发职业生涯更加顺风顺水。

面试准备

1、给自己定位
首先要给自己定位,自己现在是一个什么阶段,是初级岗,中高级,高级,还是专家级。一般情况下刚参加工作一年左右时初级,两年左右努力提升自己的话是中级,三到五年高级甚至专家级。前提是不停的钻研。

2、知识的梳理
因为把自己定位为高级开发工程师,俗话说:面试修航母,工作螺丝钉。面试考虑各个方面,对于安卓来说,主要有以下几个方面来准备:Java基础,Android基础,Java并发,Java虚拟机,Android源码(包括framework和开源的项目),数据结构和算法。当然基础知识梳理完毕之后,还要去阅读一些面试经,看看最新各个厂商问的问题。其实以上这些东西准备完,基础好的话,一个月左右,基础不好的话至少要3个月吧。

俗话说不打无准备之仗,只有准备好了才能在面试过程中取得好的结果。

3、简历的准备

简历是一个敲门砖,HR每天会有很多简历收到。简历如何让人眼前一亮,并且能一眼抓住关键信息:个人基本信息(姓名,电话,邮箱,毕业院校等),工作经历,技能点,一些亮点(比如六级证书,获奖等)。简历要简洁,层次分明。写完简历要在招聘网站上更新一下自己的简历。

技能储备

  • 毕业一到两年:

Java 基础知识方面需要掌握的有:面向对象的理解、基本类型与引用类型、构造方法、常用类(内部类、匿名类、抽象类)、三大特性(封装、继承、多态)、重写与重载、接口与接口的实现等等。这些问题面试官会在掌握的层面上去问你,主要是考察你的基础知识是否扎实,毕竟安卓是用 Java 编写的。

Android 方面需要掌握的有:四大组件的简单使用、activity 的生命周期、fragment 的绑定、activity 和 fragment 之间的传值、 recyclerview 实现列表九宫格瀑布流式布局的实现、viewHolder 的复用问题、数据存储的几种方式的特点、常用框架 Glide、Retrofit、eventBus、butterknife 的使用。

  • 毕业两到三年:

Java 基础知识需要掌握的有:对于两到三年的安卓程序员来说,Java 不仅仅是停留在一些基础知识的使用上了,而是在用的同时要有自己的理解。比如说封装,面试官不会问你什么是封装,而是会问你封装过公司的哪些代码/功能,你是如何封装的。这个时候考察的就是你是会写代码还是只会模仿代码,如果没有自己在项目中封装过代码的话可以去阅读下网上一些优秀的框架的源码学习一下别人是怎么封装的。

当然不仅仅是封装还有很多知识点都要按照这个要求去掌握,比如:Java 泛型、反射、集合框架、接口与抽象类、设计模式等等。掌握这些除了看视频学习还可以阅读一些优秀的源码。不懂的地方再查一查博客,理解透了后一定要在自己项目上运用,这样学习才能印象深刻面试官问到也能有列可举。

Android 方面需要掌握的有:APP 启动原理,想要详细了解的可以看我的另一篇 chat (APP 启动原理及启动优化详解 )、图片压缩与性能优化、自定义 view 、事件分发流程、屏幕适配、组件化和插件化、Glide 的缓存与复用、OkHttp 的责任链与连接池、序列化与反序列化、分析一个你最熟练框架的源码等等。可以看到,对于两到三年的程序员来说不仅掌握的知识点更多,而且还需要对原理有一定的了解。

Android学习路线与知识点:

  • 架构师筑基必备技能

目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO

架构师筑基必备技能

  • 设计思想解读开源框架

随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。

所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。

知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计

设计思想解读开源框架

  • 360°全方位性能调优

在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。

另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。

1、设计思想与代码质量优化

2、程序性能优化

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据储存优化
  • APK大小优化

3、开发效率优化

  • 分布式版本控制系统Git
  • 自动化构建系统Gradle

4、项目实战

  • 启动速度
  • 流畅度
  • 抖音在APK包大小资源优化的实践
  • 优酷响应式布局技术全解析
  • 网络优化
  • 手机淘宝双十一性能优化项目揭秘
  • 高德APP全链路源码依赖分析
  • 彻底干掉OOM的实战经验分享
  • 微信Android终端内存优化实践

360°全方位性能调优

  • Android框架体系架构

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析

Android框架体系架构

  • NDK模块开发(音视频系列)

NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。

在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。

本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

NDK模块开发

  • Flutter学习进阶

2019 年无疑是 Flutter 技术如火如荼发展的一年。

每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。

本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

Flutter学习

  • 微信小程序开发

微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

微信小程序开发

  • Android相关源码解读
    只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

Android相关源码解读

Android相关源码解读部分内容

以上就是网友给我最好建议了,帮我在后来的面试带来了很大的帮助,现在讲它分享出来,希望能够帮到更多小伙伴。注意:(文中资料分享由于篇幅原因,无法展示全部,有需要完整版的可以点此处免费领取。)

喜欢的朋友可以一键三连支持下本文,祝各位前程似锦,offer不断!!!

猜你喜欢

转载自blog.csdn.net/Android578/article/details/114182282
今日推荐