如何辨别一个程序员水平的高低?

前言

前两天,在知乎上看到如下一个提问:《如何辨别一个程序员水平的高低?》

                                  ↓↓↓

                       

今天我们就这个话题,一起来做个讨论。

首先大家可以先短暂思考一下,程序员的水平高和低可以怎么辨别?高水平的程序员长什么样子,低水平的程序员又长什么样子?

我自己从不到20人的互联网小公司开始干起,经过自己的努力,最终成功进入国内一线互联网公司,期间看到过太多水平低和水平高的程序员了。

这里总结了如下四点事实标准供你参考:

一、项目落地能力

这一点我认为,是程序员最基本的能力,什么意思?

如果领导安排你一个完整需求,从详细设计到功能开发再到项目上线,你都能自己一人主导和搞定,无须他人辅助你。(这里强调一点,代码质量一定需要重点保证哦,不能上线后三天两头出BUG,要让别人给你擦XX)

做到这一点,我认为最多只能算是一个合格的程序员。如果连这一点都做不到,那程序员的水平是真的有点差的。

二、分析问题,解决问题的能力

对于线上发生的一系列bug,特别是一些性能问题(比如CPU100%、内存溢出、接口响应慢),有些程序员第一时间能做到先快速止血(避免问题再度升级、扩散) ,然后快速分析、定位问题,找到引发问题的本质、根因。

有些程序员遇到问题,即不晓得第一优先级快速止血,也不知道具体该怎么样快速止血。

找问题花了老半天,都不知道问题出在哪,排查了几个小时,一点方向都没有,甚至有可能方向都是错的,离问题真相越来越远。

经过上述两个反差,你也能体会出高水平程序员和低水平程序员的差距了吧。

三、具备抽象思维的能力

关于这个能力,是真有点“抽象”的。 (一般技术专家或架构师需要具备)

比如今天要做京东这样一个电商产品。不用我说,你也知道,其功能模块之多、复杂性之高。

那怎么把这么复杂的产品,在做之前,经过一定程度的抽象,让人一眼就知道且明白,这东西用来干嘛,有哪些模块组成,整体架构如何。

比如通过绘画如下的种种架构图,经过抽象,我们就能知道其具体的功能模块组成,分层架构了。

 

                                                              业务模块抽象

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                              应用分层抽象

                                                            架构实例抽象

 

上述,只是想让大家对能抽象思维有点笼统的认识。

不管做任何产品,能把复杂的东西,抽象成简单的东西,让别人看了后一目了然:这个产品长什么样子,有哪些功能模块构成,技术架构怎么落地,是非常了不起的能力。

四、从0-1创造一个产品的能力

这个能力指的是从零到一构建一个现象级产品的能力。(一般是P9及以上能力要求)

比如拼多多这样的产品,能从淘宝、京东的夹缝中脱引而出,直至今日的规模。

阿里的阿里云,在那个年代,大多数人普遍不看好的情况下,王坚的个人能力与马云的力排众议的坚持,才有今天全球排名前三的云计算公司。

如今如火如荼的chartGpt这样的产品;腾讯的QQ、微信;字节的抖音等等这种受欢迎的产品。

能把这些东西的需求挖掘出来,然后带队从设计到构建,最终成功落地,拥有这样的能力,是非常了不起的。

拥有这样水平的程序员,其能力有多高,就不用我说了吧

 

本文完~

 

写到最后

最新的图解文章都在公众号首发,别忘记关注哦!!如果你想加入百人技术交流群,扫码下方二维码回复「加群」。
posted @ 2023-07-25 09:10  陶朱公Boy  阅读(662)  评论(1编辑  收藏  举报