“想入门编程,应该学哪种语言?”“想学习编程,应该从哪里开始学习?”这类问题在五湖四海,世界各地,应当都是比较常见的。
这些是有趣的问题,但是又难以回答。
有的会直接告诉你去学Python;
有的呢会给一些比喻,说编程语言就像画家手里的笔,有毛笔,钢笔……;
有的会给出一个技术栈的图表,告诉你如果你要做XXX,那就学XXX,如果做XXX就学XXXX;
感觉呢这些建议,也都不错,但是通常都比较简略,结果明确,但缘由一般不会展开太多解释。纯新手可能似懂非懂,将信将疑。但是这样做真的好吗?对于初学者,推荐我偏爱的编程语言合适吗?可能不会。不要忘了他们问这个问题的真正的目标。
当我听到这个问题的第一反应,就是弄清楚他们为什么想学编程。这是一个很好的起点——弄清楚从中想要得到什么。我们可以根据他们的目的来回答这个问题。
毕竟,自上而下,由整体到具体的理解一个事物,效率往往比从具体到整体要高,更容易明白自己所处的位置,更容易入门。所以在分析编程语言优劣,或者选一个语言写具体的HelloWorld之前,我们最好对“编程语言”有一个更整体全面的了解。
一、学习编程语言是在学什么百度百科——编程语言(programminglanguage)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
维基百科——编程语言是一种规则,这种规则,可以把文字,或者图形元素(可视化编程语言)转化为机器码。编程语言是一种计算机语言,用于在计算机上实现各种算法。
百度的定义显然说了啥但好像又啥都没说。-_-
。维基百科的则准确了很多。编程其实就是把你写的一段文字(代码)按照特定的规则,
转换成机器码(机器能够运行的指令),用于在计算机上实现算法(如显示2个输入数字中最大的)。你要学习的其实就是这种规则,比如当我需要在屏幕上显示HellowWorld时。按照不同语言的规则,我需要这样写出这样的文字。
c语言:printf("\nhelloworld!");
php语言:echo"helloworld!";
java语言:System.out.println("HelloWorld!");
看上去有些差别,但又有些相似。实际上目前主流的高级语言如Java,C#,javascript,Python他们的基础语法规则是非常近似的。无论先学哪个入门,后面的切换成本,基本是几小时搞定。当你学会一门语言,除了学会了具体关键字,语法之外,更主要的是你会沉淀下来一种对编程语言模式的理解。当你理解了一种语言中的变量,函数,控制结构(顺序,分支,循环),迁移其他语言时,你会发现在其他语言中,这些概念也是存在且完全适用的。
了解完编程语言学习什么之后,我们再来看看想要学习编程的原因以及如何下手,不能像丈二的和尚,摸不着头脑吧~比如有的同学会说:
“我想要通过学习编程,进入IT行业,拿到理想的薪资”
嗯,目标很明确,很直白!如果你有一个真实世界的问题待解决,或者有一个明确的目标,那么给你行动的建议就很简单了。
1选一门编程语言学编程自然要先选一门编程语言当入口。语言都是工具,选工具前你要拍明确自己做什么东西,然后找什么语言适合做。例如做安卓应用学Java,做IOS应用学swift。
2选好了语言不要纠结版本问题第二选择学一门语言不要纠结学什么版本,例如现在是安装java6还是java7还是java8啊?学当下最新的就行,不要老YY什么兼容问题。
新人在很长时间内达不到要被版本区别坑的水平。而且基本上作为新人从开始学到开始能做产品怎么也得一两年。到时候现在这个版本就是稳定主流版本了。
3先搞定语法一开始不用学枯燥的计算机组成原理、设计模式之类的知识。就先学语言,也不用深究历史啊优点啊区别啊,直接学语法。
不用管那么多,先做些看得见的东西。敲代码敲代码一直敲代码,感受一下控制计算机的感觉。这样才能让自己感到酷炫,激发一边学一边和小伙伴们嘚瑟的热情。
先学好一门语言回头再来看看历史和做比较,看看大师们的理论,逐渐向外扩展更多知识或许更有效率。
4不会Linux没有MAC就先在Windows上学很多前辈会和你说Linux系统下编程多酷炫,用mac下多优雅,用Windows多Low。那些命令行系统是不是真的很高效抛开不说。
如果新人不会用Linux就先不要学,不要刻意去装个ubuntu装个黑苹果搞半天,装好了不知道怎么搭建开发环境又搞半天,然后Windows习惯一时半会有挥之不去效率特别低下,各种常用软件还没有,还没开始学编程先把自己的生活搞得一团糟了。所以一开始就在Windows上搞,这是最好的。
还有就是新手资料基于Windows平台是最多的。
5善于寻找资源根据你学习的热情和进度,可以给予一些指导,去找一些学习的资源。
1、用google搜索,我上面鼓励一开始直接敲代码暂时跳过其它知识。但是学编程前先学会科学上网我是大大提倡的。
2、微博搜索,强烈推荐很多时候比google还好用,特点是按时间排序很新鲜,还能筛选只看