困境
未来,会编程可能是最基本的能力,否则将会被社会边缘化。就像如今不会英文,见识和视野将会变得狭窄,进而无法突破,自身的“自由”无法获得,在一个巨大思想监狱之中,只是不察觉或者在井底。
也许因为种种原因,你开始了一门新的编程语言的学习,买了编程书,参考了网上的各种教程,参加了网课,甚至参加了线下的编程训练课程,最终变得中途放弃了,还是觉得
这太难了。
亦或者
编程语言不适合我。
离开了这些教程,还是无法写出一个自己的程序,甚至开始都不知道怎么开始。这种感觉也许你也有。
方法
如何突破这个困境,如果你看过《黑客与画家》,那么在【设计和研究】章节中,保罗·格雷厄姆是这么说的
软件领域以外的人可能没听过“弱即是强”,所以意识不到这种模式在艺术领域普遍存在。以绘画为例,文艺复兴时期就有人发现了这一点。如今,几乎所有的美术老师都会告诉你准确画出一个事物的方法,不是沿着轮廓慢慢一个部分、一个部分地把它画出来,因为这样的话各个部分的错误会累积起来,最终导致整幅画失真。你真正应该采用的方法是快速地用几根线画出一个大致准确的轮廓,然后再逐步地加工草稿。
...
软件开发也可以这样做。原型(prototype)并不只是模型(model),不等于将来一定要另起炉灶,你完全能够在原型的基础上直接做出最后的成品。我认为,只要有可能,你就应该这样做。这样的方式使得你可以利用在开发过程中一路产生的新想法。不过更重要的是,这样做有助于鼓舞士气。
在软件领域,就应该有个大概的原型,而原型之前呢,就是需要一个idea,把这个idea立起来作为自己的任务,这样的任务如果耗时稍长,我们叫做项目。
那么解决无法写出自己的程序的方法就是
构建你自己的项目。
因为项目对应的idea,idea下一步的原型,必定鼓舞你的士气,让你持续的干下去,直到完成。
1. 首先是自己的项目
一定是自己的项目,而不是拷贝过来的代码改一改的项目,这并不属于你的项目。一旦已经学了最开始的入门教程,就需要开始计划自己的项目。也许入门教程里面有很多所谓的项目,但那都是作者或者讲师的项目,并不是你的,所以要挖空心思开搞自己的项目。
2. 怎么计划自己的项目
很多人会有这样的疑问
做什么项目呢?我都没有什么想法,哪来的项目可做。
项目不需要大,项目太大一个人也完不成,而且很容易变成空想。如果实在没什么想法,一下几个资源也许对你有用。
- 这里有500个项目(http://dwz.cn/61bWgp)等着你做,从中选一些自己感兴趣的项目来做。这里面附带有参考答案。
- reddit的每日编程(http://dwz.cn/61bXGD),隔一天就会有一个小任务,周一最简单,周五最难,非常的活跃,也许你可以试试。
- freecodecamp(https://freeCodeCamp.com) 聚焦里面的项目,以项目驱动的模式去完成。
还有一个方法,想一想自己在生活工作中有没有,经常重复繁琐的事情在发生,看看有没有办法通过编程解决这样的事情。又或者自己感兴趣的某个领域是否有足够吸引你的想法,也许可以转化为自己的项目。
再不济,写一个自己的博客程序,写一个股票价格实时追踪程序,自己感兴趣的网站的爬虫程序等等。
一旦,有了自己的项目程序,这个价值比学习20套入门教程有效的多的多,因为每一行代码,你都可以讲清楚为什么怎么干,虽然可能写的并不好,甚至很难被人读懂。
同时,也掌握了一个项目是如何开发出来的,最终完成的产品是怎么生产出来的。
总结
如果你现在已经学习了一段时间编程,并且打算放弃,千万别这么干,因为主要掌握方法你可能很快就会突破困境了,那就是
建立自己的项目,并开始干。