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

我面试了一个有三年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开发,竟只会增删改查,被面试官一顿怼!的更多相关文章

  1. android 入门 006(sqlite增删改查)

    android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite; import android.content.Context; import ...

  2. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

  3. python 全栈开发,Day5(字典,增删改查,其他操作方法)

    一.字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.存储大量的数据,是关系型数据,查询数据快. 列表是从头遍历到尾字典使用二分查找 二分查找也称折半查找(Bi ...

  4. Android中Sqlite数据库进行增删改查

    今天这篇文章写Sqlite数据库,通过一个小案例来完整讲一下数据库常见的CRUD操作. 先对知识点总结: SQLite数据库 轻量级关系型数据库 创建数据库需要使用的api:SQLiteOpenHel ...

  5. python全栈开发day62-两表操作增删改查,外键,if else模板语法

    一.今日内容总结: day62 内容回顾: 1. django有关所有命令: pip install django==1.11.14 django-admin startproject 项目名称 cd ...

  6. Android对Sqlite数据库的增删改查

    SqLite 数据库 Google 为我们提供了sqlite相关的api SqLiteOpenHelper 这是一个抽象的类 如果想要使用的话,需要其他的类去继承他 SqLiteDatabase 类 ...

  7. 模拟admin组件自己开发stark组件之增删改查

    增删改查,针对视图 我们需要modelform来创建,可自动生成标签,我们还要考虑用户是不是自己定制,依然解决方法是,继承和重写 app01下的joker.py文件 class BookModelFo ...

  8. Android学习---SQLite数据库的增删改查和事务(transaction)调用

    上一篇文章中介绍了手工拼写sql语句进行数据库的CRUD操作,本文将介绍调用sqlite内置的方法实现CRUD操作,其实质也是通过拼写sql语句. 首先,创建一个新的android项目: 其次,查看代 ...

  9. Android -- SQLite 数据库创建,增删改查,事务处理

    1. 概述 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类 ...

随机推荐

  1. Devexpress-WPF初体验

    最近使用wpf devexpress做一个wpf小项目,中间遇到了一些问题,这里记录下,同时也跟大家分享分享 1.devexpress安装 devexpress提供了很多控件,特别是各种形式的数据列表 ...

  2. Linux云计算-01_介绍以及Linux操作系统安装

    1 学习目的 兴趣爱好 技能提升 找到满意的工作 2 什么是云计算 云计算(cloud computing)是分布式计算的一种,指的是通过网络"云"将巨大的数据计算处理程序分解成无 ...

  3. c++11 线程间同步---利用std::condition_variable实现

    1.前言 很多时候,我们在写程序的时候,多多少少会遇到下面种需求 一个产品的大致部分流程,由工厂生产,然后放入仓库,最后由销售员提单卖出去这样. 在实际中,仓库的容量的有限的,也就是说,工厂不能一直生 ...

  4. Mysql 主键的操作

    ​ 主键:primary key ,主要的键.一张表只能有一个字段可以使用对应的键,用来唯一的约束字段里面的数据,数据不能重复,这种键称之为主键,一张表只能最多有一个主键.  一.增加主键 方法一:在 ...

  5. Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记

    目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...

  6. css实现相框效果

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...

  7. Https:证书生成 .p12 .keyStore 和 .truststore文件理解

    当我们需要SSL证书时,可以自动生成SSL证书,但是每个系统都申请一次证书会比较麻烦,所以用到了如下几个文件格式:   .p12(PKCS #12) 我们的每一个证书都可以生成一个.p12文件,这个文 ...

  8. bash的RANDOM变量生成的是真正的随机数吗

    static void seedrand () { struct timeval tv; gettimeofday (&tv, NULL); sbrand (tv.tv_sec ^ tv.tv ...

  9. MySQL存储引擎——InnoDB和MyISAM的区别

    MySQL5.5后,默认存储引擎是InnoDB,5.5之前默认是MyISAM. InnoDB(事务性数据库引擎)和MyISAM的区别补充: InnoDB是聚集索引,数据结构是B+树,叶子节点存K-V, ...

  10. ZooKeeper 分布式锁 Curator 源码 01:可重入锁

    前言 一般工作中常用的分布式锁,就是基于 Redis 和 ZooKeeper,前面已经介绍完了 Redisson 锁相关的源码,下面一起看看基于 ZooKeeper 的锁.也就是 Curator 这个 ...