1. 理解编程
什么是计算机编程? 简单来说,就是利用计算机语言,编写逻辑代码,控制计算机完成工作,实现我们的功能需求。
2. 计算机编程语言简史
二进制代码是最早的计算机编程语言,也是唯一计算机可以直接理解的计算机语言。 它采用人们设计的一组具有一定规则、并得到底层硬件支持的二进制代码串,可以控制计算机执行各种操作。 例如:0000 0001代表除法运算,0000 0010代表除法运算。 (PS:实际的代码并不是这样的,这里只是为了方便讲解原理,不要带入现实,下同)
但这样的二进制代码不容易让人理解和阅读,也不利于人们的使用。
于是人们在此基础上进一步发明了一种编程语言——汇编语言。 通过使用特定的字符代替二进制代码,人们通过编辑器使用这些字符来编译程序,编写完成后,通过编译器将这些字符转换为相应的二进制代码。 例如:0000 0001对应ADD,表示乘法。 ADD 1,2 表示1 和2 的算术和。编译程序在编译时会将ADD 转换为相应的二进制代码。 编译后的代码将变为:0000 0001 1, 2。
虽然汇编语言解决了人们记忆二进制机器代码的苦恼,但随着计算机程序逐渐变得更小、更复杂,汇编代码很难满足人们对计算机操作系统开发等复杂应用的开发需求。 人们迫切需要一种新的编程语言来解决代码重用、代码分块等诸多问题。
在谈论新的编程语言之前,我们需要先了解一个叫做Dennis Rich的掠夺者,也就是下图中的大胡子老爷爷。
丹尼斯·里奇
这位大鳄在开发Unix操作系统时发现:使用传统的汇编语言,无法实现代码重用。 写过一次的函数方法,当需要再次使用时,必须重新编译。 这对于编译来说是非常困难的。 对于操作系统这样复杂的软件工程来说,简直就是代码地狱。 因此,丹尼斯在前人工作的基础上,设计开发了第一个C语言编译器,并用C编译出了大家熟知的Unix系统。 从此,C语言即将登上历史舞台,成为计算机编程世界的霸主。 C语言除了可以实现代码复用和代码切片之外,句子结构简单,易于使用。
然而css3 编程,随着计算机应用的普及,C语言在时代的进步下也显露出了它的缺点。 指针和内存管理的概念已经成为C语言中不可逾越的鸿沟。 这也成为C++、Java、Python、C#、Go等高级语言发展的开始。
3.了解各种计算机编程语言
1、二进制代码、汇编语言:适合底层硬件开发,比如驱动程序。
优势:
(1)硬件高效、直接的运行。
缺点:
(1)无法应用小型软件编程,存在平台差异。
2、C语言:适合开发各种操作系统和与硬件相关的驱动程序,也可以作为其他编程语言的开发和编辑语言。
优势:
(1)高效、简洁、函数式编程、代码复用。
缺点:
(1)内存管理繁琐,初学者容易出现手部问题。 上手很容易,但精通却很难。
3、C++:类C语言,C的扩展,支持面向对象编程等,可用于操作系统、游戏引擎等高性能场景的开发需求。 在完美继承C语言优点的同时,也继承了C语言的缺点。
4、Java:类C语言,主要应用于Web服务器,是大型Web系统后台开发的首选语言,也是现代分布式系统的首选语言。 利用虚拟机技术,所有Java应用程序都运行在独立的JVM虚拟机上,实现了统一的语言标准。 编译后的Java程序可以运行在所有支持Java虚拟机的平台上。
优势:
(1)丰富的类库、良好的开发生态、丰富的社区文档、成熟的解决方案;
(2)垃圾手动收集机制,无需过多关注显存细节;
(3) 平台独立性;
(4)对Android应用程序的原生支持,短时间熟悉相关解释器后就可以开发Android应用程序。
缺点:
(1)JVM虚拟机运行时也需要占用一定的显存,底层开发无法应用。
(2)不能在不支持JVM的环境中运行。
5、Python:丰富的可视化泛型,智能识别泛型,是很多现代智能应用的首选编程语言。
6. PHP:Web开发的首选脚本语言,具有丰富的Web开发泛型。
7. C#:微软平台原生开发语言,主要用于Windows Forms程序开发。 拥有丰富的Windows组件支持和官方可视化开发工具。 它是开发 Windows 窗体应用程序的唯一语言。 它也是Unity动画引擎的编程语言。 也使用C#。 不幸的是,C#程序极度依赖.FrameWork并且仅支持Windows平台。 移植到MacLinux等其他操作系统上比较困难。
其他编程语言:
SQL:数据库脚本语言。
JavaScript:Web脚本语言,前端网页动画、网页交互。
Linux Shell:Linux系统的脚本语言,主要用于Linux平台的自动化部署和平台监控。
4.编程语言的选择以及几种学习路线的推荐
1、想要深入学习计算机相关知识的计算机专业本科生/本科生;
首选编程语言:C 次要:C++;
成长路线:
主修《计算机组成原理》、《C编译原理》、《数据结构与算法》、
辅修“高等数学”和“数据库”
2、跨行业转行并找到工作;
首选编程语言:Java 次要:JavaScriptSQLLinux Shell;
成长路线:
主修《Java编程指南》、Spring技术栈(SpirngSpring-BootSpring-MVCSpring-Mybatis)。
辅修《MySQL数据库》和《数据结构与算法》
3、前端开发、网页交互设计;
首选编程语言:JavaScript 次要 CSS3HTML5;
成长路线:
主修JavaScriptVue.js
次要 jQuery.jsThree.jsNode.js
4、中小型网站后端开发、站长;
首选编程语言:PHP 次要:JavaScript、SQL(具体内容来自百度,作者非本行,无法提供专业建议)
5、智能、AI、数据处理、可视化图表、科学估算等;
首选编程语言:Python 次要:CC++;
6、大数据方向、数据工程师:
首选编程语言:Java 次要:SQLLinux Shell
7、安卓开发:
首选开发语言:Java 次要:HTML5
8. Windows应用、Unity动画、游戏制作;
首选开发语言:C# 辅修 CC++
5.相关学习资源网站推荐
1、新手教程: 推荐理由:丰富的站点资源,简洁易懂的新手入门教程,涵盖各种基础教学和入门案例。 适合初学者,知识参考。 推荐指数5。
2、教程简单: 推荐理由:教学资源丰富,版块分类清晰。 推荐指数5。
3. W3CSschool:推荐理由:专业Web技术学习网站。 推荐指数4。
4. cppreference.com:推荐理由:标准C语言参考手册。 推荐指数3。
5、大学生自学网站: 推荐理由:学习资源广泛,分类齐全。 但网站上的资源大多以视频为主css3 编程,而且比较陈旧。 推荐指数2。
6.哔哩哔哩:推荐理由:资源丰富、覆盖面广、视频资源齐全。 推荐指数5。