高校教编程是否应该将Python作为主语言
偶读一文:https://www.cnblogs.com/qing-gee/p/12941219.html
想到了这样的一个老问题,个人搞计算机软件开发、人工智能的时间已经十余年,虽然个人能力有限但是身边的同学朋友已经是985/211大学的硕士导师、公司的技术总监等等,经历的事情多了对于这个问题也是有些个人理解的。
Python语言是一门很悠久历史的编程语言,不过在人工智能,准确的说是机器学习方面火之前Python语言是十分的小众的,作为胶水语言和脚本语言一般也是作为辅助编程语言的存在,说白了就是运维、测试等环境下使用,高校这时候之所以不教Python就是因为根本就没有几个高校的老师知道Python是个啥,并且也基本没有任何的公司会提供Python语言编程的工作岗位,那时候的运维和测试环境下使用Python一般也是个人可以选择的一个选项,毕竟这些环境下传统的编程语言还是那神奇的shell语言,说个后话,这些年来我是觉得Python语言在运维、测试环境下还是真的比she'll好用的多。
人工智能、机器学习、数据分析、爬虫、Web 开发、运维、测试这些都是Python语言的应用环境,基本上可以说Python的应用环境也就这些了,如果非要再加的话可以把物联网极客的树莓派也加进去,而且实际上的人工智能、机器学习其实在现在社会上指的都是一个东西(深度学习)。而数据分析、爬虫、运维、测试这些方面都是十分小众的方向,在整个计算机行业所占比例小的可怜甚至可以忽略,而Python在Web 开发中所占的比例也是小的很,说白了这些领域为什么Python可以占上位置主要就是因为Python语言编程简单,对于性能要求不高但是要求快速编程实现的环境下可以使用Python作为一中取舍替代的语言,如果你从事这些领域而学Python还是可以的,但是你学Python是想从事这些行业你基本可以放弃了,因为这样的话你学Python可能最大的可能也是意味着你找不到工作,毕竟这些行业太小众,而Python也是这些领域的可以使用的一种替代性语言之一。
上面说了这么多基本上可以下这样的总结性的话,Python语言基本上主要的使用环境就是机器学习(深度学习的算法工程师), 正如https://www.cnblogs.com/qing-gee/p/12941219.html中所说的:
可以说学Python或者说Python的主要使用场景都是要求高学历的人士的,也就是所谓的985/211的学生,准确的说是硕士生和博士生,一般招Python的算法岗位要是大些的公司可能还会要求CCF的A、B、C论文或者SCI的论文,如果你不是985/211大些的而且还不知道CCF和SCI可以说这种Python岗位也是和你没有缘分的。其实,10多年前我刚参加工作的时候也有一种类似的岗位那就是计算机视觉算法工程师,当然现在这个岗位也划归到了机器学习大栏目下了,那时候要求就是要求985/211学校的本科以上最好是硕士以上,要求的编程语言就是那神奇的MATLAB,在某种程度上现在的Python和10多年前的MATLAB很像,针对特定环境下使用的,作为编程工具最主要的还是算法的掌握,而这往往要求极高的学历,而这要求对于绝大部分的计算机专业学生来说都是不满足的。其实对于这种岗位别说10多年前,就是20多年前就是存在的,那时候是我博士生导师找工作的时候,那时候的算法工程师(特指机器学习领域)要求的就是学历,那时候就是985/211这样的顶尖学校,那时候也是要求又SCI论文啥的,那时候对编程语言的要求更低,20多年前机器学习算法工程师更为小众,那时候的编程要求是会编程即可,不限制语言,说白了这是一种类似于欧美五十年前的那种研究所的研究院的工作,你的主要任务就是搞论文或者把论文中的东西实现出来,核心技能要求是理解论文、掌握论文,至于编程不行就给你配几个开发人员,这都不是问题,这种情况下编程只是一种工具,我想欧美那些顶尖的计算机科学家里面应该也有不少不会编程或者编程不太行的人存在,换句话说这种行业里面编程并不关键。
说了这么说还是说下我对这个问题的看法吧:计算机专业的学生如果你不是985/211的,或者你也没打算以后再去读个985/211的硕士和博士那你就不要把Python作为主语言来学习,虽然说编程语言都是互通的,但是那也是你把C语言学明白了才真正能掌握这句话,不然这也就是面上的一句话,Python作为主语言往往要你很难完整的理解啥才是真正意义上的编程。至于非计算机专业的学生如果你并不想从事编程开发领域而只是想把编程作为一种辅助技能或工具来用那把Python作为主编程语言没什么问题。总的说就是你要是想搞编程但是没法做深度学习的算法岗位那你就不要把Python做主语言了,如果只是作为辅助技能那就无所谓了。
========================================================
另外再说一点,https://www.cnblogs.com/qing-gee/p/12941219.html提到的:
据我所知,高校之所以这么教主要原因还是第二个原因,毕竟高校里面能教明白C语言、C++、JAVA的老师其实还是不多的,这句话当然也包括了好多985、211高校,即使是这种国内顶尖的高校教编程也是照着课本准备准备就开讲的,至少我认识的那些985/211高校教编程的老师,嘿嘿嘿,写的编程代码其实就是自己上大学读本科时候上机实验课写的那些,这样的高校都况且如此更不要提那些一二本的大学了,毕竟在高校里面教课是不赚啥钱的,大家想的都是发论文,搞基金,拉人脉,毕竟啥路子赚钱就搞啥路子嘛,教好教坏既然都赚一样的钱又为什么要费那么大劲呢,于是乎就干脆直接把Python提上来教课了。在我的观点里面,Python在计算机专业中的地位也就是寒暑假之前搞个小学期,或者当做素质教育周末开班的那种课程,如果作为主课确实有些喧宾夺主,甚至更可能是高校老师为了省力而给自己开的小差。
================================================
高校教编程是否应该将Python作为主语言的更多相关文章
- 教你用OpenCV 和 Python给证件照换底色(蓝底 <->红底->白底)
在我们的生活中常常要用到各种底色要求的证件电子照,红底.蓝底.或者白底,而假如你手上只有一种底色的证件照,你又不想再去拍又不会PS怎么办?今天教你们用OpenCV和Python给你的证件照换底色. P ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- Atitit.异步编程 java .net php python js 对照
Atitit.异步编程 java .net php python js 的比較 1. 1.异步任务,异步模式, APM模式,, EAP模式, TAP 1 1.1. APM模式: Beg ...
- Atitit.异步编程 java .net php python js 的比较
Atitit.异步编程 java .net php python js 的比较 1. 1.异步任务,异步模式, APM模式,, EAP模式, TAP 1 1.1. APM模式: Beg ...
- 编程中遇到的Python错误和解决方法汇总整理
这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下 开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析, ...
- 读书笔记:编程小白的第一本python入门书
书名:编程小白的第一本python入门书 作者:侯爵 出版社/出处:图灵社区 年份:2016年 封面: 感想: 本书短小精悍,精华部分在于给编程小白打了鸡血的同时输出了一种“高效学习法的思想”. 个人 ...
- 2个月,我从编程小白成为了Python研发工程师
从编程小白,到Python研发工程师,需要多久呢? 答案就是:91门课,450个小时. 听起来似乎难以实现,但其实如果每天抽出八小时学习,两个月的时间,就能由编程小白转变成为Python工程师,听起来 ...
- 编程小白的第一本python入门书电子版|百度网盘分享无偿获取|评分超高的python教材
点此进入网盘下载提取码:cr74 为了能让更多的编程小白轻松地入门编程,把高效学习法结合 Python 中的核心知识,写成了这本书.随意翻上几页,你就会发现这本书和其他编程书的不同,其中有大量的视觉化 ...
- 笔记|《简明Python教程》:编程小白的第一本python入门书
<简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...
- Python和C++的混合编程(使用Boost编写Python的扩展包)
想要享受更轻松愉悦的编程,脚本语言是首选.想要更敏捷高效,c++则高山仰止.所以我一直试图在各种通用或者专用的脚本语言中将c++的优势融入其中.原来贡献过一篇<c++和js的混合编程>也是 ...
随机推荐
- idea编译报错 静态Map初始化报错java.lang.ExceptionInInitializerError
idea编译报错 静态Map初始化报错java.lang.ExceptionInInitializerError package cc.mrbird.utils; import java.util.H ...
- 创建docker
创建docker 准备实验环境 1. 安装前准备 Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可. 1.1 查看当前的内核版本 uname -r 1.2 使用 root ...
- OpenCV程序练习(四):人脸识别
一.人脸检测 准备图片 代码 import cv2 img=cv2.imread("Faces.jpeg") faceCascade=cv2.CascadeClassifier(' ...
- 全国产!瑞芯微RK3568J/RK3568B2工业核心板规格书
核心板简介 创龙科技SOM-TL3568是一款基于瑞芯微RK3568J/RK3568B2处理器设计的四核ARM Cortex-A55全国产工业核心板,每核主频高达1.8GHz/2.0GHz.核心板CP ...
- 为什么springboot推荐使用Thymeleaf?
前端那么多好的框架 为什么springboot推荐使用Thymeleaf? 前端框架和模板引擎不是一种东西: 模板引擎:Thymeleaf.freemarker.JSP. 前端框架:vue.angul ...
- SDL3 入门(5):纹理渲染
创建纹理 有三个 API 可以用来创建纹理: SDL_CreateTexture 参数少,使用方便,适用于创建简单的纹理 SDL_CreateTextureFromSurface 适用于从已有图像数据 ...
- tp6 uniapp跨越问题
自己写一个简单的中间件
- django信号中的条件判断不符合时如何提示错误并返回
在Django中,如果你在信号(Signal)处理函数中需要进行条件判断,如果条件不符合,你可以触发一个异常,并在视图或其他地方捕获这个异常,然后返回相应的错误提示. 以下是一个简单的例子,演示如何在 ...
- <script> 和 <script setup> 的一些主要差别
<script setup> 是 Vue 3 中的新特性,它是一种简化和更具声明性的语法,用于编写组件的逻辑部分.相比之下,<script> 是 Vue 2 中常用的编写组件逻 ...
- MViT:性能杠杠的多尺度ViT | ICCV 2021
论文提出了多尺度视觉Transformer模型MViT,将多尺度层级特征的基本概念与Transformer模型联系起来,在逐层扩展特征复杂度同时降低特征的分辨率.在视频识别和图像分类的任务中,MViT ...