又是一年1024,祝所有程序员节日快乐,健康开心,祝CSDN越来越好。转眼,已经在CSDN分享了十多年博客,感谢大家的陪伴和祝福,在这里我与许多人成为了朋友,感恩。非常遗憾,这次没能去长沙岳麓书院见很多大佬和博友,下次有机会一定去。我也会继续加油,分享更好更系统的文章,帮助更多初学者。总之,感恩大家能一起在CSDN相遇,相见,相知,我们相约在这里分享一辈子,感恩同行!
十年,转瞬即逝,我从青葱少年成长为了中年大叔。或许,对其他人来说写博客很平淡,但对我来说,它可能是我这十年最重要的决定和坚守之一。
十年,不负遇见,不负自己,不负时光。感恩所有人的陪伴,因为有你们,人生路上我不孤单。幸好,这十年来,我可以摸着自己的良心说,每一篇博客我都在很认真的撰写,雕琢,都在用万字长文书写下我的满腔热血。
下图展示了这十年我写的博客涉及的各个方向,3600多天,这里的每篇文章,每段文字,都是我的心血和汗水,当然也离不开CSDN和你们的支持。人生又有多少个十年呢?所以能做的就是感恩,能做的就是分享更高质量的文章,帮助更多CSDN读者。
这十年,总有读者问我怎么学习Python?学习Python有什么用?跨专业的可以学习吗?有什么方向能学?我是2013年开始接触Python的,主要从事NLP、Web数据挖掘和人工智能研究,今天简单写一封给Python初学者的学习路线和总结,希望能帮助更多初学者,也欢迎大家补充,大佬勿喷~
比赛测试网站:http://lovexiaoluo.com
我们在CSDN的故事都还在续写,你们的陪伴依然继续,青春啊青春,你慢点走,带着代码走!
在学习Python之前,你不要担心自己没基础或“脑子笨”,我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很多事情。在这个喧嚣的时代,很多技术或概念会不断兴起,我希望你能沉下心来去学习,不要急于求成,一步一个脚印。当你把某个技术学好、学精后,还是能做一些事情的,甚至能找到喜欢的工作或完成实践项目。
程序语言没有最好,只有最适合。作为一名初学者,我非常推荐你学习Python,为啥?一方面是因为它具有语法清晰、代码友好、易读性高的特点,同时Python拥有强大的第三方库函数,包括网络爬取、数据分析、可视化、人工智能等;另一方面Python既是一门解释性编程语言,又是面向对象的语言,其操作性和可移植性高,被广泛应用于数据挖掘、信息采集、人工智能、网络安全、自动化测试等领域。甚至,很多小学生、高中课程和计算机二级也都陆续增加了Python。
Python最大的优势在于效率。有时候程序员或科研工作者的效率比机器的效率更重要,对于很多复杂性的功能,使用更加清晰的语言能给程序减少更多的负担,从而大大增强程序的质量,其易学性和扩展性也能让新手很快上手。虽然Python底层运行速度要比C语言慢,但Python清晰的结构能解放程序员的时间,同时很方便的和其他编程语言代码(如C语言)融合在一起。
所以,从来没有一种编程语言可以像Python这样同时扎根在这么多领域,并且Python支持跨平台操作,也支持开源,拥有强大的第三方库。尤其随着人工智能的持续火热,Python在IEEE近几年发布的最热门语言中多次排名第一,越来越多的程序爱好者、科技关注者也都开始学习Python。
在Python学习过程中,不要觉得你的底子薄或者之前没接触过,就想放弃,很多人还没起跑就选择退赛。我想,只要沉下心来,肯下功夫,就能学好。在学习过程中,一定要去写代码、写代码、写代码,只写真正动手去实践,才能慢慢积累。
同时,编写代码过程中出错也是家常便饭,我现在写Python代码每天不出点错,心里都躁得慌,所以遇到错误,学会百度、谷歌去解决真的非常重要,它也是你学习能力的一种提升,实在找不到错误,可以去开源论坛、社区、学习群里提问,也欢迎来公众号或CSDN找我。
接下来我给出前辈许向武老师推荐的Python程序员成长路线图,包括:基础语法–>语感训练–>课题练习–>分方向继续学习–>中级程序员–>拓展深度和广度–>高级程序员。
这里,给出我学习Python的一些历程和技巧。我最早接触Python是2013年,主要是因为研究生方向是自然语言处理,需要通过Python抓取数据并进行分析,所以就选择了它。那些年Python的资料很少,也没这么火热,但也一直坚持着,具体建议如下:
学习路上没有捷径,只有坚持,但你却能通过Python不断提升你的学习兴趣,做一些喜欢的事,喜欢上这门语言。最后给出当年大三学习Python时激励自己的话:
自认为我不是一个很聪明的人,但肯努力,肯下功夫。Python对新手非常友好,各种扩展包可以供我们实现想要的工作,因此一定不要胆怯,干就对了,从零开始一点点实战,你肯定会成长的。如果你还是一位初学者,就放手去拼搏,看看你能学到什么程度;如果你还是一名学生,请牢记“真正的大神都是寒暑假练成的”,珍惜每一个假期,多写代码完成想要的某个作品。
曾记否,我本科和高中好友在乘火车上回家的路上说到:
因此,在学习和编程过程中,我们也会遇到各种各样的困难,而且很可能这种困难对你来说非常的简单,但是别人确实百思不得其解!这种感觉我也经常遇到,怎么都不会的别人一点就通。所以当别人不会的问你时,你也应该去帮助,这也是对你的提高。
蓦然回首,自己读了十多年的书,作为学生,我又在大学学到了什么呢?你也可以思考下你学到了什么,以及接下来你需要去学什么?我的收获或许是:
如果你也是一个大学生,你也应该去享受一下自己独立完成一个自己感兴趣东西的过程。在这期间,你需要自己查阅资料、调动自己的积极性,尽自己的最大努力去完成它,最后这种感觉真的很享受。短暂的激情是不值钱的,只有长久的激情才是值钱的,不论未来如何变化,我希望自己能始终坚持自己的为人做事原则,怀抱一颗感恩的心坚持着去实现心中的梦想,去学会享受生活!
最后用我在CSDN看到云南的一位读者专程注册CSDN的评论,我备受鼓舞,也希望分享与更多的人,一起去拼搏,一起去战斗,感恩同行,感谢CSDN!
“我不在意别人的眼光,别人的评价,我只想学到更多的东西,农村孩子下雨没伞只有拼命奔跑才有未来,如果可能,我也想成为一名高校老师,呆在云南”。啊,真喜欢这种素未谋面的云鼓励,面对这些伙伴,我有什么理由不继续分享,不继续奋斗呢?
接下来分享我和CSDN许老师在CSDN完成的《Python成长路线图》,许老师是非常谦逊又有才华的前辈,值得我们每个人学习。很愉快的一次合作,同时感谢CSDN和周老师,也欢迎大家继续补充和指正。
Python初阶主要包括预备知识、基础语法、进阶语法和面向对象编程。
Python初级学习路线完整如下图所示:
Python中阶主要从基本技能、Web应用开发、网络爬虫和桌面应用开发四个方向介绍。
Tkinter
– Tkinter简介
– 安装配置
– Tkinter模块
– Tkinter控件
– 标准属性
– 几何管理
PyQT
– PyQT简介
– 安装配置
– PyQT模块
– PyQT布局管理
– PyQT菜单和工具栏
– 事件和信号
– PyQT对话框
– PyQT控件
– PyQT拖拽与绘图
WxPython
– WxPython简介
– 安装配置
– WxPython常用类
– WxPython布局管理
– WxPython事件处理
– WxPython对话框
– WxPython组件
– WxPython拖拽处理
– WxPython绘图API
高阶主要包括科学计算基础软件包NumPy、结构化数据分析工具Pandas、绘图库Matplotlib、科学计算工具包SciPy、机器学习工具包Scikit-learn、深度学习、计算机视觉和自然语言处理。
Pandas概览
– Panda的特点
– 安装和使用
数据结构
– 索引数组Index
– 带标签的一维同构数组Series
– 带标签的二维异构表格DataFrame
基本操作
– 数据预览
– 数据选择
– 改变数据结构
– 改变数据类型
– 广播与矢量化运算
– 行列级广播函数
高级应用
– 分组
– 聚合
– 层次化索引
– 表级广播函数
– 日期时间索引对象
– 透视表
– 数据可视化
– 数据I/O
安装配置
Matplotlib快速入门
– 画布
– 子图与子图布局
– 坐标轴与刻度的名称
– 图例和文本标注
– 显示和保存
图形绘制
– 曲线图
– 散点图
– 直方图
– 饼图
– 箱线图
– 绘制图像
– 极坐标绘图
风格和样式
– 画布设置
– 子图布局
– 颜色
– 线条和点的样式
– 坐标轴
– 刻度
– 文本
– 图例
– 网格设置
Matplotlib扩展
– 使用BaseMap绘制地图
–3D绘图工具包
SciPy概览
安装配置
数据插值
– 一维插值
– 二维插值
– 离散数据插值到网格
曲线拟合
– 最小二乘法拟合
– 使用curve_fit()函数拟合
– 多项式拟合函数
傅里叶变换
– 时域到频域的转换
– 一维傅里叶变换的应用
– 二维傅里叶变换的应用
图像处理
– 图像卷积
– 边缘检测
– 侵蚀和膨胀
– 图像测量
积分
– 对给定函数的定积分
– 对给定样本的定积分
– 二重定积分
非线性方程求解
– 非线性方程
– 非线性方程组
线性代数
– 计算矩阵的行列式
– 求解逆矩阵
– 计算特征向量和特征值
– 矩阵的奇异值分解
– 求解线性方程组
聚类
– k-means聚类
– 层次聚类
空间计算
– 空间旋转的表述
– 三维旋转
Scikit-learn概览
安装配置
数据集
– Scikit-learn自带的数据集
– 样本生成器
– 加载其他数据集
数据预处理(Preprocessing)
– 标准化
– 归一化
– 正则化
– 离散化
– 特征编码
– 缺失值补全
分类(Classification)
– K-近邻分类
– 贝叶斯分类
– 决策树分类
– 支持向量机分类
– 随机森林分类
– 集成学习Bagging/Boosting
– 神经网络模型
回归(Regression)
– 线性回归
– Lasso回归
– 支持向量机回归
– K-近邻回归
– 决策树回归
– 随机森林回归
– 逻辑回归
聚类(Clustering)
– K-Means聚类
– 均值漂移聚类
– 基于密度的空间聚类
– 谱聚类
– 层次聚类
成分分解与降维
– 主成分分析
– 因子分析
– 截断奇异值分解
– 独立成分分析ICA(Independent Component Analysis)
模型评估与参数调优
– 估计器得分
– 交叉验证
– 评价指标
– 参数调优
– 模型持久化
神经网络基础知识
– 人工智能发展历史
– 神经元
– BP神经网络
– 梯度下降
– 激励函数
– 过拟合、欠拟合
– 优化器Optimizer
– 常用开发工具
环境配置
– Windows搭建深度学习环境
– Linux搭建深度学习环境
– MacOS搭建深度学习环境
– CPU/GPU环境搭建
Theano
– Theano基础知识
– 定义Layer
– CNN
– RNN(GRU/LSTM)
– Autoencoder
– 神经网络参数保存
– 神经网络性能评价
TensorFlow
– TensorFlow基础知识
– Tensor
– Session
– Variable
– Placeholder
– Dropout
– Tensorboard
– CNN
– RNN(GRU/LSTM)
– Autoencoder
– GNN
– 神经网络参数保存
– 神经网络性能评价
Keras
– Keras基础语法
– 兼容Backend
– 函数模型和序列模型
– 定义Layer
– CNN
– RNN(GRU/LSTM)
– Autoencoder
– GNN
– 迁移学习
– BiLSTM-Attention
– 生成对抗网络GAN
– 神经网络参数保存
– 神经网络性能评价
PyTorch
– PyTorch基础知识
Tensor
Variable
定义Layer
可视化
CNN(TextCNN)
RNN(GRU/LSTM)
Autoencoder
GNN/GCN
迁移学习
生成对抗网络GAN
神经网络参数保存
神经网络性能评价
强化学习
– 强化学习概念
– Q-Learning
– Sarsa
– DQN(Deep Q Network)
– Policy Gradients
– Actor Critic
数字图像处理基础
– 数字图像处理
– 图像三要素
– 像素及图像处理分类
– 图像信号数字换处理
OpenCV基础
– 安装配置
– OpenCV基础语法
– 几何图形绘制
图像处理入门
– 读取显示图像
– 读取修改像素
– 创建复制保存图像
– 获取图像属性及通道
图像算数与逻辑运算
– 图像加法运算
– 图像减法运算
– 图像与运算
– 图像或运算
– 图像异或运算
– 图像非运算
图像几何变换
– 平移变换
– 缩放变换
– 旋转变换
– 镜像变换
– 仿射变换
– 透视变换
图像量化与采样
– 图像量化处理
– 图像采样处理
– 图像金字塔
– 局部马赛克处理
直方图统计
– 直方图概述
– 直方图绘制
– 掩膜直方图
– H-S直方图
– 直方图对比
图像增强
– 图像增强
– 直方图均衡化
– 局部直方图均衡化
– 自动色彩均衡化
– 图像去雾
图像平滑
– 图像平滑概述
– 均值滤波
– 方框滤波
– 高斯滤波
– 中值滤波
– 双边滤波
图像锐化及边缘检测
– 一阶微分算法、二阶微分算子
– Roberts算子
– Prewitt算子
– Sobel算子
– Laplacian算子
– Scharr算子
– Canny算子
– LOG算子
图像形态学处理
– 图像腐蚀
– 图像膨胀
– 图像开运算
– 图像闭运算
– 图像梯度运算
– 图像顶帽运算
– 图像底帽运算
图像分割
– 基于阈值的图像分割
– 基于边缘检测的图像分割
– 基于纹理背景的图像分割
– 基于K-Means聚类的区域分割
– 基于均值漂移算法的图像分割
– 基于分水岭算法的图像分割
– 图像漫水填充分割
– 文字区域分割及定位
傅里叶变换
– 傅里叶变换
– 傅里叶逆变换
– 高通滤波器
– 低通滤波器
霍夫变换
– 霍夫变换
– 霍夫线变换
– 霍夫圆变换
图像特效处理
– 图像毛玻璃特效
– 图像浮雕特效
– 图像素描特效
– 图像怀旧特效
– 图像流年特效
– 图像滤镜特效
– 图像水波特效
– 图像卡通特效
图像分类
– 图像分类概述
– 基于机器学习的图像分类
– 基于深度学习的图像分类
– LeNet
– VGG
– AlexNet
– ResNet
人脸识别
目标检测
– 目标检测概述
– RCNN
– Fast-RCNN
– SPPNet
– Mask-RCNN
– SSD
– YOLO系列算法
自然语言处理概览
– 自然语言处理的基本概念
– 自然语言处理的面临困难
– 自然语言处理的研究现状
预备知识
– 概率论基础知识
– 最大似然估计
– 隐马尔可夫模型
– 贝叶斯网络
– 条件概率分布
– 信息论基础知识
– 熵
– 困惑度
– 互信息
– 神经网络基础知识
– CRF
– BiLSTM+Attention
– 迁移学习
– 常用语料库和知识库
jieba
– jieba概述
– jieba分词
– jieba添加自定义词典
– jieba词性标注
– jieba关键词抽取
nltk
– nltk概述
– nltk字符串处理
– nltk词性标注
– nltk词干提取
– nltk命名实体识别
– nltk分块处理
– nltk文本分类
– nltk情感分析
Genism
– TF-IDF
– similarities
– LSA
– LDA
– Word2vec
词法分析
– 分词(英文分词/中文分词)
– 词干提取
– 词形还原
– 词性标注
– 命名实体识别
句法分析
– 短语结构分析
– 依存句法分析
– 命名实体消歧
语义分析
– 指代消解
– 语义角色标注
– 语义关系抽取
– 语义依存分析
– 抽象语义表示
词嵌入
– Word2Vec
– GloVe
– fastText
– ELMo
– BERT
– XLNet
文本挖掘
– 文本相似度计算
– 文本聚类
– 文本分类
– 文本摘要
情感分析
– 基于情感词典的情感分析
– 基于深度学习的情感分析
主题模型
– LSA
– LDA
机器翻译
– IBM统计翻译模型
– 短语抽取
– 语言模型
– GNMT
– Seq2Seq
– Transformer
语言模型
– – n-gram
– Pitman-Yor过程模型
– AWD-LSTM
– Transformer-XL
– Gated CNN
智能问答
– 基于知识的问答
– 基于检索的问答
– 阅读理解
– 完形填空
智能对话
– 对话行为分类
– 对话状态跟踪
– 检索式聊天机器人
– 生成式聊天机器人
– 意图识别
– 槽填充(Slot Filling)
语音识别
– 傅里叶变换
– 声学模型
– 隐马尔可夫模型
– CNN
– LSTM-HMM
– 神经网络语言模型
– MFCC
知识图谱
– 知识图谱构建
– 知识计算
– 知识存储
– 知识服务与应用
写到这里,这篇文章就介绍结束了,祝大家程序员节日快乐,也希望文章对Python初学者有所帮助,欢迎大家从我给出的方向中选择自己感兴趣的点去做研究。重要的是多实践,多编程,加油!
最后用我的博客签名结束这篇文章,“无知·乐观·低调·谦逊·生活”,时刻告诉自己:无知的我需要乐观的去求知,低调的底色是谦逊,而谦逊是源于对生活的通透,我们不止有工作、学习、编程,还要学会享受生活,人生何必走得这么匆忙,做几件开心的事,写几篇系统的文,携一位心爱的人,就很好!感恩CSDN,感谢你我的坚守和分享,这又何止是十年。
小珞珞要过生日了,一直遗憾没能长时间陪伴在他们身边,而且也没买什么礼物,就给他画了一本手札,记录娜璋珞一家这一年的点点滴滴,希望大一点小珞能看到他搞笑的模样,愿你快心健康成长,无忧无虑,哈哈!这几个月还挺忙的,就写代码跑实验时抓紧画画,熟悉的多操,原谅爸爸鬼畜的画风,爱你们呦,也谢谢大家对小珞珞的喜爱,辛苦妈妈了。一想到小珞治愈的笑容,我的动力就更足了,继续加油。
(By: 2021-10-24 晚上10点 http://blog.csdn.net/eastmount/ )