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

在讲述这个故事之前,我有一句话要说:编程是一件特别难的事情!

成为优秀的编程人员没有捷径,你要拥有高智商,要保持谦逊,还要不断的努力,犯错,在错误中成长,深刻理解你所学习的材料。

但是有些人就是一定要寻找捷径,而其中之一,就是使用欺诈的手段。

这篇文章讲述的就是我所遇到的一个冒牌程序员。

几年前,我认识了一个 30 多岁的人,我们姑且给他起名叫 Bryan 吧。

Bryan 想要成为一名程序员,在我认识他之前的一年时间里,他一直都在有一搭无一搭的学习 Ruby,他还参加了一个为期 12
周的编程训练营。此前他有着 12
年的工作经验,但是他一直都在从事贸易和商业方面的工作。作为一个乐于助人的人,我成为了他的编程学习导师,每周和他见两次面。

我帮助他完成他的 Web 应用,基本都是博客和 Todo
类应用,帮助他学习各种编程基本知识。虽然他参加过那个训练营,但是他对编程知识的了解还是少的可怜,让我有一些惊讶。我鼓励他系统的去学习
Ruby,他也承诺会按我说的去做,我送了他基本有关 Ruby 学习的书。我本来以为我是一个好的导师,但是结果却让我大跌眼镜。

危险信号 #1

我在 GitHub 上关注了他,并且定期会查看他的 repo,给他提意见,有一天,我在查看他的 GitHub 账户的时候,突然发现了 5
个新的 repo,而且基本都已经完成了。每个 repo 都有 2-3
个commit,而且体积都非常大。我怀疑他复制了别人的应用代码,在问过他之后,他的回答是:“我在学习 5 个新的辅导项目,而且希望在 24
小时内完成它们。”

我又问他:“这些代码是你复制的,还是为了更好的理解而在学习之后自己手打上去的?”他的回答是:“这些代码都太简单了,所以我只是把它们复制到我的 repo 里,然后再进行 commit。这样用人企业就会以为这些项目是我自己做的!”

其实很多开发者都会复制别人的代码,尤其是新手。但是在复制代码之后,我们必须要仔细阅读,真正理解这些代码的意思和用法。虽然我们不鼓励复制别人的代码,但是这并不算什么太大的错误,只要你明确说明代码的来源就好。

于是我对他说,之后我会对他进行测试,看看他是否真的理解了这些代码。但是不知道为了什么,他一直坚持说自己不需要学习这些代码。他的举动让我感到很失望,如果他想要找到一份开发者的工作,就不应该逃避学习。企业想要看到的是,是你自己写的代码,而不是从别处抄来的代码。

危险信号 #2

有一天 Bryan 在 Slack 上联系我,问我是否能帮他完成一个 Ruby 的练习。这是一个基本的 fizzbuzz
挑战,很多企业都会用这个测试来考察面试人员的能力。我完成了这个练习,并且给他写好了详细的说明,好让他能理解。而他的回应是:“太好了,我今晚就把这个提交上去。”我回复说:“等等!这个是面试企业给你发来的面试测试吗?”而他立刻从
Slack 上下线了。

接下来的几天他都没有联系我。几天之后,我又一次在 Slack 上看到了他,他告诉我将要去参加一个初创企业的最终面试,职位是初级
Rails 开发者。我现在感觉有些愧疚,但是那时我竟然祝贺了他,并且祝他一切好运。而且我并没有提及几天前的那件事,我有点撒手不管的意思。

危险信号 #3

那周晚些时候,我发现他的 GitHub 账户上又多了一个 repo,这是一个名为 capstone_test 的项目。它是一个非常完善的
CMS 应用,而且创建时间只用了 18 个小时。在没有帮助的情况下,他绝对不可能在 18
个小时的时间里就完成这样的应用。虽然满腹狐疑,但是作为他的导师,我还是给这个项目提了一些意见。

几天之后,他在 Slack 上联系到我,对我表示了感谢,他采纳了我的建议,并且把项目提交给了正在面试的企业。我问他是怎样在 18
个小时内完成这个项目的,他回答说自己使用了 AirPair
或其他帮助服务。我对他产生了极度的愤怒情绪,他先是让我帮他完成了第一个编程测试,然后又以 100 美元/小时的价格使用了 AirPair
的服务,让别人帮他做测试项目。

