热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

毕业一年多,做Android开发现在我很迷茫,连一个20k工作都找不到......

毕业一年多,做Android开发现在我很迷茫,连一个20k工作都找不到-我是19年从安徽的一所普通一本毕业的,由于喜欢Android开发,毕业后第一份是Andro

我是19年从安徽的一所普通一本毕业的,由于喜欢Android开发,毕业后第一份是Android开发的工作,月薪6K,虽没有人带但公司给我自学的机会。

后来随着自己经验慢慢的提升,来上海顺利的拿到了月薪13K的offer,但由于我做的项目突然停掉,我离开了这家公司。

再次找工作的时候我非常谨慎,边找边学习,争取进入自己理想的公司。后来发现真的好难,很多公司给出的薪资都是和原来差不多的。当一家公司决定给月薪18k我就答应了。

入职发现这家公司的代码和项目管理都不规范,我不想在这么垃圾的代码上去完善功能,而且担心什么都学不到甚至都有可能把自己的编码习惯带的不规范,我想辞职后学习边找工作,但是如果辞职之后去不了想去的公司,再找这样的公司估计也都没有机会了。

当初毕业的时候,给自己定下了两个目标

1.三年内月薪过20k;

2.三年内至少参与一款千万用户的APP。

现在两个目标都显得遥不可及。我希望自己有一天能写出优秀的代码,因为喜欢Android,所以我觉得工作非常开心,可是对于我来说想找一家有大牛团队的公司或者进大厂就那么难吗?


我知道我们很多程序员都有一个大厂梦,但是对于如何进大公司、如何针对大公司准备面试就显得手足无措了。

我自己做Android开发已经是第6个年头了,毕业后两年,有幸加入到字节跳动这个大家庭。在字节的4年,见证了太多人的来来去去,印象很深一个同事,跳槽阿里薪资直接double,但也看到很多人镀着“大厂”的金四处碰壁,终究还是倒在了技术上!

我自己或许也算是个成功的例子,在4年的时间里从1-1做到了2-2,当然,这背后的“辛酸泪”就留到日后再说。下面我就根据自己一些见解谈谈如何针对大厂进行面试准备。

大厂简历筛选标准

以下是我总结的一些大厂常见的筛选标准,不特指某个公司,估计大部分大家也都知道,仅供参考。

1)当前就职企业。当前就职企业是互联网大厂基本简历关就过了,除非有其他特别大的问题。

2)毕业学校(本科更重要)和专业,如果是知名学校,例如211、985之类的,会有加分,如果是非本科会扣分,如果是非计算机专业会扣分。

3)期望薪水,这点可能很多人没想到,但是这个确实是一个很重要的筛选条件,因为这个很直接的反映了你当前的水平。主要参考下限,如果下限低于某个值基本不会考虑。

4)年纪和工作年限,很残酷的事实,相信大家也应该都听过“程序员35岁送外卖开滴滴”。

5)专业技能,如果有阅读过某些源码、深入研究过某个框架之类的会加分,使用“精通”字眼的扣分哈哈。

6)项目,方向一致会有加分。

7)其他,技术博客有不错的技术文章加分,github 有参与一些知名开源项目加分,有机构培训经历扣分,跳槽过于频繁扣分,特别是跳的都是小公司。

综上,对于大部分人来说,特别是对于年轻人,大厂经验还是非常重要的,所以如果有进入大厂的机会,千万要抓住,不要太在意当前的薪资,大厂能够给予你的成长机会、后续的涨薪这些都是小厂没法比的。

一些大厂的面试流程

阿里:通常3~4面技术+Hr面,每一轮结束可以问内推人或者通过面试邮件底部的电话转人工查询面试结果,一般流程比较长,大多要一个月以上,无法并行面多个部门。

腾讯:通常3-5轮技术+Hr面,每一轮结束可以问招聘Hr面试结果,一般流程比较长,每一面之间可能要隔一周,全部流程大多要一个月以上,无法并行面多个部门。

美团:通常3~4面技术(3.1开始多一轮交叉面)+Hr面,通过的话一般3个工作日内约下一次面试时间,一般半个月就可以走完流程,可以并行面多个部门,美团是少有可以并行面的公司,但是一旦第一个部门定薪定级后,后续的其他部门即使通过了也会按照第一个的定薪定级。

快手:通常3~4面技术+Hr面,通过的话一般2个工作日内约下一次面试时间,经常面完几个小时内就收到电话约下一次面试,一般半个月就可以走完流程,无法并行面多个部门。

字节:通常3~4面技术+Hr面,面试效率比较高,可能一天内就面完技术面,整个面试流程比较快,但是发口头offer比较慢,无法并行面多个部门。拼多多:通常3面技术+Hr面,现场面可以一天面完,并且可以周日面,一般半个月就可以走完流程,无法并行面多个部门。

面试要注意的一些点

1)尽量保持自信,自信心的建立源于你自己的武器库里有多少武器,所以归根到底还是要多学习、多积累。

2)先拿小公司练手,面试通常会面的越多发挥的越好。

3)视频面试提前调试好设备,不要像我一样临时发现没法打开视频就尴尬了。

4)大厂谈薪时通常会看你是否有其他大厂的offer,如果你有其他大厂的offer会有利于谈一个不错的待遇,所以可以多面几家。

面试前应该准备哪些内容

Android面试需要准备内容的大致划分:

  • Java基础
  • Android基础
  • Android源码分析
  • Android进阶技能
  • 新技术研究
  • 开源项目源码分析

Java基础

