前言
随着python学习的深入,接触的东西越来越多,要学习的东西也越来越多。但精力有限,必须有所取舍。因此必须追溯过去、立足现在、畅想未来,给自己一个指引。
追溯过去
学python前
上学时学的是vb,也仅仅是考过了计算机二级的水平。那时电脑还没普及,也没有方向,并没有继续深入。
工作后接触了vfp,纯凭一点兴趣爱好,做了几个软件,算是能初级应用的水平。
随着vfp被微软收购、不再更新,想换个更流行的编程语言。我选择了C#,买了一本书准备学习。但由于在面向对象编程上基础很差,学的很吃力,慢慢就不了了之了。
就这样过了很多年,我还只能用vfp编点程序。幸好我还能在中年之时思想有所转变,我又觉得该好好学一门语言了,既为兴趣也为前途。
为什么选python
我以前学编程语言,vfp也好,c#也罢,都是局限在这个语言的内部,不会去关心其他。就拿vfp说吧,只在自带的编程软件里耕耘,顶多加一些相关qq群、遇到问题百度一下而已,说是闭门造车也不为过。
到底是因为想法变了而选择python,还是选了python导致想法变了,我无法回答,也许兼而有之。
总之,我对于学习的想法源源不绝。不再拘泥于买本书自学,而是多种多样。既会在线上找免费教程,也会跟着收费教程学,书也买了几本。 当然也遇到坑,不过这都是经验的来源。
阶段一:打基础
这个阶段的坑是买了两本书,是在网店随意搜了。我还自以为自己选的好,还纳闷怎么网上没人提到。这两本书都是先讲点基础知识,但是就那点篇幅对于新手来说看不懂,老手又无需看;后面是讲编写一个项目的过程,但是由于多种原因(比如有些库过时了)导致没法跟着做。
所以我总结了一些经验:
- 网上各种资源大把,书不是必需品;
- 完全可以买二手书;
- 网上看别人对目标书的评价。
阶段二:图形化界面还是web界面的选择
我以前做的项目都是在windows上运行的,客户端程序直接连接服务器上的数据库。这种模式非常简单,但我最不喜欢的是客户端升级比较麻烦。
所以学python后我选择B/S模式。我的如意算盘是:只要有浏览器的地方都可以用,可以实现跨平台的效果;所有代码都在服务器上,升级是非常简单。在比较django和flask后我选择了flask,因为他是轻量级的,上手很容易。
然而我以为爬出一个坑,其实是掉入更大的坑里。虽然我不需要去学wxPython等界面模块,但是逃不了学点JavaScript;虽然flask是轻量级,但是要增加啥功能都要自己去添加,而且要注意版本兼容等问题。真是一点都不轻松!
阶段三:物联网
本来我给自己定的方向是用python写写B/S模式的项目而已。然而去年十月份我浏览网页发现有个micropython语言,可以在树莓派pico上运行。
我发现micropython和python很相似,我无需重学一门语言;我发现我买过pico,以前买树莓派相关组件时发现很便宜,顺便买的;我又发现我前几年发展电子爱好时买过一些电子元件和模块,它们都在睡大觉呢。既然万事俱备,现在东风来了,为啥不行动?
于是一个新世界被打开了。买各种模块并测试,再买国产pico、picoW,还有esp01s。那个时候真是忙得不亦乐乎。
很快我发现测试模块没啥意思,该做项目了。于是第一个物联网项目迷你气象站应运而生。
立足现在
现在我以项目为核心,项目需要什么模块就买什么模块,项目需要学什么就学什么,还要将过程记录下来。
畅想未来
下图是我从网上看到的,是python的学习方向。可以看到涉及面还是挺广的,但没一样是容易的,所以只能选择一两样去深入,不可能面面俱到。
目前我仅接触到Web和Analytics,其他在以后需要时再拓展。
我对未来的规划如下:
- web开发上,以flask为主;
- 图形化界面的小程序还是用得到的,比如上位机程序。这个我已经找好几个简易的图形化界面模块,比如 guizero、pysimplegui,学起来应该不难;
- 不再局限于windows平台,先通过树莓派学习linux系统;
- 跟着《无线电》杂志学习,向专业靠近。