30岁安卓程序媛在一家公司工作八年后,告别“体制化”终于跳槽,别再妄想靠公司养老了

2021-06-29 17:56:42 浏览数 (1)

2021年,我工作的第九年了,回到家乡的第八年。这八年里,我一直在一家系统集成的公司做软件开发。而今年,我做出了一个重要的决定就是要跳槽,从新开始!

起因

我所有的城市,是一家四线的旅游城市,收入不高,但是消费特别地高,自从有了宝宝以后,三口家的生活捉襟见肘。公司在当地算是数一数二的大的软件公司,别的不多,就是流程多,三年未涨薪的我,收入远远跟不上。甚至新入公司的新人,收入也超过了我。涨薪方案永远是在讨论,在讨论,而没有落地,这萌生了我想要跳槽的想法。

在老公司八年,可以说见证的公司的不断尝试不同的领域,送走了一批又一批的老同事,培养了一代又一代的新人,想要走的这个想法,刚刚冒出头,还总有一丝不甘不舍。这个公司技术也不是很先进,属于学一年,后面全属于复制粘贴的阶段,工作清闲,不怎么加班。既然要考虑收入问题,势必做好工作量上涨的心理预期,这些都是我考虑过的。

面试准备

在这个小城里,大公司就这么几家,好一点的小公司也不算太多。基本上都有我过去的老同事,招呼了一圈,内推一部分。当然,我自己也需要好好准备一下面试了,刷了大概一个周的面试题。

同时,我在智联上公开的简历,这样,我收到不少面试邀约。不知其他城市的情况,在我们这个小城里,感觉Android开发的程序员很缺,不管是有没有经验,都很缺。我刚公开简历,就有不少HR联系我。在后来的了解中,我发现我们公司其实也在大力招聘中,范围标准已经从本科降低到了专科。

面试经过

面试了几家,最后基本都过了。有问得比较专业的,涉及到高级UI原理、Framework、JVM等问题的;也有业余到拿着打印的面试题来面试的。当然,大家耳熟能详的大厂是没有的,都是我们本地的土作坊。待遇嘛,基本都是番翻,因为我本身是有心理预期的,谈薪的过程都是一点不让的。

下面是面试中的一些考察技术点:

Android知识点

基础:

四大组件、fragment、自定义View、事件分发、滑动处理、handler、AsyncTask、IntentService、ThreadHandler、Bitmap相关的、动画的用法

进阶:

ListView、RecyclerView、AIDL、LruCache、DiskLruCache、View,Window,Activity的关系、进程保活、性能优化、

高阶:

Bindler、AMS、WMS、Context、APP的启动流程、插件化、组件化、热修复什么的等等

第三方框架:

okhttp、retrofit、RxJava等等,熟悉一个框架的源码,然后知道其他框架的优缺点

混合开发:

通常都是RN相关的,目前Flutter用的不多

架构和语言:

MVC、MVP、MVVM、组件化、插件化、热修复等等 上面介绍得不需要全部掌握,看你项目,挑一些内容掌握住,怎么问都不怕得那种,前提是不去一二线得大厂

java知识点

多线程、并发、java基本语法、泛型、hashmap等容器相关的,一般这几差不多了 面试内容准备

自我介绍

就聊聊最近一个项目里面的工作内容,遇到的问题,有什么亮点,难点 这个看项目,有人说我们没什么亮点啊,我只想说你写的代码都没有bug么,花你半天一天时间搞不定的bug就可以聊了

职业规划

技术线路:架构师技术专家 管理线路:开发leader,项目经理什么的。

基本上面试就这些的,剩下的就是尽人事听天命了,记住,面试不上有时候不是你得问题,很可能是公司其实不急着找人,或者面试官不行。

面试结果

选择公司,也有各种各样的问题,手中offer虽多,需要权衡的也多。本来有一家我很看好的公司,离家不算太远、薪水合适、双休、不主张加班的公司,最后谈好了,结果赶上总公司要裁员,卡住了。

