文科生也要学会编程吗,随着近几年来编程的火爆,编程二字逐渐走进人们的心中。然而,现在一提及编程,大家还是会给它贴上无数的标签:数学要好、英语要棒、男生的专属、理科生学的玩意儿…等等其实编程远没有想象中的那么复杂。而且,学习编程带来的好处之多,绝对是你想不到的。学编程跟是不是文科生没有必然的联系,关键还是要看你自己愿不愿意学、付出多少精力学。Facebook创始人马克曾说过,学习编程不是一定要搞定所有关于计算机的知识或者掌握所有的定律。开始学会编程可能是因为一件小小的事情。不过,文科生学编程,主要为了训练编程思维方式。什么是编程思维?
第一,你能把你面对的问题“计算化”,也就是用计算机可以理解的语言把问题表述出来。你每天都会面对问题,回家房子太乱,上班面对数据也太乱。为什么你会感觉无从下手?因为你并不知道你要解决的问题是什么。所以首先要明确问题——是垃圾太多需要扔掉,还是物品摆放不合理?垃圾太多应该怎么办,物品摆放不合理又该怎么办。你手头有哪些工具可以用?你期待最后整理成什么样子?明确问题之后,用计算机可以理解的语言把问题表述出来——编程思维就是培养你的这种能力。
其次,这可以培养做事逻辑。初学者最容易犯的重大错误就是事先考虑不周、计划不全,只想到明显的结果而没有穷尽所有的可能性,结果留下隐患,即所谓bug。还有,这样可以培养规范化的习惯。比方说定义方法、变量,哪些字母大写、哪些小写,前后拼写一致,标点准确,格式对齐、缩进,还有句句留注释,等等。
有人问,你纠结这些细枝末节干什么?这样训练下来,我们都成了机器人,还有什么创新能力?事实恰恰相反。魔鬼存在于细节之中。恰恰是这些细枝末节,最容易被忽视,最容易出错。计算机对错误是零容忍度的。而且,规范化是培养这样一种思维:尊重规则,在规则基础上创新。
最后谈谈怎么学编程。
第一,投入时间。
“一万小时定律”说,每天花4小时专做一件事,每周5天,坚持10年,有了这一万小时,基本上你就可以成为某个领域的熟手。诸如此类的还有“10年法则”等等。如果10年太长,等不及,那你就要增加投入,每天8小时,5年练成。
这些法则定律传达的信息是:要掌握某种知识,必要的甚至大量的时间投入是必不可少的。我在美国从博士生到升大学终身教授的9年间,几乎天天写代码,通常深夜才有时间,一转眼就是窗外鸟鸣,东方已白。时至今日,实验室一批高手,我不需要自己操刀,但同样学习新语言,不然怎么与他们以及遍布全球的合作者沟通?
除此之外,动手写,犯错、改正,再犯错、再改正,这是学编程最重要的过程。
第二,文科生别着急啃那些厚厚的教程,先看教学视频。
第一次没看懂很正常,别着急。 “重复”、“过遍数”是开始学编程的不二法门。如果觉得视频跳跃性太大,可以学习如C++技术网这种完全针对零基础入门程序员培养的网站,因为网站以程序员为中心,必然会更加贴心周到,学习才更加好,而不要自己一个人孤身奋战。
第三,学规范,纠细节,养成好习惯,终身受用。
学外语,尽量不要看词典,而是从上下文猜词义,学到的才是活语言。学编程,恰恰相反,要随时查手册,才能“被训练”出规范。