三年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】阅读下载,最后觉得有帮助、有需要的朋友可以点个赞
三年Android开发,竟只会增删改查,被面试官一顿怼!的更多相关文章
- android 入门 006(sqlite增删改查)
android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite; import android.content.Context; import ...
- android 对sqlite数据库的增删改查等各种操作
转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...
- python 全栈开发,Day5(字典,增删改查,其他操作方法)
一.字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.存储大量的数据,是关系型数据,查询数据快. 列表是从头遍历到尾字典使用二分查找 二分查找也称折半查找(Bi ...
- Android中Sqlite数据库进行增删改查
今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...
- python全栈开发day62-两表操作增删改查,外键,if else模板语法
一.今日内容总结: day62 内容回顾: 1. django有关所有命令: pip install django==1.11.14 django-admin startproject 项目名称 cd ...
- Android对Sqlite数据库的增删改查
SqLite 数据库 Google 为我们提供了sqlite相关的api SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他 SqLiteDatabase 类 ...
- 模拟admin组件自己开发stark组件之增删改查
增删改查,针对视图 我们需要modelform来创建,可自动生成标签,我们还要考虑用户是不是自己定制,依然解决方法是,继承和重写 app01下的joker.py文件 class BookModelFo ...
- Android学习---SQLite数据库的增删改查和事务(transaction)调用
上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...
- Android -- SQLite 数据库创建,增删改查,事务处理
1. 概述 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类 ...
随机推荐
- 温故知新,基于Nexus3和Docker搭建私有Docker Mirrors镜像库
前言 接着上一篇文章关于基于Nexus3和Docker搭建私有Nuget服务的探索,我们可以进一步利用Nexus3来创建一个私有的Docker镜像库满足内部需求. 仓库类型 hosted: 本地存储, ...
- 22、编译安装nginx及性能优化
22.1.编译安装nginx: 1.下载nginx: [root@slave-node1 ~]# mkdir -p /tools/ [root@slave-node1 ~]# cd /tools/ [ ...
- 22、lnmp_nginx反向代理(负载均衡)、高可用
负载均衡,根据ip和端口号找到相应的web服务器站点(即端口区分): 22.1.nginx的负载均衡: 1.介绍: 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器.分 ...
- 使用Flash Builder 4.6出现 新建配置 失败 java.lang.NullPointerException错误
当看到这个错误的时候有点莫名奇妙的感觉,随后的第一反应是: 这跟我前些天安装的java的jre 1.8 有没有关联性.修改了设定,方法如下 "运行" -> "外部工 ...
- 精尽Spring Boot源码分析 - Condition 接口的扩展
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- 如何获取微信小程序for循环的index
在微信小程序开发中,对于wx:for,可以使用wx:for-index="index"来获取数组中的元素的索引值(下标). <view class="item&qu ...
- 重新整理 .net core 实践篇————重定向攻击[三十九]
前言 简单介绍一下重定向攻击. 正文 攻击思路: 看着上面挺复杂的,其实是一些很简单的步骤. 攻击者通过某些手段,让用户打开了一个好站点,打开的这个地址里面带有重定向信息,重定向信息就是自己伪造的站点 ...
- leetcode 861 翻转矩阵后的得分
1. 题目描述 2.思路分析: 1. 首先这里的翻转分为了行翻转和列翻转,我们这里只需要求如何翻转后得到最大值,有点贪心的思想,因为最大值一定是固定的 至于是什么路径到达的最大值不是我们所关心的,我们 ...
- Ha1cyon-CTF 芜湖
感觉自己还是很欠缺的,尤其是C++的逆向,对stl的不熟悉,直接误导我静态分析了...然后这种题和平常不同的是没有任何混淆和flag验证,需要的是耐心的分析,在过程中,找到线索,这题还考了base64 ...
- Luogu P2754 星际转移问题
Luogu P2754 星际转移问题 思路 首先,对于地球能否到达月球的问题,考虑使用并查集维护. 对于每艘飞船能够到达的站点,放进一个集合里,若两艘飞船的集合有交集,那么就合并两个集合,最后只要地球 ...

