主剧情 大一下(一)

less than 1 minute read

上回说到我们新生研讨课小组选题,我们选了二维码作为课题。

做二维码的整个过程还是很成功的,我花了十多天写出了个能把一段字符串编码成二维码并显示出来的小程序,洋洋洒洒千行码。制作过程写在这里

新生研讨课中期报告的时候,我费劲心思做了干货满满的PPT,还在报告时讲超时了。我试图把各种细节都塞进去。但显然大家短时间内没办法理解算法的细节。现在就清楚了:明知道短时间讲不清楚的东西还不如不讲。

不过导师似乎不为所动。

导师是物理系的教授,温文儒雅。带着一点点肯定,但并没有表现出什么惊奇,他说:“等于是说你们是按照标准把算法实现了一遍,那你们做的创新点在哪儿呢?”

我一下子被问住了。只好随便扯了些:“别人做的二维码编码程序代码太长难读懂,我们的代码很短很清晰……我们的代码从头到尾是自己写的,没参考别人的……”,但显然没有回答到点。

导师就接着讲了下,大概的意思是强调了创新的重要性,要不然,以后也就只能写个APP赚点小钱什么的。

我仍然觉得我们的工作是很有意义的,无论它有没有创新。 因为与researcher不同,程序员的工作重点在于稳定地实现已有的实用的方法,并融合到产品中,而不是创造新方法。当然,程序员也是会有创新工作的,比如,根据业务场景,采用了某种设计模式进行编程,极大的提高了开发效率和健壮性;亦或是使用了哪种数据结构、硬件特性,减小了时间复杂度或者提高了硬件性能。(当然,你也可以批判,这些程序员所谓的创新,也是基于已被提出的理论/论文的。但我还是觉得,首次尝试把某种idea、方法,运用到某个产品当中去,也是可以算作创新的,是不是。)

无论如何,这些程序员做出的创新,都是在充分熟悉和复现代码后才能做到的。所以纵观整个过程,我认为程序员首要做到的是把已有的很实用的知识弄清楚,,甚至,作为练习,自己重复实现一遍,而不是光想着创新。在已有的很实用的知识弄熟悉以后,后续创新和优化是水到渠成的事情。

这里也就涉及到了研究员和程序员价值观的不同:研究员的工作以创新为目的,然后发paper,而这种创新不一定在工业界中实用;程序员不会以产出新idea为目的,以实用(实用可以是许多评价标准,运行效率高,检测效果好等)为重,同时,为了能够更实用,程序员可能会从工程角度做出一些创新和优化,它们虽然不是新idea,但同样是很精彩的工作。我显然更喜欢程序员的价值观和工作模式。

而如果真的要在二维码编码理论层面做出的创新,我觉得是相当难的事情,也不见得会被广泛接受。

说回新生研讨课。相比我们组的话,其他有些组就显得很水了(当然也有做得很认真的),特别是所谓“调研”类的课题,贴上大量的资料文字图片,饱满的PPT就做出来了。这里没有黑的意思,新生研讨课做的水,在科大是常态,我所见到的大部分同学都是水过去的。

能做的不水的,据我所知,要么就是一些对力所能及的物理问题的探讨(有个组做的是研究由表面张力差来驱动的纸船,其形状对运动情况的影响,就属于这类。他们还弄了个水槽做实验检验。导师似乎也挺欣赏,现场还会就受力分析提问题。);要么就是像我们组这样写程序。

我所见的最牛逼的新生研讨课作品,要属jenny42学姐做的评课社区了,很实用,现在仍很活跃。


我该说一下这学期其他的事情了。下一篇应该会讲一些别的课的经历,以及我是怎么想转计院的。