图一:Coursetable产品选课的主界面,目前已经对全社会开放,外部用户可以以Guest身份登陆,访问网址:https://coursetable.com
CourseTable是由耶鲁大学本科学生开发并维护的一个非官方平台,帮助耶鲁的学生更高效地浏览和管理课程。它将多个数据源的课程信息整合在一起,为学生提供一个易于使用的平台,帮助他们在选课过程中做出更明智的决策。
CourseTable的主要功能包括:
课程搜索与筛选:学生可以按学科、教授、课程难度、评分等多种条件筛选课程。CourseTable的课程数据主要来自耶鲁大学的官方数据源,但经过重新组织和呈现,方便学生查找他们感兴趣的课程。
课程评分和反馈:CourseTable包含了许多学生对课程的评分和评论。这些反馈信息来自之前上过该课程的学生,包括课程的难度、工作量和教授的教学风格,这对新生或未选定课程的学生非常有帮助。
课程时间表与规划:学生可以在平台上规划自己的学期课程表。CourseTable会根据课程时间、冲突等因素给出提示,帮助学生更合理地安排时间表,避免冲突。
个性化推荐:基于学生的学术兴趣和历史选课记录,CourseTable会提供个性化推荐,帮助学生发现可能感兴趣的课程。
课程趋势分析:CourseTable还可以展示某些课程或教授的受欢迎程度变化,方便学生根据趋势分析来选择热门课程或避免高需求的课程。
注:以上内容来源于果总公众号“陈果George” 对产品功能的介绍
从访谈中了解到,CourseTable 有一段复杂的历史,产品构想从2012年就开始了,中间经历了一段时间的反复,2014年还曾经被校方关闭过,后经历了一段时间的调整后和重构后于2020年重新发布,自现任产品经理Joshua接任以来,已经成为耶鲁大学本科生最受欢迎的线上平台,有1W+ 用户,占耶鲁本科生的95%,日均请求上千万次。
图二:CourseTable产品首页
一、产品开发背景
关于为什么耶鲁大学没有官方的选课平台,而由他们团队来开发这款产品,产品经理是这样介绍的,由于耶鲁大学本身也面临着技术资源稀缺的问题,会面向社会选择适合的技术公司,并与之签订长期合同(5~10年),委托他们为耶鲁开发各类教学平台。
由于开发时间较早,因此校内的官方平台存在着技术栈较为落后,产品功能缺失以及无法满足高并发要求等问题,基于以上原因,最初由两位联合创始人发起了此项目,并基于兴趣的原则,成立CourseTable开发团队,并延续至今,目前整个团队成员规模16人,均是耶鲁的本科生。
产品经理Joshua同学目前是耶鲁本科大三,主修数据科学和语言学,团队成员均具备编程经验,但侧重有所不同,有程序开发方向和基础架构方向。
二、技术栈和架构设计
CourseTable的前端采用的是React,以满足高并发请求下的系统性能,通过CI/CD在应用程序的构建、测试和部署中实施自动化,包括多分支的合并发布,开发运维一体化等内容。
可能是考虑到受众的因素,关于技术的部分,访谈中着墨不多,产品团队选择的都是主流的技术框架,其中也包括Docker的部分,这些技术应用也都在国内得到很好的应用,就不额外介绍了。
但Joshua也提到了,技术的使用是一方面,但更加重要的还是人和团队,大家对流程是否重视,包括流程的自动化,代码的审查。他特地提到,在他刚接手这款产品的时候,代码发布流程还比较原始,采取的是登陆服务器以后手工运行脚本的方式。自他负责以后,就慢慢完善成自动检查、自动更新的发布方式。
用什么样的技术固然重要,但技术本身只是一个工具,用的好不好,还要看掌握这个工具的人,是否采用了正确的方法。拿着切丝的菜刀去剁骨头,是不可能剁的干净利落的。
三、产品管理方法
Joshua介绍说,他本人比较重视与用户的互动,产品的主要需求来源于用户的调研,调研途径包括网站上发布的调研报告和论坛上用户的反馈,整个产品与Google的Calendar和Form均有很好的集成。
这方面我们国内app的各种收集客户反馈样式感觉更多样化,现在更多时通过手机app,微信推送的各种问卷,以及app里设置的数据埋点等方式,让用户反馈的信息和数据更精准。
收集到足够多的需求以后,产品经理会定期发布产品的RoadMap,以及不同时期产品的特性,放到团队的ToDo List中,由各位开发人员自己填写不同任务的Deadline,产品经理通过每周站会 weekly standup 来跟进产品开发的进度,讨论当前开发遇到的问题,各类feature开发的效果,以及实现效果的反馈。
当完成若干批次的开发后,并进行产品更新后,产品经理会在网站上发布本次更新的Release Notes,介绍更新的内容,最近一次的距离不远,是2024-08-26,对于一个纯粹义务维护的开发团队而言,这个更新频率已经不低了。
在问到是否会将更多AI的技术引用产品时,Joshua也表示,目前团队也对AI和教育结合产生了比较浓厚的兴趣,未来合适的时机和场景下,也会考虑AI的应用,比如说像我们国内的推荐系统,你只要说一下自己感兴趣的某些领域,系统就会给你主动推送适合你的课程。
四、团队的激励(Motivation)
这也是我比较感兴趣的部分,怎么在缺少物质激励的情况下维护好这款产品?毕竟都是学生,通过兴趣爱好无偿地在做这件事情。
Joshua介绍,这确实也是团队面临的主要问题,毕竟耶鲁的学业和课业非常繁重,大家都是无偿干活,另外他们的技术能力也有限,毕竟只是大二或者大三的学生,网络开发,技术架构,也许才刚刚接触,技术资源也比较有限。这时能够支撑大家进行下去的,就是从事这件事情的意义感本身,以及自己能从中获得什么。
一方面,团队能够通过用户的评价来获得反馈,毕竟人都需要被他人认可,一个用户的好评能给人极大的激励,他特别提到,最近上线了一个“好友系统”就颇为用户认可,你如果对某个同学感兴趣,可以申请加他为好友,一旦认证通过后,就可以看到他学习的课程。
这个功能一经推出,受到了用户的广泛好评,那么这个功能模块的开发者在和朋友交流中感受到他人的认可与肯定,自然也有动力继续干下去。
我看了一下,用户对产品评价颇高::
“Thank you for making this website!! It's a life saver every semester.”
"Appreciate all that you do! Course table is a life saver”
"This should not be free”
还有这位兄弟,愿意自掏腰包,每年出10美元:
“I would pay 10 bucks a year for this service. Yale should pay you guys lol”
第二点,就是如何让团队成员通过CourseTable这个产品,提升自己的技能,他提到虽然团队成员都有编程经验,但各人爱好不同,前端、后端、基础架构,各有侧重,他作为产品经理,就是考虑到不同组员之间的兴趣爱好,然后整合进产品路线图中,让每个人都能做自己感兴趣的事情,并从中得到快乐,毕竟兴趣才是最好的老师。
五、思考与启发
Joshua也提到,对于如何将产品商业化,团队也有过思考,未来通过搭建SaaS应用,把产品开放给美国其他的高校使用,也是一个可行的方向。
这里不得不感慨一下美国商业环境之健康,用户有付费意愿,社会鼓励创新,对SaaS的接受度很高,政府和跨国公司,甚至是军队都愿意把核心系统架构在云上,反观咱们这边,还在讨论核心系统要不要上云,企业软件这一课,我们和美国比,落后的太多。
第二点,就是关于兴趣爱好方面,目前国内教育最大的问题就是太卷,过早的让学生进入了教育的军备竞赛,长期的刷题已经磨灭了学生们对学习的兴趣,等到了大学以后已经培养成一个标准化考试的机器,对任何事都提不起兴趣了,这也是导致目前年轻人大面积躺平的一个原因。
我们的这套教育体制,更擅长培养大规模工业化所需要的技术型和工兵型人才,而美国的这套教育机制,更适合有一定天赋的年轻人,给他机会和空间,让他自由发挥,并在这个过程中给予较少的限制。
中国的教育体制,保证的是底限,确保进入到这个教育体制的年轻人,差也不会差到哪里去;美国的教育体制,激发的是上限,给最厉害的那5%甚至是1%施展的空间。所以美国人擅长从0到1的创新,才能出马斯克。
接下来怎么融合这两套教育体制的优点,让我们的高考在保证公平的同时尽可能地激发效率和活力,是在中美竞争的大格局中我们需要考虑的。
最后一点,说到国内高校的计算机专业本身了,从介绍上来看,国内外一流大学课程本身的设置,没有什么特别大的区别,最大差异在于实践。
美国的高校,鼓励并创造条件让学生参与课题实践,极其重视学生的动手能力,尤其在计算机教育这块,你学什么专业,就需要做出一个麻雀虽小五脏俱全的小系统出来,充分理解原理和逻辑,就像CourseTable一样,这样的一个系统,已经比国内很多大企业在用的内部系统要强大了。
可以想象,优秀的大学生从大二和大三开始就开始参与产品的开发流程并且要面对如此多的真实用户,他所面临的问题和考验,和那些整天只为了通过考试而学习,考完就万事大吉的人,是完全不同的,这么几年下来,两个人的软件技能,解决问题的能力,团队管理的能力,是千差万别的。
现在国内高等教育面临的问题,是产学研脱节。高校培养的是社会不需要的大学生,学历贬值加剧,本科生去当快递和保洁,另一方面,我和多位软件业的大牛也都交流过,很多项目急缺人手,想给机会给一些普通本科的大学生,可不少人只会学校里教的那点东西,数据库就懂个基本的SQL语句。课本里只要不提就不会,完全跟不上用人单位的要求,必须手把手教,还不一定会。
从这个角度看,想从事计算机及相关专业,最好的方式就是去开发和创造,说一千道一万,还是用你开发的产品说话,Joshua团队把CourseTable 的代码也放到了GitHub上,完全开源,https://github.com/coursetable ,试想以后介绍自己时,其他的话都不要说,直接把自己开发的产品分享出来,就是最好的介绍了。
懂技术,懂产品,参与过软件设计,开发的产品又受欢迎,这样的人才哪个用人单位不喜欢?在数字化和AI的时代,单一的人手发展一定会受到限制,只有既懂技术又懂产品,还懂管理的人,才是最受欢迎的。
以上是对本次视频的概要整理,如果有感兴趣的小伙伴,可以去看原视频,点击文末视频可观看。