前言html
人被压迫了,为何不斗争?——鲁迅程序员
做为一个C#开发者,我经历了,也见证了不少同行饱受C++开发的歧视和欺辱。windows
并且,这种行为,如今依然持续的发生在C#开发者的身上,就目前为止,绝大部分C#开发还都没法摆脱这样的命运。设计模式
能力不足的C++开发会欺辱能力不足C#开发安全
C++语言的基础是【语法+windows系统调用逻辑】,其余语言的基础是【语法+基础设计模式】。架构
事实上,就基础而言,须要学习的时间和学会后的技术等级,都是差很少的,两个都只有一年工做经验的新人,按理说,不存在谁比谁更厉害多少。框架
但在聊天和会议等语言沟通中,倒是不同的。性能
C++开发会占据极大的理论优点,由于windows系统调用逻辑和C++的语法中包含了一部份内存的管理,固然那不是性能,但C++开发会误认为那就是性能。而程序员这东西聊着聊着,就会聊到一些高级的东西,好比性能,因此,C++开发在这样的交流中,更能说的上话。所以,这种交流也容易让外行人产生,C++开发更厉害一些的错觉;而当你准备反击,想改变在别人心中的水平低的印象时,当你准备谈一些基础设计时,则会被轻松反杀。这也很好理解,由于设计这东西真不是你能在三言两语中给说出来的,你说出来的只能是一点点片断,所以你要么被对方抓住把柄反杀,要么被对方以没时间听你废话反杀。学习
实际上类型与其占有的内存及使用方式都是微软开放给你们的,并不能成为一我的傲慢的依据,但C++开发不懂这些,固然C#开发也不懂,因此不少C#开发,在即兴的聊天中,并不能及时的有效切中要害,有效的攻击对方。而据我我的经验,就算切中要害,也会轻松被对方诡辩回去。因此,结果就变成了,在外行人和技术水平不够高的人眼中,一样学习一两年的开发,C++开发远超其余语言开发的水平了。spa
其实,大部分C++开发是不懂性能的,这很好理解,由于他们没到那个水平,但彷佛C++开发都有一种莫名的自信,觉得学两年C++就有架构师的水平了。因此C#开发要保持日常心,内心要有数,不要真的认为他们如同他们自身所吹嘘的那样厉害,不要由于辩论失败而丧失信心,进而对自身的技术水平产生怀疑,要相信本身。
总结,能力不足的C++开发会欺辱能力不足C#开发,并会引起周围非技术人员的歧视。这对C#开发是一种极大的,无形的负担。但请不要所以丧失信心与追求。
多年前,个人一个小故事
人被压迫了,天然是要斗争的,但斗争也是要付出代价的。
不少年前,我经历过这样一件事。
在一次团队会议中,我提出了产品框架设计要加入AOP设计元素,结果当场被【所谓的】C++大神开发,以及其不客气的语气直怼:“你知道AOP是什么吗?”
我忍耐住怒火,以最平静的心态,详细的为他讲解了AOP的基础概念,结果又收到另外一个直怼“你去查查百度去”。
彼时,年轻的我,还不擅长这种应对,愤怒的反问道“那你以为AOP是什么”。
对方显然是斗争中的高手,经验丰富,留下一句“你去百度查查”,反身离开了会场。
会议草草结束,而我,恐怕是在部分与会人员心中留下了“装腔做势,触怒了大神”这样的印象。
那时,年轻的我,确确实实的感受到了,本身被压迫了。但一次的压迫并没什么,这种事,成年人均可以忍耐,当时觉得,忍耐过去了,就了事了。
但随后的事态发展,却并非我想象的那样,忍耐并不能够收获安全,由于对方并是只想打击你一次,而是想一次次的打击你。(后来反思,对方其实也并非针对我,由于对方是个假大神,因此他必定要把其余技术强点打压下去,而我只是他打击的其中一个对象而已)
忍无可忍,无需再忍,因此,当时的我,毅然决然的决定了,要斗争。
虽然斗争是必定要斗争的,但要如何斗争呢?
毕竟彼此之间,只是同事;又没有仇恨,矛盾也只是技术层面的交流。
既然如此,那斗争就要在技术层面展开。
首先,要证实本身的技术能力,由于,自身能力若是没有得到证实,那全部的斗争就都是扯淡了,由于没人相信弱者。
接下来,就是去了解对手的技术水平;若是发现对手是个装X的水货,那么,就要完全撕开对手的假面具,让全部人都知道他是个假大神;若是对手是个真大神,那只有先敬而远之。
斗争
要了解一我的的技术水平高低,真的不难,稍微聊几句,调查一下,就能够知道了;因此,很短的时间内,我就发现了对手是个假冒的大神。不过,说实话,对手【装】高手的能力和手段真的很强。
自那之后,每一次会议被【所谓的】C++大神开发打断话语,都保持平和心态,绕开他,坚持把技术观点讲述完整,这样可让与会人员了解到本身正确的观点。由于与会人员并不全了解技术,一旦你被打断讲述,与会人员认为你的描述错误,因此,当有人提出疑问,他们彻底不会想到有人会由于其余因素而打断你的发言。在非技术人员面前,坚定回避技术讨论,一旦被迫发生,则留下一句含糊不清的话,尽早脱身。在技术人员面前,坚定讨论技术,必定要讨论出对错,若是对方执意回避,则尽可能追回讨论,实在追不回,也要把正确的结果摆在参与讨论的技术人员面前。
斗争的过程是艰苦的,是不开心的。由于,一开始我并不适应这种对杀,技术层面的斗争提及来容易,当你真的在作的时候,老是会过多的把我的感情投入到里面,届时,对手就不在是对手,而是敌人了。那种感受真的很很差。
虽然,最终我适应了那种对杀,但真的但愿将来的职业生涯不在出现这样的局面,由于那真的不是理想的工做环境。
假大神的反击
这是一个颇有趣的故事,当时咱们有个项目在线上运行时有个bug,会不按期的软件崩溃,大约持续了两三年,也没人解决。
刚入职不久的我,奉命前往现场攻关调查这个问题。
在茫茫多的代码中,一点点追查,最终找到了问题所在,调查结果,是由于这样的一句,看上去很好笑的代码。
string.Format(变量);
我想,稍微有点基础的人,应该都了解string.Format的用法吧。若是,如上面这样写代码,会出现什么样的结果?
当有人在这个变量中输入字符串【{ 】或 【}】的时候,系统会由于字符串格式不正确抛出异常。而咱们那个项目不按期崩溃的缘由正是在此,由于当有用户打字输入了【{ 】或 【}】时,才会引起系统崩溃,不过客户因为并非每天都输入【{ 】或 【}】,因此也就形成了不按期的系统崩溃。。。
找到问题的所在,天然是回公司复命,当时,我还并不知道这段代码,是项目早期的最原始的代码,而且是出自那位假大神的手笔。
回公司后,天然是要向个人直属领导汇报,描述问题出在哪里,要如何修改,领导听了汇报后,很满意,并让我发邮件,向全体开发人员,说明修改方案,和之后要注意,不要这样写代码。
由于这样的代码,并非只有一处,并且不少人都这样写,我猜测,大约是那位假大神写了初稿,而后再大肆宣扬,要别人也和他同样这么写,由于若是不是这样的缘由,后续假大神的反应,彷佛是不太合逻辑的。
我想,个人领导大约也是知道这代码是怎么回事,由于他是和假大神同期进入项目的,估计早期还被迫写过这样的代码。
假大神固然也收到了这邮件,因而乎,他恼羞成怒,开启了一轮大秀,他竟然集体回复了一封邮件,【那你说该怎么写】。
每当想起此事,我都不由发笑,我历来没想过他会如此自爆,哈哈。这么基础的语法,其实只要百度一下就会了解了,何须如此白痴的集体回复邮件秀智商呢?
以后,我并无回复他,一是保留本身的人品,二是我真不知道该如何回复,难道要我回复他【你是白痴吗】,哈哈。
不过,如今,我仔细想了想,我没回复他,实在是错误的。看过琅琊榜的同窗应该都知道,若是问题是由于太子和誉王的党争,则皇帝并不会太事件自己的对错。
因此,虽然项目组的开发人员都经过邮件知道了他的水平,但那些不懂技术的高层领导,恐怕只会认为这是一次普通的技术斗争,并不影响假大神的技术水平定位。
也就是说,假大神,并不在意本身在同事心中的地位,他在意的是,他在高层领导心中的地位。
而事实上,直到我离开那家公司时,假大神在高层领导心中的地位,也没有动摇,即使已经没有开发人员相信他的技术意见了。
说到底,仍是个人斗争经验距离对方差距太大,视野和对方不在一个等级上,相信,多年之后的如今,那家公司的技术人员已经换了一批又一批,而假大神,依然屹立不摇。
反思
我曾经认为,在项目中作正确的技术选择和正确的技术判断,对项目是正向发展,在领导心中,这应该是个人加分项。
但事与愿违,人是有情绪的,尤为是高层领导在不能和你长期接触的状况下,是很容易被刻板印象和情绪所主导。
并且在长期的斗争中,我虽然撕碎了【假大神】的假装,但在其余同事和高层心中,留下了喜欢争斗,不善于忍受的印象,这是很是不利于个人长期发展的。
撕碎【假大神】的假装,是由于被压迫等等因素而引起的斗争之心;而证实自身技术能力,是职业须要;其实,对我自身而言,二者之间是没有直接关联的;但在他人眼中,却可能被联系到一块儿,会认为我是借由打击他人来抬高本身(由于他们根本不会去想,也没有时间去想,你打击的是个真大神仍是个假大神),而这样的结果,显然是彼时的我始料未及的。
所以,真的不要轻易去选择斗争,由于斗争的代价,太昂贵了,即使打到敌人,自身也会是伤痕累累,并且敌人未必是你想象中,那么轻易能够被打倒的,说不定倒下是你本身,即使你有更高的技术优点。
这也是不少年长的开发,特别能忍的缘由,我想,若是是今天的我,面对当年的状况,我也会选择忍耐,一直忍耐。
而这个故事的结论则是,能力不足的C++开发也会欺辱能力很高C#开发。也就是说,C++开发是无差异的欺辱C#开发。
部分C++开发更像工人
通过多年的经验和经历,我总结出来,部分C++开发更像工人,而不像程序员,也许是由于C++过早出现的缘由。
不少C++开发,给别人提供DLL的时候,都不给文档,甚至连口头说明都没有。
由于,他们不习惯配合,不习惯共享,不习惯拥抱变化,固然,这也和工人很封闭的流水线思想很一致。
这部分C++开发在带新人的时候,也像工人同样,有【带会徒弟饿死师傅】的想法,因此,他们都吝啬的传教技术。
而且这种C++工人的特质,是会传递的,因此,即使是思想更开放,视野更优秀的90后的C++开发,也会由于遇到这样的师傅,而变的更像工人。
咱们能够看到不少工人是不辞辛苦的,这是优势,但优势伴随着缺点,那就是工人是习惯颐指气使的,他们不只习惯别人的颐指气使,也习惯颐指气使别人。
而个人亲身经历是,个人一些同窗,由于在工厂上班,本来青春飘扬的知识分子,在十几年后,变的和农民工如出一辙,那说话的语气语调,对事物的认知态度,根本和当年判若两人。
对于C++工人,我还没见过,有变成跟农民工同样的气息的。但确实,气息是真的很接近,区别可能就是穿的更好一点,骂街这种事,对他们而言就是常规的语言输出。
这一点我在上一篇文章《一个C#开发者重温C++的心路历程》的评论里,再一次深入的感觉到了。
虽然有不少C++开发文质彬彬的回复,证实了C++开发的高素质,但也确实有更多的C++开发直接骂街。
也许是林子大了,真的什么鸟都有,并且三五成群。
经验分享:【当你听到C++开发须要更多思考,C++工做强度更大,C++开发是底层工做,C#作不了C++能作的事的时候】等等证实C++更高级的言论时,切记不要生气,不要反驳,由于对方必定是个菜鸟,他即不了解C++也不了解C#,而你能听到这样的言论,说明你的水平已经远远在对方之上了,所以,你的反驳,实际上是在教导对方学习,这很吃亏。
----------------------------------------------------------------------------------------------------
注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文连接!
若您以为这篇文章还不错,请点击下方的【推荐】,很是感谢!