发表时间:2022-03-25来源:网络
关键词:大龄、在职、文科生、自学编程
本人87年生,高中文科,本科法律,工作是市场品牌营销,典型文科生。
我是从2018年3月份开始利用业余时间个人自学Python,在掌握了Python基础语法之后,接着自学了Python的Flask框架,顺带着对前端开发和Linux有了肤浅的认识。目前在学Numpy、Pandas等数据分析模块,以及折腾Manjaro Linux。
项目经历方面,曾跟着教程写了个人博客并部署上线。此后又用Flask框架(基于Python的一个微型web框架)独立规划并实现了LEAF(意为“轻简灵的项目文档管理系统”),它是一个为跨团队协作的项目文档管理系统。


最近施工中的项目是DeerPQ,一个基于事件驱动的数字货币量化回测程序。

这篇文章我系统总结一下自学的经验教训,希望给其他人一些借鉴。
一、为什么要自学编程?
先回答一个前置问题,什么人可以自学编程?或者说,具备哪些知识和能力,可以自学编程
答:最低要求:完成了国家9年制义务教育(俗话说,高中毕业),会使用电脑上网、搜索、安装卸载软件等操作,看得懂if for name return 等高中英文单词的人,都可以自学编程。
据我观察,自学编程无非是基于三种目的:
1、提升工作效率的需要
这种情况多见于运营等跟开发距离较近的岗位,希望通过自学编程,将大量的重复劳动自动化,或者与研发小哥哥小姐姐有更顺畅的沟通。
如果你的本职工作涉及到对word、excel等文档数据的大量重复处理,那么学习python可以让你有能力撰写自动化程序,享受让代码替你干活的妙处。
2、转行做程序员的需要
这种情况最多见,就是对自己的现有职业不满意,希望通过自学编程,切换职业赛道。
在我所交谈过的自学者当中,有本职工作做销售的、做运营、做行政甚至财务的各行各业的人,自认为自己做的事情“没前途”,想要通过自学实现职业的升级。
原则上我是鼓励这种进取心的,但也要提醒大家,程序员这个职业不像很多人所想象的高收入,请务必客观了解职业利弊,对薪酬待遇要有合理预期,不要指望入行挣大钱,在程序员几乎饱和的今天,这是非常不现实的臆想。
“程序员”其实是个非常泛的称呼,在一个研发团队中,程序员有开发(狭义上的程序员)、测试、运维等角色的具体分工,他们的技能都大相径庭。
即便是开发,也可以按照所用的主力编程语言或者开发方向分出许多类来,常见的有前端开发和后端开发的区别,有iOS开发、安卓开发、web开发、桌面应用开发的区别。有的类型的开发在市场上已经属于“过剩”型,你最好不要再去挤这座独木桥。
在你下定决心自学之后,一定要提前了解这些不同类型的“开发”所需要具备的职业技能以及职业前景,多跟资深程序员聊聊,了解一手信息。
你可以采用“倒推法”,先确定你自己想成为的角色,然后了解市场上对这个角色岗位的能力需求有哪些,据此倒推自己的学习路径,这样才能少走弯路。求职是一个系统工程,不会只因为你学会了某个编程语言就自然而然的找到工作,自己体会吧。
3、个人兴趣爱好
这一类自学者最佛系,顺着自己的性子来就行。我就是其中一员。纯粹因为觉得编程好玩有趣而学习,或者为了实现自己心中的某些想法。
二、为什么选择Python
在明确了自己为什么要自学编程之后,一个现实的问题就是,我要选择哪门编程语言开始学习?
我直接给答案,不接受任何反驳。
1、如果你明确了未来一定做前端开发,那么从html, css和javascript开始学,重点是javascript;
2、如果你明确了未来一定做iOS开发,那么从C语言开始学;明确做安卓应用开发,则从JAVA开始学;
3、除此之外的任何情况,都从python开始学。
首先要明确一点:这个世界上没有所谓最好的编程语言,更不存在全能的编程语言,Python不是,PHP也不是。
编程语言之于程序员,就像各种工具之于木工,他们各有优劣,一个合格的全职程序员通常都会掌握2-3门编程语言,公司也会根据项目需要来选择主力语言。
Python最大的好处是它上手太人性化了,对初学者极友好,第三方模块丰富好用,中文学习资料众多,能让你快速进入到代码的世界,对编程这个事情建立起完整的概念和认知,同时获得坚持下去的成就感。
你通过它入门之后再去看其他语言,不管是java、C++还是Go、SWIFT,都能够更好地融会贯通,举一反三。
而至于它的GIL锁、运行速度慢、代码可维护性低等等问题,你放心吧,这些是职业程序员在中大型项目中该操心的问题。你是一个自学者,不是给大型商业应用写后端的程序员,这些问题跟你没有半毛钱关系。
Python有2和3两个大版本,切记学python3,至于是V3.5还是3.6还是3.7版本,电脑能装3.7就3.7,不能装那就3.6, 3.5也无所谓,无需纠结,对你本阶段的学习没有任何实质性影响。
三、是否需要报专门的培训机构课程
注意,标题中说的培训机构课程,不是指网易云课堂、慕课网或者微信公众号上的短期课程,(这种课程收费低、时间短、个人自行判断即可),而是那种以求职就业为导向的培训机构课程,收费高、时间长,例如各种的Python全栈班、Web开发班、高薪运维班等等。
从我认识的近300个自学者来看,报过这种班的人不超过3个,而且反馈很一般,到现在也没有实现就业目标。
所以我劝大家谨慎报班,不要轻信培训机构的宣传用语,一定要找它的真实学员了解培训质量和效果后再决定。
可以肯定的是,对于入门而言,这种班没有必要报。
四、自学Python的流程和经验
自学可以分成三个大阶段:
阶段1:在自己的电脑上正确安装Python和IDE。
阶段2:自学
阶段3:放弃,或者继续自学。
先说阶段1:
过来人先别笑,真的有很多新人卡在安装python这一环节,甚至很多人在这里就被劝退了。
要开始自学python,你只需要一台能上网的电脑,台式机笔记本均可,windows或macos操作系统都可以。对电脑配置没有任何要求,极端点来说,能打开浏览器看网页,能运行office word就满足配置要求了。
安装python有2个常见做法,2选1即可:
1、百度或知乎搜索 操作系统版本号+ 安装python3,挑日期尽可能新的文章,看懂怎么安装,然后依葫芦画瓢。
2、安装Anaconda3这个软件(windows和mac都有),它自带了Python虚拟环境和spyder编辑器。安装完之后你同样需要知乎或百度搜索了解它的用法。
IDE的全称是集成开发环境,别被这个术语吓到了。打个比方,你要写篇文章,是不是要打开office word或者wps或者记事本才能进行写作啊?这些你用来写文章的程序,就等同于写代码所用的IDE,你写的文章就等同于代码。所以你就明白了IDE就是个用来提升写代码效率的工具。
各个IDE之间其实不存在功能上的实质性差异,选择你认为顺手好用的就行。
这里我个人统一推荐Pycharm 社区版,完全免费,百度搜官网直接下载后安装即可使用,不过没有中文版。需要中文版的自己想办法,点到为止。Ananconda自带的spyder和jupiter也可以用。
vscode也很好,但是配置略复杂,等你有一定代码代码基础了再折腾比较好。
安装好python和IDE,就可以进入IDE软件,写下你的第一行代码并执行它:
print("Hello World")
就是这么简单。
阶段2:打基础
上了一天班回到家里,看书很容易走神犯困,相比较而言看视频要好得多。入门阶段我建议将视频作为主要学习资料,书本作为辅助。
据我自己看过的视频课程而言,我推荐两个免费的:
一个是小甲鱼的python免费入门视频课程,你在B站或者百度搜索“小甲鱼 Python”即可看到,讲课声音gay gay的就对了。课程是免费的,讲解风趣幽默,特别适合什么也不懂的小白。

