Python老司机给上路新手的3点忠告

简介: 对于初学者,尤其是自学者,太多问题可能成为你编程之路上的坎,一不小心就从入门到放弃了。

在你学习编程的过程中,是否有过以下经历,或正在面临类似的局面:


  • 网上找了很多资料,不知道从哪里看起
  • 买了本书,过了很久也没有看完第一章
  • 开始还能跟着写几行代码,后来突然就看不懂了
  • 也看了些教程和视频,似乎明白了,但还是没法自己写代码
  • 入门了很多次,每次过两个月就又全忘了


对于初学者,尤其是自学者,太多问题可能成为你编程之路上的坎,一不小心就从入门到放弃了。

我在知乎上有个超过万赞的回答:你是如何自学 Python 的?


https://www.zhihu.com/question/20702054/answer/19022301没点过赞的赶紧去点个赞支持一下)回答里面分享了零基础自学 Python 的一些经验。在原答案的基础上,今天再展开来谈一谈。

你需要一个明确的学习目标


很多人会说,我有目标啊,就是要学会编程,然后还要找份高薪的程序员工作。这是一种目标,但不是明确的、具体的、可执行的学习目标。这就好比说“我要幸福”、“我要做自己想做的事”但没有具体标准一样,对你的行动没有任何指导意义。

你要学编程,是为了去写一个自动脚本抢票抢优惠券,还是平常处理大量文件时候可以自动化?是为了验证你股票上的交易策略是否可靠,还是做一个网页推广自己的品牌?如果你的目标是为了找工作,那是想做开发游戏还是桌面软件,是数据处理还是网站,前端还是后端?编程是一个很广泛的概念,明确你的目的,学习时才能有方向,也更能坚持下去。

也许有不少人觉得,我也不清楚,只是想多学个技能,总归会有好处吧。而且我都还没学呢,怎么知道之后要做什么?这个出发点可以理解,但我仍然建议:必须给自己定一个小目标。哪怕你开脑洞随便想一个需求也是好的。不然这种先学了再说的状态很难让你坚持下去。

你不必担心定错了目标就走上了弯路,它总比没有目标要好多了。它只是你学习初期的一个里程碑,等你能顺利完成它,后面还有更多的目标供你选择。

先建立整体的认知


在软件开发领域有这样一句话:

过早的优化是万恶之源。

在编程学习里同样有效。很多人会追求某种一步到位的终极路线,表现出来就是:

  • 希望别人推荐一套最佳教程
  • 先理论后实践
  • 钻入细节的牛角尖

似乎看起来没什么不对,明确路线、打好基础、按部就班,很符合一贯的教育理念啊。就好像你执意要优化你的代码一样,如果我说你这么做是错的,倒显得我有问题。

但事情是分时机的,正确的事情在不合适的时间去做,就会导致错误的结果。过早地陷入局部细节,追求理论基础,很容易让初学者困惑,以至于在某个点上卡壳,无法继续学习下去。浅显易懂和专业性强本来就是很难调和的两个维度,很多教程之所以优秀,是因为它内容体系完善,但对于你来说真的合适吗?

对于早期学习者,尤其是非专业的自学者来说,囫囵吞枣、不求甚解才是更合理的打开方式。



借用网上的这张图,编程与之很类似。如果说图上的点是编程相关的各种概念和技术,学习的过程就好比绘制这张图:你通过学习,了解了这些技能点,并将其连接起来。

一种绘制方法就是先画好一个点的细节,再从这个点出发精确画出通往下一个点的线,依次一个个画下去。这是种看似稳妥,实际上却低效且很容易出错的方式。更合理的方法是:先确定纸上点的大体分布,画出他们的轮廓,然后画好关键位置上的点,连接关键点,之后再逐步完善分支和细节。

学习编程是一个反复迂回、不断迭代的过程,而不是一路到底的单行道。

在刚接触编程的时候,你根本无须在意太多细节,而是更应该对编程有个直观的印象,知道技术能够实现什么,体会编程的乐趣。这和上一点是相辅相成的:当你有了一个目标,就可以去了解达到目标需要哪些知识点、怎样的学习路径,以此来确立自己要学习的内容;而当你对编程的有一个整体的认知,又会更清楚自己学了编程可以做什么,让自己的目标更明确。

