新人程序员:实习到转正入职快1年了,Leader还是让我干杂活,内心很不爽,该怎么办?
前言
众所周知,当代的互联网公司中充满了套路,比如HR会把年终奖摊平到每个月跟你谈薪水;把年终的月份说得特别多,等你发现已经来不及的;还有的明明跟你说的是A岗位结果让你去做B事情;各种套路数不胜数,简直都不叫个事。但要说其中最让人不能忍受的,我个人觉得还是:面试造火箭,进厂递扳手!永无休止的杂活。
文章配图均来自电影《当幸福来敲门》,一部非常励志的电影。当你觉得生活很难的时候,推荐大家去看看,可以给自己充充电。
新人打杂的普遍现象
虽然大家都没有放在明面上说,但我个人认为互联网圈子里,其实是有一个杂活文化的。而且也不光是互联网,各行各业都差不多,总有些类似端茶递水谁都不愿意但是总得有人干的活,这些活就被称为杂活。当我们作为新人刚入职的时候,尤其是校招生,几乎很难躲过干杂活的命运。
拿自己做个简单例子,当年刚毕业,还是做后端开发的时候,接收过别人的烂系统,面对几万行的“shit代码”。帮别人找Bug、修Bug。Bug一找就是一大堆,结果还被老板误以为是我写的。除此之外,还读过别人一个函数就长达三四千行的又臭又长的代码。要说这些也都不是什么大问题,最让我不能接受的还是日复一日的增删改查。明明是别人系统的问题,大半夜的有人喊你起床。这种滋味真的是一言难尽。
转移动开发后,情况也没好多少。做过一些边角的需求,大多情况下还是只给安排写一些逻辑非常简单的增删改查还有页面UI,其他岗位的朋友同学也都有类似的经历。杂活好似就是一个魔咒,又像是一个考验,没有人能够幸免。
恶性循环是怎么形成的?
说起打杂,说起那些谁都不愿意干的枯燥无味的事情,大家都会有一股怨气。这种活是典型的付出多回报少。因此而不满。其实就我的经历而言,我倒觉得年终奖、晋升机会、团队中的地位这些因素看起来各个举足轻重。我觉得长时间打杂最大的问题是,会让人陷入一种原地踏步甚至是倒退的恶性循环。
举个例子,今天老板有需要让你跑一个SQL做个数据,你照做了。你原以为这个只是权宜之计。老板狂喜,简简单单的就达到了他的需求。所以后面每天都有这样的任务等着你,你成为了一个莫得感情的工具人。SQL我们都知道,里面技术点并不多,做来做去也就那么一点。不出两个礼拜,就可以累计丰富的SQL运行经验。那么两个礼拜之后,再写SQL还会有热情吗?
一个人是很难把自己没有热情的事情做好的,如果是厌恶的事情就更加做不好了。导致的结果就是,每天抱着怨气做着自己不喜欢的工作,也很难尽全力做出让自己满意的结果。自然是更难让老板或是别人满意了。于是乎,你的老板上级会觉得你不行,连这点简单的小事都做不好。他们才不会在乎你喜不喜欢做这些,他们的安排是否合理。人的天性如此,大多数情况下,比起反思自己的问题,人们更喜欢在别人身上找问题。
于是你做的事情越来越边缘化,你自己也越来越不喜欢,你觉得在团队中的位置越来越不重要。直到你再也无法忍受一走了之,这就是恶性循环。
前辈们将它称为瓶颈,这是很多人到了一定职位很难再向上进步的重要原因。这种恶性循环的力量非常大,一旦陷入其中非常难以脱身。跳槽、换一个环境是最快最高效的方法,但是换环境并不能解决所有问题,也不是所有人都有条件可以支持自己随意跳槽。所以,引出我们接下来真正讨论的问题。
作为一个刚入行的新人,在最渴望也是最需要快速提升技术水平的时候,每天安排的都是杂活,该怎么办呢?
杂活做的再好也是杂活
首先我们来思考一个问题,这个恶性循环的第一次闭环是怎么构成的?往往是因为老板交给了你一个不太重要的事情,你没有做到他满意,达到他的预期。并且他也没有告诉你,而是采用下次给你安排更简单更不重要的活来解决你达不到预期的问题。
从这点上来说,如果我们想要摆脱恶性循环,那么我们要做的是扭转上级的这个看法,把他给我们的任务做得非常出色,以此来让他给我们安排更好的机会。但其实这条路是很难走通的,原因也非常简单。一个是人心的成见很难推翻,另外一个是上级也并不会在杂活上投入很多关注,你做得非常好,也很难被关注到。
杂活做的再好也是杂活,做得好也拿不到好绩效,争取不到晋升的机会的。所以先摆正认知,不要和自己较劲。不要觉得我已经把手上的事情做得这么好了,怎么老板还是不认可我?于是心态失衡,从此破罐子破摔。这样的事情我也经历过,当了好一阵子咸鱼。
所以首先心态要摆正,我们要突破这种循环,最重要的事情不是老老实实地手上的杂活干好,而是要在其他地方寻找机会。
杂活里淘金
要找机会最好的当然是从手头的事情下手,这其实和刚才说的并不矛盾。因为很多看起来很杂的事情的背后藏着很多机会,只是因为大家都回避它,所以没有被发掘出来。
举一个例子,之前有一次团队里让一个新人分析数据。结果新人不仅是照着要求完成了分析,而是对里面的内容进行了详细的思考和论证。这一论证就发现了很大的问题,我们的数据源头以及处理的逻辑可能藏着bug。于是这条线牵扯出了一系列重要的任务,这些事情他当然理所应当地参与了其中。虽然名义上还是有其他更资深的人牵头,但是我们都知道实际上这个新人已经成了这个事情的核心。后来果不其然,没过多久新人的地位大大提升,虽然职位没变,但是在我们心里他晋升已经是板上钉钉的事了。
当然凡事无绝对,并不是所有的杂活当中都藏着机会,有些杂活就只是杂活而已。至少我们可以试着换个角度思考一下,说不定就能有所发现呢?
刷存在感
如果我们从自己内部的工作当中找不到挖掘的点,那么我们就只能从外部获取机会了。想要获取机会,只有一种方式就是争取,但是争取的方式可以不一样。既可以明显地争取,也可以委婉地表现。刷存在感就是一种委婉的表现方式,用各种方式告诉老板你很厉害,让他重新审视你。
刷存在感好像是一个贬义词,其实在职场当中这是一个中性词,我们操作的好的话也可以是褒义词。职场当中有很多既可以刷存在感又可以给别人留下好印象的方法,举个很简单的例子就是写文档。我亲自测试过,非常非常管用。因为工程师们普遍不愿意写文档,要写也是被迫的随便写写,很少有人能把文档写好写清楚。你完全可以做植树的前人,把你负责的这一块或者是大家共用的某一个领域的文档写清楚。
其实大家都需要文档,只是大家都懒得写。这样你写好了文档,大家看到文档肯定首先想起你。以后组里来新人了,或者是要出去宣传介绍团队了,Leader要向他的老板展示或者是汇报某些工作了,可能都会用到你的文档。如果你有能力,你不仅可以写自己的文档,还可以把其他领域的文档也健全起来,很多东西你写文档的过程就是理解的过程。你写过一遍文档之后,可能比当前的负责人更加清楚。一来二去之下,很快就可以帮助你建立起团队里的口碑以及刷到存在感,并且还不会引起反感,因为你在帮助整个团队贡献。
除了写文档之外,还有一些其他的方式,比如做技术分享,在内部写写技术博客等等,也都是可以的。不过我本人还是觉得写文档效果最好。
从上下游入手
既然自己的工作当中没什么营养,其中也挖不出什么价值的话,我们还可以从上下游当中入手。如果上下游都在自己团队内部的话,可以做的就很多了。比如你可以研究一下他们的代码,学习一下其中的设计以及架构。自己研究学习完了还可以找负责的同学聊一聊你的理解,请教一些问题。
一来二去混熟了之后,你可以直接说你对他们的系统非常感兴趣,如果可以的话,希望参与其中帮帮忙打打下手。只要你能参与其中,也许刚开始的时候名不正言不顺。但是没关系,只要多参与几次,那么你不是成员也变成成员了。如果后面团队还有新人入职,那么你找老板沟通沟通,把之前负责的杂活甩掉或者是分担出去一些,也是非常自然的事情。
如果你的上下游不是一个团队的,其实也差不太多,可以找他们聊聊看,了解一下情况。比如他们的痛点,他们的诉求,以及他们希望你们可以完成但是没有完成的事情。只要你想清楚了、聊清楚了,完全可以找到老板把这档子事情揽过来做。和上面刷存在感的方法比起来,这种方法更加主动,难度也更大,很多人会因为脸皮的限制不敢行动,或者是不知道如何行动。但是这种方法的见效速度比较快,可能几个月到半年就可以完成逆转。
当然最后的办法就是直接找到老板说出你的不满,有些老板会在意下属的想法,愿意帮助你改变给你机会。有些老板可能会糊弄你,给你画饼把你安抚下来。就我个人的经验而言,成功率不是非常高,不过也值得一试。
其实身处其中,我们怎么选都不容易。但不管怎么选怎么做,可以肯定的一点是都需要我们付出额外的努力,想着一些骚操作就可以升职加薪的那是不可能的。毕竟即使真的有人赏识你、器重你给你机会,你也要有能力把握住,不是吗?
天道酬勤
新人刚入职场,一片新奇,过去的知识和经历派不上用场。很多事物不懂,充满了未知,可能也没有一个很好的领路人指点,只能靠自己摸索,的确不太容易。但反过来说,职场中的好学生其实并不一定成绩好,能够自己从环境和其他人身上学到自己想要的,才是真正的好学生。奋斗吧!骚年!
在此,我也将我六年在在阿里积累的技术经验、学习路线及笔记文档,免费分享给大家,希望能帮助到有心提升技术的朋友!
由于篇幅原因,下面以截图展示部分内容。如有需要以下完整学习笔记PDF,可以点击这里免费自取!!
- 架构师筑基必备技能
目前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响应式编程框架设计
- 360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
- Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点:
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析
- NDK模块开发(音视频系列)
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、机器学习
- Flutter学习进阶
2019 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
…
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
由于篇幅原因,如有需要以上完整学习笔记PDF,可以点击这里免费自取!!
前路漫漫
追梦的路上总是艰难,我个人的看法是,前路漫漫困难重重,但至少不该裹足不前。虽然未必能够如愿抵达,未必能够得偿所愿,但能进一步是一步,每前进一步总有一步的欣喜,也多少会见到一些新的风景。就像我做公众号,其实我也没有把握一定能够坐拥几十万粉丝,真的成为自媒体大佬,但能写一篇文章,能多坚持一天,总要离目标近一点。这样一点点积累下去,说不定有朝一日蓦然回首的时候,发现已经达成所愿了。
我不知道读者里有多少这样前路迷茫需要鼓舞的人,希望今天这篇文章能够给你们一点鼓励和力量,勇敢地出发,朝着自己梦想的地方前进。你也可以点赞关注我,与我一起前进。