Files
fzu-product/技术资源汇总(杭电支持版)/3.编程思维体系构建/3.3如何选择编程语言.md
2024-08-10 19:46:55 +08:00

62 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)
当然还有各种形形色色的编程语言等着同学们去探索。