一、初学编程应该学习哪种编程语言
首先,对于题主这个问题,我想做个比喻,
你去餐馆吃饭,可是你在纠结吃什么菜,问身边的人,大部分人给你说,大家都喜欢吃他家的葱爆肉,说的食材多么好,厨师多么拿手,可是你不吃葱,这道菜你依旧没办法享受。这个例子我想表达的意思就是,都应该是选择一个我们喜欢吃的食材,做出来的菜,才合胃口,就是吃饱了都还可以再吃两口的那种,如果听大家的,不和胃口,你就是吃两口就饱了,岂不是浪费掉了。
选择学习编程也是一个道理,都应该先去了解各个编程语言的信息,它的就业方向,它能做些什么,找到一个你比较感兴趣的方向,然后根据兴趣学习就好,这样既不会浪费时间成本,也可以让自己学习的动力更大。
首先我们先了解一下各个语言之间的层级关系
黑马程序员
硬件层级:就是CPU、内存、显卡等,不属于软件范畴
汇编层级:可读性差,但是现在有编译器哈,所以市场汇编语言的工程师需求变量是很少的。高级语言需求量增大了。因为高级语言很好读;
系统层级:Windows、Linux、Mac、OS、Andriod、IOS等等。就是电脑软件都是跑在操作系统上的。
应用层级:是更加偏重软件的程序的执行流程和功能的。开发起来体量非常大。
脚本层级:这里面不涉及楼主上面说的四种语言,我就是略说一下。脚本级语言的代码很直给的,代码速度快。但是虽然可读性强,但是编译器把脚本语言翻译成汇编语言的成本很大。
各大语言的简单介绍和应用
1.Java(排名第一)
Java功能强大,简单易用。具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。由于其语言特性好,框架丰富,常常被应用于企业中,你可能经常会听到一些关于J2EE,Hibernate等的讨论。而且,现如今的安卓手机的标准编程语言也是Java。
**总结**
Java主要用于企业级开发,安卓手机,网页,游戏后台。
2.C和C++(永不过时,越老越吃香)
理论上,只要硬件驱动和API合适,C和C++就可以用于任何开发,效率可以说是所有编程语言里最高的。排除你系统里没有C/C++编译器的情况。一般的系统里C一般都具备,但是可能有些是没有C++编译器的。
目前,C语言主要用来服务应用,开发底层模块和嵌入式。尽管C++也可以,但是由于其复杂性,程序员更多的是选择C语言来做。C++适合一些复杂但又要求高效率的,比如大型游戏等等。
**总结**
C主要用于服务应用,开发底层模块和嵌入式。
C++主要用于大型游戏开发和一些规模大、性能高的程序开发。
3.JavaScript(凡是能用js编写的程序,终将使用js编写)
java VS JS
雷锋VS雷峰塔
外行人可能觉得Javascript听起来跟Java有关,实则没有任何联系。
毫无疑问,Javascript最广泛的是在web前端。通俗的说,当网站传送一些用各种“标签”代表的格式文档时后,Javascript负责把这些文档“转化”成一些客户端动态效果。除此之外,Node.JS还用于开发服务器端。
> nodejs是js的升级版,基于google v8引擎开发的后端语言,可以写服务器
**总结**
JavaScript主要做web前端以及服务器端开发。
4.PHP(最好的语言,份额被go抢)
PHP是一种通用开源脚本语言,语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,,主要适用于Web开发领域,PHP是web后端的王者。
**总结**
PHP主要用于Web开发,后端较多,也可以用于整个web服务器,比如论坛引擎。
前端(网页waiter)---请求-->处理(服务器Server)---》返回给页面
5.Python
Python语法简洁清晰,具有比较丰富和强大的库,而由于它可以把用其他语言制作的模块轻松地联结在一起,又称其为胶水语言。
IEEE发布2017年编程语言排行榜:Python位居首位。应用比较广泛,像信息安全、物联网开发、桌面应用、大数据处理都需要用python。
**总结**
Python主要用于服务器、物联网开发,大数据处理等。
6.go
值得一学:
开发速度,执行效率,从高到低: c> go> python
go语言所有执行需要的库都打包在一个exe中,编译好的exe程序,直接在第三方系统就可以运行
GUI:图形化
GUI
难度,从难道易:c> go> pthon
> docker, k8s,区块链
推荐学习思路:
找到喜欢的应用领域--->明确学习目的--->找到重点学习内容--->看视频学习
有了一定的基础之后:
找到项目--->按照源码看思路--->渗入理解--->抄源码--->不看源码自己还原
在进阶之后的提升:
找到带源码的项目--->不要再抄源码而是在项目基础上实现自己的新增功能--->看书优化代码
因为不知道题主要学习什么编程语言,所以暂时思路就是这样的。当明确自己要学习的内容之后,可以自己做或者找到合适自己的学习路线图,按照自己的未来发展方向找到学习内容的重点开始学习。
二、什么编程语言的前景比较好
互联网行业无疑是这个时代的最炙手可热的行业,互联网的爆发成就了成千上万的千万亿万富翁,中国福布斯排行榜前十有一半左右都是靠互联网发家就足以说明,互联网究竟有多火,我们首先看百度搜索指数对“互联网”这个关键词的搜索情况,在这五六年间,互联网这个词的搜索频率翻了三四倍。
随着这几年互联网+概念的提出,传统行业的就业人员对互联网有了越来越多的认识,很多人更是因为互联网行业的前途和钱途而毅然转行互联网,做起了程序员,但是由于互联网发展太快,技术更新太过迅速,很多刚入行的人都会有疑惑:到底什么样的编程语言才最有前途?
Tiobe做了非常有意义的一件事情,他根据网上程序员、课程等使用语言的数量,还有所有引擎搜索编程语言的数量,每个月都会发布一个编程语言使用排行榜,我把最新一个月的排行榜列在下面。
从上面的表格可以看出来,榜单的前十从2016年2月到2017年二月基本没有发生太大变化,特别是排名前五的编程语言,保持着绝对的优势,而且相信绝大部分程序员都是从这些程序开始接触编程的,所以,按照大趋势,目前这五种语言的钱途稍微好一些,下面对这五种语言进行简单的介绍。
Java
Java,一种典型的面向对象编程语言,这一点跟C++很像。但比起C++,Java则要简单的多,去掉了C++的多继承和操作符重载,不需要指针,在内存管理上,Java提供了jvm来自动管理内存空间和垃圾回收,这一点也是C++程序员最诟病Java程序员——不懂内存。Java语言最大特点就是跨平台运行,“编写一次,到处运行”,Java是一种先编译后解释的语言,Java类文件会被先编译成Java字节码,然后再有机器翻译成机器代码执行。Java之所以受到大家追捧,离不开它广泛的应用。Java可进行Android应用开发,构建网站等。因其安全性也被大多银行金融机构采纳开发电子交易系统。CC语言是很多中国学生的入门语言,是一种比较底层的高级语言,Java,C++和C#语言都不同程序的受到C语言的影响,C语言因为接近底层,所以性能非常高,但同时对程序员编程来说就有了一定的难度,C语言在操作系统,嵌入式系统等领域应用广泛,深入理解C语言对于学习其他语言有非常大的帮助。C++C++语言是一种非常强大的编程语言,其使用偏向底层架构,效率也非常高,C++学习难度非常高,很多对性能要求比较高的系统会广泛使用C++,比如游戏,操作系统,嵌入式系统,数据库系统,网络系统等等。
C#C#是微软公司推出的基于.NET框架的,面向对象的编程语言,其主要用于Windows和Windows phone应用开发,由于Windows在个人电脑领域占有绝对优势,所以C#市场占有份额较多,但是个人认为其发展较为有限。
Python
Python是一种解释型的编程语言,虽然其性能一般,但是功能十分强大,且比较简单,容易上手。Python可以进行web开发,比如豆瓣,还可以作为脚本语言使用,Python的强大得益于其太过强大的库,使得其在图像处理,文本处理,爬虫等应用中大放异彩,另外Python在近期特别火爆的人工智能领域也有非常多的使用,所以个人很看好Python语言未来的发展。
其实,对于程序员来说,编程语言只是手段,并不能真正的决定钱途,互联网行业分很多小方向,只有掌握了自己方向的核心知识,才能真正的有钱。另外,语言都是有自己的使用场景的,通过语言我们也可以了解互联网行业小方向的发展,因此,按照大趋势来说,语言的火热程度在平均意义上可以代表钱途。
三、编程语言排行榜
01、Python
无论是安卓或iOS应用开发,还是构建桌面应用,企业如今会雇用专门使用Python的开发人员。这也是意料之中的,因为Python有许多优势,而且它是一种顶级的通用语言。
Python最大的优势在于它相对容易学习,而且还加快了开发时间,这也是为什么企业机构如此喜欢Python的原因。同时对于作为开发人员来说,Python还具有开源的优势,并且在线社区非常活跃,这意味着你可以随时得到指导和支持。
正由于Python如此流行,该领域并不缺乏人才,但这并不意味着你不应该学习这种全堆栈语言。这里要注意一下,Python可能比Kotlin等其他语言速度慢,而且它不是移动设备的原生语言,可能会导致应用程序内存消耗高。
02、Kotlin
学习Kotlin的一大亮点在于,谷歌很喜欢使用该语言。事实上,自2017年以来,Kotlin一直是谷歌的首选软件开发语言。
谷歌优先考虑基于Kotlin的应用程序的创新特性和功能,开发者只需用这种易于使用的语言编写代码,就可以轻松地在竞争中保持领先。最重要的是,你可以使用Kotlin作为WordPress编程实践,构建WP网站或开发android应用程序、服务器等。而且只要是使用Java的地方,你都可以使用Kotlin,因为它与这种流行的语言是互通的。
03、JavaScript
在顶尖的编程语言中,不得不提JavaScript,它已成为桌面软件、基于web的应用程序甚至手机应用程序的标杆性语言。
你现在可能会想,为了成为一名优秀的的开发者,你需要学习本文中提到的所有语言,事实上你掌握的语言越多,这越有利于你的职业发展。
要知道,如今开发团队和公司一般都倾向于招募具有多项技能的开发人员,JavaScript能让你如虎添翼。JavaScript的优势在于,你几乎可以用这种语言编写任何代码。而且它在电子商务行业中特别流行,用于编写运输应用程序以及其他后端以客户为中心的应用程序。
所有这些都表明,学习JavaScript是一项非常有价值的技能。它的优势在于速度性、多功能性和可靠性。同时JavaScript流行度很高,由于有巨大的在线社区,这也让其易于学习。
04、C++
经过多年的发展,C++已经成为一种用于分析和研究目的的编程语言,现在它是游戏开发的主要语言之一。这是因为C++是世界上最流行的游戏引擎——虚幻引擎(Unreal Engine)的主要脚本语言。
如果你想在2022年成为游戏行业一个有竞争力的开发者,不妨学一学C++。该语言对于系统软件开发,以及将项目管理方法集成到PM应用程序和企业专有软件中非常有用。同时,C++还支持面向对象编程以及多种其他编程模式,这使C++具有高度的通用性,而且也比其他一些编程语言更容易学习。
在使用C++时,唯一麻烦的是没有自动垃圾回收器,这意味着你需要手工清除无用数据。内置的friends函数和全局变量可能会带来一些安全风险,你可以通过管理访问点来避免这些风险。
05、Golang
Golang最早出现在2009年,但它被认为是一种相当新的语言。近年来,无论是在前端还是后端,Golang都在开发社区掀起了一波浪潮。
Golang是由谷歌推出的,主要目的是将推进函数式编程的发展,它具有许多C语言应有的功能,比如包括垃圾收集器、更好的内存安全性和管理、结构类型等等。
