2012年秋天,我走进我的研究生导师办公室,问她她推荐我选修哪门计算机科学课程。我解释说我是一个完全的编程新手。她建议学习C编程。在参加了一些讲座后,我发现在这门入门课程中与我交谈的大多数学生都有一些编程经验。六个星期零80小时后,我退出了课程。进入2013年春季学期。我注册了一个较轻松的计算机科学课程,其中介绍了通过网络进行的计算机编程。我通过了课程的第一季度,轻松地完成了HTML和CSS。然后,我们启动了JavaScript(JS)。我以前的计算机科学课程带来的持续焦虑和压力感又回来了。学期来不及退课,就找了朋友帮忙。一天下午,他向我介绍了我的JS代码,并解释了如何在这里和那里添加一些代码来测试功能是否按预期工作。他向我展示了调试的一种非常基本的形式,即识别和消除计算机硬件或软件中的错误的过程。他和我都不明白这些60分钟的辅导课程会对我的职业轨迹产生什么影响。回想起来,这不是我在计算机科学与技术中学到的最重要的一课。如果您以前从未编写过任何代码,想象一下您的任务是画出完美的鸟。每次绘图完成并返回给老师时,老师都会立即判断它是正确的还是错误的(即二元结果)。每次不完美时,老师都会撕掉试卷。如果你问老师哪里出了问题,他们会用外语(即计算机错误语言)向你解释。最终,经过老师几十天的尝试,他们可能会接受你的画,你的分数来自纠错。读完这个故事,你可能不会认为我接下来的声明如此大胆。在学术界,没有什么比学习编写代码更能考验你承受不断拒绝的能力,比如耐心。学习编码时唯一的安慰是你了解调试的基础知识。现在,当我画一只鸟时,如果喙看起来不错、颜色是否正确、大小是否合适,都会提供反馈。有了所有的反馈,你更有可能在没有那么多拒绝的情况下正确提交。无论您是否定期编写代码,调试的基础知识都是有用的。只要您需要使用任何类型的软件应用程序或工具,它们就适用。根据我的技术经验,这里列出了我最喜欢的各种软件应用程序和工具的调试提示和技巧。使用Web应用程序Web应用程序是用户通过Web浏览器访问的计算机程序。常见的Web应用程序有Facebook、Gmail和Salesforce。如果您在使用Web应用程序时遇到问题,通常可以使用以下方法之一解决问题:尝试使用不同的浏览器。各种功能在某些浏览器中可能无法使用关闭插件。插件可能会影响浏览器中的Web应用程序清除Web浏览器中的缓存重新启动Web应用程序检查问题是否特定于您的应用程序版本。确认您拥有的安全角色。由于您没有权限,某些功能可能不可见。重新启动计算机以导入数据文件将数据文件(例如XLS、CSV、PDF等)导入Web应用程序或一段代码是一项常见任务。常见问题通常与:检查列名引用是否正确。它们可能区分大小写。删除所有无法识别的字符。尝试将文件编码为UTF-8、UTF-16或ASCII。请注意,前导零和/或前导零被去除。检查数据类型,无论是字符串、浮点数还是整数。从数据中删除前导和尾随空格检查文件是否为正确的文件类型(例如,XLS、CSV、PDF、JPG)验证列中的所有值是否都在可接受的规则范围内。某些列在导入时需要某些数据类型(例如字符串、整数等)和/或它们可能要求值出现在受控列表中(例如“红色”和“蓝色”在颜色列下被接受)删除之前任何空行导入后的电子邮件通知可能会发送到您的垃圾邮件文件夹所有编程语言检查整个脚本的变量值以查看它们如何变化在函数中打印出文本以测试是否在执行时使用集成开发环境(IDE)他们在你的代码中使用大量注释stackoverflow和google是你的朋友检查你使用的是哪个版本的编程语言或库。可以在版本之间发生显着变化。将冗长的代码分成较短的部分。例如,与其使用巨大的JSON字符串测试您的代码,不如尝试在一个小的子集上进行测试。更好的是,创建你自己的mini-json字符串来测试。把每一行代码一步步记下计算机的运行情况。PythonTutor提供了出色的代码执行可视化逐行演练。Web工具可用于Python、JavaScript、Java、C和C++。检查是否有人为您的特定用例创建了一个包可以让生活更轻松。例如,在Pandas中操作数据比在原生Python中更容易。JavaScript中的程序在函数中使用console.log()来打印文本或变量值以测试它们是否在脚本中执行经常清除浏览器缓存尝试不同的网络浏览器-插件会干扰代码升级你的网络浏览器-可能无法在旧版本的Python中支持编程对象名称区分大小写(例如,“variable_Name”与“variable_Name”不同)密切注意错误消息。他们通常会解释问题开始的行号。检查它是pythonv2与pythonv3的变化Python有很好的文档在SQL中编写测试脚本时利用限制来提高性能检查您使用的SQL数据库是否有特殊的语法规则或限制。例如,MySQL使用#开始注释行,而PostgreSQL使用-作为注释Donotnametablesorvariables1reservedword通过在Excel中复制对数据子集的预期操作来验证输出表是否正确。顶级调试建议在学习计算机科学和编程时,我希望我的教授强调学习调试代码的重要性。我希望我的提示和技巧可以减少编写代码时的焦虑和沮丧。哦,我保存了最后一个建议。如果你不能解决它,那就睡一觉,稍后再回来。严重地。压力更小,新的视角可以帮助您在几分钟内确定解决方案,而您前一天可能会花很多时间。这个建议再次为我和时间带来了兴趣。前几天我在JS脚本上花了5个小时。几天后我又回到了这个问题,当我重新打开浏览器时很快就知道这是一个缓存问题。没有时间时,此建议不起作用。当心,拖延者!原文链接:https://towardsdatascience.com/the-most-important-programming-lesson-62467a9a4150
