晓风博客

一片荒芜的地方

文科生如何自学编程

谈起编程很多人会觉得很难,但看到别人飞快地的在键盘上对着黑色屏幕舞动手指时又会觉得非常酷,甚至在自己内心萌生出一个想法 —— 我要不要也去学一下编程。

在我小的时候,编程这个字眼只在电视上寥寥无几的出现过。而每当我想到编程这个字眼的时候出现的便是以下画面:

在一个黑框里闪烁着一行行的英文字母,仿佛进入到了另外一个世界,既神秘又好奇,一方面觉得编程很酷但另一方面又会觉得“这东西我肯定学不会啦”,然后就放弃了甚至没有开始的学习。

然而多年以后我回过头来看,编程其实并没有那么神秘,没有人真的去用手指敲出0和1的组合,也没有人可以轻而易举的通过一个黑框随意入侵别人的电脑。编程其实也并不难,如果你只是想要学习一门编程语言然后做一个属于你自己的网站。但我也承认编程有时候确实很难,如果你想要做自己的操作系统又或是想要开发一款类似英雄联盟的游戏。所以找准自己的目标很重要,在开始阶段最好定一个不那么难的目标,比如做一个属于自己的网页。

文科生并不能代表什么

是的,如果你尝试用“我是文科生,我学不了编程”这样的话来告诉自己学习编程是如何困难,那我也要用自己的亲身经历来告诉你文科生并不能代表什么。我自己就是一个文科生,虽然我从高中开始就接触计算机相关的东西,但是在整个大学课程中并没有太多计算机相关的课程。而现在我正在一家专业的软件开发咨询公司工作,不是在旧金山也不是北上广,就是西安。

说起文科生不得不说在高二就选择文理分科对于当时的我们来说或许为时过早,我就属于那种喜欢地理历史但也非常喜欢计算机的同学,最后考虑到升学压力不得不选择了文科。而在大学中我也想过要转到计算机相关的专业,但最后也因为种种原因放弃了转专业这件事情。

所以文科生究竟和科班出身的计算机从业者区别很大吗?

坦白说区别是有的,但并没有那么大。我见到过一些科班出身并且编程也很厉害的朋友,但也见到过太多非科班出身编程同样很厉害的同学,甚至比前者更厉害。所以比起是否科班出身,我更相信重要的是你自己对编程这件事情的兴趣投入有多大,以及你所在的环境氛围究竟有多好。一个一线城市的一流计算机专业出身基本编程素养一定是比一般人好的。而一个三线城市的三流计算机专业出身的基本编程素养… 可能真的没有太大区别。而幸运的是软件开发行业的缺口足够大,也并不需要你一定是一线城市的一流计算机专业毕业才能找到好工作。如果你的目标不仅仅是做一个属于自己的网页,而是成为一名软件开发工程师,那我可以负责任的告诉你文科生是可以成为专业的软件开发工程师的。

1+1 > 2

作为文科生来说如果你能学会编程其实是要比计算机专业的学生学会编程更厉害的,这就相当于你学会了英文那你可以同时享受英文和中文世界的两种资源,而只会英文的人享受不懂两种文化的资源一样。所以作为一个文科生你也有自己的优势所在。

这条路已经有很多人走过

是的,不仅仅是我或者身边的朋友,也有很多在名人是通过自学成为编程大牛的。比如苹果公司的联合创始人 Steve Wozniak,微软的创始人 Bill Gates 以及 SpaceX Tesla 的创始人 Elon Musk。我们不可否认这几个人都是天才,他们甚至在童年时期就已经开始对数学和编程有了浓厚的兴趣。但是也不可否认的是他们确实也通过自学学会了编程这件事情。

兴趣是最好的老师

在你自学编程的开始阶段,并不会有人去奖励你什么。不会有金钱奖励也不会别人的称赞。所以自己喜欢是非常重要的,好奇心一直都是我们与生俱来的天性。你可能小到对“删除桌面快捷方式为什么不能卸载这个软件”这样的问题感兴趣,也可能对汽车为什么能做到自动驾驶、iPhone 为什么能做到人脸识别这样野心勃勃的问题有兴趣。但重点不是问题有多少,而是你为了弄清楚这个问题做了哪些事情。

在我上高中的时候,QQ空间正在风靡一股自己个性化定制的风潮。大家不断炫耀着自己的空间如何个性,仿佛QQ空间就是自己逃离现实之后的完美的个人展示。我也不例外,看到别人的空间装扮的如何之酷,于是我就开始琢磨我的空间怎样才能变成这么酷。后来我慢慢了解到了空间的装扮是用 flash 来做的,再后来我下载了 Adobe 的 flash 制作软件,去二手书店淘到了一本入门教程(当时计算机书籍通常很贵,网购还并不发达)。就这样靠着一本五块钱的二手书和百度,一步一步的学会怎么使用 flast 做补间动画,怎么去写 Action Script 以加入交互效果。直到今天我仍然觉得这样的事情很有意思,在一个个无聊的周末,我都会看看自己有哪些有趣的主意还没有完成,花费半天甚至一天的时间去折腾一些小玩意。回过头来看正是这些看似无用的小玩意的折腾让我了解到了很多知识,也正是一次又一次把一个小玩意折腾熟练之后让我觉得自己收获满满。

抓住自己的好奇心,享受它给你带来的探索、发现、收获的奇妙旅程。慢慢地,你就会觉得你知道的东西越来越多。

可以用于开始的想法

从一开始就想搞清楚如何黑进别人的电脑或是如何让路边的车自动驾驶似乎不是一个好主意,过高的目标可能会让你觉得气馁,在几天几个月的过程中你可能都没有满足感。一些小而美的目标看起来是更好的选择。

这些目标都是可行并且没有你想象中那么难的,开始一点尝试未必也不是一件坏事,即便是最后失败了也关系,只要开始你总会有收获的。

一些资源

终身学习

总能听到家长们说上了大学爱干啥就干啥,仿佛大学就是学习的终点,也仿佛大学毕业以后就可以给自己的学习生涯画上句号。但现实是却不是这样。

人生就像一场马拉松,你所需要做的并不是前五百米的冲锋,而是在这段旅途上不断坚持,有些人跑着跑着就累了。而你所需要做的只是坚持自己相信的东西,一直跑下去。

一时的得意或失落并不足以给你的人生定性,开始吧,任何时候都不算晚。82岁的老奶奶尚能开始学习编程,而年轻气盛的我们又怎能畏畏缩缩停下脚步呢。

开始吧,与君共勉。