【云驻共创】Python工程师速成之路

G-washington 发表于 2021/03/03 18:46:01 2021/03/03
【摘要】 Python是由Guido van Rossum开发的一门编程语言,主要应用于人工智能、爬虫、web开发等众多领域。如何能够高效的掌握它,是需要讲究方法的。


Python是由Guido van Rossum开发的一门编程语言,主要应用于人工智能、爬虫、web开发等众多领域。如何能够高效的掌握它,是需要讲究方法的。

 

Python语言生态预览

 

难的不是创造一门语言,是打造对应的生态。生态是语言赖以存在的源泉,世界上编程语言有很多,但是流行的只有那么几种,正是生态让它们能够长期被使用。

 

谈生态的理论是很抽象的,让我们从生态的表象来看,一个完整的生态包含以下几个方面:

  • 齐全的文档:包括相关教程和文档介绍
  • 自己的社区:有专门的社区来让开发者进行交流,及时处理问题
  • 集成的开发环境:比如pythonpycharm
  • 跨平台:能够支持在多个平台上运行,比如windowslinuxubuntu等等
  • 功能库齐全:python除了官方库还有丰富的第三方库资源
  • 成熟的大型应用:包括pandassentrytensorflow等等
  • 主流工具的支持:包括kafkaapolloPrometheus

 

如何规划自己的学习路线?

 

python有如下几个方向以及他们的相关薪资:

  • 从事web开发需要学习FlaskDjango等等,薪资大概在20~30k
  • 从事爬虫行业需要学习ScrapyRequests等等,薪资在20~30k
  • 从事自动化测试需要学习PypeeterSelenium等等,薪资在18~35k
  • 深度学习行业需要学习pytorchtensorflow框架等等,薪资在25~50k
  • 数据分析需要numpypandas等相关知识,薪资在20~30k

 

除此还有自动化运维、教育等等。

 

学习第一件事就是要找准方向,python有很多的应用方向,不同的方向,知识也不尽相同。而我们就需要找准方向,然后专注与学习即可。学习切记广撒网,贪多嚼不烂。

                                             

从技术栈上来看,缓存Redis、数据库MySQL这些是python开发者都需要掌握的,其他的要根据自己想学的方向,比如爬虫工程师需要学ScrapyTCPHTTPBeautifulSoup等等。

 

刚开始学习要找准方向,每个都涉及会让你学习不精,容易半途而废。定准方向,找个前辈带你,会让你事半功倍。掌握常用知识,有些知识可以等使用时,再学也足以。

 

从招聘信息上来看:我们可以在招聘网站上查看相关岗位对职位的不同要求,找准自己的定位,可以从薪资来判断岗位要求是中级还是高级工程师。

 

爬虫工程师都要求熟悉HTMLTCPXPATHCSS,而薪资相对低的要求相对宽松,一年开发经验和掌握一门编程语言即可,但是薪资相对高点的,还需要掌握爬虫架构、Android逆向破解等等。

 

python后台开发工程师,都需要掌握HTTPTCP、算法、数据结构等等,薪资高的需要掌握MySQLRedis数据库知识。

 

 

web开发为例,介绍下整个的学习流程,需要首先掌握基本语法比如变量、控制流等等,做一些小应用,将数据进行存储学习MySQL,然后为小应用,添加些拓展功能,开发完成后我们要部署上线需要掌握LinuxNginx相关知识,之后我们还要监控它的性能并进行测试,这就要求掌握Nginx VTS相关知识,我们需要优化性能比如增加进程数、Redis缓存等等,最后就是将代码工程化,需要测试用例、代码注释等等。

 


我们可以通过下面的方式来获取学习资料:

  • 官方文档:工作上遇到使用问题,最好看官方文档
  • 图文博客:官方文档看不懂时,可以找些相关知名博主的博客
  • 付费课程:可以节约一些不必要的时间开支,花钱投资自己,也是个学习的好途径。


                                       

学到什么程度算是会?

 

对技术有整体掌握,接到一个问题,能够清楚它的类型、如何解决、需要用到哪些知识。我们对于知识要有个宏观的掌握,知道能够从哪方面着手,让自己的技术得到应用,对待问题能够举一反三。

 

市场是检验个人技术水平最好的方式,我们可以通过面试来检验自己的水平,多投简历,增加自己的面试经验。很多初次面试的人,难免会有点紧张,多参加面试,除了自己的技术水平得到检验,面试的心理素质也会得到提高。

 

写文章是个展示自己水平的好方式,很多知识可能感觉自己学会,但是写不出来,在写的过程是个大脑思考的过程,会让你对知识有更深刻的理解,写作要尽量写有深度的,对于原理的介绍等等,写文章对于面试也是有好处的。

 

通过做开源项目也可以让自己的水平得到检验,提高实战能力。发布自己的开源作品,别人可以给我们提出一些相关的建议和问题,有时候会让我们获得一定的进步。

 

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

学一段时间我们都会遇到瓶颈,这时候我们就需要设定个新目标,可以从性能、效率、开发、稳定性和复杂度这几个方面来入手,提高自己:

 

  • 就效率方面来看,是否能够快速的响应,需要用到例如Redis缓存,能够更高效的传输,需要socket编程;
  • 就并发方面来看,资源能否实现有效的共享和竞争,会涉及到分布式锁的应用;
  • 就稳定性而言,能否减少异常的出现,能否快速定位异常问题,及时的解决掉问题;
  • 就复杂度而言,包括时间复杂度和空间复杂度,设计更加高效的算法来执行;

 

需求推动进步,当你有了新的需求,就需要从某方向来满足它,比如你需要设计更加高效的算法,那么你就会查找更多的相关文档,这个提高的过程中,你的技术也会随之得到提高。

 

我们应该设立个学习目标,目标的设立能够让我明确方向,不会迷路,是指引我们前进的明灯,每个人的基础不同,学习能力也不尽相同,目标自然也不同,我们应该根据自己的实际情况,设立个切实可行的目标。比如三年掌握一门语言、熟悉一个方向、迈向一个新的领域等等。

本文整理自华为云社区内容共创活动第一期之【HDZ研习社】学 Python 不走弯路,工程师速成路线,查看活动详情:https://bbs.huaweicloud.com/forum/thread-105538-1-1.html

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。