8条学习编程的可靠建议

掌握编程的艺术通常需要数千小时的努力,如果你掌握了技巧,必定能缩短时间(同时获得更多的乐趣)。以下是几条帮助你在编程之路上加速成长的建议:

去解决实际问题

理论很无聊,所以理论问题通常也很无聊。如果能从在学习编程的同时能获得一定的外快,相信你一定更有兴趣。因此,首先要扪心自问“我为什么要学这个?”如果答案是“为了创造”,那么,去做吧!好消息是,你不必一上来就需要了解如何编码:在这之前先(粗略地)描绘出你想要创造出的东西的模样。你缺少什么应用吗?缺少你需要的工具吗?

这样做的好处在于,你不必去做什么宏大的项目,你可以从简单但是实用的小工具入手。但无论是什么,你都需要关心它。我第一个项目是用Ruby写的,自那以后一直用了很长时间,虽然从未发布出去。我很自豪,不仅是因为它的成功,更是因为借此我对Ruby(不是Rails)的掌握深刻了许多。

站得高才能看得远

这里我推荐了一本书,并不是因为收了多少好处费,而是因为它真的很不错!我从未看完哪本编程书,但Code Simplicty真的让我着迷。这是一本关于编程艺术的的书,涵盖了几乎从入门开始的一切,它会告诉你应该何时向应用添加新功能、何时去优化代码(过早地优化会这样),以及其他有意义的东西。

如果你读过这本书(或者其它类似书籍),一定会对你以后的研究带来积极的影响。

谨慎地挑选技术

你应该从ANSI C开始第一个项目吗?除非真的情况特殊,否则答案应该是否定的。优秀的程序员知道如何编程,而非熟悉某个特定的编程语言,他们能够在很短的时间学会适合指定项目的编程语言。但第一次使用并不容易,因为你必须掌握的不是语言,而是通用的编程理念(程序逻辑、流控制、变量类型、范围、对象等等)。因此你需要花时间思考你想要在编码时使用的语言或技术。

这应该在你选定项目之后,一旦你决定了要实现的东西,那么可选的技术就不会太多。比如,你想要开发一个原生的iPhone应用,那么Ruby on Rail肯定就不合适;但如果你想做Web编程,可选语言非常之多,每种语言又会衍生出更多的框架。

花点时间研究下可选方案——该语言的社区怎么样?容易得到技术支持吗?有免费好用的开发工具吗? 《Which Programming Language Should You Learn For Software Development?》这篇文章做了详细介绍。

不要花费过多的时间去学习大块知识

我曾经花了几周时间看一个PHP的视频教程,大概有将近30个小时。我现在会PHP吗?仍然不会,我的意思是我看过很多PHP代码,但这纯粹是在浪费时间,不编程就想要掌握这么多的知识是不可能的。对我来说,仔细地编写一个线程的例子非常糟糕,这会失去很多学习的机会。我只有在创造自己感兴趣但经常出问题的东西时才能保持兴趣。解决一个你感兴趣的问题才能学习新知识。盯着屏幕傻看30个小时还是算了吧……

花时间去配置开发环境

不仅仅有很多编程语言,开发环境也有很多。有的人使用文本编辑器,例如Vim和Notepad++。挑选一个编辑器,并使之最适合你是个非常个人化的过程,但这只是开始,接下来你还需要设定键盘快捷键、颜色方案、插件等等。

但这也仅仅是一小部分——设置开发环境还需要安装你打算使用的编程语言、代码库、版本控制系统(如Git)等等。也就是说,你需要为此花上数小时。但是没关系,就像工匠需要先熟悉他们的工具一样,这也是工作必要的准备——学习使用快捷键、调整代码高亮显示,工具的体验越好,你就越能专心于编写代码,因此这是一个不容略去的环节。

不要着急——截止日期是最大的敌人

无论你打算做什么,要记住——你是在学习!所以忘了截止日期吧。如果仅仅为了保证代码的正常工作而编写难看的代码,这是得不偿失的。虽说有胜于无,但如果你以完美为目标而小心翼翼地设计、构建,一定能从中学习地更多。

保持耐心,专注细节。

多问问题

MakeUseOf AnswersStackOverFlow都是不错的问答网站(国内也有类似的网站可以提问),每一门语言也有专门的在线论坛,无论你选择的是什么语言,不要害怕问问题。如果人们的回答不够好,试着找出究竟在哪儿做错了,然后提出更详细的问题。如果还是不能解决,你仍然可以去别的社区试试,无论如何,问出你的问题,倾听他们的答案,并感谢他们的付出。

使用间隔提醒加深记忆

最后一点——学习Janki Method(一种加强记忆的方法)。它能帮助你建立长期记忆,这样只是就不仅仅在电计算机里,也在你的脑子里!

最后的思考

学习是一个非常个人的事情,所以以上的经验技巧并不一定全部适合你,也许你也有其它经验教训值得分享。对我来说,最开心的是你愿意参考上面的提示,为成为更优秀的程序员而努力。欢迎留下评论!

原文链接:MakeUseOf

猜你喜欢

转载自blog.csdn.net/fcf1990501/article/details/8606122
今日推荐