危险信号 #4

我其实很少关注我的 GitHub 流量,也不太关注是谁复制了我的代码。但是有一次,我很巧合的发现我的 3
个项目都被同一个人复制了,我觉得有些奇怪,但是也没太往心里去。之后,我发现 Bryan 的 GitHub 上使用了我的 repo!而且并不是
fork
过去的,而是伪装成这些代码是他自己写的样子!虽然我的项目都是开源项目,谁都可以使用,但是我希望我的代码被正当的使用,而不是成为欺诈的工具。

Bryan 获得了工作!

我在 LinkedIn 上发现 Bryan 已经成为了 Acme Company 的软件工程师。在入职之后,他不断的向我请教各种问题。我给他发送了一些链接,并且问他现在正在做什么项目。他告诉我他在做一个实时通知系统,他也承认自己入职以后对工作完全一窍不通。

我对他更失望了。他通过欺诈得到了一份初级开发者的工作。让我更生气的是,他只有 6 个月的系统学习经验,完全没有工作经验,但是他的年薪甚至比我还高 2 万美元。

我不想在帮助他了。于是我不再为他提供帮助,不回复他的 Slack 信息,我要让别人识破他的滥竽充数。如果当初我的导师发现我在这样骗人,他对我的惩罚会比我对 Bryan 的惩罚严重 10 倍。

Bryan 丢掉了工作

一个月过去了,我们之间没有任何交流。我一直都在关注他的博客,发现他每周都会发一篇编程学习的文章。我觉得他可能真正开始学习了,但是我发现这些文章都是从 Stack Overflow 上复制来的,就连解释说明都是复制来的。这明显就是赤裸裸的抄袭!

有一天 Bryan 在 Slack 上询问谁知道哪家公司在招开发者。我问他:“你刚找到的那份工作怎么了?”他的回答是,他觉得那家公司不适合他,他想要寻找其他机会。但是他不知道,事实上我认识他公司里的一个人,并且深入的了解了他在这家公司的情况。

我的朋友对我说,公司上下都觉得 Bryan 连一个初级开发者都算不上,他的各种解决办法都是从 StackOverflow
上复制来的。公司打算给他 3 周的考察时间,如果发现他的确能力不够,就解雇他。我告诉我的朋友,就连入职时的测试,都是 Bryan
骗我帮他做的,而且他还用了 AirPair 雇别人帮他写项目。我的朋友非常生气,立刻就给工程 VP 打了电话。

2 天之后,Bryan 被公司解雇,重回了自己从前的行业,做起了临时工的工作。

经验教训

成为一名优秀的开发者,需要你不断努力,你要学习别人的项目,而不是偷窃别人的项目。

在错误中成长,让错误成为成长的催化剂。

决不能复制别人的代码,而且不说明原作者是谁。

决不能糊弄导师,企图蒙混过关。

抄袭会被人唾弃,并且毁了自己在行业内的名声。

总结

丢了工作之后,Bryan 曾经联系我,让我帮他找一份新工作。我对他说,我无法和一个不值得我信任的人合作,从此以后我不会再为他提供任何帮助。在那之后,我们再没联系过,而 Bryan 至今依然在复制别人的代码,企图用这种方式找到一份开发者的工作。

作者:行云编译

来源:51CTO

时间: 2024-10-01 03:54:43

编程没有捷径 奇葩冒牌程序员的故事的相关文章

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

在讲述这个故事之前,我有一句话要说:编程是一件特别难的事情! 成为优秀的编程人员没有捷径,你要拥有高智商,要保持谦逊,还要不断的努力,犯错,在错误中成长,深刻理解你所学习的材料. 但是有些人就是一定要寻找捷径,而其中之一,就是使用欺诈的手段. 这篇文章讲述的就是我所遇到的一个冒牌程序员. 几年前,我认识了一个 30 多岁的人,我们姑且给他起名叫 Bryan 吧. Bryan 想要成为一名程序员,在我认识他之前的一年时间里,他一直都在有一搭无一搭的学习 Ruby,他还参加了一个为期 12 周的编程

编程世界经典秘籍:程序员的提问之道

