成长路线图:如何成为一名Python开发者?
【导语】本文对学习 Python 的最佳书籍、视频、课程进行了汇总,并解答了初学者及早中级人员在工作中面临的问题。在作者看来,这些问题即便通过 Stack Overflow 也很难解决。
为什么选择 Python?
“为什么要学习 Python?为什么没有选择另外 20 种当前流行的编程语言?”可能开始了这段学习旅程之后,你几乎每天都会想到这个问题。
程序员更看重使用并熟练运用语言的技能,而非关注语言本身的内涵。
如果你对自己的选择很坚定,你成功的机会也会更高。选择哪种语言并不重要。但是一旦你做出决定,就必须坚持下去。
网上关于语言和框架的对比有各种各样的讨论,这足以让任何理智的人失去分析能力,致使他们怀疑自己的决定,并放弃当前的选择。
有些人声称自己懂三四种语言。他们知道所有相关的事情,却无法熟练掌握任何一种语言。这就是试过所有语言,却不选择其中一种坚持到底的结果。
Python 是一种设计精良的语言,并且有大量的在线文档和教程供开发者参考,被应用于很多领域。所以无论你的水平如何,都有很多值得探索的方向。对于另外 20 多种语言,也同样如此。
每种语言都有它自己的优点和缺点,以及最适用的场景。Python 最常用的三个场景是数据处理、编写 Web 应用程序和自动化脚本。Python 可以说是初学者的最佳语言,因为其语言设计的基本原则着重于清晰和简洁。
如何学习 Python?
既然你已经做出了选择,现在我们就来谈谈如何学习 Python。
其实很简单。选择一个教程,完成它。接下来,选择另一个。休息一下,然后重复这一步骤。单凭一本书或一段视频是无法学会 Python 的。你需要不断地接触代码,循序渐进地增加练习量。耐心、恒心、坚持当下的选择,这些都是必需的品质。
一个适合初学者的路线图
建议选择在线课程而非阅读书籍。整个过程比选择单个教程或书籍要重要得多。
- 通过阅读书籍建立坚实的基础。
- 跟随教程使用 Python 完成一个单独的任务,如发送电邮或编写文件。你将会了解到许多有用的包和库,这些对于 Python 开发人员是非常实用的。
- 养成阅读文档的习惯。基于可用的库构建小型应用程序。
- 深入理解语言及其工具。了解该领域的专家正在开展的工作。
- 直接追溯到源头。
如果你已经用遍了图中的资源,以下链接中还列出了一些 Python 资源:
Best Python Resources at Full Stack Python (https://www.fullstackpython.com/best-python-resources.html)在学习任何教程时,都要保证全程写代码。仅仅阅读代码示例是不够的。
学习语言(或框架与库)和学习编程之间存在细微的差别。不过,你还要明白:学习“Full Stack Web Developer“ 这门课程不会让你成为一名程序员。该课程只会教你用特定程序解决简单的问题。能理解程序固然是好事,但能够设计自己的程序是非常棒的。注意编程结构、设计模式和算法。这些不只限于 Python,对大多数语言都适用。
寻找答案
如果你遇到了困难,请在向另一个方向出发前,先尝试解决问题。互联网上很可能已经有人记录过该问题,大概率有人和你遇到过同样的问题。尝试在互联网上搜索解决方法。同时,Python 社区也随时欢迎你。你可以随时向他人求助。
关于 Python 要学的太多了,它被应用于许多领域。不要跳过基础知识直接到特定领域的专业知识。先学习调包再学习 PyTorch,先学习虚拟环境再学习 Django。从长远来看,Python 值得我们深入研究。当你使用了合适的库时,它可以减少调试程序所花的时间。
要花多久?
学好一样东西需要时间,比大多数人告诉你的要更长。你无法在几个月内成为专家程序员。建议你重点关注 Python 至少一年时间。尽量避免分心和注意力的转移。
不要害怕学习新事物。要成为一个全面的开发人员,只会 Python 是不够的。学习 Markdown 和 HTML 都会有很大收益。你可能还需要在此过程中获取 JS 或统计信息。
永远做一名学者,但不要只做学者!任何创造或科学探索都有两个阶段不断重复:
- 在学习阶段,你应该专注于积累知识。阅读书籍,完成每个教程,并探索已经完成的工作。
- 在夯实阶段,你可以通过应用上一阶段得到的知识来创造自己的东西。不要怀疑自己的技能,不要听那些质疑的声音,完成一个你自己的应用。一旦完成了,回去再学习一遍。
平衡这两个阶段。学习阶段大约 1 到 2 个月,接下来是一个月的夯实阶段。
寓学于乐
为了激发自我的学习兴趣,你还需要了解语言的一切,了解所在领域的最新进展,了解其设计理念,寓学于乐!
原文链接:
https://hackernoon.com/a-realistic-roadmap-to-becoming-a-python-developer-ab5872959509
(本文为AI科技大本营编译文章,转载请微信联系 1092722531)