你是什么级别的程序员?

简介: 最近在和领导闲聊的时候,聊到了一些关于编程思想方面的东西,让我受益匪浅。尤其是有一个问题让我印象深刻。而且对于这个问题,在过往的面试中也被问了几次。我就把我以往自认为不错的回答重新说了一遍。谁知领导听完,竟然笑了起来,这着实让我有点摸不到头脑。

前言

  最近在和领导闲聊的时候,聊到了一些关于编程思想方面的东西,让我受益匪浅。尤其是有一个问题让我印象深刻。而且对于这个问题,在过往的面试中也被问了几次。我就把我以往自认为不错的回答重新说了一遍。谁知领导听完,竟然笑了起来,这着实让我有点摸不到头脑。

你是什么级别的程序员?

  对于这个问题,相信各位在以往的面试中,应该有被问过的吧。很明显这个是一个开放式的问题,没有标准的答案。我是这样回答的:

  我觉得我是一个中级程序员。为什么这样说呢?其实我对于初级的定义是能干活。对于安排的任务能顺利完成,并解决出现的一些bug。但是对于技术呢?可能停留在使用层面,没有做到知其然而知其所以然。

  目前的我,完成日常的工作已经不是问题。对于某些技术也有一些深入的了解,能设计一些架构,所以我觉得我是一个中级程序员。那作为高级程序员来讲,需要对技术有更加深层次的一个理解,同时还需要有一个强大的架构设计能力,来应对不同场景的业务的一个考验。

领导

  听了你说的这些啊,很明显你的划分是侧重于技术方面。按照你说的,就好像会CRUD并且会使用一些工具,比如说Redis,RabbitMq就是初级程序员。然后又学习了其他的组件,并了解了一些原理,就变成了中级的程序员了。学的东西多了,就变成高级程序员了。

  按你说的这样,那我把要学的,都列举下来。一个一个学完,就成了高级程序员。要是这样的话,那高级程序员应该有很多。 很明显在我们这行,高级的程序员还是少数。你认为的高级程序员,在我这里可能只是个合格的程序员 。并不是能说是一个高级程序员。

领导:SpringBoot是一个优秀的框架是吧?

:这个是的,巴拉巴拉说了一堆的优点。

领导:那开发SpringBoot框架的程序员,应该是个高级程序员吧?

:是的。

领导:那么,他为什么是个高级程序员呢?

:呃呃呃呃呃!

领导

  一个合格的软件,并不是一蹴而就的。就以我们做的东西来说,是我们这个团队用一行一行的代码建造起来的。当我分配工作的时候,会将任务根据复杂的进行排序,然后在根据你们的能力来进行分配。比如说,把一些简单的工作,交给实习生去做。然后把复杂一点的,交给经验丰富的去做。当人员发生变动的是时候,其他人也能快速接手。

领导:那么问题来了,如何能让其他人快速接手呢?

:这个。。。。。

领导:很简单,要是所有人写的代码都一样,看别人的代码就像看自己的代码。这不就解决问题了吗?

:是的。

领导:那么问题又来了,如何让所有人写的代码都一样呢?

:我们可以用alibaba开发的idea的插件扫描代码,制定相应的代码规范,并进行实施。

领导:我们制定的规范,你遵守了多少呢?

:遵守了一部分,有一部分没有遵守。

领导:你看这不就破坏了嘛,让代码风格不一致了?

:额,这个确实是。

领导:alibaba的插件也好,公司的开发规范也罢,只能进行少量的约束,没办法实现强约束,你可以选择遵守,也可以选择不遵守。而且问起来,为啥不遵守。你们能说出一大堆的理由,比如说,项目赶,时间短。

:哈哈哈。

领导:那么有没有什么办法来实现强约束呢?

:这个。。。应该有吧。

领导:是什么呢?

:呃呃呃!这个不知道,尴尬一笑。

领导:这个东西就是框架。