选择合适的起点和路线


在有了明确的目标,建立了整体的认知之后,接下来的事情就很自然了:选择一个合适你的起点,朝着通往目标的方向,开始你的学习,点亮技能图谱上的点,并将其连接起来。否则,盲目地从一个不恰当的地方开始,比如选了一本起点较高的书,或是上手就去折腾某个框架,就会事倍功半,效率很低,甚至导致放弃。所谓“欲速则不达”,就是这个道理。

如果你做了上一点,有些基本的整体认知,自然就会明白那些“21天精通XX”、“两个月成为数据分析师”的宣传语有多荒唐。

以上三点,通俗来说就是,你要弄清楚:

  1. 学了干嘛
  2. 学哪些内容
  3. 从哪学起

你去随便找一款目前市面上流行的手机游戏,会发现它们的新手引导也是类似的套路:

  1. 向你说明游戏的胜利条件,引导你取得一场胜利(明确目标)
  2. 让你体验一套高级别高配置的阵容(整体的认知)
  3. 指导你游戏基本操作和初期的升级(起点和路线)

这些游戏经过精心设计,力求让玩家成瘾。对于学习也是如此,让自己尽快“上瘾”,才能深入下去。

以上只是学习编程的一个开端,针对上手之后的建议,我还有几点重要提示,会在接下来的文章中继续分享。关于学习编程的经验,欢迎大家留言讨论。

相关文章
|
存储 算法 数据可视化
python老司机必备-内存泄露分析优化
python老司机必备-内存泄露分析优化
1182 0
python老司机必备-内存泄露分析优化
|
6月前
|
机器学习/深度学习 存储 自然语言处理
惊艳!老司机熬夜总结的Python高性能编程,高效、稳定、快速!
Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理机器学习、科学计算、推荐系统构建等。 能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来自其他语言,可能不如别人的自然。
|
5月前
|
前端开发 JavaScript API
告别‘老司机’时代,AJAX与Fetch API让你的前端与Python后端无缝对接!
【7月更文挑战第14天】前端与后端交互的关键技术是AJAX和Fetch API。AJAX允许不刷新页面更新内容,而Fetch API提供了Promise基
73 0
|
6月前
|
机器学习/深度学习 存储 自然语言处理
惊艳!老司机熬夜总结的Python高性能编程,高效、稳定、快速!
Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理机器学习、科学计算、推荐系统构建等。 能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来自其他语言,可能不如别人的自然。
|
7月前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
算法 Python
蓝桥杯-快乐司机-python
蓝桥杯-快乐司机-python
80 0
|
程序员 Python
想要成为python大神吗,这17个老司机收藏的国外免费学习网站不可错过哟!
前言1.用Python编写代码一点也不困难。事实上,它一直被称赞为最容易学习的编程语言。 如果你想学习Web开发,python是一个很好的开始,即使你想玩游戏,也有很多资源可以用python开发游戏。
2945 0
Python老司机:给入门Python的小白支几招,简单粗暴
短时间掌握一门技能是现在社会的需求。节奏越来越快,现在不是大鱼吃小鱼,而是快鱼吃慢鱼的时代。人的时间比机器的时间值钱,而机器可以堆!那么Python作为最简单高效的语言,我们就必须掌握它, 那么今天就给小白一份Python入门教程! Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名。
|
Web App开发 数据采集 Python
Python老司机手把手带你写爬虫,整站下载妹子图,一次爽个够!
其实很多编程语言都可以做爬虫,例如java、c#、php等等甚至excel都可以抓网页的图表,那么为什么我们要用Python呢?它简单、便捷,而且有好多库可以选择,可以说python是写爬虫的首选了! 今天就来带大家写一个简单而又完整的爬虫,我们来抓取整站的图片的,并且保存到电脑上! 准备工作 工具:Python3.6、pycharm 库:requests、re、time、random、os 目标网站:妹子图(具体url大家自己去代码里看。
1908 0