做技术,如何使自己在重复性业务中持续提升?

2023-02-23 10:10:22 浏览数 (1)

前言

每个工作两年以上的技术人都应该想过,自己每天这样的这些业务代码,并没有什么技术含量,也没有什么拿得出手的项目,在公司的始终处于螺丝钉的地位,觉得自己目前做的一切虽然对公司有价值,但是似乎对自己并没有什么价值,难道一成不变的工作内容对我们真的没有任何价值么?

1

如何定义工作的意义

这是一个老生常谈的问题,有人说工作的意义是生活、生存,有人说工作的意义在于让自己实现自己的价值,其实都对,简单来说工作就是为了过上自己想要的生活并且实现自己的价值。

为了生活的目标很容易实现,并且很容易持久实现,但是要实现自己的价值就取决于自己对自身价值的认定了。

2

应对重复性的惯性

人在刚开始做某事的时候,通常是充满激情的,想着如何将事情做好、做优,甚至不允许出现一丝一毫的纰漏,并希望得到他人的认可,感觉自己的生活充满了希望。但是如果让人持续的做某件事的时候,通常,人的大脑就会排斥这种重复,追求未知的世界,这种行为在简单、技术含量低的事情上发挥的更为明显。

3

我看到的三类人

第一类人,是认为自己的技术在阿里 P8 甚至 P9 级别,却只在一个小公司写着简单的业务代码,时刻感觉自己被大材小用了,自认清高,不屑接受任何人的建议,也不屑与别人交流,但是,他们在工作的进行中会尽可能的尝试简化重复性工作,比如自动化、优化逻辑使得代码更简单,善于学习,但是也喜欢半途而废,写出自认为比较厉害的代码,喜欢展示给别人以获称赞。

我认为努力并展示给别人以获称赞,这并没有什么不对,但是这样会使得自己过分高估自己,别人觉得你是 10 分,你信了,也认为自己就是 10 分,这不好。我个人觉得得减半,取5分,这样自己才有进步的空间,尤其是在 20 岁出头的年纪,别人夸多了很容易飘,给别人的感觉就是自己懂得比很多人都多,但实际上还欠缺很多,自带天赋和优秀的属性更应该找好正确的方向去慢慢前进,去经历更多。别人觉得好未必是好,得客观看清自己,不过分高估,也不妄自菲薄。

● ● ●

第二类人,是比较常见的一类人,对工作的激情和积极性很低,更多的是按部就班的完成上级安排的任务,自身的提升完全依靠工作中遇到的问题,很少去主动规划自身的能力体系,缺乏好奇心和刨根问底的心,这类人的工作态度为 能问则问,能查则查,能找别人帮忙写绝不自己动手,不追根问底,只在乎结果,而不享受过程,所以这类人在面对枯燥的工作时通常烦躁不堪,很难从中获取价值。

这类人身处技术圈子边缘,徘徊不定,难以突破初级这个瓶颈,我认为这类人最应该培养的是:代码思维、刨根问底的态度(↓下面会讲到↓)

● ● ●

第三类人,属于每个行业都会有的奇葩,这类人的明显特点是固执己见,在工作和同事协作会按照自己的想法一意孤行并不听前辈、同事的建议和意见,认为自己永远是对的,认为自己什么都知道,不与任何人为伍(当然,同类人除外),这类人对技术的认知大多停留在 听说阶段、见过阶段。

这类人面对工作会想尽一切办法采取投机取巧来面对问题,自身出现问题会甩锅给别人以时刻证明自己是对的,这类人不必多说,职场生涯会很难走,甚至夭折失业转行。

ps:阿里 P9 泛指通常指的是阿里巴巴一级域架构负责人,这个层次的人已经可以影响到事业部业务决策,你可以理解他们为阿里巴巴的腰部。

4

培养代码思维

代码思维这个名词阅读文章的所有人应该不陌生,即 任何问题、任何想法都想使用代码来实现、优化,自己有任何想法都想使用代码来解决问题。

代码思维虽然在营销、创业方面不适用,但是在技术人发展初期非常的有用,它会让你始终保持一颗好奇心,然而促使进步最好的良药就是那一份好奇心。

比如说,你们公司的某个项目经常性的宕机而又追踪不到问题,这个时候聪明一点的程序员会想到使用 skywalking 来追踪一下到底是哪里出了问题,而没有代码思维的程序员则只会对着空白的错误日志懊恼不堪,并且责怪产品设计有问题,导致代码过于复杂问题太多。

再比如,在写代码的时候经常因为提交错了一个文件,每次都要去百度或者笔记查怎么撤销提交的文件,然后还要在命令行写一堆命令撤销,每次这个操作都会耗费你5分钟,甚至 10 分钟的时间,有代码思维的同学就会想我能不能自己写一个代码编辑器插件,来实现右键菜单直接添加一个撤销提交的选项,于是,有了目标,阅读了插件的开发文档,自己着手写了一个插件,不仅解决了实际问题,而且还学习了如何编写插件的流程。

