惊呆了!一个程序员的水平能差到什么程度?

2023-11-01 16:40

本文主要是介绍惊呆了!一个程序员的水平能差到什么程度?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转载自 程序员的那些事

知乎上有一个灵魂拷问“一个程序员的水平能差到什么程度?”让各位猿们纷纷有感而发。

一时吐槽爽,一直吐槽一直爽。很多回答都引发了程序员的共鸣。

0、网友 Benny 的分享,2200+ 赞

想起了一件十多年前的往事,有一次帮客户的 Java 项目组升级框架。入场之后屡次听到项目组的运维小哥抱怨 war 包过大,导致每次发布要等很久很久,用过 WebSphere 的童鞋可能知道我在说什么。

那么,这 war 有多大呢?大概 2G!富有求知欲的我于是下决心去研究下这鸽子,不对,这 war 包为什么这么大?草草一挖,果然就在里面发现了宝贝。原来 war 包里还藏着两个程序安装包。

一个是 JDK1.4;另一个是 PES2006,实...实况足球?!

图片

根据 SVN 的提交记录,肇事的大哥很快就被找到了。

据说是在一个月黑风高的晚上,几个还在加班的码畜临时起意,决定一起找点乐子解解乏。这位带头大哥为了方便把自己的游戏分享给小伙伴,就想到了把它先提交到 SVN 上这样一个天才的主意......

当然,按照他原本的计划,这个文件应该随后被删除的!可是,那晚他们玩的实在太尽兴了...没人会料到这个文件竟会悄无声息的溜进 war 包,一路潜伏到生产环境,然后反反复复的摩擦了可怜的 WebSphere 和运维小哥近一年。

了解到真相之后,运维小哥表情差不多是这样的:

图片

1、网友 Ethan 的分享,4300+ 赞

刚入职不久,组里的尼泊尔大哥离职了,我接了他的活。第一天就被三万行的文件震惊了,一个文件里有几十个class,命名不规范,缩进随心所欲,这些就算了。这位大哥明显不知道什么叫做继承,写子类的办法是把父类复制过来再改一改…

后来我面对着三万行被重复定义了五十多次的变量和函数,果断选择重新写了,最后用了一千多行就写完了…

这个活作为我入职的第一个项目,给了我非常深刻的教育…

2、网友 零五 的分享,5500+ 赞

老板觉得公司里都是男的,缺少一点阴柔之气,想平衡一下,正巧当时互金公司倒了一大批,大批简历投到公司,老板以为自己也是技术出身,就招了一个三年工作经验的女程序员,互金出来的,要价倒是不低。我休假去了,没面她,等我回来要安排工作了,这才发现问题了。

给她安排了一个新项目,是会展方面的,跟她简单说了一下工作安排:先搭个 spring maven 项目,然后跟产品谈下需求,考虑一下数据模型,过两天跟我碰再确定具体模型。她没说什么,等到第二天快下班了,产品来问我了,她怎么还没动工?我说我安排了啊,这就找过去问她,她说框架还等着技术总监(也就是我)搭了,她不是架构师,不会。当时我就懵了,还有这种操作,你就是上 spring 网站都能搭一个啊。又问她需求谈了没有?数据模型有没有想出个大概?她又说,需求是 BA 谈的,她不会。我这就急了,那你会什么呀?她说她原来公司都是框架环境都是配好的,她只管写代码。我当时心里就凉了半截,这项目估计最后要我来收拾残局了。这就去找老板换人,老板说你就带带她吧,反正这项目也不急,就当给公司添一点亮色吧!

没办法,只能硬着头皮带她了,期间各种 eclipse 环境之类的就不谈了,比如 svn 配置忽略文件类型,lombok 插件等等,总之环境不会配。终于帮她全部配完环境,详设也写好跟她讲解了一遍,总算开工了,若干天后提交代码了,我做了一下 code review,这心里又凉了半截:方法,类名,变量等等一概中文拼音;业务逻辑明明可以复用的不写公用方法,跟别提用自定义注解了;驼峰命名法是什么不知道;Mysql 有的表字段名全大写,有的全小写,有的又跟我来个驼峰。我又跑去找老板要换人,老板打个哈哈,哎呀,又不是人人都有这个你这个水平,再带带说不定就出来了。没辙,给我戴顶高帽子,只好回去跟她苦口婆心地说了半天代码规范,其实就是阿里那一套,装个插件就能检查,又跟她着重讲了一下命名规范,要用英文命名,否则注释少的话很难看懂程序,她直点头,说这就改,我也就信了。

