总结一下为了复习英语,在编程上面的努力

之前为了学习英语,而想过自己编写一个抓取不会的单词,然后再复习的插件,但是现在已经放弃了。 程序也编了不少了,是用 C++写的,为什么要放弃呢?因为已经没有必要做了,我已经选择了 anki 与 python 相结合的方法。 但是无论是用 C++写抓取单词并且复习的程序,还是用 python 写爬虫爬取 collins 字典上面的英英解释,都有一些踩坑的经验与踩坑的教训,不吐不快啊,便写一篇文章整理一番: 单词抓取程序 一开始,我想写这个程序的动机,完全与考研没有关系,而是基于如下的想法: Emacs 上面有翻译插件,但是没有记录生词的插件,我应该可以做一个出来,顺便练习一下 C++,而且也能用来学习英语。 而如果仅仅是一个单词,也没有那么容易背下来,市面上面的单词书也大多数都是不仅仅有单词,也有对应的例句。 我可以写一个单词抓取的程序,抓取单词与当前单词所在的句子,然后将它们存储起来,实现查询,复习,等功能。 这种方法难道不是比买一本单词书,然后照着书上的例句记单词更加有主动性,也更加让人印象深刻吗? 想法是美好的,但是没有考虑到实际,也太过于热衷于规划教堂,而不是去从小木屋做起积累经验,最后规划了非常多的功能,但是一直写,写到现在也还没有写完,并且最终迎来的也不是写完,而是放弃,不得不说,悲惨。 但是我也并非不是完全浪费了时间,我也从这些事情里面得到了一些益处: 得到了教训?哈哈,确实,但是教训到最后讲。 我得到了一些写 C++的经验,而且也学会了很多的 C++技巧,很多的学校考研的复试是考 C++上机的,而且很可能数据结构与算法我也需要使用 C++来学习,所以这种练习也是有益的,不是在浪费时间。 我以此为动力,看完了 C++ primer 这本书,也学习了一些库的使用,还因为这个项目,学会了使用油管看编程的视频,这些习惯或者说这些经验,也都是财富。 我从这件事情里面得到的教训是: 需求要明确: 作为一名软件的开发人员,需求在刚刚开始的时候要尽量明确。 至少要做到将一些自己绝对不可能会扩展的方向规定死,而不是模棱两可,觉得一个船的程序需要考虑到以后飞起来怎么办而留出扩展接口。 杜绝完美主义: We are not a programmer, we are problem solver! 一个程序,只要能解决了当前的问题,就是好程序。没有必要去考虑那么多的条条框框,把问题解决了,再谈优化。 没有必要追求一次就写好 正如好书、好电影,人们想一遍又一遍以求看得更加深入看一样,一段好程序,很难一遍就能够做到最好。 如果真正想要写好一段程序,那么一开始不妨带着“打草稿”的心态去写第一遍,然后等到能够 run 起来了,并且在几次优化之后,再重新开始写这段程序,不要有心理负担。 stackoverflow 永远的神!...

February 3, 2021 · ColaWithSauce