题主悬赏了20铜    |    已采纳 c-wangyu-c 的答案

代码写得长就很菜吗

微博   微信 2019-04-01 15:26     29个回答 其他
一个计算物理课,我采用c++/OpenGL/OpenCL实现了一个中心差商算法求电场和磁场,被老师吐槽,你这写了5页代码,编程能力也太弱了。
殊不知如果不用特殊计算库,需要自己完成大型矩阵构造和并行求逆代码。并且为了代码可重用性,在许多地方都留了接口。今后修改拓展都比较方便。还用底层图形库绘制了图形,效果也不比matlab差。而matlab(20行)写的同学就被表扬,代码精简有效,甚至还要分享传阅。

所以我今后用傻子都会用的matlab比较好?老师还是某学院院长,得过国家科技进步奖,具体名字就不说了,从这件事以后就对他刮目相看了。难道超大规模运算你也用matlab?难道你服务器上运行的是matlab代码?

———————————更新———————————
谢谢大家回答,不管是觉得老师这样方式不好,或者是觉得我这种方法不好的人,都谢谢大家。主要是发泄一下牢骚,并且展开一下讨论,看看大家对这种情况怎么看。
我一直觉得自己需要了解算法底层的,所以我会自己造轮子,自己造的轮子可以自己修改。别人的轮子不仅仅有学习成本,内部实现也不知道。当然,时间成本过高我会选择已有库。谢谢几个大佬给的常用数学库。
我是执行效率至上主义者,能优化的程序我会尽量优化,这也是我喜欢用底层语言自己写的原因。另外我也不是想职责这个老师,只是他在课前就说用什么语言都行,大家都知道要对比长度,合理性暂且不说,c/c++的长度肯定不占优势。
质疑这个老师主要在于,疑似他对于自己不熟悉的领域也站在至高点。这让我对于他那些非专业问题(非专业问题)讨论的正确性持有怀疑。不过老师扯一些题外话确实也没有必要认真。
就是对他一脸不屑在全班说,有些同学写了那么长的代码,编程能力也太差了,感到痛苦。
总之谢谢大家了。
回答
  • 本条答案已被采纳 c-wangyu-c
    众所周知,P9是个程序员交流论坛
    2019-04-01 15:27
  • 20行的就只是为了解决当前问题而已了,我觉得题主很强啊,留了接口提高拓展性和重利用性,这个习惯很厉害啦从这个老师的骚操作看来,有点水呢
    2019-04-01 15:37
  • “老师,下次你布置别的作业,我可能还是交这份代码就能通过了”
    2019-04-01 15:42
  • 众所周知,多数国企检查开发进度和绩效的方法是:统计代码行数。
    所以,在各位领导眼里,一个功能能用越少的代码实现,那你就越牛逼。
    2019-04-01 15:46修改
  • 2019-04-02 09:49修改
  • 刮目相看似乎是褒义词?
    2019-04-01 15:54
  • 我怎么感觉p9里的人怎么啥都懂。只有我是个弱比,别人说啥啥都听不懂的那种
    2019-04-01 15:56
  • 可读性才是关键,不搞纯软的不差那点代码优化,搞生气了临走注释删一波。导师一般都不咋懂,不用鸟他们,懂个卵,就是找个由头刷自己的存在感而已。更多的吐槽大会请看小木虫。
    矩阵多用用Eigen 3,值得学习。
    2019-04-01 15:58
  • 如果你认为自己能力强,就别把视野局限在校内了,不用在意老师说什么

    想办法把能力用在合适的地方

    仅仅单纯就重复造轮子这件事来看,在哪也不是那么值得吹捧的
    2019-04-01 16:00
  • 编程能力太弱了 这种评价压根不在于是不是重复造轮子的问题了吧 而是这人根本不懂软件工程是什么
    2019-04-01 16:19
  • 众所周知, 全P9只有我不会写代码
    2019-04-01 16:27
  • 仔细看了下题主的描述,好像自己心中已经有了答案,就是来这发泄一下,我就不多做评论了。
    2019-04-01 16:39修改
    •    2019-04-01 16:43 回复 orcasdli  @adsaracai 科研性质的代码与软件行业代码的倾向性不同,面向的人群和场合也不同。你之前说的也完全没错。
    •    2019-04-01 21:09 回复 certain_li  @adsaracai 预设立场的提问总有点陷阱的味道啊……
  • 涉及到大规模矩阵我肯定直接用matlab
    2019-04-01 16:48
  • 你没错,但是你同学和Matlab也没错如果老师真这么想的话那显得不专业,也有可能是看见这么长的代码随口吐槽一句

    代码长短这些不能一概而论,至少用Matlab的同学确实是十分聪明,他的代码才会被传阅的。
    至于老师的话就不要放在心上,这也是一个好经历,尽量不要被别人的话影响自己的心态
    2019-04-01 17:10修改
  • 某些情况下,是的
    2019-04-01 17:02修改
  • 这是院长太菜了,他说的如果确实是“编程能力也太弱了”,说明他不懂编程

    话又说回来了,对于非计算机/软件方向的,他可能确实无法了解lz这个事情有什么意义、要费多少功夫。在一个作业能用matlab20行解决的情况下,这个问题就适合于用matlab解决,matlab就是最合适的工具,能够让你费最少的劳力满足需求,而lz使用专业库和图形库(这就是matlab解决的问题,属于重复造轮子),考虑扩展性、代码健壮性(对于非科班出身根本意识不要这一点的价值),想让别人正确评价还是挺难的。

    当然lz做了这么多的工作,如果想要展示出来应该:1、matlab版也要实现,作业做两份,怕什么;2、展现你的方案的优势,稍作修改可以实现一些matlab无法实现的功能。
    2019-04-01 17:58
  • 工作后的经验总结出来的几个基本点:
    1. 不管效率如何,先解决当前需求。
    2. 解决需求后,再提升效率和性能。
    3. 这一点可有可无。需求、效率、性能都解决后,再考虑可扩展性。

    学术派观点和实用派观点是两码事。 理论不实用化的话,一点用处都没有。
    2019-04-02 11:58
  • Don't reinvent the wheels.
    2019-04-02 12:14
  • 又发现一个程序猿 活捉!
    2019-04-02 13:49
  • 可以去v2ex站发帖
    2019-04-02 14:04
  • 只会写bash脚本的悄悄溜过去。。。
    2019-04-02 23:15修改
  • 大学老师有些挺水的 最近在大学里听讲座 有个教授吐槽同学院的另一个教授喜欢各种虚的名号 来头挺大 但其实他就只是给学生上上课而已 手头根本没有研究项目 也没有特别擅长的领域 讲的课也只是普及知识
    2019-04-02 15:00
  • 这就是发明轮子和用轮子的区别啊。
    你把你造发明的轮子发出来让大家用用,有人用的话也就轮不到老师来评价你了。
    2019-04-02 15:29
  • 代码我不知道如何,心理能力倒是不强
    2019-04-02 15:38
  • 恕我直言 教师非专业研究方向真没学生厉害。上课讲的东西一堆问题,我鸟都不鸟他们
    2019-04-02 15:58
发表评论,请先 登录
T