我学习Android的一些套路(2)

  • 工作业务量繁多,比如浏览器开发(普通App开发技术,HTML+Javascript等技术)
  • 自身兴趣

什么时候需要纵向深入

  • 中级和高级开发
  • 追求更深入的细节和思想
  • 工作内容需要

横向发展有哪些

  • ReactNative等技术
  • 简单的后台开发 Java/PHP/Python/Ruby
  • IOS等应用开发
  • 总而言之就是会的多

纵向发展有哪些

  • 系统源码
  • 各种技术的实现机制
  • 操作系统相关知识等
  • 总而言之就是学得精,知其然深知其所以然。

我个人比较倾向于多花点时间做深入研究,在这个过程中会慢慢形成一种透彻理解技术的能力,有了这种能力之后就能触类旁通,学习其他技术也会更加轻松。

另外,工作需要时影响你朝着哪个维度发展的重要因素。所以选择一个公司要谨慎。

  • 通常大公司,优秀的团队会有利于你进行纵向深入
  • 小公司,创业公司更多的会影响你进行横向发展。

如何从日常的工作中获取最大的收益

日常的工作中,我们都是在做公司的项目。我们想要做到最大化收益需要做到

  • 不要将自己的要求仅仅停留在功能实现(比如完成一个界面不代表你的收益做到最大,只是代表任务完成)
  • 要理解你所使用的技术的原理和本质。不要停留在API使用,否则无法增强你的竞争力。比如我们对于加载Bitmap都会用到LRUCache,我们则需要至少理解LRUCache的原理,如果可以的话,了解它的内部实现机制。
  • 项目中有好的地方,要去思考好在何处。思考这种技术的通用场景。
  • 在项目中思考更好的解决方法。做好两种方案的优缺点对比。比如你听了《Android Performance Pattern》中关于ArrayMap的讲解,也考虑到HashMap的空间占用问题,不要急于去替换。要做到对比(既要了解HashMap也要了解ArrayMap)同时结合业务场景来选择最适用的。
  • 如果在项目中遇到了问题,建议先解决,然后空余时间研究这个技术的原理和细节。后续的研究务必要做。
  • 善于做总结,将自己的经验和教训写成博客分享给他人。

日常的工作给我们提供了许许多多好的实践和不好的问题,是一块弥之珍贵的技术提升的源泉。

Android那么多库,我该选择哪些,怎么学,学到什么程度

库的存在是为了封装细节,简化调用者实现或者辅助我们更容易发现问题。比如ButterKnife利用注解简化了对于view的查找和类型转换等功能。

关于如何选择那些库

  • 确定这个库是否是必需的
  • 这个库能否带来开发效率的提升,降低代码的维护成本
  • 这个库的学习成本如何 比如rxjava其实学习成本会相对高一些。
  • 这个库的质量如何,不要仅仅看star,更要看issue的处理情况

Flipboard常用的库(部分)

  • LeakCanary A memory leak detection library for Android and Java.
  • Stetho Stetho is a debug bridge for Android applications, enabling the powerful Chrome Developer Tools and much more.
  • ButterKnife Bind Android views and callbacks to fields and methods.
  • Baber A custom view styling library
  • GoldenGate An Android annotation processor for generating type safe javascript bindings
  • MaterialEditText EditText in Material Design
  • 。。。

关于库,首先我们需要掌握其使用方法,同样也需要理解其运行机制。

对于初学者,大学生的建议有哪些

  • 越来越多的关于互联网寒冬的消息传出
  • 听见越来越多的人抱怨Android找工作越来越难,已经趋近饱和。
  • Android开发的红利期正在逐渐消逝,尤其是对于初级和中级开发人员
  • 关于现在加入Android开发队伍,我并不反对。
  • 仍然可以赶上红利期的有容器,机器学习和人工智能。
  • 但是无论选择哪一种技术,即便是Android,请具备好的基础和较强的编程能力和足够的爱好。不要仅仅追求物质。

一直想学,却很难坚持下去

  • 有意愿是很好的。
  • 如果很难坚持下去,可能的原因有没有学进去,或者自制力比较差
  • 关于没有学进去,可以参考上面提到的学习方法
  • 如果是自制力的话,可以通过自我监督和他人监督的方式来改善。

不知道去哪里学安卓,可以边学边工作么

  • 学习Android的途径有很多,可以是自学(视频网站,看书,博客)也可以选择培训(不推荐)
  • 边学边工作通常是可以的,不过具体实施起来还要结合自身的情况,比如时间是否充裕,学习者的决心和自学能力。

春招做准备,数据结构和算法不懂怎么办

无论是春招还是秋招,对基础知识的掌握程度都是很重要的衡量标准,毕竟毕业生的实战经验比较少一些。

数据结构和算法应该是必不可少的一部分。建议还是要多多做一些准备工作。

呈现出最好的状态来面试春招。

自己有一个什么样的个人项目才有竞争力

如果这个项目是App

  • 首先有足够的用户量,比如月活达到上万的数量级
  • 界面和交互处理良好,符合Android UI/UE规范
  • 运行流畅和稳定,不存在低级的错误(比如卡顿等问题)
  • App能明显解决用户的痛点

如果这个项目是一个开源项目

  • 有足够的star(然而这个已经被玩坏了)
  • issue的处理情况
  • contributor的数量
  • 设计的思想是否优秀
  • 代码是否居然自解释性
  • 学习成本和维护成本尽量少

