前言

我们做技术开发的,大部分人都有个习惯,那就是喜欢不定期地进行总结,当然我也不例外。我有个特别的爱好,那就是把我一年前的代码拿出来和我现在写的代码进行对比,看是否有所长进。

一个人回首过去,如果发现现在的自己和一年前或者更久前的自己没有任何积极的变化的话,那么你这些年就算是虚度光阴了。 回首我这五年,如果说前三年我是野蛮生长、疯狂撸码、较为浮躁的三年,那么这三年我就是沉下心来,潜心修炼积累经验的三年。

工作环境发生变化

我从事Android开发的前三年只在一家公司待过,每天都做着几乎相同的工作,做的项目也是较为简单的小项目,一两个人就能承担的应用开发,用的也是相对简单,没有什么核心竞争力的技术。

但是这三年来,我接触到了不少的公司。它们有改革的老国企,有刚刚成立的创业公司,也有已经上市的公司。不同类型、不同行业、不同规模的企业,必然导致工作内容、团队、企业文化的不同。

相比较我待的第一家公司来说,后面的几家公司更加尊重我的个人看法,这也是我决定跳槽的原因。虽然我也非常感谢我的第一家公司给予我更多的机会去成长,但是我们出来工作本质上还是要挣钱糊口的,光谈理想而不给予现实的恩惠,一味强调你是公司培养出来的,时间长人是会“饿死”人的,自然也就留不住人了。

老旧国企

俗话说:“跳槽是有成本的”。由于工作内容、团队的变化,我需要重新学习特定行业的专业知识,重新建立自己的同事关系,这就要求我需要非常强大的学习能力和适应能力。

我的第一次跳槽相对来说是比较失败的,因为没有经验,我居然跳槽到了一个严重老龄化的前国企公司,这是一家做汽车硬件的企业。周围的同事平均年龄35岁以上,每天他们讨论的话题都是自己家小孩的学习教育,这让我这个连女朋友都没有的单身汪情何以堪。更让我无法适应的是它那非常慢的工作节奏,一周的工作半天就完成了。剩下的时间完全不知道做什么…真的是无事可做。

创业公司

后来我被一位非常赏识我的老板看中,加入到他的创业公司,成为了一名创业者。这是一家从事儿童可穿戴设备的公司,作为最早加入的员工之一,我可谓是见证了一家创业公司从起步到发展再到衰落的全过程,而这仅仅只需要一年的时间。

创业公司的坑虽然不少,不过这对我们个人的成长还是非常有价值的。在创业公司的这一年,我做了很多普通程序员这一辈子可能都无法触及的工作内容,也积累了很多人生哲学。

  • 1.应用开发框架的搭建
  • 2.产品需求讨论
  • 3.企业文化建设
  • 4.企业税务处理
  • 5.应用的上架和运营
  • 6.产品生产、组装、销售和售后维护
  • 7.企业商标、专利注册

在创业公司,职位没有明显的划分,很多时候你需要做很多与你岗位无关的工作。从好的角度来说,这可以极大地丰富个人的人生阅历,提升一个人独立思考、自主学习和解决问题的能力。如果你的经济能力有一定的支持,那么去创业公司历练一把也是非常不错的,万一它日后发展成为一家独角兽呢?

上市公司

之后我来到了我现在待的这家公司。比起我之前待的创业公司就我一个Android开发,在这里我算是找到了失去很久的团队归宿感。大公司除了人多以外,工作的强度和难度也大大地增加,加班当然也成为了家常便饭,当然与之相对应的福利也是提升了不少。

在大公司,技术水平并不是决定这个人发展潜力的决定性因素。要知道大公司最不缺的就是人才,能进大公司的,哪个不是有两把刷子的呢?对于大公司而言,他们需要的是拥有极强责任心以及任劳任怨的员工,能否承担某一模块功能的稳定性就直接决定了你的去留。

除此之外,沟通能力也是非常重要的能力。因为大公司的项目功能相对复杂,参与的人员众多,很多复杂的问题往往可以通过沟通予以解决。而且及时表达出你的想法,主动承担一些紧急的任务都能给你很多的加分。可以说在大公司的这些日子里,让我学习和领悟到了很多非技术方面的能力:

  • 语言表达能力(大公司经常需要在很多人面前发言)
  • 与不同人沟通的能力
  • 复杂问题的定位和解决能力
  • 团队协作能力
  • 帮助(指导)他人的能力
  • 团队建设和管理的能力