框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

领导:为什么这样说呢?就以你写代码来讲,应该不会出现忘记写;这个吧。

:这个肯定不可能,IDEA会提醒,并且编译都过不了。

领导:这就对了,不按照规则写,直接给你报错。如果我们把定制的各种开发规范封装成一个框架,让你们去使用,形成强约束。这样你们写出来的代码是不是就一样的了。这也就是我们封装框架的原因。想要啥,都能加上去。毕竟开源的框架,面向的是绝大数人,不能面面俱到。

:哦原来如此,学到了学到了。

:那你是如何划分程序员的等级呢?

领导:初级的程序员能根据自己掌握的技能完成相应的工作,然而中级程序员呢除了能完成工作,还能让别人快速的接手自己工作。高级程序员就是把初级变成中级。

总结

  初级的程序员能根据自己掌握的技能完成相应的工作。中级程序员除了能完成工作以外,还能让别人快速的接手自己工作。这也就意味着,写出的代码可读性要好,要保证代码可读性,就需要付出各种的努力。比如说,命名合理,进行相应的抽象,模块划分等等。高级程序员就是把初级变成中级。

  说起来很简单, 但是实现起来却很困难,封装框架只是其中的一种方法。你要问我还有啥方法,我也不知道,因为我不是一个高级程序员。按照我目前的认知,要想成为一个高级程序员,不仅要从技术的方向去考虑问题,还要更多的从的角度考虑问题。

结尾

  很感谢你能看到最后,那么问题来了你是一个什么级别的程序员呢?

  如果觉得对你有帮助,可以多多评论,多多点赞哦,也可以到我的主页看看,说不定有你喜欢的文章,也可以随手点个关注哦,谢谢。

  我是不一样的科技宅,每天进步一点点,体验不一样的生活。我们下期见!

相关文章
|
5月前
|
算法 安全 Java
深入解析Java多线程:源码级别的分析与实践
深入解析Java多线程:源码级别的分析与实践
|
6月前
|
Java 程序员 Linux
浅析JAVA日志中的性能实践与原理解释问题之使用日志框架记录日志问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之使用日志框架记录日志问题如何解决
|
6月前
|
运维 中间件 数据库
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
|
8月前
|
JSON Java 数据格式
动态修改JAVA日志输出级别
动态修改JAVA日志输出级别
|
架构师 Java
31-公司级别的JVM参数模板,拿走不送
就目前大部分互联网创业型公司,其开发的系统几乎都不会考虑JVM性能优化这一块,哪怕一个团队中有1个技术Leader或架构师,往往都没有太多精力去把控到特别细节的地方上,以及对JVM也没有那么的精通与熟悉,这也导致一个很大的问题,大部分工程师开发完一个系统后,部署生产环境的时候根本对JVM参数什么的设置一窍不通,也就是默认的JVM参数进行系统的运行,等系统在某个时段出现问题后,开始大量分析找bug,很久也未能找出什么原因。
112 0
|
C# 数据库
【C#编程最佳实践 二十】日志与日志级别
【C#编程最佳实践 二十】日志与日志级别
172 0
|
Java
JAVA日志框架中的日志级别
JAVA日志框架中的日志级别
371 0
JAVA日志框架中的日志级别
|
缓存 负载均衡 测试技术
到底什么级别才算是高并发
到底什么级别才算是高并发
1126 0
|
网络协议 API uml
HttpClientFactory日志不好用,自己扩展一个?
.NetCore2.1新推出HttpClientFactory工厂类, 替代了早期的HttpClient,并新增了弹性Http调用机制 (集成Policy组件)。
HttpClientFactory日志不好用,自己扩展一个?
|
设计模式 监控 程序员
各个级别程序员的区别
  标题说的有点玄乎,在网上看到的一篇文章,提到了一些大牛具备的几种素质(或者说应该养成的习惯),值得反思。   部分原文如下: