鄙视.net C# 程序猿,欢迎进来丢砖,拍不死我,算我赢
中国程序员的通病—非常不专业。不知道是不是被那些资产阶级压榨和剥削的结果,编写软件的速度可观,质量却十分不敢恭维。真是被压榨的,还说的过去,可自己还得提高自身的修为,不然如何成长?
有一句话,经常成为程序员的贯口:现在内存那么大,不担心;现在 CPU 那么强,别担心
最终写出来的程序,运行速度超慢,用户体验很差,粗制滥造,和地摊货没啥区别。真是一个生产大国啊!!!
有了像 CSDN 这样的编程论坛,程序的工作就更简单了。除了问就是问,然后抄,抄完还人云亦云。能提高吗?
一个简单问题,从一个文件夹下,随机选取一个 txt 文件,也拿出来问,视.NET 的帮助而不见,要是该帮助是 E 文的,恐怕更被丢到九霄云外。
提问者白痴也就算了,刚入门嘛,能理解一层。看看高手是如何回答的:
var file = new DirectoryInfo(@"c:\path").GetFiles("*.txt", SearchOption.AllDirectories).OrderBy(x => Guid.NewGuid()).First();
功能实现了,也十分简洁。为何认定此人是高手,因为菜鸟写不出这么简洁的功能强大的语句。
我倒要问下,行不行啊?
为何要排序?不就是选取个随机文件,和排序扯得上半点关系么。
你恐怕回答说,反正是实现了,并且 CPU 够快了,你担心个鸟啊。
南辕北辙,这个中国古老的成语故事,大家不会陌生吧。
条条大路通罗马,可我就是不选最短的那条线路,反正盘缠多。你是不是有点杞人忧天啦,神经病!
如果你斟酌过,确保那个文件夹下的文件不多,上面的语句,偶尔用一用也无妨。如果这样的操作非常频繁,可就要当心了,或许要搞半天,界面阻塞,用户体验极差。你可以按这样辩解,但你总是回答说,“CPU够快的了”,我马上就会骂你个狗血喷头。
有的人,特别是程序员,非常固执。碰上这种问题,他们并不是就事论事,就技术论技术,反倒还要诡辩。我不过只是随便拧出来,往这里一贴,我平常不是这么用的。我给老板干活,为什么要写得那么好,写好了,我不就失业了嘛。和上面的“CPU够快了”如出一辙,理由很多,看似还牢不可破。
对于前者,我看来,你平常就是这么用的,这种用法已经深入了你的人心,还不知悔悟,这就非常可怕了。结果将是垃圾代码一大堆,慢如蜗牛,后续在性能改善上,花费的时间成几何级上升。你贴了出来,还非常误导人。
对于后者,问题的根本,不在于你堆砌了多少垃圾代码,而在于你对这些代码理解多少。你可以给老板写垃圾代码,但你自己时刻都知道这些代码确实很垃圾。人贵在有自知之明。
还有一句贯口,“先实现了功能再说”,言外之意是,想不到那么长远和周密。可恨,更可怜,没想好之前,你何以要动手?
就上面的事例来说,你写了一个非常简练的,功能完整的语句,而写这条语句耗费的时间,远比下面的语句多:
var files = new DirectoryInfo(@"c:\path").GetFiles("*.txt", SearchOption.AllDirectories);
if( file.Count > 0 )
FileInfo txtFileInfo = files[new Random().Next( 0, files.Count )];
从时间耗费,效率上考虑,你都在舍近求远。
不要跟我说,你的语句是某教科书抄来的,是非常经典的语句。又在那诡辩了,理解了么,抄会了么!
一个稍显功能的语句,你都不得不考虑数据结构和算法问题,真正也是举手之劳。
你可不要从这个极端走向另外一个极端,事事都搬高升的算法来解决问题,每个语句都字斟句酌,旷日持久,纯迂腐之人。
杀牛总是要用合适的刀,过大过小,都为过,牛虽然死了,肉却没法吃。
有规模的大一点的公司,都比较注重你对数据结构的掌握程度。到华为腾讯去应聘,你最好复习下数据机构,否则不上两关,就刷下来了。就平时也需要加强这方面的训练,一个不懂数据结构的程序员,不要说成为分析师,架构师,混碗饭吃都难。
而最重要的一点,知其然,还要知其所以然。
对于缺乏基本功,浮于表面的人,问题一旦复杂,从一开始技术选型就会错,架构会错,数据结构也跟着错,最后那个系统稀巴烂。
我也是个小老板,我允许下面的人给我写垃圾代码,一旦被我发现,你得正面应对,诡辩将会受到严厉的惩罚。这对你自己也有百利而无一害。
我发现个问题,和 .net 程序员合作非常困难,.NET 门槛很低,导致大量半罐水进入了编程大军。写出来的程序,界面一操作就阻塞或崩溃。最要命的是,问题依然,他们却熟视无睹,死不悔改。见过固执的人,没见过 .NET 程序员普遍这么固执的人。
再说到理解力,哎哟喂,你们随便翻一下 .NET 论坛里的回答,90% 都是答非所问,虽然有些夸张,但都揭示了这些人的理解力有多差。除去打酱油,说梦话,捞积分的人,那也有百分之七八十的人,理解力都非常差。真正的高手,都不在网上瞎混。
问题很白痴,理解很白痴,回答更白痴,看来白痴真的会传染,滥竽的人太多了。
我今天上来发发牢骚,欢迎拍砖,准备迎接暴风雨。也希望程序员们加强自身修为,提高技能技巧,你可不要硬撑,这行真不好混。