1.Java集合类List,Map,Set相关的实现原理。
2.Java线程池的实现原理和使用
3.Java线程同步相关的知识点。
4.Java锁机制,以及死锁产生的原因以及解决方案。
5.Java反射、泛型、注解相关的知识点以及使用。
6.Java类加载机制。
7.Java虚拟机的资源回收机制以及算法。

以上基本上是面试Android岗位的常见考点,所以我们必须重视对Java语言的学习和理解,即便你在平时工作中使用kotlin较多,也不能忽视对Java基础知识的巩固和学习。

Android基础

Android基础是任何Android面试都需要考核的内容。不过这也是按级别而定,一般高级开发工程师的面试,Android基础只是一笔带过。

1.Handler机制以及相关知识。
2.Activity和Fragment生命周期。
3.Android四大组件相关的知识。
4.Android进程间通信的方式。
5.Context相关的知识。
6.Activity的启动模式。
7.Android动画相关知识。
8.Android自定义组件相关知识。
9.Android事件分发机制以及触摸事件冲突的处理。
10.ANR产生的原因以及避免ANR的方式。
11.内存泄漏产生的原因以及定位解决的方式。
12.OOM产生的原因以及解决的方式。
13.Android页面渲染机制以及优化方式。
14.LinearLayout、FrameLayout、RelativeLayout和ConstraintLayout的理解和性能对比。
15.Android各版本的特性。
16.Android屏幕适配的技巧。
17.MVC,MVP,MVVM的理解与实践。
18.Android的主题、样式、属性相关的内容。
19.JNI相关的知识。

Android源码分析

Android源码分析,算是要求较高的考核。不过这在大厂面试中非常普遍,因为很多大厂对Android源码的分析和理解都有相当高的要求。

1.Android系统的启动流程分析。
2.APP启动的流程分析。
3.Activity的启动流程分析。
4.Zygote进程的创建和启动流程分析。
5.Window窗口创建和加载的流程分析。
6.Dalvik和ART的理解。
7.RecyclerView的源码分析。

Android进阶技能

要想成为一名高级开发工程师,性能优化以及架构设计永远都是绕不开的话题。做技术如果只是广而不深的话,是不可能成为一名高级开发工程师的。只有不断提升自己的不可替代性,才能提高自己的价值。

1.App稳定性优化。(crash、性能以及体验等)
2.App启动速度优化。
3.App内存优化。
4.App界面绘制优化。
5.App瘦身优化。
6.App安全优化。
7.网络请求优化。
8.WebView使用优化。
9.RecyclerView的缓存刷新优化。
10.AOP技术的原理和实践。
11.gradle脚本持续集成技术。
12.App进程保活。

新技术研究

1.Android组件化。
2.Android插件化。
3.Android热更新技术。
4.Android JetPack框架技术。
5.Kotlin开发技术。
6.Android Hook技术。
7.AOP技术。
8.依赖注入技术IoC。
9.跨平台开发技术:ReactNative、Flutter等。

上面的内容,其实很多已经算不上新技术了,如果你现在还不了解的话,那么你最好花点时间了解一下,否则我只能说你是真的out了。

开源项目源码分析

  • OkHttp
  • Retrofit
  • Glide
  • LeakCanary
  • RxJava
  • ARouter
  • EventBus
  • ButterKnife
  • GreenDao
  • Dagger2

以上所有的知识点都有相对应的面试题,有需要的朋友可以点击我免费获取。

如果说以前移动 App是处于蛮荒时代,那么现在是改革开放,精益求精的时代,市场依然很大,android发展也趋于稳定迭代,很多前人留下的资料都可以去学习,很多坑很多人躺过抢,现在就像捡西瓜一样,把它捡起来就是你的。


推荐阅读
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • 我收到这个错误.我怎么能在我的情况下解决这个问题?Bitmapcannotberesolvedtoatype发生错误的行publicvoidonPageStart ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了10分钟了解Android的事件分发相关的知识,希望对你有一定的参考价值。什么是事件分发?大家 ... [详细]
  • Flutter入门——Flutter功能概览
    IT之家12月5日消息:今天谷歌官方宣布Flutter的1.0版本正式发布!Flutter是Google打造的UI工具包,帮助你通过一套代码同时在iOS和Android上构建媲美原 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • 今日份分享:Flutter自定义之旋转木马
    今日份分享:Flutter自定义之旋转木马-先上图,带你回到童年时光:效果分析子布局按照圆形顺序放置且平分角度子布局旋转、支持手势滑动旋转、快速滑动抬手继续旋转、自动旋转支持X轴旋 ... [详细]
  • 1简介本文结合数字信号处理课程和Matlab程序设计课程的相关知识,给出了基于Matlab的音乐播放器的总体设计方案,介绍了播放器主要模块的功能,设计与实现方法.我们将该设 ... [详细]
  • Android获取app应用程序大小的方法
    Android获取app应用程序大小的方法-Android对这种方法进行了封装,我们没有权限去调用这个方法,所以我们只能通过AIDL,然后利用Java的反射机制去调用系统级的方法。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • SmartRefreshLayout自定义头部刷新和底部加载
    1.添加依赖implementation‘com.scwang.smartrefresh:SmartRefreshLayout:1.0.3’implementation‘com.s ... [详细]
  • 开发笔记:图像识别基于主成分分析算法实现人脸二维码识别
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了图像识别基于主成分分析算法实现人脸二维码识别相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用platformchannels,Flutter可以与本机平台互操作(即读取电池电量).在Android上,这需要调用Java方法.我想使用第三方JavaSDK(适用于AW ... [详细]
author-avatar
雨水-_-打湿我的脸_950
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有