C、C++、Java、Python等,那么多编程语言学哪个?学习顺序更重要
AI时代,很多小伙伴都想选择一门编程语言学习。但是在网上一查,发现光常用的编程语言就有二、三十种以上,有C语言、C++、Java、Python一下子就迷茫了,不太清楚应该选择哪个了?更具体的,哪个比较实用?哪个比较好就业?哪个容易学?等等。
今天就给各位来逐一分析梳理一下。当然,在一篇文章内,几乎不可能把这么多语言的所有优势、不足之处等特点都说清楚,笔者更多是从实用、通用的项目视角来分析对比的,从工程化的角度以适用为原则,从个人职业发展的角度以实用为原则。
在很多次的团队建设及赋能工作中,一直在直接参与开发人员的招聘面试,包括后端开发、前端开发、测试人员、全栈技术骨干、IT项目经理甚至UI、需求分析人员、实施工程师等岗位,前后总共接触的应聘IT人员应该千人以上了。另外笔者也参与了各种软件开发相关培训的授课,包括程序语言、算法、数据结构、架构、运维甚至中小学生的信奥赛培训等。
很多来应聘的大学生,其正常毕业后,从是否合格的或者说是否是有潜力的IT技术人员这个角度评价,可以说,真的是数量不多,尤其是非985院校毕业的学生(群体分析数据,不针对任何个人)。这其中我了解到,不少是因为学校课程设置或者自己对课程重视度排序出现偏差导致的,虽然很多人在开发方面兴趣度挺高,总希望自己工作后通过所谓的“锻炼”成长为开发高手,但其职业能力提升方面却耽误得比较厉害,很多人“成长潜力”在毕业后两三年就已经没有了,挺可惜!究其原因,很大比例是因为:在学校打下的知识结构基础不合理。
若大学生想要毕业后在软件开发方面短期和长期发展都比较顺畅,获得好的职业规划和效果,个人认为在语言方面最好能如下述这样学习和积累。下边所列每一项的序号值,除“15”之外,越小越需要早学,越小越需要在学校就学好,越小越基础,越小越没机会在工作中去“锻炼”(好好琢磨下内在的、残酷的社会就业逻辑吧)。所以,大致学习步骤就是,从1到14,穿插0和15。
这里挨个来梳理:
0.对计算机学科的兴趣。你天生爱计算机学科,超级最好;你天生喜欢计算机学科,最好;你认定通过计算机专业可以实现你的梦想,所以想喜欢并学习计算机学科,更好;如果不是这三种情况,你在大一期间可以尝试喜欢上计算机,再如果最后还是不喜欢,建议转专业或者想别的迂回办法(这个行业不光需要技术,还需要销售、被楔入进来的其它行业等的人才),否则请小心:别在这个领域荒废了自己的好时光。
1.C语言。C语言是计算机所有语言中综合性方面,最基础、最经典、最对学习其它语言有帮助、使用和解决问题方面最广泛实用、沟通和查资料最高效、作为工具使用收缩进退最自如的语言。所以,C语言学习过程没有第一轮第二轮之说,要一步学到位、学精。验证已“学精”的前提,其中一个必要但不是唯一充分的标志是:考试要基本都是满分,即便99、98了,那也是因为小失误。
我在面试应届或者刚毕业1、2年的应聘者时,如果他在学校的课程设置里有C语言,就一定会问他的C语言考试分数,如果高于95,就知道,这个求职者的技能基本正道;如果低于80,基本就不给机会复试了,当然,一般来说,面试交流中得到的其它信息也都佐证了这个判断。
至于更基础的汇编语言,它仅仅基础,从应用和生产效率方面来讲,没有其它优势。汇编语言按学校课程安排去学就行,自学大致了解就行,一般没必要熟记那些指令,真要项目中用到了,有了计算机其它科目的基础,学习成本也不高。
与C语言类似的,Fortran和Pascal语言也可以作为入门基础语言去学习,在一定程度上能起到类似C语言的基础效果,但因为流行性、系统底层调用偏离的不平衡性等原因,还是C语言最优且优势明显。
2.C++(第一轮)。很多基础软件开发要用到C++,很多对运行效率有高要求的软件开发要用到C++,比方说物联网应用软件,比方说运行环境特殊的应用软件,比方说复杂的算法,等等。
有了C语言的基础,学习C++,重点在指针、适度面向对象等方面突破,也就不难了。
这里针对参加信奥比赛的中小学生这种情况说一下,现在参加信奥赛都要求用C++,但其实信奥赛大纲里对C++的要求基本上是以C语言范围的内容为基础和为主,至于C++在C语言基础上的扩展,在信奥赛中用的不多。所以,中小学生参加信奥赛,首先要把C语言学扎实了,然后对照大纲,适当再补充一些C++扩展部分的知识即可,中学阶段没必要也很难把C++的所有高级特性彻底学通了。
3.JAVA(第一轮)。很多多角色场景、规模化场景下的软件开发要用到JAVA,比方说管理软件和管理平台、比方说电商平台、比方说电子政务、比方说分布式应用,等等。
有了C语言的基础,学习JAVA,重点在JAVA的范式封装特性、隔离特性、绝对面向对象(当然了,语言当中的面向对象这个玩意儿,学和用是两回事)等方面突破,也就不难了。
4.SQL。现在的软件几乎都要求有记忆,所以都要求和数据库打交道,很多情况下你没必要、项目上也不会让你自己写数据存储文件,所以SQL语言学习是必要的。
有了C语言的基础,你再学习了数据库设计原理(在学校要先从关系型数据库开始)以后,SQL语言学起来也就不难了。本质上讲,SQL的增、删、改、查对应于C语言中文件操作的write、read。
5.C/S、B/S、MVC、MVVM(等)。这些和软件开发相关的概念,一切因网络而起,因资源高复用的经济原则而起。“(等)”前面的都需要在学校就理解透了,“(等)”中的类似内容碰到问题去学习、了解就行,但一定要究其本质。
6.HTML5、CSS、Javascript。这几项中的前两者,较真来说,本质上不是计算机软件编程语言,应该称其为标记语言(H5、CSS3),而JS是脚本语言。
有了C语言的基础(是吃过猪肉的基础,而不是看过猪跑的基础),学习这三门“语言”,一共绝对不超过1个月,都能学得考试及格,当然考试分数越高越好。什么?1个月不够?学校的时间难道不是大把吗?除了谈情说爱会比较耗费时间,还有啥啊!
7.XML。不说为什么了,反正必须学精。如果是按步骤走到这个第7步的,那学精需要0.n~1天时间。本质上,XML不是编程语言,是定义描述语言。
8.设计模式(第一轮)。有了C++/JAVA的基础,尤其是JAVA的基础,设计模式也就不难了。设计模式要不要学精,就跟领军打仗的人要不要学习《孙子兵法》一样,你要是天才,不学也可以,你要是天才,学它也就两三天的事情,所以,还是要学。内容嘛,就学经典的23个模式就行,更多的设计模式学习基本就是形式主义本末倒置了,当然你为了写论文而防止万恶的查重机制,去折腾犄角旮旯的信息点(我不认为是知识点),那是又一回事了。
如果可以,最好用C++去走例子,否则跟JAVA的包装特性混到一起影响知识理解的条理性,当然这个不是很重要。
9.Python、Dart、Gradle等类Java语言。有了C语言、C++、JAVA的基础,再去学习Python、Gradle、Dart、PHP、R等,其难度就跟学习完了黑白胶片手动相机、单反专业相机后,又去学习新款手机的拍照功能一样,就这么简单,所以,如果是按步骤走到这个第9步的,那学精Python需要1~3天时间。
至于挂着少儿编程名义的很多图形类编程语言,其实较真说就是一些组件化的DML工具,大学生根据具体项目情况用时再学习即可。或者是家长和培训机构为了直观的激发孩子的逻辑思维用用就行,不建议中学生以上年龄的孩子扎进去学习。
10.JSON、变量和函数命名规则、注解逻辑(等)。学完以后,达到的效果就是,你充分理解了约定俗成的价值,充分理解了复用的价值。你还要充分理解,在软件行业里,省心(少掉头发)优于省力(不减重,可能也不伤肝)。
11.Node.js、Vue.js(等)。根据自己就业的现实情况,适当的学吧(学精还是撸皮毛,自己看,大四之前别去学,除非你们导师有项目需要,可以给你分点补助)。反正我觉得,这几个语言的发明,更多的价值在于解决和平衡当前的大学生就业结构的社会价值。
12.脚本语言(包括总结)。比如C Shell等,比如批处理语言,比如PLC电路逻辑语言,比如大数据、AI、代码工程等方面的一些脚本语言等。这些脚本语言大都可以触类旁通,用到哪个学哪个就行,基本上每一门学精大概需要1~3天时间,有个别牵扯到熟悉库的,多1~3天时间。
13.设计模式(第二轮)。碰到和解决很多问题并总结后,再系统学习一遍,查漏补缺,结合工作需要学。虽然不是必学,但只要你不改行,一般躲不掉。
14.C++、JAVA(第二轮)。碰到和解决很多问题并总结后,再系统学习一遍,查漏补缺,结合工作需要学。虽然不是必学,但只要你不改行,一般躲不掉。
15.学校课程要求的语言,用时才接触到的语言。这第15步的内容,它要是出现在第3步之后,基本都不是事儿。
所以,我的建议里边,哪是重点,你看呢?
以上内容中涉及到学习时间估算的,都不考虑语言工具和环境的安装部署和熟悉,这个没法估,他工具软件来个Bug和不常见的环境适配问题,可能好几天就出去了。
学习顺序很重要!当然了,这里列出的仅是语言线的学习顺序供参考,还要结合计算机科学里的其它科目来统筹安排,比方说数理逻辑、图论等数理基础,比方说计算机原理,比方说数据库原理、软件工程等。
祝IT之路上的发展前途无量!
这64本西门子PLC必读书籍,少看一本都是遗憾!
资料目录如下
一、64本电子书(PDF)
2011年西门子自动化专家会议论文集(上)
2011年西门子自动化专家会议论文集(下)
plc原理与设计应用(西门子s7-200)
plc实用技术(西门子)
plc实验实训教程(西门子s7-300系列)
plc应用技术图解项目化教程(西门子s7-300)
plc应用技术(西门子 上册)
plc应用技术(西门子 下册)
plc应用技术(西门子)任务驱动模式
plc技术与应用(西门子版)
plc技术及应用:基于西门子s7-200
PLC技术实用教程(基于西门子S7-300)第2版
plc控制技术快速入门:西门子s7-200系列
PLC控制系统项目式教程(西门子系列)
plc控制系统(西门子)
PLC系统编程调试维护技术与技巧宝典 西门子S7-200
plc职业技能培训及视频精讲 西门子s7-200系列
plc职业技能培训及视频精讲 西门子step 7
plc运动控制实例及解析(西门子)
plc运动控制技术应用设计与实践(西门子)
plc(西门子)实用教程
一步一步学plc编程 (西门子 step7)
一步一步学plc编程(西门子micro win)
从入门到精通 西门子工业网络通信实战
例说PLC西门子S7-200系列
例说西门子s7-300 400系列plc
典型工业设备电气控制系统安装调试与维护(西门子系列)
典型生产线原理、安装与调试( 西门子plc版本)
变频器实用技术(西门子)
可编程控制器plc应用技术(西门子机型)
可编程控制器入门与应用实例 西门子s7-200系列(第2版)
可编程控制器原理及应用(西门子机型)
可编程控制器应用技术项目教程(西门子)
图解PLC技术快速入门(西门子)
图解西门子 s7-200plc 编程快速入门
图解西门子PLC编程108例
图解西门子s7 1200plc入门到实践
图解西门子s7-200系列plc应用88例
图解西门子s7-300 400 plc控制系统设计快速入门
图解西门子s7-300 400plc编程技术
图解西门子s7-300/400plc技术快速入门与提高
图解西门子tdc与s7-300 400 plc
图解西门子变频器入门到实践
学会西门子s7-200 plc应用
学会西门子s7-300 plc应用
学会西门子s7-400 plc应用
完全精通西门子s7-300/400 plc
实例解读西门子plc
实例讲解西门子S7-200PLC从入门到精通
工业自动化技术(西门子工业自动化系列教材)
彻底学会西门子PLC、变频器、触摸屏综合应用
德国西门子s7-200plc版:机床电气与plc控制技术理实一体化教程
德国西门子s7-200版plc技术与应用理实一体化教程
快速学通西门子plc s7-200/300
快速掌握西门子s7-300/400 plc工程应用及故障处理
机床电气控制与plc技术(西门子系列)
机械电气控制与西门子PLC应用详解
案例分析西门子s7-200系列plc应用程序设计
活学活用PLC编程190例(西门子S7-200系列)
深入浅出西门子logo!(第2版)
深入浅出西门子s7-1200plc
深入浅出西门子s7-200 smart plc
深入浅出西门子step 7
深入浅出西门子人机界面(高清版)
深入浅出西门子运动控制器-simotion实用手册
电器控制与plc(西门子s7-300机型)
电气控制与plc应用技术(西门子s7-200系列)
电气控制与plc技术及应用(西门子s7-200系列)
电气控制与plc技术及应用(西门子s7-300系列)
组态软件应用指南-组态王kingview和西门子wincc
自动化综合实训教程(西门子s7 plc)
西门子 s7-200 300 400plc基础与应用技术
西门子 s7-300/400 plc 应用案例解析
西门子 WinCC V7 从入门到提高
西门子840d数控系统应用与维修实例详解
西门子CP243资料合集
西门子EM231培训教程
西门子EM235培训教程
西门子PCS7培训教程
西门子plc s7-200∕300∕400∕1200应用案例精讲
西门子plc200 300 400应用程序设计实例精讲
西门子plc200∕300∕400应用程序设计实例精讲(第2版)
西门子PLC、变频器与触摸屏综合应用实训
西门子plc与intouch综合应用
西门子PLC与变频器 触摸屏综合应用教程(第2版)
西门子plc与变频器控制电路识图自学通
西门子PLC与变频器网络通信及工程应用实例
西门子plc与工业网络技术
西门子plc入门与典型应用
西门子plc入门经典问答
西门子plc完全精通教程
西门子PLC完全精通教程(第2版)
西门子PLC工业通信完全精通教程
西门子plc工业通信网络应用案例精讲
西门子PLC工程应用与故障检修实例
西门子plc常用模块与工业系统设计实例精讲
西门子plc应用与设计教程
西门子plc应用基础与实训
西门子plc应用案例解析
西门子plc技术完全攻略
西门子plc控制技术
西门子plc控制技术实践
西门子plc控制系统设计及应用
西门子PLC电气设计与编程自学宝典(双色版)
西门子plc系统综合应用技术
西门子plc编程与工程应用
西门子plc编程及应用
西门子plc编程技术及工程应用(s7-300)
西门子PLC编程技术及应用案例
西门子PLC通信与控制应用编程实例
西门子PLC通信网络解决方案及工程应用实例
西门子plc高级培训教程(第2版)
西门子plc高级应用实例精解
西门子plc高级应用实例精解(第2版)
西门子profinet工业通信指南
西门子s7 plc应用简明教程
西门子s7-1200 plc编程与应用
西门子S7-200 300 400系列PLC自学手册
西门子s7-200 plc从入门到精通
西门子s7-200 plc从入门到精通(双色版)
西门子s7-200 plc入门与应用实例
西门子s7-200 plc入门知识与实践课堂
西门子s7-200 plc功能指令应用详解
西门子s7-200 plc基础及典型应用
西门子s7-200 plc实践与应用
西门子s7-200 plc应用教程
西门子s7-200 plc数据通信及测控应用
西门子S7-200 PLC结构、编程、通信与组态
西门子s7-200 plc编程与系统设计精讲
西门子S7-200 PLC编程及应用案例精选(第2版)
西门子s7-200 plc编程实例精解
西门子S7-200 SMART PLC编程技巧与案例
西门子s7-200cn plc编程技术及工程应用
西门子s7-200plc体系结构与编程
西门子s7-200plc入门和应用分析
西门子s7-200plc完全精通教程
西门子s7-200plc工程应用技术教程
西门子s7-200plc工程应用设计
西门子s7-200plc应用100例
西门子s7-200plc应用100例(第2版)
西门子s7-200plc应用完全精通
西门子s7-200plc控制系统设计案例解析
西门子s7-200plc的使用经验与技巧(第2版)
西门子s7-200plc编程与工程实例详解
西门子s7-200plc编程从入门到精通
西门子s7-200∕300系列plc入门
西门子S7-200培训教程
西门子S7-200系列PLC 变频器 触摸屏综合应用
西门子s7-200系列plc应用实例详解
西门子s7-200系列plc简明读本
西门子s7-200系列plc编程指令与梯形图快速入门
西门子s7-200系列plc自学手册
西门子s7-300 400 plc实践与应用
西门子s7-300 400 plc工程实例详解
西门子s7-300 400 plc工程应用
西门子s7-300 400 快速入门
西门子s7-300 400plc工程应用(第2版)
西门子s7-300 400plc快速入门手册
西门子s7-300 400plc编程技术及工程应用
西门子s7-300 400系列plc快速入门与实践
西门子S7-300 400系列PLC自学手册
西门子s7-300 plc应用技术
西门子s7-300 plc编程入门及工程实践
西门子s7-300plc应用技术
西门子s7-300plc程序设计及应用
西门子s7-300∕400快速应用
西门子S7-300/400 PLC工程应用技术
西门子s7-300/400 plc编程与应用(第2版)
西门子s7-300/400 plc编程语句表和结构化控制语言描述(第3版)
西门子s7-300/400 plc编程:梯形图和功能块图描述(第3版)
西门子S7-300/400PLC完全精通教程
西门子s7-300/400plc编程与应用
西门子S7-300/400系列PLC变频器触摸屏综合应用
西门子s71200 plc编程方法与工程应用
西门子s7可编程序控制器 step7编程指南
西门子s7系列plc原理及应用
西门子s7系列plc电气控制精解
西门子s7系列plc的应用与维护
西门子s7系列可编程控制器应用技术
西门子step7编程语言与使用技巧(清晰版)
西门子tdc编程及应用指南(鲍伯祥)
西门子V90伺服资料合集
西门子wincc v7基础与应用
西门子WinCC从入门到精通
西门子WINCC组态软件工程应用技术
西门子人机界面工程应用与故障检修实例
西门子人机界面(触摸屏)组态与应用技术
西门子全集成自动化技术综合教程 系统编程、现场维护与故障诊断
西门子变频器与PLC综合应用入门
西门子变频器工程应用与故障处理实例
西门子变频器工程应用与故障检修实例
西门子变频器技术及应用(双色版)
西门子变频器资料合集
西门子可编程控制器实验技术
西门子工业控制设备工程应用技能实训教程
西门子工业网络交换机应用指南
西门子工业网络通信技术详解
西门子工业自动化项目设计实践
西门子工业通信工程应用技术
西门子工业通信网络组态编程与故障诊断
西门子数控plc程序典例
西门子数控机床维修案例集锦
西门子燃气轮机控制系统解析
西门子现场总线通信原理与应用
西门子相关技术手册
西门子系统现场故障检修速查手册
西门子自动化系统接地指南
西门子触摸屏手册汇编
西门子运动控制技术及工程应用
视频学工控 西门子s7-200 plc应用技术
视频学工控-西门子s7-200 plc
视频学工控-西门子s7-300 400 plc
跟我动手学西门子s7-200plc
跟我动手学西门子S7-300/400PLC(新版)
跟着实例掌握西门子参数编程高难度技巧
轻松学会西门子s7-200plc
轻松学通西门子s7-200plc技术
轻松学通西门子s7-300 plc技术
轻松学通西门子s7-400 plc技术
轻轻松松学西门子s7-200系列plc
零基础学西门子S7-200 PLC
零基础学西门子S7-200 PLC(第2版)
零基础学西门子S7-300 400 PLC
零基础轻松学会西门子S7-1200
零基础轻松学会西门子S7-200PLC
零基础轻松学会西门子S7-300/400
零起步轻松学西门子s7-200 plc技术
零起点学西门子plc
零起点学西门子s7-200plc
零起点学西门子s7-300/400 plc
零起点学西门子变频器应用
资料真实可领(篇幅有限,只展示部分)
更为大家准备了几门经典的西门子PLC视频课程:软件安装视频案列课程、西门子S7-200PLC接线演示、组态王水处理、PLC输入电路、西门子1200PLC编程应用等,助力大家技术更上一层!
↓↓
领取方式:私信【西门子】即可免费领取
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
如何获取 电气热门资料?
操作指引如下!
相关问答
机械电子工程,机械设计制造及其自动化有什么区别?申请方
机械电子工程是机械设计制造及其自动化专业下的二级学科,换句话说机械电子工程是你本科时候的一个方向而已。一般来说我们刚进学校都是学的机械设计...