上面的这些能力,很多是仅仅靠撸码是无法获取到的。

心态上发生变化

我从事Android开发的前三年,之所以那么拼命地工作和学习,一部分是出于兴趣,而另一部则是想要证明自己。

  • 对于公司而言:我要证明自己是公司不可或缺的人才
  • 对于领导而言:我要证明自己的技术水平是组内第一
  • 对于家人而言:我要证明自己有能力养活自己
  • 对于女友而言:我要证明自己有能力独自照顾一个人

**马斯洛需求层次理论告诉我们,当一个人的需求得到满足之后,他会追寻更高层次的需求。**当这些都被我一一证明了之后,一切都变了。

证明自己已经显得不那么的重要,追求自身价值的体现成为了我现阶段的目标。于是,我离开了当年的那家公司,放弃了父母规划的道路,离开了女友,开始遵从着自己的内心,寻找人生的答案…

此时的我,需要的并不是别人的肯定。我并不会在意别人的赞赏或者是诋毁,我所做的都是发自内心的事情,而不随外物而影响。于是,我选择成为了一名开源项目的创作者和布道者。将我平时积累的技术经验全部分享出来,目的就是帮助全世界所有热爱技术的人士,同时让我的价值在别人身上得到体现。

在这三年内,我积极维护我开源的项目,同时还在各大技术社区和论坛上发布一些相关的技术文章,同时还运营了自己的微信公众号。近期,我还积极创作一些开源技术相关的视频。这样做的目的,一方面是可以把自己的经验和技术分享给更多需要的人,让知识发挥它更大的作用(知识在于传承), 另一方面也是满足了自己的虚荣心,让自己的价值得以体现。

  • 夹带私货,欢迎来我主页关注,点赞,可点击上文蓝色字直达。

思维方式发生变化

从事Android的前三年,我的想法是相对激进的。那时的我,对所有的新技术都是那么的趋之若鹜,而对于那些相对陈旧的技术是嗤之以鼻。我天真地认为那些新技术都是革命性的,都需要去掌握、学习并运用到实际的工作中去,而那些旧技术就是需要替代的对象。

于是,我就不计代价,大张旗鼓地把公司之前使用的旧技术一股脑地都准备换了,而当时领导的处处阻挠在我看来就是技术上的不思进取,中间还闹了不少矛盾,这也成为了我后来离开公司的原因之一。现在想来,当时的我想法真的是非常的幼稚!

技术不是唯一的生产力

技术是生产力,但并不是唯一的生产力。

在创业公司的那一年里,让我彻彻底底地明白了,技术并不是唯一的生产力。一家公司的发展,更多靠的是强力的融资能力(资本),强大的渠道推广能力(营销),很多时候技术只是其中的一部分,充当的仅仅是工具人的角色。

当年那个极力崇尚技术至高无上的青年被现实狠狠地教育了一把。那时的我认为只有纯做技术的才能被人尊重,而那些在产品线做业务、测试,或者跑业务跑市场的人都是不值一提的。然而也正是我那时瞧不起的那些人,直接导致了我待的那家创业公司的衰败。

技术没有好坏

技术没有好坏,更没有高低贵贱,有的只是合适与不合适。

新技术一定比旧技术好吗? 如果这个问题在两年前问我,那么我的回答一定是肯定的!但如果你现在问我,我的回答就不一样了。任何的新技术一定是在旧技术上有了一些改进,否则它就不为是一项新技术。那么我们为何不直接使用它呢?因为这里我们考虑的更多是成本的问题:

  • 新技术必然带来更高的学习成本
  • 新技术的引入必然带来更多的替代成本
  • 新技术如果尚未成熟,当遇到一个坑时必然带来更大的解决成本
  • 如果使用新技术遇到一些无法解决的问题,会带来一些风险成本

