新手在学编程的时候,在语言选择这一块往往会有很多疑惑:
初学编程要选什么语言?Java,C,C++,Python还是其他?
Java,C,C++,Python这些语言有什么区别?哪个更好?
为什么会有这些语言的区分?哪个语言学了后更方便找工作?
如果我选错了语言,会有什么后果?
……
这些疑惑都很正常,都可以理解,新手会纠结这些并不奇怪。
一方面来说,初学者不具备相关的编程知识和经验,无法做出甄别,另一方面网上各种信息和文章五花八门,虽然对于我这种水平的来讲一眼就知道谁是水货谁是干货,但对于初学者,肯定会看晕。
其实这些犹豫和纠结本质上,是在担心选错语言,会对自己未来的学习和求职有负面影响,甚至是阻碍。
毕竟谁都想选择到“最好的语言”来学,最好是又简单功能又强,还方便找工作。
如果你是0基础的新人,想找一份不错的工作,我建议你直接选择Java。
以上是结论,接下来是详细解释。
01 业务逻辑和数据
实际上,无论是app也好,网站也罢,背后离不开两个东西:业务逻辑和数据。
举个例子,很多app或网站,都有登录场景用户输入账号和密码进行登录。这里的账号+密码,就是数据。
而业务逻辑就是,当用户输入的账号名和密码,跟注册时候填的一样,就能登录成功。其他情况都是登录失败。
这个逻辑,计算机并不懂,计算机只能懂编程语言。所以你得用编程语言去把这个逻辑描述出来,告诉计算机怎么完成识别登录这一过程。
而无论你用的编程语言是java又好,C语言也罢,并不影响这个本质的逻辑。从这里就可以看出,语言只是辅助你实现逻辑的工具,并不是本质。
编程语言就是用来在计算机能理解的框架内,清晰定义解决问题的逻辑。对的,计算机是死脑筋,你不跟他说清楚细节是不行的。
比如,你想跟他表达,将“账号和密码保存起来!”,并且期望它能够自己就懂得如何保存,是不可能的。
至少,你得跟他描述清楚,账号密码是纯数字?还是一段文字?具体保存在哪里?是文本文件里?还是其他地方?文件名是什么?文件的路径在哪……
不描述清楚这些细节,计算机就没法实现这种功能。而编程语言的作用之一,就是你得用它去描述清楚这种细节。
那按这个道理,学什么编程语言好像都没什么关系,感觉都是一样的。那为什么世界上还存在这么多编程语言?为什么总会有人争论学什么语言好?
02 语言的设计
那是因为,不同的编程语言,它们的语法不一样,表达能力也不一样。具体来说,就是,在做同一件事上,有些语言用几行代码就能搞定,而有些语言却要花费不少功夫。
会造成这样的差别,是因为每个语言的设计思路不一样。
有些语言设计之初,就是为了更精细地描述计算机执行命令的过程,就像C语言,所以它描述一些操作,都是类似于“先做A,后做B”这样,将做一件事的每个过程都描述出来。
但是C语言要描述“一辆车有四个轮子;小货车也是车,所以也有四个轮子”,就需要不少代码了。
而在Java里面,很容易就能做到这一点。
这种设计思路的不一样,导致了Java这种语言,比较适合用来在代码里描述真实世界的东西。
比如我们购物经常能看到的“订单”,一个“订单”包含了你买了什么,买了多少钱等信息。用Java这种语言来描述这种现实世界里面的概念就很方便。
我们平时做的各种系统,各种软件,都是将现实世界里面的实物和流程搬到代码里去,这就是Java经常被用来做网站后端的原因。
而C语言则更加适合写那些控制硬件的代码,因为它抽象层次更低(即更贴近计算机底层的运作模式),计算机底层都是“先做A,后做B”的这种运作模式。
03 结论
对于零基础转行编程的人来说,学编程语言,一般都是想先找到一份还可以的工作。
而一般的编程工作,大多就是做网站和APP。而Java这种既适合描述客观世界,又能做到同样的代码兼容各种操作系统,就会非常合适,所以Java才会占据了这么大的市场份额。
同时,Java的语法也并不复杂,比较容易入门。
基于以上种种理由,零基础转行学Java,确实是一个不错的选择。
最后
我是一名Java老程序员,从事开发十余年,做过C,前端,Java,对其他编程语言也有一定程度的了解和认识。
在学习Java的同学,如果你在学习中缺乏学习资料,在学习技术中遇到不懂的问题,那么你可以申请加入我的Java新手交流裙:3907814 ,十年老裙,任何不懂的问题都可以随时问,对自己学习Java有帮助。