大家好,这里是程序员晚枫,知识星球:Python读者圈。
昨天收到一个我很有感触的星球提问,今天来详细回复一下。
晚枫,如何成为一名初级Python后端开发?需要学习哪些内容?如何提高学习效率?
本次回复,主要围绕3个方面,首先是你的问题本身:
另外,我个人觉得,你这个问题的背后还有一个隐含的问题:
说实话,收到这个问题,我是不敢回答的。
因为我也只是在这条路上摸索前行的初学者,作为法学院毕业的程序员,走了很多坑,撞了很多的南墙。勉强摸到了一些前进中看似正确的方向,我会不会误导别人呢?
但是和提问的这位同学:提灯养猫人沟通了47分钟后,我决定认真整理一下这次的沟通。
目前星球里也有几位朋友,是因为遇到这种需要突破的境况来找到我。很感谢大家花费时间和我的沟通,让我也学习到了很多,也再次有了一种和大家一起努力拼一把的感觉。
0基础转行Python程序员,这件事成功的样本很少。可能我的经验是错的,可能只适合一小部分人,但是我毕竟把从0基础到Python程序员这事做成了,所以讲讲我的想法,也算是增加一个给你的参考角度吧。
开始我们的正文。
首先分析一下市场上的初级Python后端,需要哪些技术?
我们打开一个初级Python后端的招聘需求:
这是一个典型的后端开发岗位的需求,每个人都可以在网上搜索到。其中,除去学历、经验等硬件上的要求,技术上的要求主要有:
python、django/flask、小程序开发、linux环境和常用命令、apache/nginx、了解docker容器;Mysql、Redis
怎么学呢?用每一个单词去B站搜索:python、linux,你都可以看到大量的课程。随便找一套,去学就行了。
如果我这个问题回复到这里,你肯定要打我了。
所以接下来我们谈谈这个重要的问题:如何提高学习效率?
专业和业余的区别之一是:专业的人,知道这个问题的重点在哪里。
所以我认为高效学习的秘诀,在我看来就是:针对每一个技术,有重点的进行学习。
这个重点,包含2个方面:①哪些技术是重点?②重点技术的难点在哪里?
python、django/flask、小程序开发、linux环境和常用命令、apache/nginx、了解docker容器;Mysql、Redis
再次回到刚才的招聘信息,面对这么多信息,如果给这些技术里选出一些可以不用学的,剩下的是不是就是重点了?
所以:
针对一件事情的优化,我们除了优化宏观层面,还可以优化微观层面。
针对这些必学内容(python本身、django/flask(2选1)、linux常用命令、mysql
),哪些又是重点呢?
这是我通过你的问题,联想到的一个问题,但我觉得,这才是最重要的回复。
你有没有想过,当你学完上面这些,去面试的时候,你的对手是谁?
如果不出意外,是那些本身就是计算机专业的、科班出身的,和你一样努力的人啊~!
上面这些该学什么,每个学科的重点是什么,他们有比我更加专业的大学教授指点,你觉得光学会那些,你能赢吗?我当时也问了自己这个问题,我觉得我不能。
但是可以无限的接近。大不了最后是科班的学生去大厂,我去中小厂,入个职业门槛,获得一个基础岗位的机会,应该会有的。
那么,怎么接近?
科班出身和非科班出身的最大区别是什么?我认为是对同一个知识理解的广度和深度,或者说体系化。
上面的那些招聘需求,你学完了,脑海里是这样的画面👇
其中每个知识点可能都懂了,但是它们之间的关系是什么,为什么这行代码要这么写,为什么要做这种技术选型,就懵了。
而科班出身的程序员,学完这些知识,脑海里的画面是这样的👇
技术的应用上,大家都差不多,但是对技术的理解不一样,决定了最后的成败。
那么,我们继续往下思考,科班程序员是如何得到这种理解能力的?
但是计算机基础有那么多专业课程,那些又是计算机基础里的重点呢?
我想了一个办法:去看看考研考什么?在一份150分的试卷里,中国的大学教授们是通过哪些知识,认定一个本科学习计算机的学生,大学四年对计算机专业的学习是否合格的?答案是下面这4门课程:
整个梳理下来,我的结论如下所示👇
2条腿走路更稳妥,首先学好技术应用,如果有精力,同时学好计算机基础知识。这样才能让你不仅能学会Python知识,而且能转行成功。
有些朋友可能会觉得这样是不是太慢了?
其实最终你会发现,慢慢来,才是最快的方法。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。