高考填志愿的时候,我本来想报计算机的。
但是分数差了一点,最后调剂到了生物技术。说不遗憾是假的。入学之后每天上高数、无机化学、英语,忙是挺忙的,但心里一直有个声音:我还是想学编程。
不只是因为遗憾。我后来了解了一下,生物这个方向如果往深了走,生物信息学是一个很重要的分支,而生物信息学的核心工具就是编程。也就是说,不管我以后是考研还是找工作,编程这个技能迟早要补上。
与其迟早要学,不如现在开始。
第一次尝试,败在了第一步
大一上学期我就动过手。
在网上找了一本Python的电子书,翻了几页,让我先下载一个叫什么Anaconda的软件。我照着教程装了半天,各种报错,系统环境变量什么的完全看不懂。好不容易装上了,打开一看是个黑乎乎的界面,让我输入print("Hello World")。
输了。屏幕上出来一行字。
然后呢?
然后就没有然后了。我盯着那个黑框看了一会儿,不知道接下来该干什么,也不知道这个东西跟我以后要做的事有什么关系。翻了翻后面的章节,变量、数据类型、列表、字典……全是概念。
那本电子书我再也没打开过。
抖音上刷到的
有一天晚上躺床上刷抖音,刷到一条视频,画面是一个游戏界面,左边是代码右边是一个小人在跑,配的文字是"大学生零基础玩游戏学编程"。
"大学生"、"零基础"、"玩游戏"——这三个词每一个都精准踩在我身上。
我点进去看了看,是一个叫CodeCombat的东西。评论区有人说挺好玩的,有人说学到了一些基础。我当时就有点心动,但没有马上去搜。
第二天上课走神的时候又想起来了。下课之后打开电脑,百度搜了一下官网,注册了一个账号。
打开就能玩这件事很重要
注册完直接进了一个游戏界面。没让我下载任何东西,没让我配置什么环境,连教程都不用看,上来就是第一关:让英雄往右走。
我在左边的代码框里敲了hero.moveRight(),点了运行,右边的小人就走了。
就这一下,跟之前看电子书的体验形成了巨大的反差。那次是折腾了一个小时配环境,最后看到一行冷冰冰的Hello World。这次是打开网页三十秒,我写的代码就让一个角色动了起来。
然后我就停不下来了。
一关接一关地打,第一关走路,很快就开始捡宝石、打怪、躲陷阱,每一关都要写不同的代码。我也没有刻意去记什么语法,就是跟着关卡提示写,写完看效果,效果不对就改,改对了就过。
等我回过神来,已经过了一个小时,打了五关。
说实话,英语让我有点慌
不瞒你说,我英语不太好。代码里的那些单词,比如moveRight、moveDown,我一开始是真不认识。虽然打了几关之后大概能猜到move是移动,Right是右边,但心里还是有点虚。
我会想:后面的语法会不会更复杂?单词会不会越来越多?我是不是得先去背一波编程词汇?
后来发现其实还好。常用的就那么几个词,而且你用多了自然就记住了,不需要刻意去背。但如果游戏里面能顺带把这些单词的意思标注一下就更好了,对我们这种英语一般的人会友好很多。
(编者注:目前在游戏内将光标悬停在代码单词上,即可查看对应的中文解释。)
免费关卡打完之后
免费的关卡打完了,后面要付费。
说实话我犹豫了。不是觉得不好,是觉得才体验了几关,我还没有办法判断后面的内容值不值。一个月九十九块,对大学生来说不算小数目。
但我又很想继续往下打。那种一关一关推进的感觉确实会上瘾,而且我能明显感觉到自己在理解一些东西——不是那种"背下来了"的理解,而是"用过了所以知道"的理解。比如我现在看到hero.attack(),不用想就知道它是让英雄攻击。这种感觉用看书是很难建立的。
最后还是买了月卡。想着先玩一个月看看,如果真的能坚持下来、学到东西,再续。
给跟我一样的人说几句心里话
如果你也是非计算机专业,但因为各种原因需要学编程——考研也好,就业也好,或者就是不甘心——我特别理解那种"想学但不知道从哪开始"的感觉。
看书太枯燥,配环境就劝退,看视频记不住。这些我都经历过。
我不敢说CodeCombat能让你变成编程高手,我自己现在也才刚起步,很多东西还是一知半解。但它至少做到了一件事:让我这个看电子书五分钟就想关掉的人,坐在电脑前玩了一个小时还意犹未尽。
能坐下来,能动手写,能不讨厌这件事。
对零基础的人来说,这就是最重要的第一步。
至于后面的路,慢慢来吧。反正现在每天写完作业打两关已经变成习惯了,比刷抖音和打王者有用一点。
嗯,只是一点。但积少成多嘛。