善始者实繁,克终者盖寡,这句话用来学习编程的过程也很合适。在成为顶尖选手之前,总会遇到很多困难,甚至想放弃。本文作者 Jeff Hale 是 Medium 社区中非常有名的人工智能和技术领域的专栏作家。在这篇文章里,他给所有的编程者提供了 10 个真诚而且实用的建议以及快速解决编程错误的5个步骤。

在我下决心将编程进行到底之前,大概经历了四次放弃又捡起的过程,而且我观察了一些数据科学的学生,这种事不光是我一个人做过。缓慢且乏味的学习过程,随之而来的挫折感,这些都是造成半途而废的原因。因此,我开始思考如何消除那些本不必要但确实阻碍了人们成为合格程序员的困难。学习都会有困难的,但是我们至少要减少一些没有必要的障碍。这里有 10 个技巧可以帮助你更快地跨越障碍,获得更多的成就感。如果你已经写了很多年的代码,这里的许多技巧可能显得用处不大,但是对新手来说就是另外一回事了。而且就算你是个编程老手,也可能会看到一两个节省时间的小窍门呢!十个小技巧分屏在大多数情况下,我建议你在学习编程的时候把屏幕分成两个并排的面板——一个给你的Jupyter notebook,另一个放浏览器,浏览器用来查看文档、Stack Overflow 和一些教程。如果你的屏幕很小,建议在负担得起的前提下换个大点的显示器。在美国,你可以花 100 多美元在亚马逊 (Amazon) 上买到一台 25 英寸的显示器。等你越来越熟练的时候,你就会想要专注于一件工作——这时候可以用键盘快捷键在分屏和全屏之间切换。在 Mac 上,我喜欢用 BetterSnapTool,如果你的系统是 Windows,可以到这篇文章(https://www.excelcampus.com/tips/split-screen-view-windows-mac/)上看看。屏蔽干扰让电脑和手机静音。如果可以的话,把手机拿开。如果你在一个嘈杂的地方,播放一些安静的纯音乐或者使用降噪耳机。你越能集中注意力,你就能学得越快。亲手把示例代码写一遍你不可能读一遍教程就能记住这些内容,复制粘贴没有什么实际价值,你必须先自己写一遍,然后想想怎么扩展一下,最后根据记忆打出来。「理论上,理论和实践之间没有区别。但实际上是有的。」——本杰明·布鲁斯特(不是约吉·贝拉最先说的)。温故知新学习一个新概念之后,在几天内再测试一下自己。研究表明,需要长期记住一件事时,每隔一段时间重复一次比直接死记硬背更有效。通过教别人来学习能教会别人,说明自己彻底懂了。向别人清楚地解释一个概念(口述或是书面都行)会迫使你理解这个概念的本质,建立关系,并创建类比,使得头脑中的联系得以巩固。这个技巧是 Feynman 学习技巧的一部分。打好语言基础再调库在使用编写好的程序库之前,要充分理解一门编程语言。学习变量类型可能很无聊,调用带有属性和方法的类似乎比较高级。但是一旦你很好地理解了一门语言,这个库的使用会容易得多。这样可以减少错误,节省大量时间。一次只学一个东西不要试图同时学习两个东西,这样你学习的时间不只是变成两倍,而是变成十倍。同理, 不要分心于闪闪发光的东西。找个地方,把那些诱人但和你正在学习的东西不相关的 url 保存一下,Chrome 的插件 One Tab 就很好用。睡觉,锻炼,保持复原能力让你的大脑处于最好的状态,保持神经连接的活跃。如果想要了解更多帮助你保持好状态的技术,可以看一下 Memorable Python 这本书。加快打字速度你打特殊符号的次数越多,你打字速度就越快。然而,你只要做一件小事就能很大程度上加快这个过程——学习好的触摸打字方式。这个网站(http://www.speedcoder.net/lessons/py/1/)里是一个 SpeedCoder 的相关练习。学会使用快捷键这里整理了三份快捷键使用方法:Chrome 浏览器:https://support.google.com/chrome/answer/157179?hl=en)

Mac :https://support.apple.com/en-us/HT201236

Windows :https://support.microsoft.com/en-us/help/12445/windows-%20keyboard-如果你是数据科学家或数据分析师,我在 Github 中对Jupyter Lab 的快捷键做了整理 (https://gist.github.com/discdiver/9e00618756d120a8c9fa344ac1c375ac)。通过在~/的 Bash 配置文件中添加 ~/.bash_profile:alias gs="git status"就可以为 Mac 或 Linux 终端创建快捷方式。然后重新启动你的终端,这时候你需要键入的就是两个按键而不是两个单词了。福利:如何快速解决代码中的错误这个话题太大了,但是却并没有得到足够的重视,我也因此在考虑是否需要写一篇。这部分算是福利:「一个快速解决错误的五步法」。

每一个程序员都会碰到很多错误。当你有经验时,碰到错误大概就只会耸耸肩,因为你可以在一分钟内解决它们。但是对于新手来说,一个错误可能会耗费 20 倍甚至更多的时间去解决。对于初学者来说,错误会让你觉得正在脚踝深的泥浆中跋涉。

这五个步骤可以帮你快速解决 95% 的错误。看看是不是代码打错了有可能少括号,或者是变量或函数拼写错误。所以一定要在提供代码高亮显示的软件中进行输入,以避免错误或是快速修复缩进、少括号和类似错误。有很多好的代码编辑器可供选择。如果你是新手,我建议你使用 VSCode——它拥有最大的市场份额,而且是免费的,并且有很多方便的功能。先读错误信息里的开头和结尾相比于开头和结尾,错误信息的中间部分没那么有用。之后再看你的代码,看看你是否能够根据错误消息中的提示找出问题所在。如果无法快速解码错误信息,请将信息的最后一行复制并粘贴到谷歌中(如果使用的是 Python),其他语言可能在这之前也有错误消息)。新手最大的错误是没有尽快用谷歌来查询错误信息。

