前言
很多人发了类似求指点的私信,其实真没什么好指点的。我也不是大神,我只是一个踩着大神走过的路向前走的普通人而已,指点什么的真谈不上,有兴趣的大家多去关注一些BAT,美团等等大公司的技术大牛写的文章比听别人几句鸡汤来的实在多了。
一次简单的面试
以下虽然确实是个人的一些的亲身经历,但是否适合你就不一定了,大家参考下就好。
昨天帮同事(同事不做Android,有事不在,所以就我一个人面试了)刚面试了一个应聘Android开发的。没见到人的时候简历上写的是05年毕业,本科(实际是专科,后文详说),智客培训了J2EE,05~10年什么都没写,10~15年做Android工资10~15k,期望15~20k。
初看简历把我吓一跳10年开始做Android开发,比我时间长多了,这是非常资深的元老了。心想我作为技术面不能给公司丢脸,不能让他把我面试了。我花了几个小时准备了一大堆材料。我反编译了他做过的所有能在网上下载到到项目,目的就是看下到底用了什么技术,虽然有轻微混淆,但其实大致到一些东西还是能看到的。
另外就是51job的简历给了薪水期望,这个还是很赞的,可以不通过面试就直观感受到是不是符合企业期望的面试者, 他对薪水的要求也让我很奇怪,写的是现在10-15K求15-20K,如果极端的看就是15k变15k了,折中看就是求5k,5k怎么说呢,薪水都轻松过万了,是我的话我一般不会为了5k就换公司,我可能会考虑再过段时间,实力再提高点求10k或者10k以上,尽量减少频繁跳槽。
然后就是面试了。等到他来的时候,穿着很不精神,不是脏,样子也不精神,感觉有点像第一次面试,而且两手空空什么都没拿。给我第一印象特别差。是我的话我面试的时候至少手里也要拿份简历吧?通常我会背一个包。当然包做样子的成分更多。主要是曾经我跟我一个朋友出去见一个客户,结果我什么都没拿,出来后我朋友说:“你怎么什么都不拿啊?我们是来工作的,你什么都不拿你是领导来视察吗?”我觉得他说的挺对的,拿个包某种程度上,也是对对方的一种尊重。
然后我先给他做了一份面试题,面试的题是很旧的题,不合适Android开发做,但是毕竟是同事给的,我必须给他做,做的时候我特意对他说了,这题是同事给的,我是帮他面的,不需要太在意题目,会多少写多少。
半个小时后我过去了。
我:05年毕业的是吧?
他:是
我:05-10年这几年你干什么了?简历怎么没写?
他:啥也没干,就是做些自己喜欢的东西。
我:简历上你写的毕业学校是北京科技职业学院是专科吧?你怎么写的本科?
他:是本科
我:几本?(面试的时候我带了电脑,怕弄错,我还去教育部官网查过了是专科)
他:是本科,很差的学校%&……×……×&&×……(说了一堆乱七八糟的)
到这里我基本断定了就是个骗子(心里暗骂草泥马的,看你简历Android研发5年,为了给公司撑门面,吓的老子花了几个小时准备材料,我面试你我准备的东西比你还多,你他妈的居然耍老子),学历什么的不重要,关键还是看实力。
偏技术类第一个问题,Android网络请求的时候一般都会用到什么类或者框架。其实我就是问HttpClient被废弃,之后应该用什么类,然后说下okhttp或者Volley等等常用的网络框架,然后稍微说下异步请求时候应该注意什么就可以了。结果这哥们倒好说用apache mime框架,我说的这些全部不知道。
好吧,后面我也不想继续问了,这水平在上海给他开3k我都嫌多。
然后随意又问了几个简单的问题,就结束了。结束后需要再填一个表格,主要就是一些基本信息,因为我是帮同事面试的,这个表格我觉得还是很重要的,可以让同事直观看到他的一些信息,以免以为我故意不给过。结果这哥们倒好,写了姓名年龄后,其他的期望薪水,现有薪水,竞争协议,联系方式等等一大堆,一个都不写,还问我不写可以吗?我说你自己看着办吧,最好写详细点,我是帮同事免的,他能直接了解你的就是这些表格了。
整个过程大致就是这样。不知道大家是什么感觉,给我的感觉是首先不管技术怎么样,光态度上这个人就非常不端正,我面试他我准备的材料比他还充足。这种状态怎么通过面试?
二、关于学历
刚毕业的时候没有工作经验,大家都会以学历来判断一个人,这时候低学历确实很吃亏,但是仔细想下这真的很不公平吗?他的高学历是不是一种他能力的证明?如果是工作了几年了,通常学历就没那么重要,在你的简历上写上你做的大型项目,遇到过什么技术难题,是怎么解决的,这比学历重要多了。我所知道的,要求本科以上的企业并不多,很多都是象征性的写个大专(总不可能让人家写高中吧),也有些会写不限。
当然如果最后是,学历也没有,工作经验也没有,实力也没有,然后又想找个好工作,我就只能说天上不会掉馅儿饼的,就算真的掉了,没有实力的话,能接的住吗? 是中专,20岁你应该是没有任何工作经验的,这时候既没实力,也没经验。
应该是工作非常难找的,那也没办法,这时候掉馅儿饼给你,你也不一定能接住。没有好工作,普通工作,或者稍差的工作还是有的。另外,如果你对未来充满斗志,希望自己和自己的家庭能过的更好,个人建议千万不要养成撒谎,造假的坏习惯。除非你准备一辈子靠撒谎造假混日子。
三、这里给我个人的两点面试建议:
1、绝对不要撒谎,吹牛。 尤其是技术面试。别把技术面试官当傻逼,如果技术面试官真的是傻逼,那我劝你这种公司还是不要去了。
2、穿的精神点,不一定非得西装领带,但是人一定要看着很精神。
四、对于那些想要提升实力的,该怎么办?
我觉得就两个字----努力。而且这两个字足够了。平时我有同事问我,你做Android时间还没我长,为什么感觉有些东西你比我还专业?我说我在某网不到半年里学习Android统计时间超过500小时,你有多少?
这半年从Android入门书籍,高级书籍,再到源码解析,设计模式详解等等的不同层次不同深度的书籍买了差不多有10本,你买了几本,买的书里大部分我都看过了,你有借阅看过吗?当然实际交谈的时候,我们是朋友语气都是和气的。虽然我薪水拿的和他一样,但我想这就是差距,未来一定会有更好的机会。
五、推荐书籍
在参考资料方面,我个人更喜欢书,虽然书在更新及时性上有很大问题,但是书比起网络最大好处就是系统,网络上你到处可以找到某一个网页把某个东西讲解非常详细的,但是很少会有把东西将的系统的,书就不一样了,书不可能只讲一个东西,只要是书了通常都会是系统的讲。
先废话一句,我其实Android的书买了十多本,最后感觉最有价值的就下面这些了。另外,我虽然列了,但并是一定要买,尤其是对于那些还没有收入的大学生而言。大家可以去X宝啊,X东啊,先去看看书的目录,看看到底是讲什么的,是不是自己需要的,然后根据情况选择是否购买。
这里我把书单放出来,以下所列的书我保证全部读过,书的质量至少在我看来是比较高的。
入门类: 我手头感觉比较不错的就是《Android 4 高级编程》,清华出版社出版,我不想列出来就是其实里面有很多东西放到现在看已经不适合了,所以大家需要自己有选择性的读。
我稍微提醒下大家,不要看到书名写的高级编程就认为书的内容很高级,其实有些写着高级编程书名的书在我看来也是入门。推荐大家买书的时候先看目录,如果目录里都是在将四大组件,布局,控件如何使用,那即使书名写的是高级我觉得也只能算入门类。
虽然下面书的作者我一个都不认识,但非常感谢作者对Android开发做的贡献。
高级类:
Android群英传(徐宜生著)
Android开发艺术探索(任玉刚著)
APP研发录(包建强著)
这三本都比较新,都是最近一两个月才正式出版的。群英传和艺术探索其实内容有部分重复,但影响不大。研发录大神之作(搜下这本书的书序,你看下都有什么人给这本书做序你就知道作者到底是个什么样的人了)。
设计模式类:
Android源码设计模式解析与实战(何红辉、关爱民著)
有一定实力积累后,就一定要用到设计模式了。这本书强烈推荐,目前应该算是中文的讲Android设计模式的唯一的作品了。
由于篇幅问题不展示太多,有需要的可以在我的【GitHub 】中领取,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
自行下载领取链接:【点击我,点击我,点击我获取你要的学习笔记】
六、源码分析类:
另外单独说下关于操作系统源码分析的。有时候大家学到后面,已经不再是简单的,使用控件的时候,可能会希望了解系统内部的一些本质,比如6.0出了我想看下6.0里Google是怎么处理权限请求的,在SDK里跟跟跟,没几下发现代码就红了,为什么?因为这部分代码被封装进系统里了,在Framwork里,不在SDK中,那怎么办?
查看系统的源码,但是系统源码涉及的知识又非常多,非常的晦涩难懂,这时候可能希望有一本书能系统的讲解的系统源码。最开始的时候不懂,源码分析的书买了4本,关于HAL层隔离GPL就是来自这四本之一,但读了之后才发现,其实我需要的并不是整个操作系统的源码的分析,这对我来说太大,太难了,根本不适合我。
我其实需要的是Framwork层的源码分析就足够了,但是Framwork层分析的书我没有找到比较合适的,可能也跟Android发展实在是太快了有关。这四本源码分析的书只读了个大概,所以就不推荐了。
另外有人提到了APP混合开发,也有叫通用APP开发,其实就是Native搭配HTML+JS开发。现在确实非常火,比如Cordova(PhoneGap)或者Facebook的React Native(正式版还没出,项目托管在facebook/react-native · GitHub)。有兴趣的可以看下,两个差别还是非常大的,React Native更像是在Native和H5之间取了个折衷,孰优孰劣我也不知道,就不误导大家了。
自己整理
Android源码学习核心技术知识
Android系统的源代码非常庞大和复杂,我们不能贸然进入,否则很容易在里面迷入方向,进而失去研究它的信心。我们应该在分析它的源代码之前学习好一些理论知识,下面就介绍一些与Android系统相关的料。
目录
1.深入解析微信 MMKV 源码
2.深入解析阿里巴巴路由框架 ARouter 源码
3.深入解析 AsyncTask 源码(一款 Android 内置的异步任务执行库)
4.深入解析 Volley 源码(一款 Google 推出的网络请求框架)
5.深入解析 Retrofit 源码
6.深入解析 OkHttp 源码
7.深入解析 ButterKnife 源码
8.深入解析 Okio 源码(一套简洁高效的 I/O 库)
9.深入解析 SharedPreferences 源码
10.深入解析 EventBus 源码
11.Android 自定义注解初探
12.View 的工作机制源码分析
13.Android 触摸事件分发机制源码分析
14.Android 按键事件分发机制源码析
15.深入解析 Handler 源码
16.深入解析 Binder 源码
17.深入解析 JNI 源码
18.深入解析 Glide 源码
自行下载领取链接:【点击我,点击我,点击我获取你要的学习笔记】
七、尾声
再补充一下:假如学历不好,也没工作经验,但是确实有一定实力,面试几十家全部不通过怎么办?
个人建议:首先通常在我看来,特别在意学历的企业不多。另外,我觉得如果学历和工作经验都没有,而你又想让面试官看到你的价值,你可以平时多写点技术博客,然后github上写一些自己的开源项目(很多企业招聘都非常看重这两条的)。如果这些都没有,你可以带着自己私下里做的APP或者类库之类的给面试官看,这些都是实打实的,体现自己价值的东西。
关于学历这个,其实我了解到的一般只有国企对学历会有要求,私企其实不是很在乎学历的,之所以写了学历很多时候就是过滤掉一部分人,减轻HR压力。如果自己真有实力,但是对方的招聘要求上写了本科学历,但是还是很想去这家企业怎么办?
我推荐你去他们公司官网,通常在最上面或者最下面都会有关于我们,招聘的链接,点进去,按照里面留的邮箱,把自己的简历发邮件过去,通常都会收到面试邀请的。像有些企业非常会在自己主页里留非常有意思的招聘,比如百度主页的Console里就有招聘,而且还特别注明了:邮件标题请以“姓名-应聘XX职位-来自console”命名。
最后如果学历、经验、实力全部没有,现在完全就是个0怎么办?我觉得只能自己努力学习了,多看书,多看教程。还是那句话,天上不会掉馅儿饼,即使掉了,没能力的话能接住吗?
欢迎在评论区说出你的想法!
网友评论