化学专业大二转战Android开发,终于拥有了鹅厂暑期实习offer

📅 2026/8/27 12:01:54
化学专业大二转战Android开发,终于拥有了鹅厂暑期实习offer
我是双非学校应用化学专业一年前我大二现在我大三。一年前我两手空空现在我拥有了鹅厂暑期实习的offer。虽然结果是好的但我春招实习的道路远没有这么简单和辉煌它是无比坎坷的每个人应该量力而行找到自己舒适的学习方法和学习节奏不要一味地抱着“抄作业”的心态生搬硬套。自学的漫漫长路我是2020年6月正式开始转行自学的而我的实习offer是在2021年4月初拿到的所以其实给我自学的时间不到一年而且因为我还要上本专业的课程作业、实验、考试等都在占据我为数不多的时间时间对我来说真的很宝贵所以合理的安排是十分关键的。我的自学路线参考的是GitHub上很火的一张Android学习路线由于图片太大仅展示大标题有需要的朋友移步文末获取完整版。我的目标是在春招中可以找到一份实习工作所以我的计划都是为了达到这个目标而制定的。了解自己需要什么拒绝盲目很是关键。由于那张学习路线实在是太吓人所以我们必须要围绕自己的目标缩减那份庞大的学习路线。由于我要找的是一份实习公司对实习生的要求并不会太高注重基础的同时增加亮点这足矣给我找到实习的机会。于是我的学习安排就是第一阶段Java面向对象编程1.Java基本数据类型与表达式分支循环。2.String和StringBuffer的使用、正则表达式。3.面向对象的抽象封装继承多态类与对象对象初始化和回收构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类Java的垃极回收机制Javadoc介绍。4.对象实例化过程、方法的覆盖、final关键字、抽象类、接口、继承的优点和缺点剖析对象的多态性子类和父类之间的转换、抽象类和接口在多态中的应用、多态带来的好处。5.Java异常处理异常的机制原理。6.常用的设计模式Singleton、Template、Strategy模式。7.JavaAPI介绍种基本数据类型包装类System和Runtime类Date和DateFomat类等。8.Java集合介绍Collection、Set、List、ArrayList、Vector、LinkedList、Hashset、TreeSet、Map、HashMap、TreeMap、Iterator、Enumeration等常用集合类API。9.Java I/O输入输出流File和FileRandomAccess类字节流InputStream和OutputStream字符流Reader和Writer以及相应实现类IO性能分析字节和字符的转化流包装流的概念以及常用包装类计算机编码。10.Java高级特性反射、代理和泛型。11.多线程原理如何在程序中创建多线程(Thread、Runnable)线程安全问题线程的同步线程之间的通讯、死锁。12.Socket网络编程。第二阶段Java Web开发1.Java解析XML文件DOM4J。2.MySql数据库的应用、多表连接查询的应用。3.Jsp和Servlet应用。4.Http协议解析。5.Tomcat服务器的应用配置。6.WebService服务配置应用。第三阶段android UI编程1、Android开发环境搭建Android介绍Android开发环境搭建第一个Android应用程序Android应用程序目录结构。2、Android初级控件的使用TextView控件的使用Button控件的使用方法EditText控件的使用方法ImageView的使用方法RadioButton的使用方法Checkbox的使用方法Menu的使用方法3、Android高级控件的使用Autocompletion的使用方法ListView的使用方法GridView的使用方法Adapter的使用方法Spinner的使用方法Gallary的使用方法ScrollView的使用方法4、对话框与菜单的使用Dialog的基本概念AlertDialog的使用方法DatePickerDialog的使用方法Menu的使用方法自定义Menu的实现方法5、控件的布局方法线性布局的使用方法相对布局的使用方法表格布局的使用方法6、多Acitivity管理AndroidManifest.xml文件的作用Intent的使用方法使用Intent传递数据的方法启动Activity的方法IntentFilter的使用方法Activity Group的使用方法7、自定义控件实现方法自定义ListView的实现方法可折叠ListView的使用方法自定义Adapter的实现方法自定义View的实现方法动态控件布局的上实现方法第四阶段android网络编程与数据存储1、基于Android平台的HTTP通讯Http协议回顾Apache Commons 工具包介绍使用Get方法向服务器提交数据的方法解析服务器响应数据的方法使用POST方法向服务器提交数据的实现方法向服务器提交非文本数据的实现方法使用Http协议实现多线程下载使用Http协议实现断点续传2、Android数据存储技术SQLite3数据库简介SQL语句回顾SQLite3编程接口介绍SQLite3事务管理SQLite3游标使用方法SQLite3性能分析访问SDCard的方法访问SharedPreferences的方法第五阶段学完上面这些差不多算入门的初级程序员了可以在公司里干很多体力活了但是一些很重要的任务还是做不了。为了能面上腾讯还是得加把劲呀。这是后续的学习路线需要学习的内容就很多了如下所示AIDL熟悉AIDL理解其工作原理懂transact和onTransact的区别Binder从Java层大概理解Binder的工作原理懂Parcel对象的使用多进程熟练掌握多进程的运行机制懂Messenger、Socket等事件分发弹性滑动、滑动冲突等玩转ViewView的绘制原理、各种自定义View动画系列熟悉View动画和属性动画的不同点懂属性动画的工作原理懂性能优化、熟悉mat等工具懂点常见的设计模式学习方法阅读进阶书籍阅读Android源码阅读官方文档并尝试自己写相关的技术文章需要有一定技术深度和自我思考。在这个阶段的学习过程中有2个点是比较困扰大家的一个是阅读源码另一个是自定义View以及滑动冲突。如何阅读源码呢这是个头疼的问题但是源码必须要读。阅读源码的时候不要深入代码细节不可自拔要关注代码的流程并尽量挖掘出对应用层开发有用的结论。另外仔细阅读源码中对一个类或者方法的注释在看不懂源码时源码中的注释可以帮你更好地了解源码中的工作原理这个过程虽然艰苦但是别无他法。如何玩转自定义View呢我的建议是不要通过学习自定义view而学习自定义view。为什么这么说呢因为自定义view的种类太多了各式各样的绚丽的自定义效果如何学的玩呢我们要透过现象看本质更多地去关注自定义view所需的知识点这里做如下总结搞懂view的滑动原理搞懂如何实现弹性滑动搞懂view的滑动冲突搞懂view的measure、layout和draw然后再学习几个已有的自定义view的例子最后就可以搞定自定义view了所谓万变不离其宗春招的坎坷看我上面学习的知识量就能知道我的简历是非常单薄的而且我又是双非学校的转行生这让我处于极其不利的位置。我在三月初开始投递简历起初只是投了一些小公司想着先通过小公司积累经验然后再鼓起勇气去投大公司。所以我投大公司其实就是抱着碰碰运气的心态投的。但是小公司一直都没有回应的消息简历一直处于审核状态倒是大公司很快就进入面试状态了。第一家就是腾讯。这让我很紧张我没想到我最想去的公司会是我的第一场面试。我和面试官约好晚上7点电话面虽然是电话面但我还是难以抑制自己紧张的心情。我提前一小时就坐在宿舍的椅子上不停地翻着手中的复习资料却坐立难安时不时盯着桌上的手机生怕它突然响起不停地咽口水时不时咳嗽。我确实特别紧张脑子里想着面试官会怎么刁难我、会问什么问题、我该怎么回答。最后颤颤巍巍地接起了面试官的电话。幸运的是很顺利一面电话面面的都是一些基础没有算法题。一面的面试官说我一开始很紧张声音都在发抖后面渐渐地就很有自信表达方面也比较清晰基础还是学的很不错。听到面试官的评价我当时心中就乐开了花能得到鹅厂面试官的肯定让我充满了自信自己的努力得到了他人的认可那种感觉真的很棒很棒。我开始幻想难道我难道可以进鹅厂可是很快梦就被打碎狠狠地击碎。二面是视频面我心想着自信自信一定要自信结果上来面试官第一个问题就把我问蒙了如何设计一套图片加载框架三级缓存。为什么选择LruCache我尝试着挣扎回答了一些自己的想法但都被否定大部分时间都是安静的安静的让人害怕。好不容易跳到了下一个问题“红黑树怎么实现的说一下它的插入逻辑”“IntentService原理”…安静还是安静。渐渐地我乱了分寸我开始想着自己这次肯定是要挂了回答的声音越来越小脑袋越来越低自信这个对于我来说最重要的东西彻底的丢失了。压死我的最后一根稻草是力扣的原题62. 不同路径听到面试官念这个题的时候我心里又燃起了希望这不就是个简单的DP嘛紧接着面试官一句话让我产生了疑惑“三分钟内给我答案”不coding直接报答案我想着手算能不能算出来但三分钟对我来说是不够的。面试官冷冷地说了一句“你知道这是个什么问题吗”“动态规划”“这是个组合数学问题”我的信心崩溃的很彻底脑子基本停止运转了。二面挂了。雪上加霜的是投递小公司的简历被刷了。这让我对自己陷入的深深地怀疑之中“我是不是找不到实习了我是不是该去考个计算机的研再来找工作我是不是…我该怎么办”可是哪里有时间给我多想腾讯又接到了另外一个部门一面的通知阿里也接到了一面的通知。我扇了自己两个巴掌又投入到了面试中。这次腾讯一面是视频面面试官问的都是很基础的问题但这次我说的结结巴巴我的嘴像是不受我控制明明一开始说的好好地慢慢地慢慢地声音就开始变弱变小突然的哑火让面试官和我都措手不及我老是自己打断自己的思路说着说着开始自暴自弃。我逐渐的意识到我还没有走出上一次面试的阴影中我丢失了我最需要最重要的自信。我向面试官解释、倾诉我并不是想得到面试官的可怜我只是不想让那次的不甘与颓废憋在心里它影响了我这次面试但我并不想让它影响我下一次面试。我向面试官道歉因为我占用他的时间只是听我倾诉浪费了一次宝贵的面试。这次面试不出所料的挂了但我如释重负。紧接着就是阿里的面试三面都是电话面一面面试官主要问的是基础二面面试官主要问了Java相关三面面试官主要问编程相关。我表现得还不错哪怕不会我都会和面试官积极沟通思路请求他给予提示而不再是单纯的泄气和自暴自弃。我一次又一次地将自信紧紧攥在手心里我告诉自己我可以。另一边腾讯也顺利的通过了二面对我再一次被腾讯捞起来第二次被捞继续面试但这次我挺进了HR面。一切看起来都是那么顺利就在我做着选阿里还是腾讯的梦时阿里HR的一通电话又击碎了我的梦。“我看你本科是学化学的简历上也没有什么实习经历和项目经历你投的是我们这边的核心部门我很担心你能否胜任这个岗位。”“这么跟你说吧我这边有很多有丰富经验的研究生他们也在和你竞争同一个岗位就是这么现实。”我唯唯诺诺的听着HR说着也不知道该说什么她说的都没错我看着自己单薄的简历叹了口气。想不到会被阿里HR这样刷掉…不过腾讯HR面是比较顺利的我也就如愿拿到了鹅厂的offer。分享一些小技巧最后我分享一些自己的方法和经验尽量不说一些四处可见的经验希望能够帮助到大家。我的学习以视频为主书籍为辅Java相关B站Android相关B站,官方文档算法AcWingLeetCode项目GitHub初学者不要深究一个问题太久目前这个知识点不会可以暂且放一放不要停滞不前。不要在简历上暴露自己的弱点。 面试官是根据简历的内容来提问所以一定要注意简历的用词实事求是不要夸大也不要谦虚。比如我就没有在简历上写操作系统因为我学的并不扎实面试官也没有问我操作系统的问题。刷面经这一点很重要。在面试的前一个月我就利用爬虫把网上的Android面试题爬取然后一个问题一个问题的过并做了一份笔记。由于篇幅限制这里只能展示部分内容朋友们如果需要这份完整版的PDF资料合集微信扫描下方CSDN官方二维码【免费获取】。数据结构与算法这个都被说烂了但确实特别重要。个人感觉我的算法题刷的还是可以的LeetCode题量400周赛平均能A 3题。在腾讯的面试中面试官直接给腾讯文档在线写题一面4题40分钟我A了3个二面5题50分钟我A了4个这给我的面试很大的加分一定要重视。面试时的算法题一般是LeetCode类型笔试题是ACM型。扎实的基础知识。 这个看起来很模糊很宽泛学到什么程度才是熟悉学的多好才算扎实。我认为对于我们求职者而言能拿下面试官的问题那么这个知识点就是熟悉面对面试官的追问能够有理有据的应对那么这块知识点就学的很扎实。所以在刷面经时希望你能够自己问自己一些问题不要仅仅停留在面经的问题上。由于篇幅限制这里只能展示部分内容朋友们如果需要这份完整版的PDF资料合集微信扫描下方CSDN官方二维码【免费获取】。末我给这篇文章的定位是一篇经历分享而不是一篇面经分享所以大多笔墨都是在平铺直叙我这一年来是如何走过的。我试图让大家能够了解我认识到我真的只是一个普普通通的、双非学校的、化学专业的大三学生而不是一个大佬我想证明的是凭借自己的努力做好充足的准备是可以得到一个满意的结果的。回看自己的三月在背知识点、刷题、面试中度过 期间有苦恼有怀疑有高兴有得意…最后我转身成功曾经一起“搬砖”的工友发来了祝贺打数模的队友也为我高兴周边质疑的声音渐渐消去取而代之的是羡慕与崇拜的目光…但是还远远没有结束这只是我故事新的开始。希望每个人都能得到自己满意的答案。