当一项技术的使用所带来的收益要远远大于它带来的成本时,这个时候我们才会考虑采用这项技术.可以看到上述我列举的成本对于大公司来说是相当巨大的:

  • 大公司的人员较多,新技术的学习成本非常高(不可能全裁了重招吧)
  • 大公司的项目通常偏大,替换的成本相对较高
  • 大公司产品的功能较为复杂,碰到一些没人遇到过坑也是常有的事
  • 大公司对项目的风险一般是零容忍的:宁可不做也不能冒风险

这也是为什么很多大公司不愿意采用新技术,而是选择沿用之前成熟的技术的原因。所以我们在思考一项技术能否被我们采用的时候,压根就没有考虑过这项技术的新旧以及高低贵贱。至于那些成天在技术社区里发一些技术焦虑文章的人,我觉得社区就应该屏蔽他们,以免误导那些刚入门的小朋友。

追本溯源

当你抛开事物的表面,去追寻其本质之后,你会发现很多东西都是相通的。

两年前我在学习和使用技术的时候,更多的是遵循拿来主义和实用主义,天真地认为我会用这项技术就等于我掌握了这项技术。之所以这么想,归结原因还是见的世面太小了。之前待的小公司,业务并没有那么复杂,用例也没那么多,遇到的情况也相对简单单一,所以简单地使用基本就完事了。

然而,到了大公司之后,那业务的复杂程度以及用例覆盖到的场景远远是你所想象不到的。很多时候,一些问题你是不能通过简单的使用就能解决的。尤其是发生一些诡异的问题时,你不阅读源码了解其实现原理,是无法进行解释的。

举个例子,我们做Android的都用过RecyclerView,可你有阅读过RecyclerView的源码,了解其缓存机制吗?相信你看完RecyclerView的源码之后,你就会知道,其实你所谓的掌握RecyclerView,只不过是RecyclerView的冰山一角。

学习一项技术,如果你只是掌握了如何去使用,那么这只是你迈出去的第一步,后面更重要的是要追本溯源,深究其底层实现原理,这个时候你才会发现,很多技术原来是相通的。

最后

作为一名Android开发的热爱者,只要Android不死,我就会一直在Android开发的道路上前行。无论前途如何曲折,我相信Android会变得更加美好!同时我也愿意持续的帮助更多想在Android这条道路上持续走下去的朋友,这也是我一直坚持写作,做技术和经验分享的初衷。

最后的话我想将上文中提到,我这些年来整理的一套Android进阶学习方法及笔记分享出来,如果你瞧的上的话,记得三连这篇文章支持下我,然后在文末自取便是!

  • 架构师筑基必备技能

写在最后

最后我想说:对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

上述【高清技术脑图】以及【配套的架构技术PDF】可以点击下面链接免费获取

Android学习PDF+架构视频+面试文档+源码笔记

Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

