一小伙工作快3年了,拿到了阿里云Android开发岗位P6的offer,算HR面一起,加起来有6轮面试了,将近3个月的时间,1轮同级 + 1轮Android用人部门leader + 1轮Android 组leader + 1轮项目CTO + 1轮HR + 1轮HRBP。
一路上各种事件分发机制、自定义View、handler原理、多线程、hashmap、手写算法、计算机网络等等直接面试到自己怀疑人生,而自己跟HR谈论薪资的时候也是没有任何底气,说是22k,结果被HR压倒了19k,现在拿的都是15k的offer了。
有阿里巴巴的程序员直接表示,你说的这些面试题现在全忘光了,现在也能拿到22k的薪资。
果然是“面试造航母、工作拧螺丝”呀!
但是他自己也表示,是很想去阿里云的,为这次面试准备了好久,现在感觉好失望,想知道还可以跟HR再谈谈吗?关键是自己都在系统确认过offer了。
也有热心的阿里内部员工表示,确认过了没可能了,一旦确认要重新发offer流程比较麻烦需要大佬批准,基本没可能,就算不确认和阿里hr谈钱也难。这种情况下看你自己能否接受了。
也有网友说是:你要22k时就输了,这种时候比自己心理实际与其加3k~5k给HR划价用,不然HR岂不是毫无成就感。
好像也是哦!有点像去菜市场买菜一样。
还有更惨的百度程序员表示自己只有一年工作经验,面试了阿里,只给了18k,现在在想要不要跳槽。
找工作不可避免的要涉及到面试,但是对于多数程序员来说,解决各种bug信手拈来,满足各种需求不在话下,面试的沟通介绍,还有最后的薪酬问题简直是比写代码痛苦百倍的事。这就造成入职同样level的公司,有人年薪几十万,有的人用白菜价就把自己卖了。
那么Android开发该如何准备面试、如何和HR谈薪呢?
平时有在做修改简历的收费服务,在公司里也会当个面试官啥的,总的来说也算看过很多简历了。但是大部分人的简历的套路都是一样的,项目用了什么技术栈,做了什么功能,总的来说就是流水账。
那么一旦你写出有别于这类套路的简历,你的简历必然会被用人方多看几眼,增加点成功率也是必然的。
一般来说我会这样建议别人写简历:
全文杜绝任何的精通字眼,如果你真的精通,不需要投简历找工作了。
简历控制在两页左右,不需要找什么简历模板,直接 Markdown 生成 PDF 文件,面试官不在意你的简历有多好看,他更在意的是你的简历内容。
任何英文单词注意大小写,数字以及英文注意与中文之间有空格。
项目中无需介绍这个项目到底有啥功能,单刀直入这个项目中最值得说的内容。比如遇到的 Bug,自己的思考等等。但是可能很多人会说,业务很简单没什么好说的或者压根没遇到什么问题。遇到这个问题的时候,首先跳脱出业务的框架,去思考其他的问题。相信每个人都写过组件,但是对于如何设计一个好的组件来说就不是每个人都能做的事情了。
写项目经验最好按照这样的思路:遇到了什么问题,如何解决以及结果。
假设简历上的每个技术点面试官都会问到,斟酌所有的知识点,保证都能回答。
对于这个问题,我真的很想说多少经验真的和多少工资没多大关系。
相同的一年经验,有人只能拿 10K,但是有人却能拿到 20K,原因就在于两个人的技术能力不一样。
你技术好,就能比别人多要工资;你技术一般,就只能拿少点的工资,这是一个很现实的问题。所以工资只与技术挂钩,而不是你所谓的经验。
如果只是想了解行业平均薪水,直接去看当地的企业给出的工资是多少就好了。如果觉得自己薪水不符合行业平均薪水,就勇敢的跳槽呗。
对于这个问题来说,面试官考察的就是你的学习能力以及解决问题的能力。
很多人遇到这个问题会很懵逼,感觉基本啥问题都谷歌解决了。当然如果你真的有遇到不是马上能通过谷歌解决的问题便是极好的,按照描述问题、如何解决问题、结果这几个步骤来回答就行了。
那么如果你觉得你的项目真的很简单,没有什么可说的话,就按照以下的几个思路来聊这个话题。比如说你之前从没接触过某个技术,你是如何去学习这个技术的,在学习的过程中遇到了什么问题,怎么解决的。比如说你写了这个项目,自己有了什么感悟、想法。
因为这道题目面试官不是说一定要听你讲出项目里到底遇到了什么难的问题,而是考察你的学习能力以及解决问题的能力。即使你没有什么干货可以说,说点自己的学习过程、挫折、想法感悟也是可以的,毕竟总比说感觉都很简单来的好。
首先你面到 HR 了,说明你基本已经成为备选人之一了。这时候 HR 会和你聊很多问题,这些问题都是为了了解你的一些个人情况的。比如说性格啦、反应能力、情商等等。另外大部分公司的 HR 并没有一票否决权,面试没有成功多半是有更好的备选人而不是因为 HR 把你卡掉了。
然后说到谈钱的一个问题。首先以最少的工资招到需要的人肯定是 HR 的考核之一,所以压价是很正常的一个事情。并且上家公司的薪资也是一个很重要的参考,一般来说涨薪幅度在 30% 以上是很牛逼的事情了,通常都在 20% 左右。
你的开价一般就是 offer 的上限了,考虑到压价的情况,你可以在原本期望薪水上上浮 2K 左右,然后可以根据面试的情况来有选择性的开价。
我自己做Android开发已经是第6个年头了,毕业后两年,有幸加入到字节跳动这个大家庭。在字节的4年,见证了太多人的来来去去,印象很深一个同事,跳槽阿里薪资直接double,但也看到很多人镀着“大厂”的金四处碰壁,终究还是倒在了技术上!
我自己或许也算是个成功的例子,在4年的时间里从1-1做到了2-2,当然,这背后的“辛酸泪”就留到日后再说。总的来说,归功于自己不断地学习,复盘总结,提升技术!以下分享一下我4年来具体的学习路线及笔记文档,希望能帮助到有心提升技术的朋友!
安卓手机的开发语言是Java(Kotlin也是对java的封装),Android Framework 也是默认使用Java 语言,熟练掌握Java 语言是Android 开发者的必备技能。
本篇包含知识点:
1.深入 Java 泛型
2.注解深入浅出
3.并发编程
4.数据传输与序列化
5.Java 虚拟机原理
6.反射与类加载
7.高效 IO
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
众所周知,Android是一个基于Linux实现的操作系统。但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别。
所以Android也需要运行环境,需要Linux内核在启动完成后加载Android Framework运行所需要的资源。当Framework完成初始化后才能继续启动相应的APK应用程序。
主要内容包含:
笔记内容全部免费分享,有需要完整版笔记的小伙伴【点击我】免费获取哦!
简单来说,一个APP 是需要从三个方面被关注的,业务功能、符合逻辑的交互、性能响应。如果我们在使用一个 APP 时候,经常滑动时经常卡顿、时不时崩溃、有些功能设计简直非常规,比如在 Web 网站有树层级等面包屑点击,你非要在手机也搞一个类似树级点击加载,那是不是有点强人所难了,我上拉下拉、左滑右滑不行吗,非要通过点击才行吗?那么性能优化核心是什么呢?追求快、稳、省、小,关注卡顿、内存泄漏和崩溃、代码质量和逻辑、安装包大小四个方面。想进一步的了解的话,可以查阅下笔者这篇文章《我把阿里、腾讯、字节跳动、美团等Android性能优化实战整合成了一个PDF文档》
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,还有应用之间的互相调用等等问题,插件化技术应用而生。
当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
本篇内容要点(1042页)
NDK是原生开发工具包,这套工具允许Android使用C/C++代码,并提供了众多的平台库。
主要内容包含:
2019 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
…
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。