最后我选择了一家离家近的公司,但是周六需要上两小时。这是一家做服装外贸的公司,本身开发属于配合部门,上班很清闲,不怎么用加班。主要是考虑到孩子不大,有事的时候可以随时请假,而且离家很近,走路大约十五分钟这个样子。

关于跳槽总结

整个换工作的流程,一直进行得十分顺利,得利于现在正是各公司缺人的时候,所以他们也没挑我女性一娃的属性。经过换工作,我顺利转换了我的思想,不要妄想在一家公司养老,不要扔掉自己的专业技能! 很多时间,我在之前的公司,我感觉我更多地被“体制化”了,如《肖申克救赎》里的那个老图书管理员一样。每天做着同样的事,写着同样的代码,复制粘贴就够了。我所用到的知识,在工作一年的时间,都学会了!

之前那家公司,到现在还用着十年前的技术!我提过引入,被否决了!因为没有人愿意去改已经稳定的产品。而我自己,也慢慢地放下了,放下了学习的心,放下了自己要努力成为大佬的初心,上班更多地去摸鱼摸到天荒地老……

现在,这个公司依然清闲,但是我已经不再摸鱼了,没有工作的时间,去读读原码,看看书,随时充实自己,随时为下一次跳槽做准备!

那些在一家公司呆了 10 年的程序员,最后都怎么样了?

首先能在一个公司呆10年,至少能证明公司活得还不错,因为 90% 的公司都活不过 3 年。

下面我就身边的一些例子,来和大家聊聊。

稳如狗程序员A

先说程序员A,因为在公司待得比较久了,所以自己的工作做得特别溜。

当时我们在华为做外包,所以他所在的那个组,对代码的改动极小,对稳定性要求最高,所以他在那里时间越长优势越大。

公司呢,每年还会给他涨上一部分薪资。

所以整体看起来还不错,同事都比较熟悉,他自己性格也不错,工作完成得也很顺利,几乎也不需要太多加班。

环境很熟悉,所以一呆就是很久,我从那家公司已经跳槽出来9年了, 他仍然还在那家公司。

当然,任何事情都是有代价的!

因为做的代码修改量很小,常年发展后只能在这家公司做类似的工作,如果跳槽到外面很难很难再找到合适的工作。

虽然工资每年都上涨了一点,但是和外面跳槽翻倍的那种差距就太大了,特别是10年后的差距...

对我的感觉是,好像是被这家公司包养了,如果这家公司一旦不想包养,基本上就废了...

勤奋狗程序员B

程序员B一看就是老好人。

办公室他来得最早,回家的时候也一般也是最晚,同时对公司的业务也特别上心,只要说加班第一个到。

任何来的新人,只要是找他请教问题,都热情耐心的帮忙回答,所以在公司的人缘也不错。

但是有一点,业务能力确实不太好。

特别是领导特别交代的关键项目,找他处理后总是会出现一点问题,或者有哪块他确实不是很懂。

大家都在一个大开间办公室,经常听到他的领导高声不耐烦的训斥着他,全办公室的所有人都能听见...

有时候我们也挺替他心里打抱不平,但是工作是工作,交情是交情,毕竟公司还是要靠业务活下来。

感觉他在办公室的每一天,都干得诚诚恳恳,但也如履薄冰。

对了,他貌似已经45 了...

熬出狗程序员C

程序员C运气还不错...

在公司呆了10年,公司有职位工资,每年会根据工龄加一些薪资,10年以上每月可以多拿好几千。

同时个人能力也不错,比较擅长处理同事、领导之间的关系,工作前4-5年的时候成为了公司中层,再在7-8年的时候终于熬到中高层。

负责着公司一块不太重要的业务,每天到公司,同事遇见的时候,也会被 X总 X总 的叫着。

所以在公司职务、薪资各方面都还不错。

能到这个层级,工作、生活也都相对比体面,基本上不会想着去外面折腾了,在公司的工作也都是以稳定为主。

程序员C的生活,估计也会被大多数程序员所羡慕着...

感悟

以上3个程序员的故事,大多发生在我曾经身边的同事,他们也将会是很多超过10年程序员的故事。

