feat(WIKI): wiki 2025 BREAKING CHANGE: Older content is categorized into older folders
This commit is contained in:
61
2023旧版内容/3.编程思维体系构建/3.3如何选择编程语言.md
Normal file
61
2023旧版内容/3.编程思维体系构建/3.3如何选择编程语言.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 3.3 如何选择编程语言
|
||||
|
||||
## 编程语言的工具属性
|
||||
|
||||
在回答这个问题之前,需要各位同学明确的一点是,编程并不是一个独立的学科,像数学那样做题是学不好的。
|
||||
|
||||
编程语言的选择更像是锤子与扳手之间的选择,更大程度上看的是你需要解决什么样的问题。当你需要砸钉子的时候,使用螺丝刀总归是不顺手的,因此了解不同语言的特性,针对任务进行选择是非常有必要的。
|
||||
|
||||
## 编程语言特性
|
||||
|
||||
首先附上一张经典老图
|
||||
|
||||

|
||||
|
||||
### 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 开发,安卓应用等等。**
|
||||
|
||||

|
||||
|
||||
当然还有各种形形色色的编程语言等着同学们去探索。
|
||||
Reference in New Issue
Block a user