“创业吃过饼,国企养过老,android开发零基础相关推荐

  1. “创业吃过饼,国企养过老” 架构师的头发不是一天掉完的!

    "创业吃过饼,国企养过老" 架构师的头发不是一天掉完的! https://blog.csdn.net/Androidxox/article/details/114640508 床上 ...

  2. 我靠加班把老员工弄走了,昨天老板又给我画饼,一天天浑浑噩噩,Android开发究竟还有前途吗?

    我们首先来意淫一波 5G时代Android即将崛起,Android将与物联网强强联合,配合上5G信息高速传递的模式,再搭配物联网号召的"万物互通"的旗号,同时各位Android开发 ...

  3. “创业吃过饼,这些面试题你会吗

    上市公司 之后我来到了我现在待的这家公司.比起我之前待的创业公司就我一个Android开发,在这里我算是找到了失去很久的团队归宿感.大公司除了人多以外,工作的强度和难度也大大地增加,加班当然也成为了家 ...

  4. (超详细笔记整理)动力节点_老杜 | JavaSE零基础 :P329(方法) - P479

    JAVA基础学习 第二篇文章的连接: (超详细笔记整理)动力节点_老杜 | JavaSE进阶 [P486之后]. 文章目录 JAVA基础学习 方法 Java的主要内存空间 栈数据结构 **栈数据结构: ...

  5. 弘辽科技跨境电商创业,你了解多少?看老司机怎么说

    原标题<弘辽科技跨境电商创业,你了解多少?看老司机怎么说> 先不要希望来一个人就把所有事情全给你打理清楚,如果你不了解跨境电商,就永远没办法把握人才.如果是做第三方平台,那就需要先花一周时 ...

  6. 如果要是你给驼鹿吃松饼_有时候你必须把驼鹿放在桌子上

    如果要是你给驼鹿吃松饼 红帽以其开放的文化而闻名. 人们公开分享他们的观点,互相给予积极和建设性的反馈,并通过协作做出更好的决策. 吉姆·怀特赫斯特( Jim Whitehurst) 最近写了一篇关于 ...

  7. 如果要是你给驼鹿吃松饼_吉娃娃还是松饼? 我在寻找最好的计算机视觉API

    如果要是你给驼鹿吃松饼 by Mariya Yao 姚iya(Mariya Yao) 吉娃娃还是松饼? 我在寻找最好的计算机视觉API (Chihuahua or muffin? My search ...

  8. 我33岁,从国企主管零基础转型大数据开发,年薪涨了20W

    一. 转行背景 1.温水煮青蛙的八年 男,1989年生,211理工科.家庭条件一般,从小没啥追求,人比较怂.2013年本科毕业留在上学的二线城市,到2021年,在一家国企里干了8年,分别干过培训,行政 ...

  9. 真正的老开发:一个无名Android开发的10年程序生涯,走了不少弯路所幸仍在岸上(1)

    本来不想写什么文章的,既没有改变人类的命运,又没有什么轰动行业的事迹,全是一些琐碎的小事. 可是每每看到一篇类似10年总结的同行文章,仿佛都有一个人在问我:"你的十几年怎么过来的?" ...

  10. java基础入门传智播客 源码_Java-_2020年版Java零基础视频教程(Java 0基础,Java初学入门)魔鬼讲师老杜出品...

    不会闲聊!!!不会扯淡!!!小UP只会分享与Java相关的学习资源 还记得那年带你Java入门的一声"吼"吗? B站目前播放量已经快到450多万播放量的Java零基础教程的创作者& ...

最新文章

  1. mendix归还界面如何只显示登录人自己借阅的书籍,而不显示全部人借阅的书籍
  2. 新乡职业学院对口计算机分数线,新乡职业技术学院2020年录取分数线(附2017-2020年分数线)...
  3. 让你的容器兼容STL
  4. Struts工作原理
  5. nodejs下载安装教程(XP版)
  6. 接口入口在什么地方_弱电工程施工图审查要点?有哪些地方需要审核?审核要求是什么?...
  7. plsql轻量版存储过程和存储函数
  8. 统计学第一章--最小二乘拟合正弦函数,正则化
  9. 安卓开发使用ttf文字_Android中正确使用字体图标(iconfont)的方法
  10. CSDN Markdown编辑器帮助文档
  11. python经典笔试、面试题-01
  12. SPFA ----模板 O(kE) (k一般不超过2)
  13. Linux内核 设备树操作常用API【转】
  14. 不融资,如何在大数据BI市场占据一席之地
  15. 别信了大佬的“鬼话”,想造无人驾驶到底进展如何吗?
  16. Ext4文件系统架构分析(三) ——目录哈希、扩展属性与日志
  17. SCSA网络安全----信息安全概述
  18. POI导入Excel文档试题案例
  19. 解决javax.persistence.EntityNotFoundException: Unable to find
  20. 怎么获取url_Requests库(十二)实战获取今日头条24小时热文

热门文章

  1. 专科毕业五年,曲线救国进腾讯
  2. 软件测试工作效率的衡量标准,软件测试人员绩效工作考核详细(33页)-原创力文档...
  3. 微信小程序api视频课程-基础-wx.canIUse的使用
  4. 建议65:总是处理未捕获的异常
  5. PAT A 1034
  6. st visual develop STM8 软件配置教程
  7. 一个游戏程序员的学习资料(全是好书)
  8. grpc-go源码剖析九之dnsResolver解释器以及实战测试coredns
  9. s3c2410 2.6.22.1内核移植
  10. 动态规划入门(走楼梯问题 c++)