在没有CS背景的情况下学习Python

我支持这样的想法:随着时间的流逝,自学新技能从未如此简单–在线资源的数量是无穷无尽的,而自学能力却又不花时间,变得前所未有的容易。

就是说,当我开始学习Python的冒险时,这没有任何意义。 就像,绝对没有。

我大学毕业时获得了心理学学士学位,现在我形容这是一个“好主意”。此后,我获得了工业和组织心理学硕士学位,事实证明这是一个不错的决定。 我能够在公司中找到专注于人员分析的工作,然后我很快意识到,如果不学习编程语言,就无法充分挖掘公司中可用人员数据的潜力。 由于没有任何教育背景,甚至与CS都不相近,我感到非常害怕。

即使从一些最好的学习资料开始,甚至安装也可能很复杂。 更不用说弄清楚在哪里键入-或按下什么键才能使某些东西“运行”。所有这些都引出了您的第一句话“ Hello,world!”,这很可爱,而第一个则有些激动时间-但是,如果您渴望在职业生涯中使用python …好吧,向世界问候可能不会帮助您使用这些电子表格。

在大多数情况下,当您入门时,都会跟随一些免费的PDF的在线示例,这些示例介绍了如何从一些简单的基础知识和脚本开始。 没有完全完美地输入示例,您将收到错误消息。 而且您不会理解这些错误消息。 最初,这些错误消息很可能是由于打字错误引起的,您最终会发现一些挠头,但是很快,尤其是当您开始编写自己的代码时,这些错误将不仅仅是被遗忘的逗号或“ (“而不是” [“。您将要阅读的东西最终变得比您想象的要复杂得多。

这是如何播放的-您将努力地阅读这些PDF,只是在您最喜欢的附近咖啡店中间的橡木长桌上坐着热拿铁咖啡,接下来的几个小时被挡在周六之外继续学习……只是发现您正在处理的PDF在您要尝试处理的确切位置上已经过时,并且您几乎不了解开始使用的概念,因此现在您在花钱接下来的两个小时,他们试图理解该错误消息,同时又试图找到一种现代的方式来编写您自己(完整而又完全的新手)首先要理解的内容。 接下来,您会陷入Chrome标签页的深处,所有这些标签会导致您几乎不了解的不同的Stack Overflow帖子和评论线程,并且拿铁咖啡的效果令人失望。 这就是生活。 那里是一个寒冷的世界。

这可能令人沮丧。 进步和学习通常是一系列简短的清晰度,然后是感觉停滞。 在这一点上,将其推迟要比进行下去更容易,因为在实际应用中,您所做的激励您继续前进的好处可能很少。

每次您学习新知识都可以激发编程灵感,因此开始可能非常艰难。 尤其是在没有编程背景的情况下。 例如,学习烹饪-从来没有尝试过组装任何食物,甚至在没有任何成分,风味搭配或实际知识的情况下,您可能会偶然地创造出一个相当合格的三明治(至少对您而言)。您使用的面包的物理限制。 您可以(可能)将其打开并松开。 使用编程语言,是没有运气的。 您可能将无法进入可行的功能。 如果您像我一样,您就已经花费了一生的时间来理解应该吃什么和应该吃什么,这样您就可以组装一些东西并成功地认为“是的,有人会完全吃掉它。 ”“通过编程—可能您对这样的代码应该或不应该的背景知识一无所知。 起初,编程的感觉对我来说完全是未知的,这是可以理解的。 我没有先验知识。 没有基线,没有参考点。 只是几个亲密的朋友向Google提出了愚蠢的问题。

所有这些都是开始学习这项新技能的必要步骤的一部分。 我相信将自己推入我们最不舒服的区域几乎总是一件好事。 当我们处理本质上未知的事物时,我们大多数人都会感到非常不安,这使这一旅程的开始特别具有挑战性。

我发现一些重要的事情使开始变得非常艰难:

真的很难看到最终的结果-很难看到小东西如何组合成更大的画面。

  1. 当您正在学习的内容与希望做的事情脱节时,很难保持动力。 清单? 字典? 上课吗 是……是分号吗? 所有这些感觉都像是要爬的一座山,以便尝试在实践中应用这些概念时可以爬上另一座山。
  2. 那里的资源太多了,常常感觉无法选择起点。 选择太多,通常会导致我们拖延做出太多信息而无法做出选择的决策。
  3. 您每天都会遇到未知和新的困难,而且最初,挑战解决方案的每次回报都很小。

所有这些都是正常的。

最终,您开始将一些部分放在一起。 有了足够的时间(从几天到几周不等),您可能会开始看到一些针对您正在做的事情的超简单应用程序。

接受这些感觉并与他们一起奔跑。 思考–

  • 我真的可以实现吗?
  • 我还需要知道如何做?
  • 在哪里可以找到我不知道该怎么做的东西?

现在您处在一个绝佳的位置-追逐创意。 追求概念。 至少,您将学到一些东西,即使该想法永远不会完成。

这应该是一种很棒的感觉-在陌生和不适的世界中,您开始看到一些曙光。 随着各个部分开始变得适合于一个越来越广泛且不断增长的难题,您应该感到自己正在将一个角落变成更切实的东西。

当您开始经历这种体验时,如果您像我一样,您将最终找到一种情况,使您的想法或阅读的代码适合您的需求。 这是我发现在现阶段经常发生的情况:

  1. 您很兴奋,渴望获得您的数据。
  2. 您开始编写代码。
  3. 您运行它。
  4. 您意识到……那没有用。
  5. 您不明白为什么这行不通。
  6. 您搜索为什么在Google上不起作用。
  7. 您发现故障排除不起作用的原因比您想象的要复杂得多。
  8. (中度绝望)

这完全是100%正常的。

在整个Python历程大约六个月的时间里,我第一次听到“像学习外语一样学习编程语言的经历”,这确实引起了我的共鸣。 比较我大学一年级的两个学期法语的学习经历和过去一年学习Python的经历,有很多相似之处。

整个过程需要大量时间,反复试验和实践,而且实际上并没有“终点”。 起初,您根本不会理解。 最初,您将尝试将您所知道的单词组合成基本句子,然后您会很快发现,语法上的细微差别使您无法做到这一点……这可能令人沮丧。 令人沮丧。

我们知道人们可以坚持做下去,最终达到一定的流利程度,使他们能够阅读该语言的书,或者与两个以母语为母语的人交谈,甚至可以旅行到以该语言为母语的国家/地区。母语。 编码没什么不同! 您会通过尝试说法语来学习法语,而起初,您通常会难以理解。 您将通过尝试编写Python来学习python,并发现您的python解释器(您实际键入/执行代码的位置)认为您完全无法解释。 最终,通过实践,对自己的友善和奉献精神,您将发现自己以一种您认为不可能的方式使用新语言。

如果您对学习Python感兴趣,这是我的建议:

  1. 善待自己,并了解自己的出发点。 感觉会很多,有时会让人不知所措,但是您在挑战自己学习新知识方面做出了一个重大决定。 如果这很容易的话,那么现在每个人都已经做到了。 它很难! 给自己一个现实的期望很重要。 我们都从某个地方开始。
  2. 封锁时间。 将其放在日历上,或者在有两个小时的空闲时间时,承诺拿起您的书/ PDF /可笑的一长串Chrome标签页,然后使用。
  3. 选择一个要完成的任务-一堂课,一个PDF,一个在线笔记本或其他任何内容-并花时间尽可能完全地完成它。 当您发现其他可能更有价值的东西时,请务必跳入该资源,并坚持使用该资源。
  4. 坚持下去,即使您不能应用它,也要继续学习。 学习一些。 真的学习什么。 使用任何格式的python都是继续学习的关键。
  5. 尝试任何方法,即使它不起作用。 无论发生什么,您都将学到一些东西!

在我今年参加的一次会议上,我记得一位来自数据科学领域的专家说:“从现在开始,您将永远不会拥有在项目开始时完成工作所需的所有工具。”

现在不再是拥有合适的软件或最好的设备—现在,您将拥有学习和学习完成工作所需要的知识。

学习如何学习,以及学习如何学习编程语言,为进一步提高您的能力提供了惊人的实践。 这段旅程没有止境,也许有些令人恐惧,但令人兴奋。 总会有新发现。 学习新概念。 这可能令人生畏。 但是,如果您真的很喜欢学习,那么您将获得无限的发现资源。

希望您今天开始! 以下是几种潜水方法:

我的第一个资源是Python速成课程,其次是埃里克·马蒂斯(Eric Matthes),《用Python自动完成无聊的事情》。

另外,此处python.org网站上的“入门”部分是一种很好的方法,可以让您开始适应python的世界。

随时让我知道您是否正在起步-我很高兴向您发送一些鼓励,并且很想听听您的工作情况。 我会为你加油!