分享

为什么大学老师教编程上课都不敲代码?

 半佛肉夹馍 2023-10-20 发布于河南

问:

一枚大学生,学过c c#Java,但是这些老师或者我所了解到的高校老师,上课都不以敲代码为实例

答:

很简单,老师不是专业程序员呗。

如果你真的写过程序,那么一定知道,写程序有N个层次……

1、这个东西的原理是什么

2、我该如何把它用代码表达出来

3、这个表达方式究竟对不对?能不能通过编译?

4、哎呀,为什么这行程序还有这么多副作用?坏了坏了坏了……它完全不按我预想工作怎么办?

5、我就是参考书,所有语句在内存在寄存器在任何地方的任何副作用全都门清!

6、哎呀哎呀边界值……这里究竟该用>呢,还是>=呢?分割点这个边界是写成j+1呢,还是j-1?坏了!j是不是丢了啊同学们?

7、我才写了两行你给我报7K错……这鬼画符怎么看?什么时候C++里面来了这么多双冒号这么多<>>><><><<>?!

一般来说:

纯看书能把1学好已经很不错了;

想到2就必须多思考;

想到3就必须多上机;

想到4就必须把微机原理、操作系统原理等等融会贯通(不需要很深,但起码得知道哪是哪);

想到5就得对编程痴迷,没用又疯又傻的经历,怎么可能把满篇鬼画符读出肉味。

想到6反而得从书里走出来,彻彻底底把自己的脑袋变成CPU,以至于见了代码无需实际运行静态分析都能把它的整个运行过程看的通通透透……

想到7就得跳出课本窠臼,自发的跟踪研读新技术——没错,泛型之类“过新”的技术并不在教材范围内,你必须有能力自己查资料自己教自己知识……

如果你想要在课堂上现场敲代码、敲完一遍过……那么不到5甚至6基本上是不可能的。然而很遗憾,这水平哪怕专业程序员都不多见——我在知乎说自己编程,不超2000行一般都能0 error 0 warn 0 bug一遍过,多少人骂我吹牛。

对绝大多数人来说,一段代码写完,编译运行255个错误(第255个错误是错误太多无法继续)才是正常现象;然后排错一排五六个小时(往往总还是会有一两个错误无论如何都找不到根源)……

等等……一节课是多少分钟来着?

贴点数据。

https://security./questions/21137/average-number-of-exploitable-bugs-per-thousand-lines-of-codesecurity./questions/21137/average-number-of-exploitable-bugs-per-thousand-lines-of-code

根据这个数据可知:

google chrome每千行代码bug率为0.06;或者说平均每十万行代码有6个bug;或者说平均每一万行代码有0.6个bug。

Firefox的代码质量要更好一些,千行bug率仅为0.05;也就是说平均每两万行代码会有一个bug。

python千行代码bug率为0.003,一百万行代码有3个bug,或者33万行代码出一个bug。

ruby千行bug率为0.08。

PHP千行bug率为0.03——刚好比python差了十倍。写的真烂,三万三千行代码就有一个bug。

django的bug率为0.007,比python代码质量差了不少,十几万行代码就有一个bug。

ruby on rails的bug率为0.05。

总结起来就是,这些业界支柱级的开源项目,其每千行代码的bug数目介于0.003到0.08之间;或者说,平均每一万两千五百行代码到三十万行代码会出一个bug。

再看看这个,看看你们能不能被吓死:

>>industry average bugs per 1000 lines of code at 15-50 and Microsoft released c...

业界平均每1000行代码有15到50个bug;微软released代码平均1000行有0.5个bug——而NASA的代码,50万行0bug!

看看这个数据,看看这些业界顶尖程序员的代码质量。

现在,看看我那可怜巴巴的、2000行代码0bug的记录,您觉得我是“代码质量真好”呢,还是“2000行无bug也值得出来吹”?

看着业界顶级程序员们的水平,我还觉得自己这两下子不够看呢;你们居然觉得是吹?

是我对自己要求太高呢,还是你们眼界太狭隘?


点个在看你最好看

Click on it to see you look good

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多