查看原文
其他

刚入职大厂,老板让我转语言。。

鱼皮 程序员鱼皮 2024-03-04

大家好,我是程序员鱼皮。

前两天一位刚入职大厂的朋友向我提问:程序员在职业生涯初期如何面对 “转语言” 的情况?

问题再具体一点:比如说刚毕业,工作需要用到什么语言就得用什么语言。如果工作两年期间一直在不同语言中转换,会和一直学同一门语言的人有很大的差距么?比较好奇鱼皮之前在 tx 应该不是 java 的天下吧?你是怎么去看待这个问题的?





这个问题挺不错的,应该也是很多同学关注的问题,所以鱼皮专门写了篇小作文~ 以下是我的回答:

首先,刚毕业肯定还是尽量多用同一个语言比较好,尤其是 Java 这种高度封装、且比较成熟的语言,“能写出代码” 和 “能优化代码” 是存在很大差距的。比如并发编程和 JVM 相关的知识都是需要系统学习的,别看平时写增删改查一般用不到,可一旦在生产环境中遇到内存泄露、并发冲突、GC 等问题就容易一脸懵逼,到时候只能向别人求助。

可人在江湖身不由己。很多时候,工作需要的语言可能和我们的方向不同,比如我在 tx 时前端、Java、PHP、Python、Scala 都写过,这种情况我们无法决定和避免,我们能做的只有改变自己。

我建议重点关注自己 3 方面的提升:

1、学习自主性

自己要始终坚持某个语言的学习。如果工作忙,那就每天阅读 1 - 3 篇技术文章,这也是一个持续进步的过程。

像我刚进公司那会儿天天看公司内部的知识库,还参与了公司内部开源的 Java 轮子项目。参加开源的好处是你有问题可以直接和作者大佬交流,提升是飞速的。除此之外,我还跳出了 “小组的限制”,自主学习整个大部门(几千人)的  Java 基础建设,比如阅读一些类库、框架的源码,并且尝试自己写轮子、优化别人的轮子、帮助一些新人答疑等。再到后来,我自己编写了一些 Java 的轮子(比如消息推送 SDK)并且在公司内部开源,陆续得到了一些同事的使用和感谢。

只要能做到长期自主学习一门语言,哪怕每天投入的时间不多(或者不是工作的主语言),两年之后你的进步也是很大的。但如果两年的时间内,你一直在跟着公司业务写重复的增删改查,哪怕一直在写同一门语言,也不会有什么技术上的成长。

2、学习通用知识

有句话说的好,语言只是工具。

工作时间久了你会发现,同一方向的语言(比如后端语言 Java、PHP、Go)写起来基本没什么区别。

有多个方面的原因:

  1. 现在的框架封装的都太好了,基本上拿来就能用,不需要前期过多的技术学习。
  2. 项目开发中绝大多数代码都是业务逻辑,而不是某个编程语言特定的代码。
  3. 除了语言和框架外,很多技术是独立于语言的,比如后端的数据库、Redis、MQ 等中间件,算法、设计模式、软件开发原则等思想。
  4. 无论什么语言,开发项目的流程、方法和工具都是一致的。比如都需要进行需求分析、系统设计、开发、测试、部署上线的流程,都需要用到流水线发布、灰度发布、多环境隔离等。

就用鱼皮本人来举例,我的主语言虽然是 Java 后端,但临时帮同事开发  PHP 项目时,完全没有任何压力。因为框架和编程规范别人都帮你搞好了,只需要写接口、写业务逻辑(if else)就行了,部署项目时用到的 Linux 命令也早都烂熟于心。

所以我的建议是,多学习语言无关的通用知识。

比如业务理解能力:能够清晰地讲解出你负责的业务,比如某个功能的流程、某个业务存在的意义和价值等等。当时我的组长还给了我一个建议:除了了解自己的业务外,再把视野打开一些,关注整个部门(同事)的业务,从更高的视角整体分析问题,而不只是关注自己的 “一亩三分地”、只是拧自己的螺丝。

此外,还有上面提到的通用后端技术、通用的软件开发思路和方法论、开发项目的方法和工具栈等等。多学这些通用知识,思维灵活一点,无论你转什么语言,都有自己的不可替代性。

3、高效自学能力

你学过的语言越多,学新语言越快。

但如何快速转语言或者上手呢?我认为高效自学的能力是最重要的。

这个能力其实是对多个能力的概括了(我实在没想到一个更好的概括词),比如文档阅读能力、归纳总结能力、问题解决能力等。

其中,文档阅读能力是快速输入新知识的核心,因为工作中很少会有保姆级教程,一般大家都是通过文档(甚至口头)交流。

这些能力如何体现在工作中呢?比如我要接手同事的项目,第一件事就是要文档;读完一遍文档后,我会自己再简单地归纳总结,然后基本就知道项目如何运行、有哪些开发规范、如何部署;在遇到报错时,我也能凭着自己过去踩坑的经验和搜索能力,很快地解决问题。

有了这些能力,学什么语言都很快。我关注到的很多大佬,都有跨语言的能力,能够更灵活地应对不同的挑战,发展机会也更多。

但是,很多初学编程或者刚毕业的同学容易保留 “学生思维”,比如什么都去问别人、没有教程就不会做、从来不写总结、经常重复踩坑等等。这些都是职业发展的阻力,需要刻意改变。



OK,以上就是本期分享,希望大家都能成为一专多长、各路开花的强者~

👇🏻 点击下方阅读原文,获取鱼皮往期编程干货。

往期推荐

我们两岁啦!

告别 if else,这款流程引擎真香

骚操作!前端开源项目悬赏改 Bug,500 - 1000美元/个,还剩 278 个

拒绝拖延!我是怎么提高行动力的?

我做了个工具,几秒就能生成项目!

年少不知 Base 好,错把总包当成宝!

继续滑动看下一个

刚入职大厂,老板让我转语言。。

鱼皮 程序员鱼皮
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存