三年Android开发,竟只会增删改查,被面试官一顿怼!

最近看到某公司面试官发的这样一个帖子:

我面试了一个有三年Android开发经验的小伙子,也是我有史以来给别人面试时间最短的一次,不到十分钟就结束了,原因很简单,底子太差只会curd,很多技术性的问题答不上来,小伙子面露难色希望能给个机会,于是我花了半个小时给他讲以后要如何提升自己,推荐了书和自己关注的一些资源后将其送走。面试后感慨颇多,26岁不懂得如何学习沉淀,过早的丧失竞争力真是一个可怕的事情。奉劝年轻的技术人勿要偷懒提前消费自己的竞争力!

出现这样的问题原因在哪里呢?

其实造成这种局面其实跟很多程序员的工作环境有关,比较舒适,没什么压力,而正好很多程序员也比较安于现状,他们习惯了。习惯了别人把一切都准备好自己只是在做点增删改查。但其中最主要的因素还是在你自己,工作三年左右的程序员应该会多多少少听到到除了业务层面的其他东西,这时你就应当自己去摸索,自己去学习。

思维建议:

一、扩大自己的知识面和格局,学习新的技术

这里其实会谈到整个IT行业的问题,技术发展太快了。主要还是一个持续提升竞争力的一个话题。

今天还是桌面开发,明天web开发就成为主流。

好不容易掌握了关系型数据库,No-SQL成为主流。

费了九牛二虎之力,熟练掌握Java, C#等静态语言,发现动态语言GO, Python成为云计算,机器学习的标配。移动开发昨天还是Object-C, Java, 今天就变成Swift, Kotlin。

当然这里不是说让大家紧跟潮流,扼住时尚。那样做除了疲于奔命,累死在工作台,没有其他的结果。其实只要选择一个方向,纵深学习和积累,必有所成。

编成思想和解决问题的思路都是相通的,平时的学习和工作中要善于思考,举一反三。并且做到与时俱进,及时更新自己的知识库和技能属性,保持良好的市场竞争力。做完事情后多思考,怎样做得更好,站在更好的要求上看问题。

二、拓展视野,不要只关注自己的一亩三分地、囿于角色

这种情况其实在职场中多见不仅是初级程序员,甚至工作五年以上的程序员也有类似的问题,不是自己的事情不闻不问,而且危害更大。

公司项目往往大而全,如果仅仅专注自己的那个角落,那么永远都是只见树木,不见森林。

我相信没有老板会介意下面的程序员多承担一些责任,多做一些事情,最后给项目组多一些产出。既然老板不介意,那么就应该大胆的跳出自己的职责范围,多看看公司的其他项目,丰富自己的行业知识。

职责外的事情,帮的上的不要躲避,,努力承担更多的东西。帮助别人就是提高自己,教学相长就是这个意思。况且你这次帮了别人,下次你的项目紧或者遇到技术难题了,受助之人肯定投桃报李,这样就形成了良性互助氛围,整个项目组的产出也同步提升了。

一般来说,公司要提升一个人,最好的策略就是先让候选人做一些将来职位才需要做的事情。做的好,理所当然就要提拔。做的不好,则可以提前发现该员工的问题,暂缓提拔,需要多考察一段时间。这样的试错成本毫无疑问是最低的。

三、多和同事沟通,向同事学习

有些程序员比较内向或者性情有点高冷,须不知三人行,必有我师。多向同事学习,互通有无,对自己以后的发展有百利而无一害。有导师制或者老员工带,情况或许会有所改善,但如果内因没有改变,最终效果依旧不容乐观。

技术开发工作中遇到一些技术难题非常正常,当然独立思考固然可贵,但是公司项目往往有一定的时间限制,优先解决问题永远放在第一位,而不是一个人在那里苦苦挣扎和搜索解决方案。

如果时间压力不大,多思考一下也未尝不可。考虑到交付压力,这个时候就需要积极和同事,技术经理沟通,寻找解决思路,通常情况下,积极的沟通好过自己的单打独斗。

也许同事或者老板的一句话,就应了那句古诗,山重水复疑无路,柳暗花明又一村。与此同时也和同事建立了更好的友谊,在老板心里也留下了做事有方法的好印象。

四、对未来要有想法,多考虑下三五年自己要做什么

作者本人就犯过类似的错误,幡然醒悟的时候,五年时间已经过去了。

程序员的职业生涯里面最初的三年其实是一个非常重要的打磨和规划时期,如果在迷茫中度过,那么事后想起肯定会扼腕叹息,奈何流水已经东去,再无复返之理。

有目标,而没有具体的计划,那么就是一个愿景而已。

建议不管是初级还是高级程序员,都应该积极向前辈或者直属老板沟通,看看他们有没有值得借鉴的规划和建议。

职场大忌就是被动等待命运的安排,作者本人也是在职业生涯初期等待老板来帮我规划未来,到现在为止,十年过去了,也没有等到。。。

所以老板不会主动帮助你规划未来,最重要的事情还是自己对自身的要求和期望。

五、要思考是给自己打工还是公司打工

这也是一个非常好的话题,很多人都没有想明白,甚至包括一些工作十年之久的程序员。

想明白这一点,工作积极性明显就会好太多。自我驱动, 让工作更加有趣和有意义。

国内知名的互联网公司大老板说过一句话,非常值得深思。

“我每年付你20万,五年也就是100万。如果你在这里混日子,那么最后吃亏的肯定是你。你的五年青春就只值100万吗?”

所以职场新人的主人翁意识一定要加强,你要持续提升自己的能力,持续强化自己创造价值的能力。

举个例子,比如说现在公司支付你20万每年,那么你应该有目标能给公司带来远超过20万的收益,多多益善。

你有这个能力,公司肯定也会对你相应回报。如果公司不给你升职加薪,那么一走了之,潇洒痛快。优质的人才从来都是抢着要。

学习建议

在平时的工作之余,我整理了一份Android开发核心知识笔记,主要包含一下几部分,大家在学习的时候可以参考下:

一、架构师必备Java基础

1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO

二、设计思想解读开源框架

1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计

三、360°全方位性能调优

1、设计思想与代码质量优化

2、程序性能优化

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据储存优化
  • APK大小优化

3、开发效率优化

  • 分布式版本控制系统Git
  • 自动化构建系统Gradle

4、项目实战

  • 启动速度
  • 流畅度
  • 抖音在APK包大小资源优化的实践
  • 优酷响应式布局技术全解析
  • 网络优化
  • 手机淘宝双十一性能优化项目揭秘
  • 高德APP全链路源码依赖分析
  • 彻底干掉OOM的实战经验分享
  • 微信Android终端内存优化实践

四、Android框架体系架构

1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析

五、NDK模块开发(音视频系列)

1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

六、Flutter学习进阶

1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

七、微信小程序开发

1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

最后

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长。而不成体系的学习效果低效漫长且无助。时间久了,付出巨大的时间成本和努力,没有看到应有的效果,会气馁是再正常不过的。

所以学习一定要找到最适合自己的方式,有一个思路方法,不然不止浪费时间,更可能把未来发展都一起耽误了。

上文中的核心知识笔记免费分享,如有需要,可以我的【Github】阅读下载

此外我还整理了「Android面试真题解析大全」PDF完整高清版+「Android面试知识体系」学习思维导图压缩包——————可以我的【Github】阅读下载,最后觉得有帮助、有需要的朋友可以点个赞

你可能感兴趣的