编程不怎么像是写诗歌或者文章,因为对于诗歌和文章来说,基本元素粒度和作品的容错度都相当大。
编程更像是绘画或者雕塑,往画布上涂一笔或者往石头上凿一下都很容易,但是要做出好的作品,需要做很多步,每一步都要很精确,而且往往会在做到最后的时候发现虽然细节还都不错,但是整体看来总是看着不对劲。
1. 难在思路的构建
你学了很多语法,很多 API,但是当给你一个实际问题,让你通过编程实现,不是简单地罗列 API 即可完成,而是需要你对问题进行分析,理清解决问题的逻辑,然后再通过各种算法、数据结构和 API 等进行编程实现。
2. 做出来容易,做好难
当你解决了思路构建的难点,解决了一个问题,但是你是否使用的最好的方法,这就是所谓的做出来容易,做好难。
写的程序能够解决问题且没有 bug 是基本要求。这里的做好不是指功能正确,而是写的程序容易理解,能够很容易让其他接手的程序员(水平不差)看懂为什么这么写。
正确是现在怎么写不会挖坑害将来的人,现在怎么写能让别人1年后看你代码时候不可能理解错你现在的意图,现在怎么写能在别人将来犯错的时候提示他你错了。
编程是给未来的未知人讲故事,你无法知道将来这个人是谁,他都懂什么,他经历过什么,这个系统将来已经是什么样子了。我们需要在这种无知,缺乏信息的情况下做决定,从千万种把这件事做出来的方法里,选出你觉得最能把这个故事给讲好的那种方式,把故事写下来。
编程是一种沟通,用程序跨越时空之沟通则是一门属于程序员的特有的艺术 —— 阿莱克西斯
3. 规范性好,有良好的可扩展性
并且程序的可扩展性,规范性高,后期维护难度小。整体功能实现的过程中,各种情况考虑规范。
其实学习编程和学习其他内容一样,没有什么太大差别。心态放好,用对方法,你就能够学好。重要的是学知识的人是什么样子,而不是学的是什么。
在这给你一些学习编程的建议,希望对你有用。
1. 让编程成为一个习惯
想要培养一项技能的最好的办法,就是将他融入到我们的生活并成为我们的爱好。其实说白了,就是让这个爱好成为一个习惯,一天不去做这件事情,都会觉得少了什么。在不知不觉中,这个习惯会像滚雪球一样积累起来。
对我来说,养成这种习惯首先就是要对“拖延症”说不。比如,你想锻炼下自己的写作能力时,但是没有好看的本子,没有好的灵感,没有安静的环境....总之就是找各种理由一拖再拖,最后就不了了之了。
为自己设定一下,每周拿出几天,每天拿出几个小时,编程学习就这样慢慢步入正轨。
2. 将每天的学习过程拆分成小块
对待编程学习,我们没必要像健身狂人那样一口气做到筋疲力尽。与其直接编程2小时,我们完全可以先做40分钟、然后休息5分钟,整个过程重复4次。很明显,40分钟这样的短周期更容易坚持也不会带来多少压力。
不过这样的方式应该配合更为灵活的执行思路。如果你感觉状态很好,而40分钟才刚刚完成热身,那就继续做下去并努力让自己抓住这种状态。向大家推荐蕃茄工作法,这是种学习新型技能的良好机制,推荐各位认真了解。
3. 学好基础知识
在确定好学习方向和技术栈之前,你可以多做尝试,学不同的语言。但是当你学到一定程度,知道自己对哪个方向更感兴趣的时候,就不要广撒网了,一定要专注于你所选择的领域,做深做精。认真系统化地学习相关语言知识。当然,这不是让你就知道看书,你要看书的同时结合项目实践,进而对自己的掌握程度得到反馈,知道自己哪里不足,再继续学习,如此反复,详见第四点。
4. 学练结合,从做项目中找知识漏洞
当你选好方向,认真学习基础知识后,学习一部分的知识,就结合项目做一些实践,已明确自己哪里不足。并且做项目能增加学习乐趣,给自己提供一些正反馈,让学习变得有趣,让自己有足够的动力继续学习。
5. 阅读别人的代码
学习编程不能闭门造车,经过这几年的编程学习,我认为想要提升编码水平的最佳途径就是多看、多写。看别人的代码,看一些程序员大佬写的代码,看一些标准库的源码,仔细思考他们的编程思维和编程方式,以提升自己的编程思维和编程方式。阅读别人的代码也确实是快速提升代码水平的一个技巧。
6. 寻找良师益友
学习编程的一个很好的方法就是和其他的程序员交谈。这不仅能够帮助我们多获得一种思维方式,同时也能够以更为愉悦的感受完成学习任务。至于内容没有特定的要求,可以是你正在学习的东西,也可以是你认为很酷的东西,更可以是你正在工作的东西。这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。但是,最重要的是,你能了解到其他人是如何看待编程的。
7. 写技术文章
如果大家学习了一种新的编程概念,但不能确定自己是否已经真正掌握,可以写技术博文加以检验。或者是在技术博客网站上搜索,找找是否有人提出了类似的问题,然后给出您自己的答案。如果答案不对,那么讨论的过程能够有效加深理解。这样的过程,能给我们带来宝贵的经验,同时也能帮助他人。
值得提醒的一点,别因为自己刚刚涉及编程而有所顾虑。罗马不是一天建成的,出色的程序员也是一样。只要您对问题有所了解,就不妨给出自己的答案——无论对错,这都将成为一次宝贵的经历。
8. 保持耐心
对于人生来说,其中任何目标的实现都离不开耐心。编程学习就如其它任何学习任务一样,都需要反复努力并投入大量时间。
网友评论