所以在一家公司呆了10年的程序员,大概率会分为这3类:

1、工作稳稳当当,不求上就不求过错,平稳就好。 2、工作能力下降,工作如履薄冰,有可能会在公司不稳定的时候被裁员。 3、升到公司中层,有一定的话语权和职位,稳定为主。

但对于刚毕业的程序员来讲,除非你在这家公司成长非常快,不然不建议一直呆在一家公司。

如果从毕业就在一家公司,工作内容长期不变,技能和眼界提升很慢,会阻碍自己的成长,错失职场黄金期。

如果能抓住独角兽公司那倒是例外,如果没有被累死的话,不管是个人成长或者是财富的收益应该都是最大化的。

所以我的建议是:

对于那些有目标明确,喜欢挑战、学习能力强、个人能力突出的朋友,建议在合适的情况下,选择合适的环境来锻炼自己。

对于那些对自己认知不清楚,对未来迷茫、天赋一般的朋友,建议选择一个靠前(头部)的公司,一直待下去更有利于自己的发展。

不管你是如何选择,脚踏实地地度过每一天,而坚持使平凡变非凡。

年龄不是阻挡学习的理由!

不用多说,相信大家都有一个共识:无论什么行业,最牛逼的人肯定是站在金字塔端的人。所以,想做一个牛逼的程序员,那么就要让自己站的更高,成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累。

学习一线大厂的各项技术:

大厂是我们的技术先驱,不仅仅是各种技术,还有很多令你大开眼界的使用方法,学习这些有利于自己竞争力的提高,深入理解后也可以提升你的学习效率。

现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。

1.2020大厂面试高频知识点

  • 图片
  • 网络和安全机制
  • 数据库
  • 插件化、模块化、组件化、热修复、增量更新、Gradle
  • 架构设计和设计模式
  • 性能优化
  • Android Framework
  • Android优秀三方库源码

2.Jetpack架构组件从入门到精通

  • Android Jetpack - Navigation
  • Android Jetpack - Data Binding
  • Android Jetpack - ViewModel & LiveData
  • Android Jetpack - Room
  • Android Jetpack - Paging
  • Android Jetpack - WorkManger
  • Android Jetpack架构组件之Lifecycle
  • Android Jetpack Compose 最全上手指南

3.Framework精编内核解析

主要内容包含:

  • 深入解析Binder
  • 深入解析Handler
  • Dalvik VM 进程系统
  • 深入解析 WMS
  • PackagerManagerService

4.Kotlin强化实战(附Demo)

  • 第一章 Kotlin入门教程
  • 第二章 Kotlin 实战避坑指南
  • 第三章 项目实战《Kotlin Jetpack 实战》
    • 从一个膜拜大神的 Demo 开始
    • Kotlin 写 Gradle 脚本是一种什么体验?
    • Kotlin 编程的三重境界
    • Kotlin 高阶函数
    • Kotlin 泛型
    • Kotlin 扩展
    • Kotlin 委托
    • 协程“不为人知”的调试技巧
    • 图解协程:suspend

5.Android设计思想解读开源框架

  • 热修复
  • 插件化
  • 组件化框架设计
  • 图片加载框架
  • 网络请求框架
  • RXJava 响应式编程框架设计
  • IOC 架构设计
  • Android架构组件Jetpack

6.NDK模块开发

  • NDK 模块开发
  • JNI 模块
  • Native 开发工具
  • Linux 编程
  • 底层图片处理
  • 音视频开发
  • 机器学习

定期面试:

光学习了大厂的技术还不够,如何了解当下Android市场需要哪些技术呢?

定期的面试足以让你了解当下市场需要哪些技术,也更加容易确定自身的短板在哪,同时,也可以督促自己学习提升(小伙子,你了解的技术有点落伍了呀…)

多看大佬的学习笔记,学习大佬的设计思想:

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

技术之路就是漫长的打怪升级,不断学习前人的踩坑经验才能提升自己,切忌闭门造车。 不要给自己设限,设限永远会和焦虑绑定。永远学习永远初心,有机会就为自己拼搏一次!

0 人点赞