zoukankan      html  css  js  c++  java
  • 腾讯T2亲自讲解!BTAJ大厂最新面试题汇集,Android篇

    简单介绍下背景

    笔者双非末流渣渣一本毕业,工作已有6年多。年前从一家小公司CTO离职。准备年后“金三银四”换个更大的舞台。

    疫情爆发,市场经济遭到沉重打击,大批企业裁员,整个三月都居家隔离。期间,阿里第一次电话面,未通过。

    四月,海投大厂简历,积累面试经验,鹅厂视频面试,未通过;熊厂视频面试,未通过;阿里第二次电话面。未通过。

    五月初,阿里第三次电话面通过,转视频初试,通过。出发杭州。

     

    入门学习阶段

    首先,官方文档肯定是最好的教科书,网上一些大神分享的案例也可以多看看,一边学习一边练手。假设英语还不错,而且还有Java和XML的基础,那照着官方的Training慢慢学习下来其实就算是入门了。如果英语不太好,也要把基本功打扎实,把编程语言练熟。也要多找资料多做练习,至少要掌握基本的Android开发知识,比如四大组件的使用、创建Service、进行布局、简单的自定义View等等是最基本的要求。

    也许前期看什么都觉得很吃力,但是不必急躁,慢慢来,下层基础决定上层建筑。初期学得稳,后期才能走得远。这里给大家推荐几本新手入门的必备书籍,《第一行代码》、《android开发艺术探索》、《android编程权威指南》。

    学习方法

    • 多练多思考

    对于刚刚踏入这个行业的新人,我觉得最好的学习方法就是多练习、多思考,在学习中突破自己,积累经验。对于新手来说,Android开发的前期阶段就是不断地在踩坑,所以最快速的成长方式就是去和各式各样的bug展开殊死搏斗,不断打磨自己的技术。理论和实践的融合技巧是需要你自己去摸索的。

    • 写日志

    前期学习的犯错次数肯定很多,记录、总结有助于我们快速地解决问题。写日志是我们日常学习的一种记录方式,写日志其实是对知识体系的回顾与总结。与其说写日志有助于我们学习,不如说记录问题有助于我们学习。

    总的来说,初级Android开发者需要学习的东西还是比较多,所以大家要保持良好的心态,做好长期作战的准备,一步一步地去充实自己。

    中阶学习阶段

    这个时候的Android开发者已经具备了一些从技术看本质的能力,对学习Android开发也有了一定的理解。这个时候就可以把眼光放向其他尖钻、热门的技术,扩充自己的知识面。想要尝试但是又不熟悉的领域也可以接触起来。

    在中阶学习阶段,没有必要再去重复过于简单的工作,我们更需要提升的是解决问题的能力。形成一个自己的思维方法和知识体系是当前最重要的任务,这也是我们成为Android高阶工程师的必要条件。

    学习方法

    • 参与开源项目

    开启开源项目或者贡献开源项目能极大地提升我们的技术水平。很多人都有这样的感受,那就是关键的脑洞往往是一种启发,想通它的那一瞬间就像打通了任督二脉,一下子就练成了九阳神功。这种灵感的获得在Android开发学习中是很难得的。我自己也在开源社区参与过不少项目,得到过不少好用的组件,是开源项目的获益者,所以我推荐大家多去开源社区活动,相信你们也会有不少收获。比如GitHub就是一个不错的开源社区,在项目中GitHub聚集了全球各个领域的程序员,可以直接阅读Google、Facebook顶级公司的开源项目,不管是阅读别人的源码还是自己贡献代码都很方便。

    • 阅读Android源码

    Android源码的理解可以帮助我们进一步地学习,给我们以后能力的提升打下坚实的基础。多看优秀的源码,有可能的话重复造一遍也挺好的。不能一直停留在基本api的使用上,应该往更深层次的方向去研究,例如activity、view的内部运行机制、Android的内存优化、JNI等,除了能灵活运用,更应该能通过阅读源码而理解其实现原理。

    高阶学习阶段

    高阶学习阶段的最重要内容是“更好”。某种程度上来说,一个项目不论完成得有多优秀,它总是会有更优质的设计方案。到了高阶学习的阶段,无论这个项目完成得多好,我们都可以再问一句,还有没有更加完美的设计思路。虽然有着丰富开发经验的工程师在项目开始之前,就已经知道瓶颈在哪里,需要注意哪些地方,但创造更优的解决方案一直都是高阶工程师追逐的目标。

    学习方式

    • 系统学习

    理解系统,学会用系统思维才更有利于解决问题。比如FB的Buck构建,国内多少技术团队基于此做了构建优化(也得到了晋升)。学习技术需要结合项目进行训练,在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,就不是一件这么简单的事情了,我们需要学习更多的Android开发知识才能知道其中蕴含的深理。

    学习分享

    在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了

    很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

    如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

    2021最新上万页的大厂面试真题

    七大模块学习资料:如NDK模块开发、Android框架体系架构...

    只有系统,有方向的学习,才能在段时间内迅速提高自己的技术。

    这份体系学习笔记,适应人群: 第一,学习知识比较碎片化,没有合理的学习路线与进阶方向。 第二,开发几年,不知道如何进阶更进一步,比较迷茫。 第三,到了合适的年纪,后续不知道该如何发展,转型管理,还是加强技术研究。如果你有需要,我这里恰好有为什么,不来领取!说不定能改变你现在的状态呢! 由于文章内容比较多,篇幅不允许,部分未展示内容以截图方式展示 。如有需要获取完整的资料文档的朋友点击我的GitHub免费获取。

     

  • 相关阅读:
    suse12安装详解
    Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)
    菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]
    openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
    Multiple network matches found for name 'selfservice', use an ID to be more specific.报错
    查看 SELinux状态及关闭SELinux
    SELinux深入理解
    IP地址、子网掩码、网络号、主机号、网络地址、主机地址
    Oracle job procedure 存储过程定时任务
    POI文件导出至EXCEL,并弹出下载框
  • 原文地址:https://www.cnblogs.com/mzl888/p/14302681.html
Copyright © 2011-2022 走看看