在编程行业,一直流传着种种误区和神话。很多人把编程视为一份需要有天分的工作;编程还得讲究过程,讲究方法,还可以获得丰厚的报酬,编程工作风光体面;只有沉闷的人才适合做程序员,或者多数程序员都是闷蛋;编程工作对错误“零容忍”……然而,事实又是怎样的呢? 下面让我们一起来纠正10个有关编程的常见误区,以帮助编程初学者或有志成为程序员的人,更理性地认识编程。
1. 学习编程必须得学习数学吗?
“学习编程必须得学习数学吗?”,对于这个问题,很多人并不清楚数学与编程之间的关系,他们往往只想得到一个统一的答案:“是” 或者“不是”。事实上,答案不是绝对的,它要看情况,不过在绝大多数情况下,答案是“不是”。作为程序员,你会花很多时间在写代码上,而不是写数学公式,而且你的数学知识不会直接构成你的编程技术。
但这不是说你不需要学习数学了,你仍然需要懂得基本的代数学,只是基本的而已。另外,现在还有很多库和插件,你可以直接应用到编程中,帮助你解决数学和算法方面的问题。不过,如果你想尝试创造的东西是需要高级的数学计算或是物理或计算机图形的话,你肯定需要掌握某些数学知识了。
2. 学习编程的人的IQ都要很高吗?
编程的学习是在于你的兴趣,它与生物学因素没有关系。无论你的IQ是160还是90,这和你学习编程没有关系。如果你已经做过了IQ测试,建议你可以一笑置之。因为仅仅以这个测试分数为基础,不可以证明你喜欢做什么事情或者你可以走得有多远。不要介意一次又一次的失败,并从错误中学习,这是作为程序员要明白的基本道理。
其实学习编程的门槛并不高,任何懂得如何沟通的人都可以学习编程。因为深入到编程核心的话,编程就是一种“语言”,它有自己的语法和词汇,并且它的存在仅仅是帮助你与机器沟通,去完成某个目的或行为。编程就像我们人与人之间的行为一样,它真的很简单。
3. 学习编程一定得上大学吗?
有人说如果想学到最好的编程功夫,你需要一个真正的高手来指导你。在编程中,代表着编程最高级别水平的是教授。但现在由于有了互联网,你可以向很多编程高手们学习了。 你可以从“零基础”学起,一直学到大学里的课程。
你可以先选择一些初学者的课程。例如在Codecademy上,就提供了这类课程。你也可以浏览一些教程类的网站,例如Nettuts+,它为用户提供了文本和视频两种格式的课程讲解。如果你有什么问题想找到直接答案,可以去 Stack Overflow和Stackexchange,还可以通过谷歌来搜索对你有帮助的资源。这并不是说大学不能教你学到这些。一个教授或讲师当然可以加快你对理论和概念的理解,例如是面向对象的编程。在大学里学习编程还有一些关键的因素你是需要考虑的。
但无论你选择的是哪一个渠道,掌握好你自己的自学能力才是最重要的。因为编程不同于其它行业,它总是在快速地进化着。只有你自己能够决定你是否能跟得上它的步伐。
4. 学习编程的必须是成年人?
有这种想法的父母们,请不要把孩子的年龄作为理由来阻止他们学习编程了。据Code.org一篇文章显示,现在已经有请求说,要把编程纳入到学校的必修科目中,这样孩子们可以学会思考分析。
尽管如此,孩子与成人之间的学习模式是有区别的。最适合孩子的学习方法应该是更直观的学习方式,因为他们的视觉感受更加发达。为此,Scratch 和Alice这两个网站是很适合孩子们用来学习编程的,因为这个网站的内容很形象化。
如果孩子们喜欢一个互动的环境,可以选择一些社区学院,例如Khan Academy就很不错。父母也可以参与到孩子的学习中,引导他们,给他们提供建议和资源,加上父母的支持,可以推动孩子的学习积极性。
在Livecoding.tv上,一个叫Harrison(哈里森)的小男孩应该是目前平台上年纪最小的直播者了。小哈里森是一个从小就迷上编程的孩子。他喜欢在课间时完成作业,因为这样他放学回家后就可以有更多时间来学习编程了。2015年在livecoding.tv上直播他自己的第一个用Java开发的游戏Bluef 时,他才11岁。现在,小哈里森的视频浏览量已超过了12800多人。这个成绩对一个只有11岁的孩子来说,已经很了不起了。(想知道更多小哈里森自学编程的故事,可以浏览台湾《科技报橘》对他的报道: 《11 岁小男孩手把手教你:怎么自学 Coding,写出第一款游戏? 》)
5. 我必须学习最好的编程语言吗?
“最好的”编程语言?这种说法其实是有点误导性的,因为最好的适合你学习的语言就是适合你目前的学习或工作的那一种。换句话说,并没有最好的编程语言,它取决于你想用它来做什么。
不过对于初学者,有些语言是很适合的。Python是其中一种,它简单,易读,灵活。Java也是容易学习的语言,而且它最大的好处是,有大量的文档和一个稳固的社区。你也可以学习C#。之后,根据语言的学习进度,专有功能和它的通用性和可维护性等,你可以自己决定使用哪些工具。
6. 学习和掌握一门编程语言只需要几周的时间?
不要相信这个说法了。如果一个本来有抱负的年轻人在学习某种编程语言只有很短的时间后,发现自己无法在数周内创建一个MMORPG时表现得心灰意冷,然后放弃成为一个游戏程序员的梦想,这是让人惋惜的。
事实上,你可以花几个星期的时间来学习编程,但需要花几年的时间来掌握它。编程就像绘画,需要兴趣和耐心,而你最初创建的大部分东西可能很少会被使用。然而,你只需要一步一步地继续前进,你就可以成为一个好的程序员。你应该感谢每一次失败,因为这是你进步的唯一方式。
7. 我应该记住所有语法和不要求助别人?
从心理上来说,如果你在编程时没有用到外人的指导,你将记住一切,并成为一个真正的专家,因此你有能力从零开始开发任何东西。但事实是,你不必担心要记住语法,因为在你有能力翻转表格和自己创建框架之前,你会有好几千次都在写相同的代码。
谷歌,IDE和框架不是从无聊中创造出来的。它们是专门为了帮助用户更快地学会编程而设计的。最好的练习方法是使用带有语法建议的IDE,以及当你遇到困难的时候,随时使用谷歌。
采用框架,有助你理解编程语言是做什么的以及它可以被推到什么样的境界。然后当你有了足够的能力时,你便可以体验具体的编程功能。探索编程世界,有时候,你会在乱七八糟的编码中发火;有时候,你也会享受到编程带给你的乐趣。
8. 我真的写不出那么多代码
很多人都害怕要写太多代码。4000行的代码是可以压倒一切了。然而,虽然HTML不是编程语言,但一般来说它的每一个代码文件都包含了相当多的内容。如果你有留意,你会发现,这些成堆的代码,都是由重复性的陈述,方法和循环组成的。程序员大多时候会使用在初级和中级编程课程里学到的相同的东西来解决简单的和复杂的方案。一旦你习惯了,你便会觉得10000行代码是“小儿科”了。
9. 女性不可以学习编程吗?
让我们看看下面这份名单就会知道,在世界上,女程序员一直很有影响力。
- Ada Lovelace 是世界上第一个程序员。
- Grace Murray Hopper开发了第一个编程语言的编译器。
- Adele Goldstine 帮助创建了世界上第一个电子数字计算机。
- Jean E. Sammet开发了编程语言FORMAC,它是FORTRAN的变体。
- Marissa Mayer 是Google最早的程序员之一。
在 livecoding.tv上,也有一个很受欢迎的女直播者。她叫Katherine,来自美国,她对编程充满热忱,是一个自学成才的女程序员,至今已拥有了30多年的编程经验,精通前端设计。Katherine还是一名编程导师,20多年来,她一直在教年龄较大的人学习编程。现在,她还教孩子和女士学习一些基本的编程技巧。Katherine 在livecoding.tv 上的用户名叫awakekat。她的直播和视频也是以编程教材为主,因此一直保持着很高的浏览人数。(关注Katherine的频道)
女性在编程领域的影响力是显而易见的,但就像大多数男人对香水行业不感兴趣一样,女性程序员的比例确实要低于男性程序员。这可能与社交压力,经济压力等其它因素以及两性不同的角度和兴趣有关。
10. 我只有已经精通了编程才能开始赚钱吗?
现在很多企业在招聘程序员时,都要求应聘者要有几年的工作经验,而且要懂得多种编程语言。尽管如此,你仍然可以获得一份和你的编程经验相符的工作,关键是你得主动去寻找机会,工作是不会从天而降的。
你还可以尝试接一些兼职的活来干。如果你是刚毕业的学生,你还可以应聘一些实习生的职位,这是一个获得一份全职工作的好机会。最重要的是,你要有一份能够打动人的工作履历,它可以展示你的能力。良好的声誉会对你很有帮助,所以你应该做一些开源项目。
你也可以经常活跃在编程社区或社交网站,拓展你的人脉。现在已经有很多程序员爱上了直播编程,因为这是一种很好的编程社交方式,它不但有助提高你的编程技术,还可以帮助你更好地营销自己。此外,当自由职业者也是一个很好的选择。现在已经有越来越多企业喜欢聘用自由职业者了。无论是哪一个选择,总有一个值得讨论的空间。每个人找到适合自己的方式才是最重要的,但无论如何,你必须行动起来!
总而言之,编程与其它行业一样,努力工作和决心才是成功的资本。所以,不要被这些误区阻碍了你学习编程和成为程序员的决心。在Livecoding.tv上,我们可以看到不同国籍,不同年龄的直播者。他们的编程水平也各不相同,有初学者,也有大牛,但他们都热爱着编程。从今天开始,迈出你程序人生的第一步吧——学习编程。相信自己,总有一天,你会成为出色的程序员,拥有一个灿烂的职业生涯。