高校教编程是否应该将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的混合编程>也是 ...
随机推荐
- 如何基于Perl实现批量蛋白名转换为基因名?以做后续GO与KEGG分析
众所周知,在完成蛋白组学组间差异蛋白筛选后,往往要做GO与KEGG功能富集分析,这就需要我们首先将蛋白名转换为基因名,或者找出基因ID.将蛋白名转化为基因名可能涉及不同的转换工具或数据库,这里有几种常 ...
- 什么是spring框架?
spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,是一个分层的javaEE一站式轻量级开源框架
- .NET Core 中生成验证码
在开发中,有时候生成验证码的场景目前还是存在的,本篇演示不依赖第三方组件,生成随机验证码图片. 先添加验证码接口 public interface ICaptcha { /// <summary ...
- Cython编译报错“numpy/arrayobject.h: No such file or directory”解决方案
问题背景 Cython是用来加速Python程序性能的一个工具,其基本使用逻辑就是将类Python代码(*.pyx扩展格式)编译成\(*.c,*.so\)动态链接库文件,然后就可以在正常的Python ...
- Numpy技巧: 由label获得相等矩阵
Numpy技巧: 由label获得相等矩阵 假设Label为: [ABAC] , 如何方便的得到一个矩阵, 其元素i,j表示第i位和第j位相等呢? 先把Label复制扩展成: m,m 的 ...
- Kubernetes(二)资源管理
1. 资源管理介绍 在kubernetes中,所有内容都抽象为资源,用户需要操作资源来管理kubernetes. Kubernetes本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服 ...
- Android 7 默认声音/大小修改
背景 客户机器默认的开机声音一直很大:客户觉得无法接受,需要改小点. 基于Android 7的代码 前言 一般主要通过系统层来进行修改. 在系统关于音频的有关代码中,定义了两个数组: 注意,这些代码根 ...
- Linux修改dmesg 显示大小
背景 由于在调试的时候没有串口,而通过dmesg打印的内容发现其中有截断的现象. 因此为了方便调试.将有关的缓冲区加大. 原理 Linux内核中打印内核消息时用到了一个环形缓冲区. 这个缓冲区的大小由 ...
- [WPF]用HtmlTextBlock实现消息对话框的内容高亮和跳转
动手写一个简单的消息对话框一文介绍了如何实现满足常见应用场景的消息对话框.但是内容区域的文字仅仅起到信息展示作用,对于需要部分关键字高亮,或者部分内容有交互性的场景(例如下图提示信息中的"w ...
- FPGA案例开发手册——基于全志T3+Logos FPGA核心板
前 言 本文档主要提供评估板FPGA端案例测试方法,适用的开发环境为Windows 7 64bit和Windows 10 64bit. 本文案例基于创龙科技的全志T3+Logos FPGA核心板,它是 ...