总结一下,程序员思维就是实际问题和技术的碰撞,提高自己用专业知识解决问题的能力。

ps:第二个例子,是真实遇到的问题,插件我于 2019 年编写,虽然只是一个简单的插件,但是节省了我几百分钟的时间。如果你想了解这个插件,那么你可以在公众号回复:插件。

5

刨根问底的好处

往往只有在面试之前,我们才会深刻认识到,自己的能力都仅仅停留在实践阶段,理论知识早已忘空,那么,为什么理论知识会忘?因为你并没有刨根问底的了解过这些问题,比如说只是枯燥的记住了 :SpringMVC 是由 Servlet 实现,以及和 Struts2 的区别等等,那么我问你,SpringMVC 的静态资源解析逻辑是怎么样的,视图加载器的优先级又是怎么调配的,拦截器和过滤器的执行有什么区别、有什么特点等等等等。(如果你对这里有兴趣可以阅读一下文章: 一次请求 SpringMVC 到底做了什么?)

此只是举例说明,都可以通过搜索引擎找的到答案,但是搜索引擎只会直接告诉你答案,有的答案甚至是错误的。答案在大脑中存在的时间是非常短暂的,就像我告诉你今天的考题选择题的答案是 ABDCDADC 一样,你顶多记到明天,后天就只记得开头的A甚至完全不记得了,而且这不会给你带来任何实质性的进步,你需要做的是翻阅源码,翻阅官方文档,这才是正确的姿势,因为你想了解一个问题的本质就需要寻找本质。

在工作中,遇到问题,首先去搜索引擎查阅资料,然后解决问题,问题解决完后,不要沉浸在喜悦和骄傲中,应该去探究发生这个问题的根本原因,以及如何规避这个问题,这在以后再做这件事的时候会助你行云流水,每次都吸收一点新的知识,这件工作也就有了它的意义。

ps:这里第二段涉及专业知识,但是提到的理论是对于任何职场人士是通用的,即解决问题人人都会,但探究问题的心不是人人都有,做到比别人更进一步,自然也就会更胜一筹。

6

广度和深度

个人见解,在入行初期,最应该提升自己对本行业的广度,即了解的技术越多,遇到的问题越多,越能够加速成长,持续进步,第一步不应盲目钻研某种业务和技术,现在的招聘需求写的很明确,要求你会的东西很多,要求你精通的东西很少,企业要的人绝对是善于解决问题的人,而不是只会复制粘贴的 CV 工程师,这一点要非常的清楚。

但是很多小伙伴不知道如何进阶,或者是感觉自己已经遇到了职业发展瓶颈,这里举几个例子,供参考。

后端方向:在熟悉各种主流框架的开发前提下,应该尽可能的去分析源码,参加开源,逐步提高自己的技术广度和深度,源码晦涩难懂仅仅是刚开始尝试阶段的感受,实在读不懂,就去看别人的分析一步一步跟着阅读,推荐 Mybatis 、SpringMVC 作为入门。

安卓方向:安卓我了解的比较少,但是我个人认为移动端 性能 、交互 永远是第一位的,所以可以将这两个点作为深度研究的方向,试想你要是能把一个体积庞大运行很卡的软件做到很流畅,企业肯定抢着要,尤其是互联网企业。

前端方向:前端在近几年发展迅速,各种框架层出不穷,我认为前端广度不应扩展太宽,基础的 ES 标准一定熟记于心,玩转主流框架的同时,应该逐步深入了解某一框架,达到熟练甚至精通标准,可以尝试维护一套自己的代码库,或者是开发一些自己常用的插件,让自己的工作中可以以更少的时间产出更多的产品,毕竟框架再多,也都是换汤不换药。

其他行业:对于其他行业而言,我只能说,互联网行业发展迅速,适当的了解编程或者互联网的其他行业,不管是对自身工作还是对未来发展都是有一定好处的,但是不要盲目的去学习编程(比如 Python ,应该在自己了解基础电脑知识和编程的概念的情况下去尝试),一旦失败,就会产生很强烈的挫败感,人对于挫败感的接受能力一般很差,继而对编程甚至互联网行业失去兴趣。

N

写在最后

本文从重复性工作为切入点,讲了很多在实际工作中遇到的问题和解决方案,但是每个人的经历、所处的阶段、甚至是认知的不同,都会对每个点都自己独特的见解,但只要有着 “乐以忘忧,不知老之将至云尔” 的精神,相信每一个人在自己的小宇宙都会有所成就。

其实,我从一个 16 岁稚嫩的骚年到 21 岁的现在,一直有一股强有力的信念支撑着我,如果你想了解的话,在公众号聊天窗口回复:经历 查看吧。

0 人点赞