Python初学者必读丨五分钟内教你如何学习Python

许多Python初学者都不知道该如何开始学习。软件工程师Daniel Moniz分享了他自己的故事,他是如何在辞职后从零开始学习Python,并找到自己心仪的工作。

大家好,欢迎来到我的五分钟讲座——关于如何学习Python。我叫Daniel Moniz,我在Points公司工作。我作为一名软件工程师在那儿工作了一年。

针对那些想进入Python领域的人群,那些想学习Python的人群,我们有责任尽可能地帮助他们,关于如何学习Python的讲座并不多。

这个讲座的目的是帮助初学者学习,最终能够找到Python方面的工作。

我的故事

一年半前,我裸辞了,就这样结束了上一份工作。之前我们没有用源代码控制,使用的是PHP。

我想学习完全不一样的东西。接着我辞职了,计划花两到三个月学习Python,找一个很棒的工作。因此我创建了一个体系去执行,结果利用我的Python和Django技能,我的确在三个月内找到了工作,在Points顺利就职。因此我打算与你们分享我是如何做到的。

在Points的前两个月,我的职责当然是开发软件。同时还包括分享Python知识,我负责提高团队的Python技能。因此我做的包括进行大量代码审查,以及大量结对编程。在过去几个月我进行了上百次代码审查,并给出直截了当的反馈。并且我了解到Java开发人员在学习Python时,会遇到的各种问题。

接下来我要展示的体系是可重复的,我相信每个人都可以做到。能够得出相应的结果,因为这遵循一定雇主所期望的原则。

三天项目模式

这称为三天项目模式

你所需要的就是一个项目理念因此你可以求助更有经验的开发人员,找到你能够在两到三天内完成的项目。

我做的是网络爬虫,这是一个朋友给我的想法。他让我选一个我喜欢的网站,因此我爬取了指环王的维基百科。下载到本地并重新映射所有的链接,因此能够在本地运行而不是通过网络,这很简单。

第一天

你随意的尝试,去犯错,去了解这个语言。这是我使用Python做的第一件事。假设你要重构所有操作,进行各种尝试。

第二天

完成应用的功能。这是一个很小的应用,如果变得太大了就减小规模。如果有需要就进行重构,因为你需要让代码很整洁,之后会解释具体原因。消除bug,在第二天结束时你应该做到将3个bug减少到为零。

第三天

第三天我们基本不会进行太多编程。而是完善文档,再次重构。进行在线测试和封装等问题,尽可能地去完成项目。

因为第四天就结束了,你对该项目彻底放手。

根据这个目标,我们试着去构建一个完整的、自我维持、无需维护的项目。因此得出展现我们努力的成果。这一过程不仅感觉很好,而且你还有可以展现给雇主的成果。这能够写入到你的简历中,我也是这么做的,这帮我找到了工作。

其他的工具和技巧

电话面试

电话面试是冷酷无情而且令人恐惧的。我进行了大量的电话面试,从中得到了许多经验教训。

我发现了一个网站 coderbyte.com 。他们会给一个15分钟的Python问题让你解决。同样还有其他的语言。目的是为了让你在实际进行面试前,先试着绞尽脑汁去解决问题。在进行电话面试时这大大地帮助了我。特别是当你需要在Google Docs(在线办公软件)进行编程时,你无法运行也无法测试。

Stack Overflow

好好地利用Stack Overflow。显然,众所周知这是很棒的资源。如果你的朋友想学习Python,让他们使用Stack Overflow。进行提问,只要你感觉可以了就去回答问题。阅读相关问题,特别是关于装饰器(Decorator) 和生成器(Generator)。有相关的优秀长篇论文,涉及到Python的各个细节,从中能够更好地了解其工作原理。

常见的问题

一些常见的问题,尤其是对于Java开发者来说有两个问题。一切都是对象,人们很难理解到这点。如果理解到int型、文件、函数都是对象,那么就能更好地进行操控。意识到这些并不是魔法,而只是简单地操作对象。

学习重构,并且在重构中学习。如果你不对你的Python代码进行重构,你就无法学会如何写出好的Python代码。所以别太介意代码审查的评价。

初学者的挑战

最后一点,我提出了给初学者的挑战。如果你不确定你所处的技能水平,那么就使用Python模拟库,在你的代码库编写单元测试,尤其针对Web应用。

如果你能做到这些,你就能很好地掌握Python解释器的工作原理。你就不再是Python编程的初学者了。

原文发布于微信公众号 - CDA数据分析师(cdacdacda)

原文发表时间:2017-12-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术小黑屋

我学习Android的一些套路

今天我将给大家分享一下我学习Android的一些方法和想法,分享中并不局限于Android哪一块怎么学习。而是一个总体的,普适性的学习套路和方法。希望可以帮助大...

1832
来自专栏PPV课数据科学社区

【解惑】一文告诉你,该学R还是Python!

Python和R是统计学中两种最流行的的编程语言,R的功能性主要是统计学家在开发时考虑的(R具有强大的可视化功能),而Python因为易于理解的语法被大家所接...

2983
来自专栏老九学堂

程序员高手和菜鸟的区别是什么?

程序员的价值绝对不在于技术本身,而在于做出好用且好看程序的能力,这是一个开放性的话题,每一个人都是菜鸟过来的,老九君希望每一个做技术的小伙伴都能尽快成为高手。 ...

3033
来自专栏web前端教室

【差别】3-6K和10-15K的前端要求有啥区别?怎么达到?

先上图片, (1)首先是3-6K要求的, ? (2)然后是10-15K要求的, ? 差别: (1)、3-6K要求三年要求,10-15K的要求五年要求; 这个并...

4078
来自专栏程序员互动联盟

向中级程序员转变的10个秘诀

在一封与TechRepublic会员交流的邮件当中,提到了面向程序员的博客、文章及杂志分成两类:面向初学者类以及面向专家类。这个观点很好,有关程序员如何从初级跃...

35210
来自专栏陈树义

浅谈重构中踩过的坑

? 最近重构了公司一个将近10年的核心功能模块,踩了不少坑。在做这个重构的时候好几次都觉得做不下去,好几次压力都非常大,心想着我该不会做着做着就退出编程届了吧...

3587
来自专栏java一日一条

成为伟大程序员的 10 个要点

最近我在接受采访时被问到我关于成为一名伟大程序员的见解。这是一个有趣的问题,我认为我们都可以是伟大的程序员,无论我们的天赋如何,如果我们遵循一些规则的话——我相...

943
来自专栏Java架构师学习

Java架构师最关键三个思维转变方式

很久没有写思维的文章,特别是在写完思维的逻辑和思维的框架后,对于理论层面的自己也不太想写,但是对于实际案例层面的写起来又比较花时间,而且案例基本在IT专业领域不...

3285
来自专栏CreateAMind

李飞飞CS231n机器视觉课程-全部视频ppt及中文翻译资源大全

http://vision.stanford.edu/teaching/cs231n/syllabus.html 官方站点资源如下,视频课程ppt都有

2342
来自专栏Java学习网

兴趣与坚持:程序员从初级到中级10个秘诀

  在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客、文章及杂志分成两类:面向初学者类(“hello world”这种类型的教程)以...

2817

扫码关注云+社区