新的学习型创业之所以如此难以启动的最大原因是,因为我们不了解我们对该学科的无知。 最好的例子来自Marcelo Gleiser的“知识之岛”概念。 本质上,当我们处于完全无知的状态时,我们就漂浮在“神秘海”中。 随着我们对一个主题的理解,“知识之岛”突破了海洋的表面,并且随着海平面的上升,“神奇的海岸线”也不断发展。 为了追求Python熟练程度,我的知识之岛已经在图表上进行了绘制,拥有足够多的海岸线,使我对在何处着陆感到茫然。
他们改变的时代
如果我只是在十年前进行这项学术考察,那么我的过程将会大为不同。 我可能会从前往Borders的地方(仍然错过那个地方)开始拿铁咖啡,然后浏览堆栈以选择编程和Python的读取内容。 如果进展顺利,我什至可以从当地一所大学获得课程目录,看看是否可以找到一个可以与我的全职工作相配合的课程。 有了这些工具,我就可以开始在集成开发环境(IDLE)中进行黑客入侵了,也许在一两年之内,我就能在Python中做一些有用的事情。 现在回想一下我与实际情况相距不远的尝试,我现在至少为什么对我而言,这种方法行不通。 原因是Gooey GUI。
由于从来没有要求我进行任何类似神经外科手术的帮助,因此我不得不假设(尤其是出于同音异义的缘故)大脑有些粘糊糊。 从我十二岁左右开始,并且在我的计算机实验室里第一次体验Apple IIe以来,我一直在使用图形用户界面,通常被称为GUI(发音为“ gooey”)。 给我一个可视化的信息显示,一只鼠标和两只眼睛,我将快速理解和利用一个应用程序。 对我来说,这很有意义。 使用视觉,大脑,心理和肌肉记忆以及手眼协调的能力与我完成任务所要做的其他事情一样自然。 对我来说不幸的是,这里存在问题-在大多数编程中,GUI不存在,几乎完全转移到用户的大脑空间。 您不必知道下拉菜单或热键即可激活功能,而必须知道该工具在内存洞穴中的哪个位置。 找到之后,它可能不存在或无法正常工作。 但是不要担心旅行者,因为正如我之前所说,时代已经改变。 不完全是,但是足以帮助我们在柔软的沙滩上而不是在那边的岩石上着陆。
那么,发生了什么变化? 在某些方面,什么都没有。 减去现在成为巴西牛排馆的Borders之旅,仍然可以使用旧方法,这对很多人来说可能是一个很好的方法。 但是,对我来说,新世界充满了新的机会,当我踏上这一旅程时,我的第一站就是互联网上我最喜欢的地方之一:Udemy.com。
大约一年前,我在通过GIS程序时首次接触Udemy。 大多数GIS软件都具有某种类似于SQL的方法,用于选择和过滤功能。 通常,用户可以使用类似向导的函数来构建查询,也可以编写SQL表达式以返回结果。 直到我了解了一种称为PostGIS的工具(对Postgresql进行空间扩展)后,我才觉得没有必要超出向导的范围。 我发现使用一两行SQL / PostGIS代码可以在GIS软件中花费一百次单击和十分钟。 魔法! 因此,我跳上了亚马逊,在PostGIS上购买了收视率最高的书。 在书中,我完全迷失了自己,意识到在开始理解这本书之前,我需要建立SQL知识的基础。 在搜索在线资源时,我发现在Udemy上进行了八个半小时的SQL培训,费用高达9.99美元。 对于那种钱,我几乎没有损失。 一个月后,我对编写SQL查询感到很自在,但仍然为自己以惊人的低价获得的知识感到震惊。
有了这些经验,每当我现在进入神秘海时,我的第一站就是Udemy。 现在,我已经在该网站上选修了13门课程,总共花的钱比我在大多数此类课程中为教科书支付的钱还少。 因此,当您决定再次尝试精通Python时,我会让您猜到我的第一站。 我还应该提到,Udemy不是唯一的选择,这才是对我有效的方法。 我认为这种学习非常适合成人大脑,因为没有时间表。 这个成年人的大脑需要更长的时间才能拧紧灯泡并打开开关。 以自己的节奏进行课程意味着我可以让事情发展的时间更长一些。 正是腌泡期帮助将抽象的概念和方法转换为Gooey Gui工具。
在开始我的第一门Python课程后不久,另一个来自旧世界的重大变化就出现了,这已经引入了Jupyter / IPython Notebook。 如果您还没有使用过这种工具,那就一定不要浪费时间阅读并开始玩。 你不会伤害我的感情的。 对我来说,这已经改变了游戏规则。 它提供了我一直渴望的Gui风格的代码。 这并不是说它一定是Gui,但它给过程带来了直觉。 具有代码,markdown文本以及易于共享笔记本的功能的单元格使学习Python变得比工作更有趣。

借助这些“新世界”工具和几乎所有主题的负担得起的教育,我开始对这一旅程充满信心,甚至开始有所收获。
进度报告
我已经接受了大约两个月的认真的Python学习(在这种情况下,大约每周需要学习12个小时),我已经可以真正使用Python回答有关数据的问题了。 我最初是从Jose Portilla的21.5小时Python进行数据科学和机器学习训练营的,现在已经完成了50%。 在深入研究机器学习技术之前,它为Numpy,Pandas,Matplotlib,Seaborn和Plotly奠定了良好的分析和可视化基础。 我在“线性回归”部分暂停了一下,因为我决定在继续学习之前希望对Pandas有更好的了解和熟练程度。 如果没有强大的数据处理基础,那么进行高级技术和分析就没有多大好处。
Boris Paskhaver的Python和Pandas数据分析课程的19小时内容和示例数据集的价值超过9.99美元。 我已经完成了本课程的62%,并且对处理数据和产生见解感到很满意。 由于到达时数据很少是干净的,因此使用熊猫的能力是必不可少的技能。
通过这些课程并每天改善Gooey Gui转换感觉很不错,但我希望能够给自己做一个测试,看看种植所有这些Python树是否实际上可以取得切实成果。 在即将到来的温哥华旅行中,我发现自己想知道城市各个街区的Airbnb景观如何。 我特别想知道每个社区的标价中位数是多少。 我最初将其作为GIS问题解决,然后从insideairbnb.com下载列表和邻域数据并导入到QGIS之后,我意识到我并没有真正使用正确的工具来完成此任务。 这是一个Python问题。 QGIS将是我实现可视化所需要的,但是Python是实现此目标的方法。 在经过一个小时左右的Pandas数据透视和中位数价格汇总以及加入Geopandas地理数据框的角力后,我摆脱了争夺战,带着一个新鲜的GeoJSON文件出现了,其中位数价格精美地摆在每个社区附近:

在使用QGIS验证一切按计划进行之后,我将其放入Mapbox样式中以进行交互式可视化:

虽然结果并不惊人,但它们代表了个人的巨大胜利。 它向我证明了我确实可以做到这一点,并使用Python解决问题。 虽然在公认的QGIS环境中完成该项目的最好部分是让我感到舒适,但我已经成功地在Gooey Gui中创建了所需的数据。
谢谢阅读!