发表时间:2022-03-24来源:网络
这是 Eric S. Raymond 在他的文章《How to learn Hacking》中所描述的一段话。作为一个已经从入门走到进阶的编程者,我非常赞同他所说的这句话。
然而,大部分老师,课本和大学课程都会通过琐碎的代码块练习来教授编程知识。
即使这样的编程练习可以让你明白条件语句和循环的工作机制以及如何编写一个基本的函数,但是却不能让你对编程有一个更深的思考。
琐碎的代码块练习所存在的问题就是它不能够让你做到以下四点:
● 提升你的代码直觉-比如如何模块化你的代码
● 解决如何编写一个可重用的程序,以便于扩展这个程序去解决新的应用问题
● 清楚如何权衡代码的可读性和简洁性
● 关注如何保持良好和一致的编程风格
总之,他们没有教会我们关于创建更大程序所需要掌握的核心设计思维。

除了这些缺陷,这种学习方式还非常无聊!拥有前面所述特点的代码设计首先可以让你的程序变得有趣。编写小型的代码块没有足够的空间让学生去思考并且获得必要的代码直觉。另一方面,在真正的程序设计中,这些技巧又是非常必要的。
这意味着,除了编写琐碎的代码块,你必须依靠自己去发现问题,通过编程解决这个问题。
一个好的问题可以提供一个平台,让你在上面应用你的知识,看到它的效果,总结并改进,然后重新实现你的解决方案。
选择一个你想解决的问题非常重要——这对你来说也许并不简单,但同时也会让你觉得“如果我写一个程序去解决,这会很酷!”。当你尝试编写一个程序去解决你所关系的问题时,你将会有动力去学习和成长。你会总想着如何改进自己的解决方案。
找到一个好问题并尝试去解决它一开始会让你觉得很难,这只是因为你把标准定得太高。你可能看了很多遍《社交网络》,并且想要让自己的解决方案变成下一个谷歌或脸书。但这只会让你定立不切实际的目标,降低你的学习速度,耽搁你的发展。
记住,你的目标不是去写一个价值十亿美元的软件,而是通过编写一个程序为自己提供一个练习和学习的平台。
你是否感觉到自己在做一些多余且无聊以至于可能让自己变笨的事情?你是否曾希望能拥有一些聪明的宠物或精灵为你做这些事情?你知道它们可以把这些事情做的更快,因为它们不会像自己一样偷懒。
你知道吗,你已经有了这样的宠物——你的电脑。每一个单调枯燥的任务都提供了一个机会让你去编写一个程序,并告诉这个“聪明的宠物”应该怎么做。
在你选择好了问题之后,你需要制定最佳解决方案,让我们来看看Brian W. Kerninghan在他的书中是怎么描述“好软件”的。
遗憾的是,只有少数的《xx编程入门》书籍涉及到了这些原则,更令人遗憾的是很多大学的编程课程完全忽略了编程的这个方面。
当你有一个自己发现的问题,你将会拥有一个你非常关心并且愿意持续优化它的解决方案。
在这一部分,我将要使用自己的一个例子来解释我想要表达的东西。
在日常生活中,我经常使用Chrome标签!但我发现了一点问题。

问题1:为具有长标题的网页书签添加注释
如果你仔细看,你可能会发现我在这些网页书签的最后都添加了个人注释。这是因为,有时候,我很难想起当初收藏网页的具体原因或动机。当然,网页的标题已经能很好地解释网页包含的内容了,但是却不能解释我当初为什么觉得这些内容很有用,这就是为什么我添加这些注释的原因。
我一般会在网页原标题和我的注释之间使用符号“||”分隔开,那么,问题来了。
有时候网页的原标题真的非常长,就需要“Ctrl+left”,跳到最后再添加个人的注释!好麻烦!
我意识到这个问题可能不是很严重,但是它有时确实会减缓自己收集知识的速度。而且,正如我前面所说,我们不是为了制造一个十亿美元的软件,问题虽小,着手解决它才是最重要的!
问题2:将网页书签和标题一起复制
我收藏了每一个我害怕失去的好网页,并且根据它们所属的话题进行归入到文件夹,添加注释。因此,它们对我来说非常有价值。每当有人问我一些我所了解的话题,我都会尝试引导话题,以便我可以分享该话题的一些书签文件夹。
不,我不是想夸耀自己知道一切或证明我不是自私的人。我是真的认为这对他们有所帮助,因为:
这个文件夹包含了我关于这个话题的知识。通过网页的标题和个人的注释,获得这个文件夹的人就不只是获得一堆超链接,还获得了它的附加价值。我相信这比口头解释和填鸭式灌输更好。只有当人们自己去浏览了这些网页他们才真正学到了东西。那么问题来了,据我所知,Chrome无法提供快速简便的方式将网页书签和标题一起复制。如果我复制一些网页书签,粘贴在一些编辑器里面,我只能得到一个超链接。
所以,如果我想要分享链接、标题(包括注释),我就需要切换到编辑模式,全选标题,然后粘贴到别的地方,然后对超链接再做一遍同样的事情。如果我想要分享一大堆书签怎么办?就需要把前面的流程对每一个网页书签做一遍!


一项非常单调枯燥的任务
然而,这才是我理想中的为Chrome添加网页书签的样子:
● 我希望点击地址栏右上角的星形图标后能有一个“评论”输入框伴随着“名称”和 “文件夹”.

我认为网页标题是书签的一个很好的默认标题。所以,我没有在弹出的窗口中添加“标题:”的输入框。
在撰写本文时,我写的代码没有模块化,也不便于管理,它只是能跑起来而已。我接下来会优化它,这才是我真正的编程课题。
问题2: 不可解决?据我所知,Chrome不提供任何方式让你可以生成并下载网页书签的文本文件到本地。这意味着我也不能下载这些网页书签。
官方文档为我提供了一个解决方案。

读完后,我想,这就是我要做的。
我将要使用我自定义的书签管理页面来重写原本的网页书签管理页面。
在其中,书签将不会像现在这样显示在可选择的选项卡中。

如果对于每个网页书签,都有简单的文本表示,就像大多数其他网页一样,那将会很棒(比如你正在阅读的这个)。每个用文本表示的书签应该有如下的格式:
*标题- < bookmark_title >
*注释- < bookmark_comment >
* URL - < bookmark_url >
虽然我还没有实现这个页面,但是我有信心能在近期实现。感谢你的阅读!
项目地址:https://github.com/nityeshaga/document_bookmarks-extension
原文链接:https://medium.freecodecamp.org/learn-how-to-be-a-better-programmer-by-automating-the-boring-stuff-74a67a568c50
作者:Nityesh Agarwal
译者:小龙
人生苦短,我用 Python!简洁高效,新手友好!来自硅谷的「Python 编程入门」基石纳米学位课程,已经开放报名,限量课程席位!点击以下,免费预览和体验课程。
http://weixin.qq.com/r/EK_6 (二维码自动识别)
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14