此外,B站上还有一个全栈课程,是我看过且认为讲得比较细的视频课程,也是免费的。我建议你在看完了小甲鱼的课程后再看这套课程。课程内容很多,你并不一定要按顺序观看,也不用全部学完,可以有选择性的看,在小甲鱼讲的知识点上形成补充。

有时候老师提前引入了一些进阶知识点,你会听懵,这时候完全不用灰心,跳过去继续往后看即可。讲解Linux的部分现阶段完全不用看。
以上只是我自己看过的课程。你也可以自行搜索、寻找其他课程,试看之后认为老师讲得不错,你能听懂、喜欢ta的风格,就跟着学习即可。
现在python入门教学视频真的太多了,没必要全部都看一遍,你一定要学会精简,不要贪多,就跟着你选出来的1-2套课程坚持学完是最好的。不要手里握着七八个不同的视频,今天看这个老师讲的,明天又听那个老师讲的,这种风格和思维的切换是很伤效率的。
至于书本,我其实都是当成工具书来做查询用的,因为书本上罗列的知识通常比视频里面更详细,对于某个知识点需要深入了解的时候再去翻书上对应的章节。有几本有口皆碑的Python入门教程,我列出书名,你可以自行试读、筛选。
《父与子的编程之旅》
《head first: python》
《笨办法学Python》
(还有很多优秀书籍因我个人涉猎范围有限没能列入,请自行搜索判断)
提醒一句:入门阶段完全没必要买一大堆书,内容都大同小异,最多买1本即可;那些买一大堆书的人,通常很快就放弃了。
原则上不推荐买任何国内作者写的python入门教程。
在基础入门阶段,你大致需要了解Python的变量、数据类型、操作符、函数、条件判断、循环、数据结构、常用库(os, time, datetime等等)、文件读写,模块化(理解Import和if __name__==“__main__”)以及面向对象、异常处理的基础知识。
其中,数据结构是重中之重。尤其是列表、字典、元组这3项,你必须玩得很溜,否则接下来的路你会掉很多坑。
装饰器、面向对象的魔法方法、生成器迭代器、多线程多进程协程,这些属于进阶的内容,可放到下一阶段学习。
完成上述知识点的学习,可以算是python入门。这时候你要试着独立写2-3个小程序来练手。
很多人问,写什么程序好呢?其实就把你日常生活或工作中要处理的某些事情,试着用python代码来实现。
比如,你可以写一个基于命令行的备忘录或通讯录程序,输入对应的数字编号进行增删改查等操作(进阶一点的可以基于文件读写实现备忘录数据的持久化)。你还可以自己写一个能实现加减乘除四则运算的命令行计算器,当然了你也可以试着让它实现比加减乘除更复杂的功能。在这过程中,去复习巩固基础知识。
在很多学习网站和github上面也有很多可以拿来练手的案例,可自己搜索寻找,别伸手坐等。搜索信息的能力,也是自学能力的重要组成部分。
在这个阶段,大概3分之2的人会被劝退。你可能会遇到一个意想不到的程序输出结果,或者莫名其妙的报错,被卡在那里几天几夜,想问人却没几个人理你,疯狂百度谷歌,仍然找不到答案。你可能在某个知识点听得异常懵逼,怀疑自己不是写代码的料。你也可能学到这一周,就忘了上一周的内容,恨自己脑子不好使。
这些情况每个人都会遇到,太正常了。你一定要学习学习的能力,找到属于自己的学习方法和进度安排。学习学习的能力不是错别字,自己体会吧。
比如我当时是怎么安排时间的呢:把学习视频离线下载下来,在上下班坐地铁的路上粗看一遍,晚上回家之后再细看,跟着老师的讲解敲代码,配合书本或其他学习资料,对这个知识点形成完整的理解。
每个人的可用时间、生物钟都是不一样的,我的方法不适用于每个人,请自行摸索适合你的方法。自学者的第一觉悟就是放弃当伸手党的幻想。
阶段3:选门派
在完成python基础学习之后,你要面临选择“门派”的问题,也就是选择一个深入学习的方向。
Python的几大常见用途,包括:
1、web后端开发,通俗的说就是做网站、微信小程序等等。请注意后端开发和前端开发的区别,可自行百度或知乎
2、数据分析及数据可视化
3、桌面应用开发
4、网络爬虫(通常跟数据分析结合使用)
5、自动化运维/测试
当然Python可以做的事情远不止这些,我只是列举常见的几个方向。
如果你是求职为目的,那么自然选你未来想从事的职业领域。如果你拿不准或者没有特别的需求,我都建议选择web后端开发,这个方向有几个好处:
1、python的django和flask两大框架,学习资料丰富,好上手
2、能快速做出来可见、可用的网站,有趣且满足你的成就感。成就感是坚持下去的重要动力
3、web后端开发会涉及到数据库、linux、服务器搭建、前端基础知识、网络安全、http协议等知识点,可以有效拓宽你的知识面,对你未来进阶绝对有帮助
可以考虑的另一个选择是数据分析,这也是python非常重要且普遍的一个运用。
如果你实在纠结,那也没关系,每个方向都尝试一下,写一写代码就知道是不是自己想走的路。
到了这个阶段,你算是进入到一个具体的应用领域里面了,要开始学习除了python之外的领域知识,由线到面的形成自己的知识体系。比如搞数据分析的,你可能要补一补统计学和微积分,做web后端的,上面已经提到有很多编程以外的知识等着你去学。
五、几条重要的经验
1、别买一大堆书,完全没必要,网上到处都是免费的学习资料
2、断了做伸手党的妄想,遇到问题自己解决,自学初期,一个问题花上2-3天求解都非常正常
3、实在实在没办法了再去找有经验的人提问,更多的是与人交流讨论思路,而不是拿很细节的问题去伸手要答案
4、一定要把通勤时间和碎片时间利用起来做“预学习”,晚上和周末成片的时间做精细化学习,怎么利用,你自己摸索。
5、自学最重要的不是速度,而是坚持。但坚持也不要走另一个极端:给自己太多压力。状态好你就多学点,状态不好的时候你就放下代码去休息,你是人不是机器,不要因为自己状态不好就质疑自己。我中间因为家里有事,有整整1个月没学,并不影响我后面断点续学。
6、学完一个知识点,一定要自己给自己出些题目去做,去探索去试错,自己独立敲代码。否则就会进入“拿起教程啥都会写,放下教程啥都懵逼”的怪圈。
最后,我建立了一个python自学交流群,已经有240多人。实话给你说,这里面坚持到现在还在自学的应该不超过30个人。
这个群不欢迎任何抱着“我先加个群看一看再说”想法的玩票者和好奇者,只加已经自学了1周以上的人。要加群,请私信发消息给我,谢谢。
祝愉快。
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14