当前位置: 首页 > 科技观察

编程没有捷径:奇葩冒牌程序员的故事

时间:2023-03-21 11:45:49 科技观察

在讲这个故事之前,我有一句话要说:编程是一件非常难的事情!成为一名优秀的程序员没有捷径,你必须有高智商,你必须谦虚,你必须不断努力,犯错,从中成长,并对你正在学习的材料有深刻的理解。但是有些人就是要寻找捷径,其中之一就是使用欺诈手段。这篇文章是关于我遇到的一个假程序员。几年前,我遇到了一个30多岁的人,我们就叫他布莱恩吧。Bryan想成为一名程序员,在我认识他之前的一年里,他断断续续地学习Ruby,并且参加了为期12周的编码训练营。此前他有12年的工作经验,但一直从事贸易和商业。作为一个乐于助人的人,我成了他的编码学习导师,每周见他两次。我帮助他完成了他的网络应用程序,基本上是博客和Todo应用程序,并帮助他学习各种编程基础知识。虽然参加了那个训练营,但是对编程知识的理解还是少得可怜,让我有些意外。我鼓励他系统地学习Ruby,他答应了我的话,我还给他寄了Ruby学习的基础书籍。我以为我是一个很好的导师,结果却出人意料。Redflag#1我在GitHub上关注他并定期检查他的repo以给他评论。有一天,我在查看他的GitHub账号时,突然发现有5个新的repo,而且基本上已经完成了。每个repo有2-3个提交,而且它们都非常大。我怀疑他抄袭了别人的应用程序代码,问他后,他的回答是:“我正在学习5个新的教程项目,我想在24小时内完成。”我又问他:“这些代码是你自己抄的,还是学习后自己敲进去看懂的?”他的回答是:“这些代码太简单了,所以我只是将它们复制到我的repo中然后进行了提交。.这样,雇主会认为这些项目是我自己完成的!”事实上,很多开发者都会抄袭别人的代码,尤其是新手。但是复制代码之后,一定要仔细阅读,才能真正理解这些代码的含义和用法。虽然我们不鼓励复制其他人的代码,但只要您清楚说明代码来源,就不会犯大错。于是我就对他说,等会儿我会考他,看他是不是真的看懂了代码。但不知为何,他一直坚持认为自己不需要学习这些密码。我对他的行为感到非常失望,如果他想找到一份开发人员的工作,他不应该逃避学习。公司要看的是你自己写的代码,而不是从别处抄来的代码。Redflag#2Bryan有一天在Slack上联系我,问我是否可以帮助他做一个Ruby练习。这是许多企业用来衡量面试官能力的基本fizzbuzz挑战。我做了这个练习,并给他写了详细的说明,这样他就能理解了。他的回答是:“太好了,我今晚会提交这个。”我回答:“等等!这是面试公司发给你的面试题吗?”他立即从Slack上注销了。接下来的几天,他都没有联系过我。几天后,我在Slack上再次见到他,他告诉我他将作为一名初级Rails开发人员参加最后的创业工作面试。我现在有点内疚,但后来我真的祝贺他,祝他好运。几天前我没有提到那件事,我有点放过它。红旗#3那周晚些时候,我发现他的GitHub帐户上有另一个repo,一个名为capstone_test的项目。这是一个非常完整的CMS应用程序,只用了18个小时来创建。如果没有帮助,他绝对不可能在18小时内完成这样的申请。虽然满腹狐疑,但作为他的导师,我还是对这个项目提出了一些意见。几天后,他在Slack上联系了我,对我表示感谢,听取了我的建议,并将项目提交给了他面试的公司。我问他如何在18小时内完成项目,他回答说他使用了AirPair或其他协助服务。我对他非常生气,以至于他先是让我帮他完成他的第一次编程测试,然后以100美元/小时的价格使用AirPair让别人为他做测试项目。红旗#4我实际上很少关注我的GitHub流量或谁在复制我的代码。但是有一次,我偶然发现我的三个项目都是同一个人抄袭的。我觉得有点奇怪,但也没太当回事。后来,我发现Bryan的GitHub正在使用我的repo!而且不是fork过去,而是假装这些代码是自己写的!虽然我的项目都是开源项目,任何人都可以使用,但我希望我的代码能被合法使用,而不是成为欺诈的工具。布莱恩得到了这份工作!我在LinkedIn上发现Bryan已经成为Acme公司的一名软件工程师。入职后,他不停地问我各种问题。我给他发了一些链接,问他现在在做什么项目。他告诉我他在做一个实时通知系统,他也承认自己入职后对工作一窍不通。我对他更加失望了。他通过欺诈得到了一份初级开发人员的工作。更让我气愤的是,他只有6个月的系统学习经验,完全没有工作经验,年薪却比我高出20,000美元。我不想再帮他了。所以我不再帮助他,不再回复他的Slack消息,我希望有人能识破他的伪装。如果我的导师发现我这样说谎,他会比我惩罚布莱恩重10倍地惩罚我。Bryan失业已经一个月了,我们没有任何联系。我一直在关注他的博客,发现他每周都会发一篇关于编程学习的文章。我以为他可能真的开始学习了,结果我发现这些文章都是从StackOverflow上抄来的,连解释都是抄来的。这明显是赤裸裸的抄袭!一天,布莱恩在Slack上询问谁知道哪些公司正在招聘开发人员。我问他:“你刚找到的那份工作怎么样了?”他的回答是,他认为那家公司不适合他,他想寻找其他机会。但是他不知道,其实我认识他公司的一个人,对他在这家公司的情况我也有很深的了解。朋友告诉我,Bryan在公司里连初级开发人员都算不上,他的各种方案都是从StackOverflow上抄来的。公司打算给他3周的考察时间,如果发现他确实能力不够,就会开除他。我告诉我的朋友,Bryan甚至欺骗我进行了入职测试,并且他使用AirPair聘请了某人为他编写项目。我的朋友非常生气,他马上打电话给工程副总裁。两天后,布赖恩被公司解雇,以临时工的身份回到原来的行业。经验教训要成为一名优秀的开发人员,您需要努力工作。你要学习别人的项目,而不是偷别人的项目。从错误中成长,让错误成为成长的催化剂。切勿在不说明原作者是谁的情况下复制他人的代码。千万不要糊弄导师,蒙混过关。抄袭将被唾弃并毁掉你在业界的声誉。Summary失去工作后,布莱恩曾联系我帮他找一份新工作。我告诉他,我不能和不值得我信任的人一起工作,以后我不会帮他任何忙。从那以后我们就再也没有联系过,Bryan仍在复制其他人的代码,试图通过这种方式获得开发人员的工作。