Python进阶之路(本篇文章整理自【HDZ研习社】《学Python不走弯路,工程师速成路线》)

网友投稿 549 2022-05-29

Python进阶之路

古语有云:不走弯路便是捷径。在学习编程的过程中更是如此。书店里各种类型的书籍,博客里各种各样的技术文章,学习网站上各种技术的学习教程,在如今的互联网时代,在知识爆炸的背景下,学习的方式和方法更加的多种多样。在这样的背景条件下,在学习一门编程语言的过程中,如何尽量的少走弯路,直达目标更显得尤为重要。

本篇文章将深入剖析学习Python的方向和路线的选择,旨在给大家点亮学习的灯塔,找准前进的方向。

主要内容如下:

Python语言生态一览

Python进阶之路(本篇文章整理自【HDZ研习社】《学Python不走弯路,工程师速成路线》)

如何规划自己的学习路线

学到什么程度算是会

如何突破学习瓶颈,百尺竿头更进一步

编织全新的世界

Python语言生态一览

难的不是创造一门语言,是生态。

当今编程世界,充斥着各种类型的编程语言,琳琅满目。那么如何分析一门语言的发展趋势呢?笔者认为重要的是看这门语言的生态。生态发展不起来的语言大多命途多舛,那么怎么看一门语言的生态?如果选择从原理的角度理解生态,会发现生态这个词特别难懂,所以我们选择从语言的表象的角度来分析生态。

从表象的角度分析编程语言的生态。

表象包含如下方面:

文档:教程是否齐全,是否通俗易懂,案例是否丰富

社区:社区的发展决定语言的发展,是否有很多的教程和问题与答案

集成开发环境:简单易用的集成开发环境可以大幅提高开发效率,方便调试

跨平台支持:如果不支持跨平台,语言很难发展(如Swift,兼容性较差)

功能库:丰富的功能库方便开发,调用更安全

成熟的大型应用:提供信心和参考

主流工具的支持:企业中选择的关键

下图为Python的表象角度生态情况:

如何规划自己的学习路线(不走弯路)

Python的职业方向

Python是一门非常适合入门的编程语言,而且职业方向相当丰富,这一点可以从招聘职位的多样性中明显的体会到。下图是招聘网站上与Python相关的岗位和对应的薪资情况:

眼花缭乱的技术栈

学习的第一件事,就是找准方向,否则很容易会眼花缭乱,感觉自己学了很久,各种技术都学了一点,但到头来总是没学会什么,需要用的时候觉得什么都不会。因为技术栈本来就是非常的多,所以找准方向有位重要,下图以学习Python爬虫为例,总结了需要掌握的技术栈信息:

规划学习路线

这里我们将从招聘要求来分析学习的路线。以Python爬虫工程师为例,初级的爬虫工程师的招聘需求上,通常包括基础的HTML\TCP\XPATH\CSS,数据存储方面包括Redis\MySQL\ MongoDB,关键词通常包括采集、结构化、清洗、入库、实时性,特殊的关键词包括反爬虫、 hook 、逆向等等。中高级的爬虫工程师的招聘需求则通常包括基础的HTTP\TCP\算法\数据结构,数据存储方面包括Redis\MySQL\ MongoDB,关键词通常包括WEB 框架、网络协议、Linux 环境、设计开发,特殊的关键词包括高并发、性能等等。

从对招聘需求的分析上,我们可以规划出合适的学习路线,这种学习路线面向招聘需求,更有针对性,更有的放矢。如下图所示是一个WEB开发者的学习路线:

获取学习资料的途径

互联网时代是知识爆炸的时代,获取学习资料的途径也多种多样。有些朋友可能习惯于把钱用在炒股,存银行或做生意等方面,对买书,买课,参加训练营等付费方式有一定的抗拒,认为花钱在IT 届是不可取行为,就应该免费学,自己慢慢攻克。殊不知当今时代,投资自己才是王道。付费学习可以节省大量的时间成本,短时间内迅速实现自我提升。如下是几种获取学习资料的途径:

官方文档

知名图文博客

视频付费专栏/课

知识付费平台专栏

直播课

付费训练营

购买书籍

学到什么程度算是会

如果学习到了一定的程度,怎么检验自己的能力呢?如何辨别自己对知识的掌握程度?对这个问题,答案是市场和实践才是真正的试金石。大胆去尝试,通过面试来检验自己的水平,同时发现自身的不足,并在日后的学习过程中重点针对这些不足进行提高。此外,亦可以通过参与开源作品的开发来检验自身的水平。

如何突破学习瓶颈

当我们在学习和工作中,有了一定的技术储备,可以很容易的解决一些问题的时候,怎么突破学习瓶颈,取得更大的提升呢?如何百尺竿头更进一步?这个时候,我们需要将精力放在如下关注点上:性能、效率、并发、稳定性、复杂度等,我们可以开始思考诸如如何提升系统的性能和稳定性等问题上。这样就可以在现有基础上设定新目标,再去逐个击破,实现自我提升。

编织全新的世界

当我们的水平有了进一步提高之后,我们可以考虑在不同的任务和场景下应该使用什么样的技术。例如需要提升系统效率,更快速的响应需求,我们可以考虑采用缓存技术,如Redis。如果需要更高效的传输,我们可以考虑采用Socket通信。如果涉及到并发环境下资源的共享与竞争,我们可以考虑采用分布式锁提升系统的并发性能。如果需要保证系统的稳定性,我们可以考虑日志收集工具,监控告警等方法。如果涉及到系统的复杂度等问题,我们可以考虑资源的利用率,如空间复杂度等方式。

掌握了以上技能之后,下一步可以上升到与语言无关的层面,涉足架构设计方面,开启新的发展方向。借鉴于敏捷开发的迭代思想,可以设计一个三年的技术规划,比如三年的时间,可以熟练的掌握一门语言,熟悉这门语言的一个发展方向,三年后可以迈向另一个领域。

总结起来,编程学习之路如逆水行舟,不进则退,需要我们有高屋建瓴的学习规划,这样才能掌控技术前进的方向,实现自己的技术梦想。

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:kubernetes基本概念及操作命令
下一篇:【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
相关文章