对网络资源进行筛选以分清良莠这一部分列举一些快速找到高质量资源的启发性方法吧。Stack Overflow、Medium、Reddit、Hacker News、Dev 和其它的线上社区会有反馈机制(如赞等)来显示哪些答案是高质量的。这些方法并不完美,但是通常效果也挺好的。大部分解决方案都是在 Stack Overflow、 Towards Data Science、GitHub 中对应问题的 issues 板块中找到的。

在谷歌的搜索结果中,博客的质量是成败的关键。如果你用的是 Python,我可以根据我的经验推荐一些好的网站:Real Python (https://realpython.com/)

Data School (https://www.dataschool.io/)

Dataquest Blog (https://www.dataquest.io/blog/)

DataCamp Blog (https://www.datacamp.com/community/blog)

Practical Business Python (https://pbpython.com/)

Chris Albon (https://chrisalbon.com/#machine_learning)过滤旧资源对于大多数问题,你需要的是近几年的资源。因此当在谷歌上搜索一个错误的解决方案时,你可以过滤掉旧的结果,比如在搜索条件里设置时间限制,或者在查看结果片段时通过大体扫一遍来肉眼过滤等。

就比如说,如果你刚开始接触 Python, 2009 年有关 Python 2 的内容可能对您没有帮助。API 在不断发展,过去使用的方法通常在现在并不适用。你更有可能在相对近期的结果中找到一个适用的答案。读懂错误信息这个网站(https://inventwithpython.com/blog/2012/07/09/16-common-python-runtime-errors-beginners-find/)记录了常见错误信息在 Python 中的含义,这个网站(https://pythonforbiologists.com/29-common-beginner-errors-on-one-page)则可以帮助你解决常见的 Python 错误。如果在用 Python 的 pandas 库来做数据处理,有很多常见的错误。这个网页(https://gist.github.com/discdiver/2f8df1c3f1c66f47129568a82c0666e5)里是我用Jupyter notebook 整理的常见错误及其解决方案。总结只要有正确的心态、一些指导和大量的实践,任何人都可以学会编程。这个过程可能没那么快也不算简单,但希望这篇文章能使这个过程变得不那么令人沮丧。原文链接:https://towardsdatascience.com/ten-tips-to-save-you-time-and-frustration-when-programming-1f5a4b61f390

敲代码括号技巧_老码农的「锦囊」:10个编程技巧、5个纠错步骤,让你的编程之路少点坎坷...相关推荐

  1. 前端笔试能查吗_老码农的字节跳动前端面试总结

    有幸得到猎头推荐参加字节跳动工程效率部的前端面试,为此准备了一周的时间,面试前内心十分忐忑,略微有些小紧张. 由于是下午面试,所以早早起床,翻出许多年前购买的,几近翻烂的<JavaScript设 ...

  2. pycharm 查看代码行数_【收藏】提高PyCharm效率的10个小技巧

    PyCharm是最常用的python开发IDE,程序员可以通过PyCharm强大的功能节约大量时间用来 摸鱼 工作,提高生产效率. 阿狗总结了10个自己会用到的PyCharm中可以提高撸码效率的小技巧 ...

  3. 开发无框架单页面应用 — 老码农的祖传秘方

    什么是单页面应用(SPA)? 维基百科上的描述是这样的: JavaScript 1 2 3 "A single-page application (SPA), is a web applic ...

  4. 老码农揭开行业黑幕:如何编写无法维护的代码

    作者 | 老码农的自留地 来源 | 程序员的那些事 如何编写无法维护的代码 让自己稳拿铁饭碗 简介 永远不要(把自己遇到的问题)归因于(他人的)恶意,这恰恰说明了(你自己的)无能.-- 拿破仑 为了造 ...

  5. 老码农冒死揭开行业黑幕:如何编写无法维护的代码

    [程序员的那些事 注]:这是一篇非常经典的文章,我们以前发过多次.虽然部分内容是针对 Java 语言,但其他部分对所有编程语言都有参考意义.今天重新推荐给新读者朋友,老朋友也值得重温. 编译:我们专栏 ...

  6. 老码农:如何写出让自己满意的代码

    今天有位朋友在微博上问我这样一个问题: "@老码农的自留地 ,最近出于学习目的写一个管理系统,越到后边,越觉得自己前边的代码写得烂.前辈,我想让代码写得更好一点,能不能谈谈你的经验,给我指点 ...

  7. 老码农:这是我见过最操蛋的代码,切勿模仿!

    作为一名老码农,我的心这次凉透了! 事情起因很简单:我在全国最大ZZ的同性组织某Hub上浏览时候,发现这样的一条信息: Python 超过 C++.JS 薪酬排行第一 (最大招聘网站Indeed.co ...

  8. 老码农:这段代码绝了,切勿模仿!

    作为一名老码农,我的心这次凉透了! 事情起因很简单:我在某Hub上浏览时候,发现这样的一条信息: Python 超过 C++.JS 薪酬排行第一 (最大招聘网站Indeed.com数据) 噗,996刚 ...

  9. python培训内幕_刚刚,Python 内幕被爆出!老码农:没控制住,心态已崩!

    作为一名老码农,我的心这次凉透了! 事情起因很简单:前天我晚上正在全国最大的同性组织某 Hub 上浏览时候,发现这样的一条信息: Python 超过 C++.JS 薪酬排行第一 (最大招聘网站 Ind ...

最新文章

  1. boost::multi_array模块实现创建负步幅视图的小测试
  2. 3dContactPointAnnotationTool开发日志(二十)
  3. php通过正则表达式下载图片到本地的实现代码,PHP通过正则表达式下载图片到本地的实现代码...
  4. The Castle(信息学奥赛一本通-T1250)
  5. 可重入性和线程安全性
  6. 类c语言实验报告,内蒙古工业大学 C语言实验报告
  7. 计算机编程的计算法,计算方法
  8. 前端工程化开发之yeoman、bower、grunt
  9. java 线程释放_如何手动释放一个java线程占用的资源
  10. ermaster连接oracle数据库表,window连接远程服务器报函数不支持之解决方案
  11. 百度硬盘搜索插件开发指南(摘自百度)
  12. 软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始
  13. RabbitMQ03高级篇(消息可靠性投递,Consumer ACK,消费端限流,TTL, 通过代码创建队列和交换机以及绑定)
  14. linux操作系统和ucos操作系统,嵌入式操作系统ucos与linux比较
  15. Mac 用久了空间不足?教你如何清理磁盘空间
  16. 测试人员绩效考核KPI指标
  17. 图像处理基础之颜色空间
  18. 编程求一个9位的整数,数字由1-9构成,每个数字只能出现一次。并且这个整数的前一位能被1整除,前两位能被2整除, ......以此类推,前九位能被9整除。
  19. [病毒分析]熊猫烧香
  20. C4D R19学习之002视图窗口与基本操作

热门文章

  1. c 数据库mysql课程设计_C语言连接MySQL数据库(课程设计总结)
  2. kafka基础入门(五)
  3. 从冯导撕逼和李安120帧电影说起,聊聊VR电影的发展
  4. 微信短链接服务器,微信短网址w.url.cn 接口api开发文档
  5. WinPhone开发疑问与解答
  6. 触摸液晶屏 如何进行日常维护?
  7. 基于Lucene框架的“虎扑篮球”网站搜索引擎(java版)
  8. 20个Python 3实战项目源代码,助你快速提升编程技能!
  9. focuskye 学习及下载
  10. 如何家庭种植铁皮石斛