距离上一篇博文已过去8个月了,这段时间发生了很多事情导致没能持续更新博客。这段时间除了工作繁忙,业余时间都投入到AI技术的学习中,后面一段时间将会给大家分享我作为一个.NET开发人员在深度学习领域学习的收获和成果。

《写给.NET开发者的Python教程》这个系列是第一个想和大家分享的内容,主要是从C#角度学习Python,希望能给.NET开发者们扫清AI学习的第一个拦路虎。所有的教程都会以AI开发的必备的Jupyter Notebook环境编写和提供给大家。

之后的系列会给大家分享如何从头开始使用深度学习框架从头训练AI模型和打比赛的做法和经验。

为什么学Python?


学习Python不是鼓励大家抛弃.NET平台转向Python,而是为了让大家能够在这个AI当红的年代,能对新的技术领域有所了解,甚至多掌握一门手艺。于我而言,学习Python的理由有几个:

  1. 学习AI技术。虽然AI领域能够使用很多语言和平台(如R语言、ML.NET),但目前最主流的方式是使用基于Python的AI框架,例如PyTorch和Tensorflow。大多数AI库和开源项目都基于Python,业界开发和部署AI模型也大都使用Python。
  2. 拥抱新语言。学一门新语言可以开拓视野,增加解决问题的灵活性。有个朋友每年都会学习一门新语言,这一点非常棒。学习新东西可以保持对技术的热情和新鲜感,不同的语言和平台各有千秋,擅长不同领域,能够成为一个多面手对我们的职业发展大有裨益。
  3. 提升竞争力。对于.NET开发者而言,我们会越来越多遇见项目中集成AI技术的场景,学会Python有助于我们了解AI技术方案,更好的参与AI方案的开发、集成和部署。举个例子,目前主流的AI服务托管方案都是讲AI模型部署为Web服务,然而Python的诸多Web框架性能和并发能力都不如ASP.NET Core,如果能采用ASP.NET Core作为Web服务,本机通过ML.NET或TensorFlow.NET调用AI模型或许会是更好的选择。

根据StackOverflow 2020年的开发者报告,Python仍旧是近几年开发者最想学习的语言:https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-wanted

系列内容规划


《写给.NET开发者的Python教程》主要会以C#和Python语言特性对照的方式,为大家介绍Python的语法,每一行Python代码都会有C#的对照例子。同时对于Python的类库和框架的使用,也会提供.NET对照的介绍,为大家提供一份简明概要的指引教程。

《写给.NET开发者的Python教程》系列博文的规划如下:

  1. 引言
  2. C# vs Python:语言特性、Conda和Jupyter Notebook环境
  3. 基本类型和变量
  4. 运算符、条件判断和循环语句
  5. 数据结构
  6. 函数和面向对象
  7. 模块、包和库
  8. 常用功能:文件、时间、字符串、Json&XML序列化和反序列化
  9. 机器学习神器:Numpy、Pandas、Pillow和Matplotlib

最后,这个系列的更新频率暂定一周一节

写给.NET开发者的Python教程(一):引言的更多相关文章

  1. 写给.NET开发者的Python教程(一):C# vs Python: 语言特性、Conda和Jupyter Notebook环境

    承接上篇,本文会从语言特性.开发环境和必备工具来带领大家进入Python的世界. 语言特性 首先一起看下C#和Python在语言特性层面的对比,他们作为截然不同的两类面向对象高级语言,在语言层面上有何 ...

  2. 写给.NET开发者的Python教程(二):基本类型和变量

    从本文开始,我们就要正式了解Python的语法特性了,这章主要介绍基本类型和变量,开始之前先介绍下Python中的标准输入输出. 标准输入输出 前文举过TwoSum问题的例子,但是没有讲到标准输入输出 ...

  3. 写给.NET开发者的Python教程(三):运算符、条件判断和循环语句

    本节会介绍Python中运算符的用法,以及条件判断和循环语句的使用方法. 运算符 运算符包括算术运算符.赋值运算符.比较运算符.逻辑运算符等内容,大部分用法和C#基本一致,下面我们来看一下: 算数运算 ...

  4. Python教程:操作数据库,MySql的安装详解

    各位志同道合的同仁请点击上方关注 本教程是基于Python语言的深入学习.本次主要介绍MySql数据库软件的安装.不限制语言语法,对MySql数据库安装有疑惑的各位同仁都可以查看一下. 如想查看学习P ...

  5. 《简明python教程》笔记一

    读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info  安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...

  6. Python教程:连接数据库,对数据进行增删改查操作

    各位志同道合的同仁可以点击上方关注↑↑↑↑↑↑ 本教程致力于程序员快速掌握Python语言编程. 本文章内容是基于上次课程Python教程:操作数据库,MySql的安装详解 和python基础知识之上 ...

  7. Python教程百度网盘哪里有?

    Python为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容,被形象地称作"内置电池(batteries included)".带你快速入门的Py ...

  8. 2017最新的Python教程分享

    Python在数据科学盛行的今天,其易于阅读和编写的特点,越来越受编程者追捧.在IEEE发布的2017年编程语言排行榜中,Python也高居首位.如果你有学Python的计划,快来看看小编分享的Pyt ...

  9. 笔记|《简明Python教程》:编程小白的第一本python入门书

    <简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...

随机推荐

  1. Cypress系列(5)- 自定义 Cypress

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 Cypress 不仅支持用户自定义 ...

  2. Java-语言基础梳理

    1.java命名规范 包名:全小写 类名,接口名:首字母大写 变量名,方法名:第一个单词皆字母小写,后面单词首字母大写 常量名:所有字母都大写 2.变量 2.1 注意事项 作用域:一对{}之间有用 必 ...

  3. Java实现 LeetCode 284 顶端迭代器

    284. 顶端迭代器 给定一个迭代器类的接口,接口包含两个方法: next() 和 hasNext().设计并实现一个支持 peek() 操作的顶端迭代器 – 其本质就是把原本应由 next() 方法 ...

  4. Java实现 LeetCode 171 Excel表列序号

    171. Excel表列序号 给定一个Excel表格中的列名称,返回其相应的列序号. 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> ...

  5. Java实现 LeetCode 16 最接近的三数之和

    16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...

  6. java实现矩形区域的交和并

    在编写图形界面软件的时候,经常会遇到处理两个矩形的关系. 如图[1.jpg]所示,矩形的交集指的是:两个矩形重叠区的矩形,当然也可能不存在(参看[2.jpg]).两个矩形的并集指的是:能包含这两个矩形 ...

  7. Java 实现 蓝桥杯 历届试题 分糖果

    问题描述 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子. 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数 ...

  8. Java实现 串中取3个不重复字母

    从标准输入读入一个由字母构成的串(不大于30个字符). 从该串中取出3个不重复的字符,求所有的取法. 取出的字符,要求按字母升序排列成一个串. 不同的取法输出顺序可以不考虑. 例如: 输入: abc ...

  9. BFART算法

    参考:https://zhuanlan.zhihu.com/p/31498036 https://www.jianshu.com/p/83bb10ad1d32

  10. Android拍照相关知识总结

    1.调用系统的照相机程序 Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(inte ...