大厂offer是每个技术人的追求
许多程序员都梦想着能够获得大厂的offer,这并不是饭后闲聊的话题,而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等公司的技术氛围和技术规范度,相较于一些创业型公司或小公司,显然要高得多。如果能在这类公司工作几年,对个人能力的提升无疑会非常大。然而,并非每个人都能进入大厂,这往往取决于我们的能力、学历、面试表现等因素。
如今,想要面试大厂,没有大型项目的开发经验是很难拿出手的。像jetpack、NDK、插件化、热修复理论等知识,已经成为了大厂面试的必备内容。然而,一旦真正进入大厂,可能很多年都用不上这些知识,还是得老老实实地去写CRUD。
与其抱怨,不如提高自己
相比于前几年,现在的面试难度提升了不少。现在程序员的数量众多,你可能只是投递了300份简历,但公司只打算招5人。在这种情况下,简历筛选掉一大批,面试再筛选掉一大批。实际上,“面试造火箭,工作拧螺丝”这句话是有一定道理的。提高面试难度只是为了从大量候选人中挑选出最适合的人。
许多人都抱怨现在找工作越来越难了,的确,互联网行业现在确实没有之前好找工作了。这主要是因为现在的培训班培训出了太多半路出家的程序员。许多培训班以保障高薪就业为诱饵吸引了许多人进入这个行业。我并不是对半路出家的人有偏见,只是一个事实就是培训班出来的人有一部分是无法胜任工作的。一是大部分培训班的培训内容水分很大,很多培训班就是为了圈钱;二是半路出家的人的基础肯定是没有大学毕业生好的;三是互联网行业确实对年轻的人有一部分偏爱,毕竟刚毕业的大学生还是比较廉价的。
所以,不管你是培训班出身、应届生还是工作几年的小伙伴都要对自己有一个清晰的认识,搞清楚你自己所欠缺的能力,搞清楚你自己的优势(企业为什么要招你)。知道自己不足的地方之后,就要去努力!
虽然互联网行业很公平,但是在面试时还是会将你的学历作为参考。但是如果你真的有很强的能力,简历非常丰富的话,面试官会对你非常欣赏的。
虽然互联网行业的竞争很激烈,但是对于我们这些移动开发者来说可能竞争会更加激烈一点。毕竟现在的大环境形势也没有之前好了。
移动开发程序员的那些“悲哀”
作为移动开发程序员,我们面临着许多挑战和压力。尽管我们拥有着独特的技术和技能,能够在这个快速发展的行业中保持一定的竞争力,但是我们仍然会发现,随着年龄的增长和技术的不断更新,我们身处的环境变得越来越不利。
我今年30多岁,身边熟悉的不少朋友,从事互联网行业,年龄在 30 岁附近。常常,我通过观察他们,想象自己的未来的样子。
一个朋友,打拼多年,现在的职级是阿里 P9。这一两年和他联系较多,主要是作为晚辈后生请教问题。
阿里集团有十万员工,在 P9 职级的员工只有寥寥千人,所能够获得的工资和股票,远远超过了普通人的期望。我问过他,怎么看待这几年愈演愈烈的中年危机话题。
他没有多说,只淡淡的提了一句,「其实不是像大家讲的那样紧张,如果三四十岁,职级还是 P6,能不中年危机吗」,这里需要说明一下,阿里的硕士入职定级一般是 P5。
每年大量的新人涌入这个行业,有着更新的技术和更强的学习能力。这使得我们这些老程序员在求职市场上处于劣势地位。即使我们有丰富的经验和高超的技术,但是面对那些年轻且技术更新更快的竞争对手,我们往往难以保持自己的优势。
而且随着用户对软件的要求越来越高,我们需要不断地学习和掌握新的技术,以便能够满足用户的需求。同时,我们还需要面对项目的紧张和压力,需要在规定的时间内完成指派的任务。这些压力使得我们的工作变得非常紧张和疲劳。
再一个,移动开发程序员的职业生涯也往往比较短暂。由于技术的不断更新和迭代,我们需要不断地学习和掌握新的技术。但是随着年龄的增长,我们的学习能力和记忆力会逐渐下降,这使得我们难以跟上技术的更新速度。
常常看到后生在岗位上加班的情形总感觉年轻真好。(年轻人不喜欢加班,但是肯出钱能卷上天)
什么样的移动开发程序员完全在刀口舔血!
曾经有人跟我说过:如果一个程序员,人近中年,还在相对而言较低的职级位置上,这十几年的时间,基本是处于一种原地踏步的状态,过着温水煮青蛙的日子,技术深度和广度都停滞不前,当公司的效益下滑时,很容易成为优化的目标。
如今很多公司效益都不好,裁员缩减成本就成了悬在移动开发人员头上的一把利剑,随时会降临!
送给初级程序员的几句话
1、一些即将毕业的同学们,以及已经毕业一年从事Android开发相关工作的初级开发者们,你们可能会感到疑惑,不知道应该学习哪些东西。当你们独自探索学习的时候,可能会不确定自己的学习路线是否正确,这很正常。
实际上,Android开发需要学习的内容确实很多。对于大多数开发者来说,都会经历这样一个阶段。当项目完成并处于维护阶段时,工作可能并不忙碌。你们可能会有强烈的学习的愿望,但却不知道从何学起,如何去学。
如果你们只是东一榔头西一棒子地学习,最终可能会收获甚少。然后,你们可能会开始怀疑自己,对学习感到厌倦,甚至从此停止进步。
那我们应该怎么办呢?
打牢根基,紧跟潮流
- 打牢根基
就是多理解系统底层的逻辑和思想,诸如内存分配的机制,多理解数据结构的原理和设计理念,这些也不能说永远都有竞争力,但如果理解到位,并且应用得当,至少可以保证二三十年自己的思想不会在业内落伍。
- 紧跟潮流
咱就是说Android为什么7,8年前这么火,就是时代红利吃的饱饱的。
现在Android是不太行了,所有你能看到不少Android人开始转行了,30岁之前转行其实还好,30岁之后转行就会出现前面说的问题。
但也不是说大龄程序员就没有路了,我们要好好的运用我们自身的优势。
“什么我不年轻,是你还没有老过”
这么多年的工作经验,大局的统筹观都不是年轻程序员能比拟的,我们不转行,就继续深耕底层,继续吃这碗“老饭”。
我身边不少吃这碗老饭的就过的很舒服。
底层没用?随便去招聘网站上看一下Android的招聘条件,很大一部分都需要你懂Framework底层。
总结一下
以后优秀的门槛越来越高,这是历史趋势,谁也挡不住。
但任何时代,大部分人总是会固步自封,随波逐流,随着岁数增长,你可能真的无法挡住优秀的年轻人超越你,但你只要肯进步,总会不断超越那些停步不前的大多数。
Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。
如果你觉得自己学习效率低,缺乏正确的指导,可以参考下我下面分享的Framework学习路线:
《Android Framework源码开发揭秘》
第一章 系统启动流程分析
Android系统完整的启动过程,从系统层次角度可分为 Linux 系统层、Android 系统服务层、Zygote进程模型三个阶段; 知识要点:
第一节 Android启动概括、
第二节 init.rc解析、
第三节 Zygote、
第四节 面试题
第二章 跨进程通信IPC解析
Binder作为Android进程间通信的机制,可以看做是一个驱动。在Android中,常见的进程间通信例如系统类的:打电话、闹钟等;自己创建的:像WebView、视频播放、音频播放、大图浏览等。
第三章 Handler源码解析
第一节 源码分析
第二节 难点问题
第三节Handler常问面试题