
来自:吃草的罗汉
10/26 苏州,太湖风景区
上个月,和几个老友坐在一起闲聊,因为他们从事的工作都和技术无关,所以在很多话题上,我的许多话术就显得尤为特别。谈来谈去,就有人聊到技术和销售领域的一些区别,他们问我:“为什么搞技术的很少有暴发户?”我冷笑了下,随手说:“你以为做技术那么好爆发吗?就拿编程来说,是一件难度非常高的事情。做技术,尤其是基础的技术,需要日积月累,而且需要场景滋养。不止IT技术,世界上任何一家技术根基雄厚的公司,哪个不是有近百年的历史?技术的根基就是实验,研发,要耗费大量的人力,物力,几乎是百年磨一剑。不是像某些刚成立十多二十年的公司,一口就想吃成胖子,一步就想登天。”我强调,搞技术没有捷径,不仅要有高智商,而且要时刻保持谦逊,还要不断的努力,犯错,在错误中成长,深刻理解你所学习的材料,但是有些人就是一定要寻找捷径,甚至使用欺诈的手段,最终自食恶果。他们听了后,先是互相看了看,然后笑了,说:“别把你的吃饭家伙说的那么神秘,任何事情都有投机取巧的方法,而且都有捷径,只是你没掌握罢了。”我听了有点生气,拍了拍脑袋,给他们讲了一个曾经听过的故事。
我天生性格诙谐,做不到内敛、沉稳,在很长一个时间段里,这种性格对我的职业发展造成了很多阻力。但任何事情都有两面性,性格亦是如此。这种性格擅长社交,容易结交朋友,如果再细心一些,能给我的工作、写作带来不少的帮助。以下的内容,就是几年前,我在某技术大会上新结交的朋友告诉我的。
所以,在文章中的 “我”,也不是我本人,而是我这位朋友。2006年,我认识了一个三十出头的人,他没有任何技术经验,从毕业到现在那几年里都在从事与销售有关的工作。为了称呼他方便,姑且叫他 “小李” 吧。
某年某天,小李也不知道受到了谁的鼓舞,觉得销售业绩不好搞,所以打算投身于程序员领域。一个门外汉,想入行,咋办呢?简单,花钱读个Java开发培训班吧。当时,我正好是他的老师,他也比较会来事,就这样交上了朋友。在我认识他之后的这一年时间里,除了在培训班里,他一直都在有一搭无一搭的学习 Java,作为他的编程导师,每周和他都会有许多次的交流。最开始,我会帮助他完成一些Web项目,基本都是聊天室或BBS之类的,目的也是为了帮助他学习编程的基础知识。虽然他参加的那个Java培训班费用高的惊人,但是他对编程知识的了解还是少的可怜,这让我有一些惊讶。我经常提醒他 “不要痴迷于课堂,毕竟这种培训机构交给你的东西都是表皮”,你想要吃这碗饭,基础非常重要,因此我鼓励他系统的去看一些原理资料和书,他也承诺会按我说的去做,我还送了他两本书,一本是 《Java核心技术》,另一本是《Java编程思想》。我原本以为自己是个好导师,而且还遇到了一个勤奋好学的知音,但是结果却让我大跌眼镜。
有一次,他问我:“出去面试,如果面试官问他之前做过什么,我该怎么向他展现?”
我说:“基础知识用嘴说,用纸画就行了,你的一些案例和项目可以申请个FTP账号,如果他要看,就给他看,很方便。而且,也便于我们之间的一些交流。”他很高兴,第二天就交了钱,申请了账号。他要求我每周定期查看他的一些代码,给他提点意见。有一天,我在查看他的FTP目录的时候,突然发现了5个新的项目,内容覆盖BBS、电商书店及聊天室,而且代码和架构基本都很完整。每个项目都有5次以上的提交,而且每个体积都在10MB以上。我的第一反应,就是他复制了别人的应用代码,要不然凭他的个人能力,绝对无法做到这样。为了得到证实,我给他打了电话,再三询问下,他的回答是:“这是我在学习的五个新项目。”我又问他:“这些代码是你复制别人的,还是为了更好的理解,而在学习之后自己手打上去的?”他停顿了一会,说:“是我复制的……我觉得,只要我能说的出一个所以然,让面试官相信,他们自然就会觉得是我自己做的。”其实,新手也好,老手也罢,我们从事软件开发的多多少少都会复制别人的代码,但是在复制代码之后,我们必须要仔细阅读,真正理解这些代码的意思和用法。虽然我个人并不鼓励复制别人的代码,但是这并不算什么太大的错误,只要你明确说明代码的来源就好。听完后,我对他说,之后我会对他进行测试,看看他是否真的理解了这些代码。说真的,当时我对他的这些举动很失望。在我的认知里,如果你想要找到一份开发者的工作,就不应该逃避学习。企业想要看到的是,是你自己写的代码,而不是从别处抄来的代码。至少,你应该学会接纳真实的自我。
一个星期后的某天,小李联系上我,问我是否能帮他完成一个Java的程序,因为里面涉及到一些架构设计的东西,他不太理解。
我没多想,顺口说:“我手上正好有一个,我把铭感信息去掉之后就发给你。”他听完很高兴,再三感谢,我借势补了一句:“我没有写注释,你自己补上,正好有助于你加深理解。”而他的回应是:“太好了,我今晚就把这个提交上去。”接下来的几天他都没有联系我。几天之后,他在MSN上告诉我,他将要去参加一个初创企业的最终面试,职位是Java开发工程师。我的直觉告诉我,他肯定造假了简历,并把我给他的项目吹成了自己的。我顿时感觉愧疚,但我还是在MSN上向他表示了祝贺,并且祝他一切好运。几天后,我偶尔打开了他的FTP账户,发现他又多了一个项目,名为 “workjob_test”。于是我打开简略的看了一下,是一个非常完善的CMS应用,而且创建时间只用了 18 个小时。以我对他的了解,如果在没有他人帮助的情况下,他绝对不可能在几天时间里就完成这样的应用。
虽然满脑猜疑,但作为他的朋友和曾经的导师,我还想给他提一些意见。第二天,我在MSN上遇到他,我问他是怎样在几天时间里完成这个项目的,他回答说自己花了点钱,请别人帮他做的。那一刹那,我对他产生了极度的愤怒,回想下,他先是让我帮他完成了人生第一个编程项目,然后又花钱请人帮他做了一个项目,目的呢?无非是为了欺骗自己,欺骗面试官,欺骗用人企业,最终苟延残喘的获得一份工作。也许有人觉得我有些小题大做,而且现在的代码你Copy我,我Copy你,都很正常,就算是放到Github上的开源项目,不走正常Fork途径,Copy下来,伪装成自己的成果,这种现象数不胜数,有啥好大惊小怪的。好吧,不在这个层面纠缠,但是我觉得,任何一位代码提供者都希望自己的代码被正当的使用,而不是成为欺诈的工具。
一个月后,我发现小李的MSN签名改了,改成 “某某公司的JAVA工程师”。
但从入职之后,他就不断的向我请教各种问题。我给他发送了一些资料,并且问他现在正在做什么项目。他告诉我他在做一个IM系统,我问他感觉如何?他说,做的内容和之前学习的时候完全不是一回事,感觉自己对工作完全一窍不通。我对着电脑屏幕,看着他在MSN上发来的这些语句,内心一阵凄凉。想一想,通过欺诈得到了一份初级开发者的工作,为了什么呢?另外,让我觉得的更惊讶的是,这家用人公司居然SB到给他开出了1万人月薪的报酬。现在想想,估计是他的嘴能说会道,忽悠能力绝佳,而这家创业公司的老板又不懂技术导致的吧。于是,我不再为他提供帮助,也不再回复他的信息,或者就用 “我正在开会”、“我不在上海” 等借口搪塞他,我想要让别人识破他的滥竽充数。就这样,再接下去的两个月里,我们之间没有任何交流,但我一直都在关注他的MSN签名,发现他每周都根据心情改一次签名。又过了几个星期,有一天小李在MSN上问我,知不知道哪家公司在招JAVA开发。我问他:“你刚找到的那份工作怎么了?”可能是因为好奇,也可能是幸灾乐祸,我通过自己的人脉圈联系上了他所在公司的技术主管,询问了他的一些情况。这位主管对我说,他们通过几个月的观察都觉得小李连一个初级开发者都算不上,他的各种解决办法都来源于别人之手,就连代码也都是从别人那里拷贝过来的,经过再三考量,公司打算解雇他。听到这里,我还补了一刀,告诉这位主管,我曾经是小李的培训导师,他的很多代码都是从我这里拷贝过去的,而且他还花钱请别人帮他写项目。这位主管听完瞪大了眼睛看着我,从牙缝里挤出了一句话:“你这人太缺德了吧。”就在我和这位主管见面的第二天,小李被公司解雇。几天后,他给我打了个电话,说自己又重回了从前的行业,做起了从前的工作。
虽然这段故事的主体是我朋友提供的,但为了加深印象和感染力,我做了一些故事情节上的加工,希望大家不要见怪。好了,最后我来说下个人的一些看法。
第一,想要成为一名优秀的开发者,你不仅需要不断努力,而且还要学习别人的方法,但绝不是偷窃别人的项目。
第二,在互联网时代,考研技术从业者最重要的是学习能力和积极向上的心态,而不是那些已经过时的破经验。
第三,要有开源精神,但决不能复制别人的代码,还臭不要脸的说 “这代码是老子写的”。
第四,学会在错误和指责声中成长,让它们成为你成长过程中的催化剂。
第五,请重视自己的个人品牌或名声,毁了自己在行业内的名声,那什么都完了。
什么?你不想听总结,只想知道小李最后的结局是什么?不好意思,他没和我说。
但我想,如果他对技术还感兴趣,应该还是会找到一份新工作。只不过他的认知需要改变,如果这点不改,那早晚还是会出毛病。
毕竟,技术不像销售,你说你买过原子弹?那行,是骡子是马,拉出来溜溜。
长按订阅更多精彩▼

如有收获,点个在看,诚挚感谢