到了最后,你可能并没有收获到一个优秀的名次,但是我觉得参加比赛的经历对你的帮助才是最大的。如果后面你还会参加其他比赛的话,我觉得你一定会做的越来越好。
除了比赛,实际项目对自己的个人能力提升与锻炼也是非常大的。
多去实践,将学到的东西运用到实际项目中去。很多人都找我抱怨过没有实际项目让自己去做。下面我会介绍到几种让你可以有项目经验的方式,项目经验对于技术能力的提升和面试都是很重要的。
Android 知识体系
想要提高个人硬实力,那么学习一门新技术的方法一定是至关重要了。
下面笔者将根据自己多年的 Android 开发从业经验,来具体分析下这个领域内的知识体系,帮助初学者快速入门。同时我也将分析市面上领先企业的业务需求,从而得出已经进入这个领域的工程师,该如何提高自己的核心竞争力!
实际上在开发 Android 的过程中,需要很多知识,而有些知识也很难为其分类,但是总体上来讲可以分为上述五部分。
首先—UI 方面,如果你将来的工作是开发 Android 应用的话,UI 的知识你是必不可少的。
UI 的知识大体也可以分成三部份——基础控件、自定义控件、动画。其中每个部分几乎都需要花费巨量的时间去学习,如果你写出非常漂亮的控件或者动画框架并开源出来,相信找份好工作是不在话下的。
第二点—架构方面,随着工作的需要及阅历(看代码)的增长,你可能会越来越不满意你自己写的代码模块了。这个时候,你可能就会涉及到架构方面的知识了。架构方面的知识主要包括设计思想,及选择合适架构的能力,这两者通常来讲是相辅相成的。每一种新的架构或设计思想问世往往是用来解决实际问题的,他们解决问题的侧重点各不相同,因此在什么时候采用什么架构或设计就非常考验程序员的阅历了。通常这部分的知识学起来最为困难,因为他仅仅是一种思想,如果你的代码量不多,或是接触的项目都比较小的话,你往往会觉得这部分的知识没什么用,最后自然而言又会忘记了。
第三点—性能方面,同样随着工程的体量越来越大,开发功能越来愈多,你会发现原来非常流畅的 App 可能会出现卡顿、OOM、ANR 等现象。你百思不得其解,每次 Google 后,你可能会发现——原来实现功能的方式存在着许多性能问题。因此,在这个过程中了你得学会使用各种工具去分析代码的效率等。这部分的知识相对比较零散,也很难总结,更多的是一种经验的积累过程,因此工作多年以上的程序员都很吃香。
第四点—NDK 方面,这一部分知识比较特殊,很多 Android 工程师在初中级阶段可能都不会涉及到。只有你在某些领域亦或是特殊的场景的时候才有可能使用 NDK 进行开发,比如说像流媒体、图像处理等场景你才会去进行 NDK 开发,它通常需要你有良好的 C/C++基础,因此这算是一个比较大的知识体系了。
技术分析
总体上,目前市面上可以将互联网公司分为两类:
A. 没有实体产品的,以软件产品为主的互联网公司
B. 有实体产品的,将硬件和软件结合起来的互联网公司
A 类公司往往偏向于 UI 及架构,性能稍次,并且大多数中小型企业会要求应聘者能熟练掌握市面上流行的开源库以节约开发成本。这类公司开发的 App 往往是纯虚拟的产品——社交通讯、各类工具、资源聚合等。这些产品因为竞争激烈,功能需求变化也快,所以版本迭代的速度会非常快。这个时候,一个好的架构就可以节省许多时间,它能快速的响应需求,并迅速添加新的功能模块。UI 也是重点,在两个 App 功能差不多的情况下,拼的就是用户体验了,其中用户最能感受到的就是两点,首先是界面是否美观,动画是否自然;其次才是 App 是否流畅。
他们一般对人才的需求是这样的:
B 类公司因为有实体产品,因此往往会要求应聘者具有某些特殊的技能,例如 BLE、WIFI 等。这类公司往往偏向于性能及 NDK,UI 稍次。在目前的大环境下,这类公司多数都在物联网产业链上,以智能硬件、智能家居、机器人居多,而这类公司的话,大部分其实都是传统企业转型而来,因此其开发的产品比较注重功能的完善及响应速度,UI 的话反而会稍微丑陋一些。毕竟消费者买的是实体产品,配套的 App 就算再丑也得用不是么。
他们对人才的需求往往是这样的:
明确自己想去什么样的公司,或者对哪一类的业务更感兴趣,会有助于你更有的放矢地学习技能。
如何搭建自己的知识体系?
对于初学者来说,因为目前网络上充斥着许多免费的资源,无论是入门的还是进阶的都应有尽有,找到学习资料不难,难的是如何有选择地进行学习,并把知识纳入到自己的知识树上,而不是让众多知识点彼此孤立、零散地分布在自己的脑海中。
涉及到学习目标不同、基础不同,每个人的学习路径会不太一样,这里我以一个现成的学习路径为例,来说说如何从零基础开始,完成比较“通用型”的 Android 入门。
话不多说,先上知识体系示例:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的点击这里>Android IOC架构设计免费获取。
群内还有免费的高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。
开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。**