赞
踩
最近群里有一个小伙伴询问说,自己面临很大的困扰,在5K的程序员和8K的卖房中介当中不知道如何选择。对我来说这个问题当然是很明确的,虽然5K的程序员薪水不高,但是毕竟是技术岗位,未来的涨幅可期。拿我来说,我在毕业的时候薪水也并没有比他高多少,但我在毕业的前三年薪水翻了三倍,但如果是房产中介,显然是不可能的。
所以今天和大家聊聊程序员前期发展和薪水的问题,希望能给职场小白们一点帮助。
前几年阿里在校招的时候,打着的旗号就是叫“阿里大学”。把阿里巴巴这家企业比作了学校,我们进去不是为了赚钱,也不是为了打工,而是另外一个层面上的学习和深造。所以内网当中很多离职的小伙伴发帖都说自己不是离职,而称自己“毕业了”。
但你仔细想一下就会发现,除去企业宣传的目的和手段之外,还真的有那么几分道理。每年都有大量的工程师从BAT离职,进入各行各业大小公司当中继续发光发热,某种程度上来说互联网产业的发展所需要的大量人才正是这些大企业提供的。当你去面试,当你去找工作,你简历当中BAT的工作经历,就像是清华北大的文凭一样,不说100%面试通过,但至少可以给你争取来一个面试的机会,不至于倒在简历关。
当初我在阿里认识一个非常非常资深的前辈,他在阿里十来年了,但因为各种原因级别不是很高。我当时问他,既然你对现状如此不满,为什么不想着离开寻找更好的机会呢?
他沉思了片刻跟我说,他说我现在在这里虽然待着不顺心,但是我接触到的人都是非常优秀的。我遇到问题,还可以和你们讨论讨论。我如果出去了,我要是再遇到问题,可能连一个讨论的人都没有。
我当时听听只是觉得有道理,现在再回想起来,感受非常深刻。三观、格局、能力,能够进入大公司的,这三个方面一般都不会太差。这点是小公司比不了的。
对我自己来说,我薪水增长比较剧烈的节点有两个,第一次是以高级工程师的title加入阿里,第二次是从阿里出来。两次差不多都有50%以上的增长,这也是我三年能翻三倍的主要原因。这个例子当然不只是说跳槽涨薪这么简单,在这背后其实还有一些细节上的东西,这些才是我要说的重点。
跳槽涨薪是很多人的共识,毕竟和10%每年的普调比起来,跳槽的涨幅至少在30%以上,显然更有吸引力。但是我必须要说的是,如果只是以钱为导向来跳槽是很难获得很好的发展的,也就是我们常说的陷入局部最优解的问题。比跳槽更重要的是关键节点的选择。
所谓的关键节点也就是对于职业发展有巨大提升的节点,对于一些职业老人来说,这样的选择很多,比如加入一个蓬勃发展的创业公司,拿一大把股票,等公司上市了就财富自由实现人生梦想。或者是加入一个中小型企业身居高位,也一样可以收入颇丰。但对于新人而言,暂时还没有这些机会,但这当中也是有很多可以考虑的因素的。
对我而言,我优先考虑的是未来的发展。钱多钱少也需要对未来有利,毕竟职业生涯是一段长跑,不能只看眼前。那什么是对长期有利,对未来有利的呢?这个问题就简单了,其实就是那些可以成为简历加分项的内容。比如说加入了知名企业大公司,比如说公司核心技术部门,掌握了核心技术,再比如说登上了管理岗位,率领团队。这些内容都是加分项,对于长远的发展都是有利的。
如果我们把职业生涯看成是一款游戏的话,整个发展历程大概是工程师、资深、Tech leader、总监这几个阶段。一般做到总监的就已经算是身居高位了,越往上发展越难,我也不了解总监再往上应该怎么划分,所以大家就先将就着这么看吧。
对于新人来说,从普通工程师到资深的门槛是相对比较低的,也是比较容易迈过的。即使在公司当中无法获得晋升的机会,跳槽就可以了。一般来说,快一点的可能一年,慢一点的两年也就足够了。中大型企业都有严格的晋升窗口,一般是每年一次。所以很多新人待了一年多以后眼看着晋升无望都会选择跳槽,这也是常规操作,包括我当年也是这么干的。我现在也依然这么觉得,从普通工程师到资深的过程可以不用熬晋升,跳槽也是一个好选择。
但是从资深再到Tech leader就比较难了,很难通过跳槽实现。因为你要带团队,需要获得老板足够的信任,并且做出足够的业绩能够让大家信服,这显然不是跳槽可以实现的。而且Tech leader负责的也不再是个人的业绩,而是整个团队的产出。它负责的责任以及带来的产出都远远比资深工程师大得多,那么对应到薪水上显然Tech leader的收入也远比资深要更多。
这里的差距往往不是体现在工资,而是在股票上。一般来说好一点的公司的Tech leader一年上百万的股票分红是非常正常的,这样的收入远远不是工资的几K或者是十几K的差距能够弥补的。这也就是人们常说的天花板问题。很多资深工程师跳来跳去,薪水涨了很多,但是在股票上却一直没有突破,我觉得这是挺遗憾的。
当做到了资深以后,如果不能再往上一步成为技术管理,再跳槽带来的只有纸面上的薪水差距而已,对于巨大的股票收入差距来说,不值一提。所以对于毕业了两三年已经成为资深的同学来说,这个时候最应该考虑的是找到一个适合自己的环境扎根沉淀,好好提升自己各方面的能力,为以后向上走做好准备。
在我还是新人的时候,觉得职业规划很虚,虚无缥缈看不见摸不着完全没有意义。但是当我工作了几年获得了一些提升之后,我觉得之前的看法太浅薄了。职业规划非常重要,只是它在前期体现得不是很明显。它的核心只有一个问题,就是我们最终想要做到什么样的职位,成为一个什么样的角色。
想做CTO和想要通过工作财富自由的人也许刚开始都是成为程序员,但是他们之后的发展路径肯定是完全不一样的。宏伟的目标往往不是用来实现而是用来指路的。
什么意思呢?简单来说,就是我们职业生涯前期的时候,往往是薪水和工作内容导向。想的是找到一个我比较感兴趣的领域,然后获得薪水上的提升。在这个导向下做决策是比较简单的,你只需要综合考量两点就可以了。但是当再进一步发展之后,尤其是选择面拓宽了之后,会有非常多的选择迎面而来,大中小型公司、外企、创业公司,各种各样的机会任君选择。在这种情况下应该怎么做决策呢?
你是在现在的公司一直混着呢,还是跳槽加入创业公司搏一把呢?或者是降薪进入外企养老呢?还是进入pdd、头条这样的企业最后搏一把呢?你接下来需要提升的能力是什么呢?你再往上走的路在哪里呢?
这种迷茫的时候回想一下自己的目标,就会清晰很多。比如想要成为知名公司的CTO,那么应该继续扎实自己的能力,不仅是技术能力,而且还要有业务视野和思考。比如想要财富自由,那么应该找一找市面上发展比较好的创业公司,争取以一个比较好的offer加入。如果是要退休养老陪伴家人,那么加入一些加班较少的外企也许是一个好选择。总之,有了目标,才会知道该往哪里走,否则跌跌撞撞终究难免错付。
我自己做Android开发已经是第8个年头了,见证了太多人的起起落落,印象很深一个同事,跳槽阿里薪资直接double,但也看到很多人镀着“大厂”的金四处碰壁,终究还是倒在了技术上!
以下分享一下我几年来具体的学习路线及笔记文档,希望能帮助到有心提升技术的朋友!
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
2019 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
…
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
如果想持续在程序员这一行做下去,进大厂是非常关键的一步。如果一直在小厂兜兜转转,几年以后你的收入很难再往上升。相反进入大厂后,你的收入会有保障,而且大厂会是你以后发展很好的跳板。
有一句古话叫做:五岳归来不看山,黄山归来不看岳。
BAT这样的公司就像是黄山,你一旦攀过,之后再看其他名胜,虽然各有险峻深幽,但对于爬过黄山的人来说,可能都只不过是似曾相识罢了。若干年以后当你离开阿里,前往其他规模相异的公司,说不定你会发现这些是比技术更值钱的财富。
最后,我想说程序员何苦为难程序员,没有人可以永远年轻,31岁进阿里并没有任何问题。相比于少年天才,我更欣赏大器晚成,因为这会有一种久经雕琢和磨砺的豁达与开阔。
最后,祝愿大家都能有一个美好的职业发展,我和你们一起努力。
今天的分享到此结束,衷心祝大家每天都有所收获。如果还喜欢今天的内容的话,请来一个三连支持吧~(点赞、收藏、关注)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。