等到代码再次提交,我一看,一口鲜血差点没吐在屏幕上,展品的长宽高单位是米,结果好家伙一看,长度long_rice,高度high_rice,当时看的时候实在没明白这脑回路到底是个什么套路,强压怒火跑去问她这是什么意思,她振振有词地说:你讲的呀,命名的时候最好要体现度量单位。我实在忍不住了,吼起来了:那rice是什么单位,是什么单位?她也不示弱,把词霸的屏幕取词一开,移到米字那里,说:你自己看,米不就是rice吗!我顿时无语,只能又跑去找老板,老板也无语,只能自我解嘲地说:她不是过了四级了吗,我还查来着了。

这件事情最后的结局就是我在面人的时候,都要当面问几个英语单词,实在是怕了。

rice这个我是实在没看明白,记得还有一处我是看明白了,她把发消息的发命名为hair,我愣了一下也就知道。

有些童鞋看完案例表示,“曾经以为自己是个垃圾,看完发现,我还可以啊!”

这篇关于惊呆了!一个程序员的水平能差到什么程度?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/324354

相关文章

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

软考(计算机技术与软件专业技术资格(水平)考试)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 月下飞天镜,云生结海楼。 ——《渡荆门送别》 信息系统项目管理师备考专栏 软考全称:计算机技术与软件专业技术资格(水平)考试 官网直达:中国计算机技术职业资格网 文章目录 软考介绍1.

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接:https://arxiv.org/pdf/2408.16766 项目链接:https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架,以验证这个大规模数据集在风格迁移中的有益效果。引入了内容对齐评分(Content Alignment Score,简称CAS)来评估风格迁移

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

GitHub:代码是程序员沟通最直接的手段

如果不是 Andreessen horowitz 的投资,估计 GitHub 很难被福布斯、CNN、纽约时报等传统媒体注意到。普通大众之前不了解这个工具,是因为它距离记者的世界太远了——GitHub 是一个程序员所使用的托管项目的服务。 但在一些程序员眼里,它不仅是托管项目的地方,还是“开源”项目的大本营,而且是提高程序员“技术水平”和“技术品味”的地方,更是一个程序员社交的地方。

黑马程序员---银行业务调度系统

模拟实现银行业务调度系统逻辑 需求分析: 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。 异步随机生成各种类型的客户,生成各类型用户的概率比例为:         VIP客户 :普通客户 :快速客户 =  1:6:3。 客户办理业务所

黑马程序员---空中网面试题

空中网4k/5k月薪挑选大四实习生的线程题     两年前,我们一个大四的学员去应聘空中网的实习生职位,空中网只给他出了三道线程题,拿回家做两天后再去给经理讲解,如果前两题做好了给4k月薪,第三道题也做出来的话就给5k的月薪。这样的实习薪水和招聘要求,不需要有工作经验的限制,纯粹是技术功底的比拼和考核,而不像许多其他公司非要招两年工作经验的人,逼得那些刚毕业和未毕业的大学生不得不去撒谎,不得不去做

黑马程序员---线程并发库

软件包 java.util.concurrent 在并发编程中很常用的实用工具类。 请参见:            描述 接口摘要BlockingDeque<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待双端队列变为非空;存储元素时等待双端队列中的空间变得可用。BlockingQueue<E>支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及

黑马程序员---多线程

TraditionalTread 传统线程技术回顾 创建线程的两种方式: thread3中,同时创建了Thread的子类和Runnable,那么会优先执行Thread的子类,因为Runnable的代码被当做参数传到了Thread类里,Thread子类的run方法又覆盖了父类的方法,所以会执行Thread子类的代码。 package cn.itcast.heima;public class T