[Day 30] 从零开始学Python - 结语:少年啊,要忍耐,撑过熬过总算苦尽甘来

注:本文同步刊载在Medium,若习惯Medium的话亦可去那边看呦!

终於是最後一天了!!!
又来到了轻松聊的时间。
坦白说这次的30天过得并不轻松,
除了一些外务需要处理外,一开始也是从没有存稿的状态下开始的。
每天被进度追着打的感觉实在是很累XD!

写这一系列文章的初衷,
最初是因为看到自己的学生们,
因为从LeetCode学演算法系列文章找到了我,
但很多却是想要转职但对Python不熟的同学。
不,应该是说对於整个程序语言该从哪里开始都不清楚。
通常这样的状况下,我们会从各种巨X电脑、O成电脑,
或各种线上学院开始先学基本的程序语言。
问题来了:
就算是同一家电脑甚至是资策会,
一来学费挺贵的,二来师资有所落差,风格也各有不一,
没有人能保证自己一开始遇到的老师就是最适合自己的。

所以,建构一个基础的系列文章教学,
内容不要像X者归来那样子又厚又重,
并且范例不要千篇一律让读者容易失去兴趣,
是一件非常重要的事情。

如果拿这一系列文章和书籍相比,
读者可能会发现,有很多东西是被笔者略过的:
例如我们没有讲到匿名函式(lambda function)
也没有讲到namedtuple
没有讲到pdf和xls的档案处理,以及另一个数据分析的好用工具pandas
没有讲到OpenCV(可能比PIL更容易被用到,而且支援跨平台);
没有讲到网路连线相关的模组
也没有讲到多执行绪/多处理程序(multi-threading/multi-processing)

并不是它们不重要,而是笔者认为,
对於初学者而言,重点不是每一个都听过摸过,
而是能先使用既有基本的东西,并且从它们当中,
组合出自己想要的程序。

在这个过程中,有遇到任何问题,
就去查资料、文件档,或者向人请教提问,
将自己需要的知识不断补足完善,这才是笔者希望看到的。

让我们简单回顾一下这三十天学了什麽,
以及再深入的话,可以再往哪个方向了解:
1. Python的安装,除了本文提到的方式外,
另外还有Anaconda/pipenv等,
对於需要架构乾净的多个执行环境而言蛮重要的,
同时也可以建构jupyter notebook,
使用iPython的以方格为单位的执行。

2. 变数、型态、运算子的部分,
其实还有很多跟位元运算有关的处理以及技巧,
如果在写题目遇到跟bit相关的东西的时候会很常用;
字串也带有许多好用的方法可以运用,
同时还有使用正规表达式(regular expression)来搜寻字串的方法,
这个比较易学难精,有兴趣可以再深入了解。

3. 进阶的资料型态,记得我们的炸虾吗XD?
字典、串列、集合、元组的应用相当广泛,
有一些东西和方法可能没有详列上去,
读者可以遇到状况时先查查有没有可以用的对应内建方法呦!

4. 程序结构及语法,包含了if, for, while等,
应该算是最基础的东西了,这当中应该唯有搭配Except的部分比较特殊,
再请多加留意。

5. 例外处理和递回,有关递回的处理速度和记忆体问题,
文章有更新一位在「程序人杂志」社团的读者提供的深入探讨,
读者可以再行参阅。

6. 模组与套件,关於其读取的部分,其实有一些更细部的规则,
若想要建构比较严谨的大型程序的话,请再搜寻相关的文章。

7. 标准程序库,其实还有很多很多很多XD,
建议读者可以参照着Python的官方文件,
可以针对需求看有没有自己需要的东西。

8. 物件与类别,
是所有物件导向程序语言(OOP, Object-Oriented Programming)
当中很重要的一环,当中的概念请务必好好理解清楚,
在使用时才不容易混淆。

9. 档案读写,
除了一般文字档、CSV、JSON外,
XML/YAML也是常用的格式;除此之外,了解HTML的格式,
将有利於有志朝网页爬虫相关技巧学习的读者。
若以爬虫而言,beautifulsoup, scrapy, request, selenium可能是重要的关键字。

10. 日期时间、图形处理、GUI介面等,
都算是Python内建好用的模组,尤其对於Tkinter而言,
也有很多其他的模组可以取代或者让它变更好用。

11. 其他常用的资料结构相关模组,可以搭配着演算法学习,
效果会更好,最好搭配笔者的从LeetCode学演算法系列XD

12. 科学运算、绘图及深度学习,
是走向AI/资料科学的敲门砖,後续还有更多更深入的东西可以玩的,
有兴趣的读者若想要走AI相关领域,
建议可以从吴恩达/李宏毅/林轩田等大师的机器学习课程开始,
如果想要先了解一点基础简单的深度学习框架,
阅读莫烦Python的系列教学也不错!

13. 其他没有提到的如Python+Flask(前端),
Python+SQLite/MongoDB/Redis(後端)等,

如果读者扎扎实实地经过这三十天的练习,
应该会拥有进一步透过网路文章资源来学习这些的能力,
就再请大家针对需求去搜寻罗!

除此以外,每天的副标题
其实都跟当天要讲的内容有关联性,
并不单纯只是梗或者是歌词而已,
若读者可以有效地将文章内容和副标题连结上
相信能更理解文章所要表达的内容。

最後,不免帮自己工商一下:
笔者目前除了从LeetCode学演算法的线上课程外,
也和几位朋友成立一个团队,名为Chill Cat(去忧猫)
当前正在钻研AI辅助心理谘商的部分;
同时我们也有经营有关AI智能化交易指标的研究,
(可以是MetaTrader,也可以是别的XD)
以及协助企业评估/导入AI或自动化的可能。
欢迎有兴趣合作或委托开发的谘商师、心理师,
以及公司行号和我联络。

来信请寄:[email protected]

平常的时候,若对於LeetCode解题感兴趣,
还是可以在FB的Python Taiwan社团
我的Medium上看到我!
也可以来追踪我的粉专:跟着Desolve学程序
里面会不定时分享一些程序相关的文章或资讯呦!

感谢大家的收看,那我们明年......
等一下,先不要,先不要XD
我再考虑看看啦XDDD!
就这样,掰掰~


<<:  终、球不落地,永不放弃

>>:  [Day 30] SQLite 下

#7 - The Node Event Emitter

延续昨天的 module 课题。其实 Module 除了可以自订之外(像我们昨天的 stuff ),...

EP16 - 用生活化的例子解释容器,是否搞错了些什麽

容器化是应用程序级别的虚拟化, 允许单个内核上有多个独立的用户空间实体, 而这些实体称为容器。 20...

[第24天]理财达人Mx. Ada-RSI指标

前言 本文说明RSI指标。 RSI指标 RSI(Relative Strength Index):相...

再谈中断与异常

想知道我们在使用滑鼠操作电脑时作业系统在背後做了什麽事情吗? 又或者为什麽我们在写 C 语言时,老师...