为什么编程界的名词逼格都这么高
coding
从开始学习编程到现在也有将近一个多月的时间,在这段时间里,除了日常的工作生活外还要再学习一门挺难的技能,着实是对我精力和学习能力的一个挑战。很多时候连看例题都看不懂,对着原书编译代码却执行不行去,这时候脑海里总会萌生出一种“自己怎么这么笨”的想法。可这又这怎么样,谁一开始学习一项技能的时候显得笨拙。
我曾经在大学的时候有过学习编程的经历,可由于自己的惰性、认知的缺陷等种种原因,没有学会任何语言的编程。这次开始学习编程的时候,因为之前的一点点基础,我在最初的时候看书是比较轻松的。编程语言中一些常用的规则和基本的模型我都能很快理解。随着学习进一步深入,拙劣的一面就显露出来了:我无法理解更深层次的函数、对象、范围等重要概念,看书的时候也没理解清楚其含义,进而在学例题和解题的时候脑中一塌糊涂。经历过无数次的挫败之后,我只能回头再埋到原版书里学习,搞明白编程书中的概念、例题的代码并试着解开习题。
最近在学习的困惑之余,我偶尔还会跟一些IT从业者做一些交流,看看网络上关于编程学习的教程和经验,这两天重新认真思考了我为什么学习编程?为什么把工作之余几乎所有的时间和精力花在编程这件事儿上。
理由一:改善现有生活
从毕业之后才三个月的时间,我就充分感受到社会生活的压力之大了。从象牙塔里跳出来的滋味可真不好受,曾经都不是问题的问题,一下子全涌到自己面前了。租房、水电、食宿、工作、未来、房子…尤其我还选择在北京这样成本很高、竞争压力很大的城市工作和生活。
我是学工科出身的,能源电力方向,当初学习的时候本以为会找到一份心满意足的高薪工作,在过去年下半年和今年上半年的求职经历之后,我算是心灰意冷了。在我们专业领域内,解决北京市户口的工作,平均月薪资也就五千左右,还是税前;不解决北京市户口的工作,月薪资要达到一万也难上加难。对于扎根北京的人来说,我现在面临的显然是一种窘境,月薪五千,连平时日常的生活维持都有困难,更别说提高生活质量了。
学习编程,并应用编程技能给我增加一些收入,就是我所能想到最简单粗暴的改善境遇的办法。现在所有行业中,只有计算机行业的工资最高他,同时计算机程序设计是目前最容易变现的技能。这种说法我不知从一个人那里听到,很多计算机编程行业的从业者和学习者都有这样的感受。所以我就执着地相信程序设计是能给我收入和生活境遇带来改善的重要途径。
programer
理由二:学编程是在学一种思维
学习编程的时候,刚开始总避免不了跟着例题敲代码。我最近将书中的程序敲到编译器中时,总是会莫名其妙地出现各种错误使得程序没办法执行。后来在反复检查错误的时候,我发现即使是照猫画虎编出来的程序,总会因为各种小小的错误导致整个全局的瘫痪。这种小错误出现了很多次之后我明白了:编程本身就是一件考验耐心和细致程度的活动,任何小漏洞都容不得出现,编写计算机程序是对思维细致程度要求非常高,因此学编程正是学习一种细致入微的思维模式。
另外在编写复杂程序的时候,涉及到的概念相当多。我在做编程书中课后习题的时候,有好几次因为概念不清楚而没解出来题。在之前的学习过程中,我就没完全弄明白相关的概念,或者没认真跟着例题编程,导致在复杂的程序中用到相关概念的时候,要么是没想起来,要么是把概念用错,最后的编译结果只能是不通过。程序设计要求头脑中的概念非常清晰,而且要做到准确应用。
光知道清晰的概念还不够,设计程序时还需要具备正确的逻辑思考能力。编过程序的人应该都知道怎么画流程图,而且在学习和工作中经常能用到流程图,流程图其实就是人逻辑思考能力的折射。通过各种成熟的逻辑思考,将思考用计算机程序的形式呈现出来,从这个层面来看,计算机程序简直就是思维能力的检验器!所以学习计算机程序是修正并优化自己逻辑思维能力的一个很强大的工具。
理由三:所有学科都在和计算机程序挂钩
在研究生期间做科研的时候,学校里就有相当一部分的老师和学生在用编程来模拟实验过程;读学术论文的时候,很多应用编程的高质量论文,甚至将实现结果的代码附到了论文中。另外我在科研时候用的专业的模拟软件,自然也是用计算机程序编好并封装的软件。可见在我们这个学科领域内,计算机程序已经渗透到了几乎所有的理论及实际应用中,学习并理解编程对于我本来专业的理解一定会起到很大的促进作用。
同样延伸到其他领域,几乎所有的应用都会与计算机程序应用相结合。已有的知识再加上计算机程序,会发挥更大的作用,带来更高的效率。很多资深的IT从业者都预言,计算机编程以后将成为通用的技能,跟说话写字一样,不懂如何应用就算是丧失了一种日常必要的技能。还记得乔布斯曾经在采访中说过的话么,“学习编程可以帮助我们完成工作,但没有明确的实用性,重要的是我们把它看作思考的镜子,学习如何思考。我觉得每个人都应该学习一门编程语言。学习编程教你如何思考,就像学法律一样。学法律并不一定要为了做律师,但法律教你一种思考方式。学习编程也是一样,我把计算机科学看成是基础教育,每个人都应该花1年时间学习编程”。
理由四:死磕自己,造福更多想学编程的人
我是一个曾经两次学习编程失败的人。大一的时候我们专业开设的编程是VB语言(可能现在除了微软,几乎都没几个公司用VB语言了),我当时学完之后对编程根本不理解,但是我最后要做毕业设计的时候,自己竟然用VB语言写出了一个计算器的小程序,可以用来做简单的加减乘除计算。
课程设计做出的成果让我对编程产生了很大的兴趣,当时想着就着这股热情一举把编程拿下。不过随着大一编程课的结束,我的编程学习也就断了,即使后来想再深入学习,发现自己根本学不进去了,后来看的时候觉得那东西实在是太难了。
后来在研究生的时候,观察到自己那些在大学时学了计算机专业的高中同学,在本科毕业之后就能拿到上万的工资,自己也就突然心动了,觉得编程这个东西可以帮自己挣钱,然后又有了学习编程的念头。这次学习的是C语言,自己当时还在读研二,利用课余和空闲的时间看了好几章C语言的知识,当时甚至幻想着毕业以后凭着编程技能,也可以拿高工资。可结果呢,仍然是无疾而终。
现在又下决心学习编程,而且现在正好又学到一个瓶颈期了,很多以前看过的知识能理解,以前没看过的知识理解起来还是非常吃力。这难道又是要半途而废的节奏?我才不这么认为!
这次学习编程还可以选择了英文原版的教材,我在前一个多月的时间里是认认真真地啃了小一班的原版编程书,还跟着做了很多的例题,独立做并修正了很多的课后习题,就非计算机专业的门外汉来说,我已经做得很不错了。
接下来我还有很多很难、很重要的内容需要掌握,还有很多练习题需要克服,即使重复看原版书十遍,我也要死磕自己,把计算机程序学会。另外我还很幸运在前段时间开启了写作这个习惯,正好还学习的过程中把各种痛点记录下来,不仅自己能对编程这件事儿想得更明白,还可以对看到我文章的恰巧也想学编程的读者有所启发,何乐而不为!