This commit is contained in:
2024-08-10 19:46:55 +08:00
commit 2233526534
798 changed files with 35282 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
# 3.3 如何选择编程语言
## 编程语言的工具属性
在回答这个问题之前,需要各位同学明确的一点是,编程并不是一个独立的学科,像数学那样做题是学不好的。
编程语言的选择更像是锤子与扳手之间的选择,更大程度上看的是你需要解决什么样的问题。当你需要砸钉子的时候,使用螺丝刀总归是不顺手的,因此了解不同语言的特性,针对任务进行选择是非常有必要的。
## 编程语言特性
首先附上一张经典老图
![](https://cdn.xyxsw.site/boxcnW0YQY58RXhwdtRj5k6ndlc.jpeg)
### C 语言/C++
C 语言/C 艹一脉同源从图中来看C 和 C 艹都像多功能瑞士军刀说明其是用来做细活的工具C 上面的优盘说明其可以进行硬件开发的相关工作。
不少同学对可能会感到困惑,为什么要从 C 语言学起<del>(因为学校菜教不了别的)</del>
C 语言其实是一门优秀的承上启下的语言,既具有高级语言的特点,编写不依赖特定的计算机硬件应用程序,应用广泛,又具有底层汇编的特点,其指针可以让此语言操纵更为底层的内存空间。
但是其功能毕竟受限,有时候用起来会苦恼其操作受限以及各种奇奇怪怪的 bug 问题。
**如果为了增强自身的编程能力和计算机素养培养解决问题的能力C 语言的你的不二选择。在这里强烈推荐 jyy 老师的各类课程。([http://jyywiki.cn/](http://jyywiki.cn/)**
**我们的任务一部分会使用 C 语言,一方面培养大家编程能力,一方面辅助大家期末考试。**
### C++
现代 C++ 程序可看成以下三部分组成。
- 更接近底层的语言,大多继承于 C
- 更高级的语言特征,可自定义数据类型
- 标准库
**C++ 既有 C 面向过程的特点,又拥有面向对象的特性,是一门系统级的语言。**
编译器、操作系统的开发,高性能服务器的开发,游戏引擎的开发,硬件编程,深度学习框架的开发......只要是和底层系统或者是与性能相关的事情,通常都会有 C++ 的一席之地。
## Python
Python 在图里是电锯,适合干比较“狂野”的任务,也是深度学习的主要编程语言。其在数据处理方面具有诸多出色成熟的库,编程语言也较为简单。
但是过度的包装可能造成出现意想不到的错误,出现的结果看不懂等等。
使用缩进控制语句是此语言的特点。
**作为深度学习的主要使用语言,我们将以****P****ython 为主。**
## JAVA
一门面向对象编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承,指针等概念,因此 java 语言具有功能强大和简单易用两个特征。
他太老了,虽然不少框架都依托于 Java但是不得不说一些地方略有落后。
**频繁应用于****W****eb 开发,安卓应用等等。**
![](https://cdn.xyxsw.site/boxcnPv2FcyQxGLjYHThSaJNwRf.jpeg)
当然还有各种形形色色的编程语言等着同学们去探索。