我知道怎样编程,但我却不知道要编什么程

原文:http://www.devdungeon.com/content/i-know-how-program-i-dont-know-what-program?

作者:NanoDano

图片发自简书App


 在新手开发者身上我又看到了一个再现的话题,他们投入了大量时间在学习一门或者两门编程语言上,而且在做编程练习的时候他们一点也不觉得困难。但是,他们却不知道怎么应用他们所学到的知识。有句俗话大概说的是“我知道怎样编程,但我却不知道要编什么程”。而一般人么对此的反应就是“做编程挑战练习”,“为开源项目做贡献”,或者是“写一个游戏”。


 做编程挑战是一项很好的思想上的实践,但对于创造新程序的帮助却是寥寥无几。为开源从中项目做贡献也是其中的一步,从中你能学到一个真正的项目是怎样结构化的,能帮助你掌握你的编程语言,但关于一项工程的完整周期学到的不是很多。有些工程非常的复杂以至于让很多新手望而却步。而动手写游戏则是另一种方式。游戏很有趣,像我最早就是在QBASIC上开始编写游戏的。然而这还是有着同样的窘境——“我想写一个游戏但我不知道要写什么”。

 作为一个既教学生音乐又教学生编程的老师,我从音乐学生身上观察出了一样的模板——“我熟悉所有的和弦而且手感很好,但我不知道怎样写一首歌”。对于音乐,我们有个很好的答案,这路径就是学会创造。音乐家们也不是一开始就自己给自己写歌。甚至有些音乐家从未在创作音乐上有所突破,尽其一生都在唱别人的歌。在编程的世界里,关于这点我想应该是如出一辙的。

 软件社区对此一致的看法是“不要造轮子”。假如你重写一个图书馆项目但这个项目已经存在而且是个成熟稳定的项目时,他们大都会看不惯。但大体上讲造轮子是个值得肯定的规则章程,所以新手们应该勇于尝试造轮子。当你通过造轮子来学习练习这就是件好事。这是学习中很重要的一环。比如你可以写个你自己版本的Is、mv、wget、或者cowsay。如果你想走游戏路线你可以克隆Pong、俄罗斯方块或者太空侵略者。它们不需要完全相同的特征也不要求成为精确的复制品,但你需要以你的目标和模板开始着手去完成它。

 不要老是想着在你写程序之前你就得有最好的idea,我见过了很多的音乐家都有这种思想。他们现在第一次尝试时创作出自己的杰作,为了一首歌倾注心血却看不见蓝图。其实当心中的蓝图形成了,久而久之你就会写出很多的歌,而不仅仅是一首。也许你写的第一首歌不是很好而且有时你甚至想抛弃它。这就对了!别老想着在你练习时第一次尝试就想花10分钟就要创作出史诗般的巨著。你需要学习写歌的过程,从你的自身经历中学分钟就要写出每周投入一定的时间练习。在你写出一个好项目之前你都会经历写出糟糕程序的过程。克服它,解决它,享受这个经历然后你就能开始在任何线索下即兴创作。


 我们让人最开始写“Hello World”很重要的一个原因是,在他们经历的那个阶段,完成了这点说明他们征服了一定数量的基础知识。然后你就能够理解如何编译,如何执行,如何调用函数和传递参数。写出一个现有程序的赋值品是另一与hello world同样重要的一步,他们知识在你旅程中的不同舞台。当你完成了这步,你就已经克服了不少困难。你得弄明白从哪里开始(编程),怎样去计划、组织,如何处理bug,给它个人性化的体验,最后将它打包因此它是个有用的东西。甚至在克隆一个简单的程序时,你也能学到整个过程。

 你也许会好奇克隆一道已存在的程序会如何帮你想出新的点子。很好,这就像音乐,它需要创造性。对音乐来说,怎样从演唱别人的歌中学习去写自己的歌呢?首先,你得了解别人是怎样着手(写歌)的。你还有理解别人怎样将事情结构化,理解他们使用了什么模板。等你这一步熟悉了之后你的大脑中就会开始出现属于你自己的蓝图,然后你就会拥有知识的财富可以利用。你讲碎片化的知识凝聚在一起,你从不同的地方学到了知识,重用了你所见过的模板。你也许会调整这些框架,将他们整合起来,或者重新将他们完全打乱。正如他们所说的,你需要找到打乱他们的规律在编程的时候我们通常都有框架可用,比如MVC。MVC是一种用来写程序的稳定的人们已经接受的框架。在音乐中,一般也有系列(的音乐)。比如I-V-vi-IV。当然这并不是唯一的一个,但它值得你去了解。

 总而言之,则是个经历与创造性相结合的过程。创造性是人们在编程时经常容易忽略的一个概念,但它却是至关重要的。你们注意到了有不少程序员自身还是音乐家的吗?音乐包含了许多科学分析,结构化和模板,尽管很多人认为它只是个单纯的创造的过程。编程通常被认为是个严肃的技术行为,尽管它也是个创造的过程。通过克隆程序你可以培养你的创造性。当你搞定了这一步,你会发现你对于调整程序有了新的思考方式,甚至你会加入一些带有你个人特点的东西,。你也会对新的工程激发出新的idea。创造性就是通过这种方式出现的,但你首先必须知道如何唱一些翻唱歌曲。

 久而久之,你将会发现你能够把编程应用到几乎每件事情上。你能将任务自动化并解决实际问题。你讲轻松解决一大串你想要做的但却没时间做的事情。你还可以再匆忙中解决问题。“噢,有一份Excel表格,其中有100张表需要重定格式,分成不同的文件里,还要转换成csv。信手捏来!” 写你需要的程序。其他项目的idea就会自然而然的出现。

 你们有多少人有过这种情况——“我不知道要编什么程序”。你怎样解决它?如果其他人有类似的情况你会给他什么建议?


文中链接需要翻墙,如果需要欢迎加群545858232交流,也可以关注攻粽号:划水桨

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容