原标题:【投行实习怎么找】当文科生遇上编程
关注公众号:【索沃内推】。查看券商、投行部(IBD)、研究所(行研)、证券、基金、VC、PE、四大、MBB咨询最新可内推实习岗位List。
【索沃内推】:提供留学申请、工作求职、背景提升一站式解决方案,指导过近千名学生成功求职,以内推形式帮助百名学生进入投行、券商、咨询、四大、快消等。
点击了PyCharm中的Run后,谢云腾带着疲惫爬上床,留下电脑在黑暗中飞速运行。这已经是他写这次文科计算机基础实验班课程作业的第三个晚上。
这是一次网络爬虫作业,要求爬取“新浪每日热点新闻”版面连续31天的新闻内容,并对字数、图片等信息做多元化的分析。由于数据量庞大,运行整个程序耗时长达45分钟;再加上校园网不稳定,经常导致程序报错,停止运行,没有点好运气,程序很难执行成功。所幸第二天早上醒来,谢云腾终于看到了“Process finished with exit code 0”(程序执行成功,正常退出)。
谢云腾的困扰在北大并非个例。自从程序设计被全面纳入文科计算机教学,许多文科生都不得不面对这个陌生的领域。随之而来的是种种不适应:老师讲得太快,难以跟上;作业得不到细致讲解,答案很难看懂;上课听得明明白白,自己操作却总是失败……一时间,文科生学编程被推上了风口浪尖。
△未名BBS上对文科生学编程的抱怨
编程归来
实际上,编程并不是在2018年秋季学期第一次进入文科计算机课程。
早期的教学计划要求文科生必选两个学期的文科计算机课程,第一学期教授计算机基础知识和办公自动化,第二学期教授程序设计。2000年后,随着Office的普及,第一学期的内容变为计算机基础知识和Office,第二学期则提供多个专题供学生自主选择学习,这中间还包括程序设计。2015年前后,随着毕业学分调整,文科计算机课程被压缩成一学期;同时,信息科学技术学院也开始了让编程回归文科计算机必修课程的探索。
2018年是试验的第3年,也是最后一年。此后,不管是在实验班还是基础班,编程都成为了必修内容。
但编程的回归并未得到普遍欢迎,反而引发了不少争论。
教学方式是争论的焦点。“老师没有操作代码,直接把例子放在课件上展示,当我们还在看代码是啥意思的时候,已经放过去很多张幻灯片了。”国际关系学院2018级本科生张宸赫说。他认为编程教学进度过快,效果不好,不如把课程分为两个学期,第一学期详细学习Office,第二学期慢慢学Python。“就像学语言一样,从学音标来开始。”
“培养科学家和培养实际使用者,这两个是有区别的。”负责文科计算机基础实验班教学的邓习峰老师猜测,第一次讲Python的老师可能采用了培养专业“码农”的方式,转换成适合文科生的教学方式需要一个过程。“另一个问题在于时间太短,”邓习峰分析,“现在的文科计算机课程由原来双学期的课变成单学期,时间缩短导致内容讲不完,不够精细,学生容易处于‘半生不熟’的状态。这是课程建设过程中要继续优化的内容。”
但他也表示,课程开设之初,学院就制定了针对文科生的教学计划,编程语言的选择就是特点之一。
“这次选择经过了复杂的决策,但后来我们都选了Python。”邓习峰说。相比其他编程语言,Python具有跨平台、入门简单、数据处理能力强、功能库丰富等优势。也正因此,近年它的流行程度上升很快,并成为2018年TIOBE编程语言排行榜年度语言。
△热门编程语言的百度搜索指数
由于处在过渡期,2018年秋季学期的编程教学没有设立统一大纲,不同班的教师自主选择授课方式和内容。“但只要是程序设计,内容基本是差不多的。”邓习峰说,“可能每个老师对难度的把控是不一致的,但到了2019年秋季学期就会相对统一。”同样,试卷也由各班教师自主命题,但均包括笔试与上机测试,按不同比例计入总成绩。
在邓习峰看来,“自用程序设计”是文科生学习编程的主要目的。相对于“公用程序设计”,后者目的在于给别人使用,而前者注重满足自己的需求。
“比如处理研究数据时,如果Excel解决不了,就可以先用Python解决,再交给Excel做可视化。” 他以自己研究的北京交通大数据举例:北京一天的交通数据约有1600万条,Excel完全无法处理,其他软件的效果也不好。但用Python处理只需要很短时间,就可以得出每个车站的客流量、乘客上下车时间、不同地区乘客的乘车偏好等信息。再将数据进行拓展,加入每个站的经纬度,结合地图后就可以分析哪些地方人最多、人群的流向是哪里。这就为国民经济的决策提供了保证。
而在人文学科中,中国历代人物传记数据库(CBDB)也为历史学研究提供了更多角度。CBDB依托程序设计与数据库技术,收录中国历代40余万人物的传记和谱系。借此,研究者可以查询某地在科举和出仕方面的表现,或将某特定时空下的个人创作连接起来做多元化的分析。
△CBDB 中已知籍贯的 67,000 历史人物的地理分布图
“这样的技术应用到了历史学,很多概念的呈现会更加可视化、更加直观。”邓习峰认为,相比于定性研究,编程更多是在用数与算的概念去衡量我们所面对的世界。这在某些特定的程度上弥补了中国传统思维的欠缺。
对2015级元培学院光华方向本科生韦铭杰而言,编程属于专业的一部分。在他学习的量化金融领域,编程的地位举足轻重。他表示,国外有些面试地点就有计算机,要求面试者现场编程。一次量化金融行业的实习面试中,面试官当场提出一个问题让应聘者写程序,并现场对程序进行点评。
由于当时的文科计算机教学不包含程序设计,韦铭杰特意选择了计算概论B。在他看来,学校学的和工作用的编程是有差异的,实际用的编程一定比学校学的复杂,但假如没有课程内容做基础,是做不到实际运用的。
2012级经济学院本科生唐奕波在大四时尝试过自学编程,因为感到投入产出比太低而放弃。他认为编程不能只依赖于效率较低的自学,更希望能有比较熟练的人引导,这样有问题可以直接问他们。
编程无用?
但是,对于大部分选择就业的学生,编程并不是必备技能,在应聘中也不一定锦上添花。
“(就业对编程是否有要求)主要看找哪方面的工作。” 2012级经济学院本科生沈士竣介绍,“做量化金融或搞学术的话,对编程的要求还是很高的。但如果做行业员、投行、基金、PE(私募股权投资)等,要求不高。”从本科到研究生,他接触的编程主要集中在MATLAB、Stata等数据分析软件。但对于学习Python、C++等编程语言,他表示尚未考虑:“暂时接触不到。”
同样,虽然唐奕波从事的股票研究行业需要相关程序,但他所在公司有专门的IT部门负责研发模块,自己基本用不上程序设计。他和记者说,股票研究企业招聘时,除非是量化研究,否则就对编程没有一点要求,也不会有“掌握编程优先”的情况。
这也正是很多文科生心中的疑虑:如果未来用不到编程,现在花很大力气去学,有什么意义?
信息科学技术学院的郭炜老师认为,“没有用”很多时候是“不会用”导致的。“如果会(编程)的话,你可以主动发现这样的机会,在工作中展示自己。这个才能对你的职业发展很有利。”他希望学生不要抱着“这个东西好像没什么用,我就不学”的想法。“那很可能以后有用却来不及再学,就错失这个机会了。”
同样受到重视的,还有编程学习对思维的影响。邓习峰很看重编程对文科生数理逻辑和计算思维的养成。“比如,把一个大的任务分解成几个小的任务,或定义若干函数,每一个都要把自己一段的任务做好。实际上这是一种思维的训练。”
2016级信息科学技术学院本科生吉如一也有相同的看法。“编程和说话不一样。说话可以有些模糊不清的地方,但是编程必须很严谨,逻辑性很强,不能出一点失误。”
热遍全国
当校园中探讨着文科生是否需要学编程时,编程热已经遍布全国,乃至世界。
△热词“编程”的媒体指数
在百度指数中以“编程”为关键词做多元化的分析,早在2012年,“编程”的媒体指数就经历过一次高峰,之后多次登上新闻头条。进入2018年,媒体指数又迎来高潮。正如郭炜所说:“现在所有人都要学编程。”
“原因很明显。”郭炜说,“计算机在各行各业都得到了很广泛的应用。所以,不管什么行业,你很快就会遇到需要编程的场合。以后编程可能不那么‘热’了,我觉得是因为它就像数学一样,任何一个人都要学了。”
邓习峰认为,编程入门难度的变化也是原因之一。随着软件提供的编程环境让程序设计的门槛降低,“热”形成了初步条件。“就像计算机的操作,原来是字符界面,进入图形化的界面后,计算机在全国、全世界都更加的普及。”邓习峰说,“程序设计是联系逻辑思维、实证思维和计算思维的重要途径,它能帮我们更好地理解当今信息社会。我相信未来它会成为中国大学生必备的基础技能。”
在哈佛大学,编程慢慢的变成了基础课程。CS50是哈佛大学的编程公开课,面向所有专业的学生,讲授包括C, PHP, Java, SQL, CSS, HTML在内的多种语言,早在2015年秋季学期就慢慢的变成了校内最热门的课程,得到超过800人注册,其中只有10%有过编程背景。
△CS50公开课网站
“我相信我们能做到比它更好。”邓习峰说。
何去何从
“课程压力很大,这是推行编程的代价。”邓习峰说,“但我们还是要坚持,我认为我们走的是正确的方向,更多老师也都已经认可了。这是大势所趋。”
但文科计算机课程依然需要改善。更好的教学效果需要更多的时间。由于学校的课时已经非常紧张,增开课时并不现实,通过引入新技术提高上课效率是当下最好的办法。邓习峰表示,未来计划采用MOOC(慕课)和翻转课堂的形式,把Office和计算机基础知识放到网上供学生自学,给编程教学更多课堂时间。
同时,上机课的教学也会引入新的形式。“比如说我们把每一次作业都做出多种解决方案,学生之间可以互相比较,看有没有更好的方案,让学习的质量更高。”此外,他表示如果时间允许,将会设计“百练百讲”,为每个教学专题附加难度适中的题库,帮助学生通过实践,尽快上手程序设计。
邓习峰还认为,学生需要改变抵触情绪。在文科计算机课程纳入编程前,Office和计算机基础知识是主要的学习内容,大部分同学对此已有一定基础,学起来相对容易。相比之下,编程的难度显然更高。“如果这门课改个名字,叫‘计算概论C’,可能很多人心里就平衡了。”他开玩笑说。
但他认为,程序设计绝不是文科生无法接触的。他表示,在Windows没流行起来之前,文科生用DOS系统学Foxbase、FoxPro(编程软件),甚至没有可视化界面,但学的效果也不错。“当然,对文科生的教授方法,比如说教学的案例、内容要求我们去优化,但是不能说文科生就学不会程序设计。”
变化仍在继续。邓习峰相信,随着课程本身与文科生结合更紧密,编程一定会走进文科生内心,达到最终目标: “通过程序设计,文科生能掌握一门伴随自己工作和学习的程序设计语言,也能更好地去理解当今的信息技术。”
关注公众号:【索沃内推】。查看券商、投行部(IBD)、研究所(行研)、证券、基金、VC、PE、四大、MBB咨询最新可内推实习岗位List。
【索沃内推】:提供留学申请、工作求职、背景提升一站式解决方案,指导过近千名学生成功求职,以内推形式帮助百名学生进入投行、券商、咨询、四大、快消等。
责任编辑: