美文网首页大数据 爬虫Python AI Sql
解析 | 为什么我学了Python还是不会编程

解析 | 为什么我学了Python还是不会编程

作者: 小知_知数堂 | 来源:发表于2020-03-18 17:17 被阅读0次

    前言

    Python是一门使用非常广泛的语言,很容易入门,也被大家首推为编程入门的最佳语言。知数堂有幸邀请到DevOps开发专业人士: 章文炳老师,和他一块聊了一下学习Python的一些疑惑。大概问题如下:

    • 怎么学习Python

    • 系统的看了好几本Python的书,但还是不能独立的做一个编程,是为什么呢?章老师从本次在构建《Python运维自动化》这门课程的思想上给了我们以下解答。

    怎么学Python基础

    Python基础入门是比较简单的,基本3-4周就可以看完一门Python的书了。接着针对一些自己难以理解的地方着重练习一下。这里注意一下,我们在学习的过程中不需要对每一章的例子进行敲键盘,点个运行通过才算满意。从收益上来看,这种学习方式的性价比并不高,而且会将我们的学习时间拖得很久。这部分的学习,可以联系知数堂助教获取一份知数堂提供的Python基础视频。我们通过视频进行系统的学习,之后自己进行总结。Python基础这个环境,基本10-20天就可以突破了。

    Python进阶实战

    有学员反映说学习完Python基础,会觉得非常的茫然。因为这时候说工程,离工程太远;说算法,离算法太远。忽然感觉有一些东西不是Python语法上能解决的。这里举两个例子:

    1、解决Python面向领导编程需要的实力

    这里开个玩笑,提到一个面向领导编程。例如:我们需要把每天服务器运行情况及做一个汇总然后使用excel或是word的格式发给领导,加上精美的报表。

    这里面就会涉及到:数据采集->抓取,数据整理分析,展示(模板), 生成报表(excel调用), word的生成(又一个新的模板格式),mail。从做这个面向领导的编程中,想把事情串起来,就会发现, 需要一系列的整合,整合是不是最佳,如何整合,对于新手都是一些比较迷茫的点。

    章文炳老师在知数堂《Python运维自动化》课程中,就是从实战的角度带大家去完成这件事情。参考《Python运维自动化》第三章的 3.4 Python网络编程。

    image

    2、高效解决问题的眼界

    再说一个高效解决问题。例如:求给定一个数据:9是数组[2, 7, 11, 15, 9]中两元素相加的和,测打印出来两个两个元素的下标 : 0, 1。

    新手的程序:

    #!/usr/bin/env python
    nums =  [2,  7,  11,  15,  9]
    target =  9
    length = len(nums)
    for i, item in enumerate(nums):
        for j in range(i+1, length):
            if nums[i]  + nums[j]  == target:
                print([i, j])
                break
    

    也可以得到答案,但会发现,如果数组增大后,效率就变低了。老司机的做法:

    #!/usr/bin/env python
    nums =  [2,  7,  11,  15,  9]
    target =  9
    dct =  {}
    for i, n in enumerate(nums):
        if target - n in dct:
            print(dct[target - n], i)
            exit(0)
        dct[n]  = i
    print("No two sums  equal")
    

    忽然就会发现这个更快,在大数据环境,也很快,立马对老司机充满了敬意。

    听听老司机为什么这么做的,例如代码中的超时控制,老司机在实战项目,经常会提到这十几行代码,很多重要,大家可以把这个函数记下来,后面可以自已用,然后再来讲一下为什么重要,趟过什么坑。知数堂《Python运维自动化》带你深挖项目实战。

    Python技术深度如何挖下去

    Python这个语言,可以使用的地方非常广泛,很多机器、人工智能也在使用。但是对于这些想法,章文炳老师也给大家泼了一盆冷水“人工智能那些方向先不要看了,需要很多的数学要求,不是会Python就能上的“。

    那么如果想在Python这个技能上提升,该怎么做呢?

    章老师的定位:可以利Python随手完成工作中的任务,这样做不会感觉太有难度,理解开发中常见的组件及使用,可以和开发人员平等对话。例如:你需要明白ES, 消息队列, 并行框架, 自动化测试等等。在《Python运维自动化》课程中,也体会到这些问题:

    image

    在这个章节中,就带着大家体验一下各种中间件是怎么用的,能完成什么工作,需要注意什么, 争取做一个全栈的DevOPS,进军SRE类的工程师。

    如何做一个开源的产品

    最后和章老师聊到怎么做一个开源的产品。聊到这个话题,感觉是一个非常大的话题。对于产品的定义可大小,章老师说,如果说一个产品,最简的形态web形态存,那么你要学习会django,vue这类东东,另外他举例说,在他的《Python运维自动化》课程,实战项目:MySQL慢日志收集,就可以说一个开源产品的雏形,在这个教学案例中,会完成:

    • 线上MySQL慢日志收集入ES库

    • 利用SOAR对慢日志产生优化建议

    • 利用django进行日志展示

    • 利用面向领导编程技术产生报表及输出

    参考《Python运维自动化》

    image

    《Python运维自动化》传送门:https://ke.qq.com/course/480869

    在这个基础上丰富起来,如果能被别人利用起来,并且可以维护起来就是是一个不错的开源产品。

    联系助教获取《Python运维自动化》大纲和相关资料

    个人微信.png

    相关文章

      网友评论

        本文标题:解析 | 为什么我学了Python还是不会编程

        本文链接:https://www.haomeiwen.com/subject/kzrcyhtx.html