本文节选于编程世界里非常经典的一份文档,该文档首发于 2001 年,已经过多次迭代更新,详细描述了程序员应该如何在网上有礼貌地.合理地向别人提问以及如何解读答案,比如自己先做足功课:搜索.读文档.读代码等.以下中文版节选是由 ryanhanwu 基于原文 3.10 版的最新翻译,全文较长,有兴趣的可跳转查看完整内容. 简介 在黑客的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式.本指南将教你如何正确的提问以获得你满意的答案. 不只是黑客,现在开放源代码(

野生程序员的故事

野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人.野生程序员有很强大的单兵作战能力,但是在编入"正规军"之后,可能会不适应新的做事方法. 遭遇"野生程序员" 腾讯公司内部的团队很多,在团队管理上有项目和专业两个维度.也就是说,有些团队是项目维度的,整个团队共同维护一个产品,成员来自不同的职业岗位:有些团队是专业维度的,比如一个组都是前端工程师,维护不同的产品. 因为前端组是设计部最接近后台技术的团队,所以团队平时的工作

一个女程序员的故事

        从哪里说起呢,我的程序员之路.有些话只是自己心里想的很明白,还从没说过.希望你有耐心看完,因为我的故事不精彩,也算不上奋斗史.我的文笔和叙事能力也很差.        高中报志愿的时候坚定的报了计算机技术及应用,当时对计算机的认识只是机房里的苹果机,和老师教的用basic 输出一个正方形之类的. 我当时觉得我对计算机一无所知,我想了解他,就选择了这个专业,当然当时程序员的收入也是可观的. :)        大学四年下来,我的成绩不好,基础也不好,没拿过奖学金.大学的课程很多不喜

两个程序员的故事

从前,有两家互不知晓的公司,一家叫做"自动会计应用协会",另外一家叫做"统一计算资本公司".他们同时决定开发一种提供相同功能的程序. "自动"雇佣了一位分析程序员,艾伦,来解决这个问题. 而"统一"决定试一下新来的初级程序员查尔斯,看看他是否有真本事. 艾伦做过一些复杂项目,有着丰富的经验,决定采用PQR结构化方法来开发这个程序.于是他找到部门经理,要求增派3名程序员组成一个项目小组.这个小组于是开始工作,捣鼓出初步的项目分析

程序员「奇葩」说

一直以来「奇葩」这个词都是偏贬义的,直到去年有个综艺节目叫「奇葩说」挺热闹,这里的人不一定是奇葩,更多指达人的意思. 「奇葩说」里的达人都是能说会道的,我的主业是程序员,所以只能写写在我职业生涯中碰到的一些「奇葩」程序员. 你懂的,我这里的「奇葩」没有任何贬义的意思. 月在胸襟人在途 我刚入行时的第一位项目经理,70后.那年三十出头,在银行客户现场做项目经理,负责一个二十来人的客户现场团队. 虽然他的职位是项目经理,但实际那时他真是一个名地道的资深程序员. 70 后的程序员大都是从写 C 开始的

PHP程序员必须遵循的PHP编程准则

  怎样才能成为一个优秀的PHP开发者?这肯定是每一位PHP新手都在提出的问题.其实要成为一名PHP编程高手并不容易,真正的PHP高手还需要考虑更多的其它问题.那么如何才能更快的成为一名优秀的PHP开发者呢?跟随绿茶小编一起来看看吧! 以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则: ◆懒惰是金 ◆编写漂亮的代码 ◆追求程序的速度,而不是编程的速度 懒惰是金         对于一个程序员来说,懒惰的方法有两种: 其一,大胆使用现成的别人的程序代码,把这些代码融入到你自己的程序或

《高效能程序员的修炼》一第3章 高效编程之原则

第3章 高效编程之原则 高效能程序员的修炼本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.

4位神级大牛说“别神化程序员了,编程不需要天赋和激情!”

以往从来没有一种技能被神化到这样的高度: 你不仅得有天赋,还得具备激情,才能成为一名优秀的程序员. 好像那些写代码的人是早就决定干这一行似的,"当他们还是孩子的时候,他们就打算将来去写代码".如果你缺少这两个因素之一,那么你要么是一个骗子,要么不会走得太远,不论是哪种,其实都是因为你不适合编程的缘故.这种根深蒂固的成见不仅是完全错误的,而且还是有害的--但是许多成功的程序员都赞同这个观点. ◆ ◆ ◆ Jacob Kaplan-Moss (Django的创建者) 在这篇描述中,Jaco