我该如何选择网络中鱼龙混杂的学习资料 pass

  • 使用Google和StackOverflow,Medium
  • 如果是博客文章,在自己能力可以理解前提下,尽量选择英文
  • 最简单判断一个文章的优劣可以先到文章的底部看评论(Good,Execellent,Awesome)以及Google+,Facebook,Twitter分享数量
  • 尽量选择内容整洁(说明态度认真)的文章

学习效果差的问题 pass

  • 长期看慕课和论坛,感觉效果很差
  • 感觉通过视频学习,进步很大,但是即使学习完了,感觉还是菜鸟
  • 视频也看了,书也读了,但是写起来还是很吃力,下一步如何熟练和进阶

产生这些结果的原因:

  • 通常的视频网站传授给大家都往往是立竿见影的技能。
  • 学习中缺乏思考,无法做到触类旁通。只知道照葫芦画瓢
  • 基础薄弱,概念没有搞清。导致做上层的东西举步维艰。
  • 没有比较良好的辅助工具或者无法找到优秀的辅助内容。

如何提高安卓程序员的核心竞争力,项目理解能力还是技术能力,哪个更重要

  • 什么是核心竞争力。表现在学习技术的能力,对待问题的态度,解决问题的技术方案。别的行业其实也是这样的。
  • 具体如何提高核心竞争力,我上面有提到,参考程序员需要具备其他那些能力。
  • 这两个能力是相辅相成的,很难做出孰重孰轻的决断。

大龄Android程序员的烦恼

经常收到一些安卓程序员的邮件,其中有很多问题是,做了Android很多年了,为以后的职业选择惆怅。比如互联网寒冬,华为清退34岁以上员工等等。

的确,由于Android相关的工程师需求不如之前那么好,加之年龄越大,拼劲可能不如刚刚毕业的年轻人。这种烦恼是可以理解的。

走出烦恼的一些方法

  • 不断学习,夯实基础,拓展技术面。为什么总是提到这个,因为其实存在很多程序员,逻辑思维不强,还不爱学习。不断学习对于程序员来说至关重要。
  • 提高自己的竞争力,不要成为仅仅面向API编程的程序员。要勤于思考,追求更高。求其上者得其中,求其中者得其下。你必须和5年前,甚至是10年前的你有改变,不能仅仅是一项技能重复了5年,10年。
  • 建立个人品牌:写博客,写书,开源项目,写独立App等。注意这其中任何一个都是一个长期坚持才能完成的事情。关于写博客,我在以前的知乎live讲过一些技巧和思路,地址为 https://www.zhihu.com/lives/796775894273363968
  • 其实现代人的烦恼,不论是否是程序员,很多都是关于物质生活的恐惧。买车买房,家庭支出等等问题。以及对于自己的能力无法满足物质支出的恐惧和担心。在自己无法改变的情况下,适当调整心态。
  • 尝试知识变现,但是需要不断积累,需要时间。不能一蹴而就。
  • 关于舒适区,学习区和恐惧区的理论

理论

shushiqu

  • “舒适区”, 对于你来说是没有学习难度的知识或者习以为常的事务,自己可以处于舒适心理状态。
  • “学习区”,对自己来说有一定挑战,因而感到不适,但是不至于太难受。
  • “恐慌区”,超出自己能力范围太多的事务或知识,心理感觉会严重不适,可能导致崩溃以致放弃学习。

对于一个人来说,最理想的状态是处于“学习区”,学习具有适当挑战性的东西, 一段时间后,“学习区”会慢慢变为“舒适区”, “舒适区”越变越大, 而一部分的“恐慌区” 也会相应变成“学习区”。

面试复习路线,梳理知识,提升储备

自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。

关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

  • 架构师筑基必备技能
  • Android高级UI与FrameWork源码
  • 360°全方面性能调优
  • 解读开源框架设计思想
  • NDK模块开发
  • 微信小程序
  • Hybrid 开发与Flutter

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:

Android开发七大模块核心知识笔记

《960全网最全Android开发笔记》

《379页Android开发面试宝典》

历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

如何使用它?

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 24
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2 的嵌套路由可以帮助我们构建复杂的页面结构。在嵌套路由中,一个路由可以包含多个子路由,而每个子路由又可以再次包含自己的子路由。 下面是一个示例,展示了如何在 Vue 2 中使用嵌套路由: 首先,我们需要设置主路由(父路由),这可以在 `router/index.js` 文件中完成: ```javascript import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ routes: [ { path: '/', component: Home, children: [ { path: 'about', component: About, children: [ { path: 'contact', component: Contact }, // 其他子路由... ] }, // 其他子路由... ] } ] }) ``` 在上面的示例中,我们定义了一个主路由 `/`,它的组件是 `Home`。然后,我们定义了一个子路由 `/about`,它的组件是 `About`。在 `About` 组件中,又定义了一个子路由 `/contact`,它的组件是 `Contact`。 现在,我们可以在 `Home` 组件的模板中添加一个 `<router-view>` 标签来展示嵌套路由的内容: ```html <template> <div> <h1>Home</h1> <router-view></router-view> </div> </template> ``` 同样地,在 `About` 组件的模板中也要添加一个 `<router-view>` 标签: ```html <template> <div> <h2>About</h2> <router-view></router-view> </div> </template> ``` 这样,当我们访问 `/about` 路径时,`Home` 组件会显示出来,并且在其中展示 `About` 组件。 当访问 `/about/contact` 路径时,`Home` 和 `About` 组件都会显示出来,并且在 `About` 组件中展示 `Contact` 组件。 希望这个示例对你有所帮助!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值