编程能力感觉停滞不前?这 4 种方法,让你的编程技能更上一层楼!

也许你已经学了很久的编程,写了不少的代码。但总有些时候,你还是会感觉自己的编程能力停滞不前(会的还是会,不会的还是不会)。可能是因为身处于一个没什么挑战的长期项目之中,亦或是仍在求职,不知如何从人群中脱颖而出。

总之,你不停地编写代码却收获甚微。每个项目都是相似的,因此你解决问题的方式也都类似。要想脱离这种恶性循环,你需要跳出思维定势,勇于挑战自我。这里有一些建议可以帮助你突破瓶颈。

1.重建现有工具

反馈不足是编码学习的最大阻碍之一。刚开始的时候,这可能不是什么大问题,因为你会得到一些即时反馈,比如当你想让你编写的代码运行时,它不能进行正常运行。

但越有经验,你就会面临越多挑战。你需要考虑设计模式、架构、可读性、性能等等。你会发现每个问题都有多个解决方案,无从评判你的方案合理与否。

幸运的是,有一种方式可直接获得关于编码的反馈或不同视角:通过重建现有程序库或其他工具。你只需要找到某种工具(优先考虑常用工具),并知晓其功能。然后确定其核心功能。仔细阅读它的程序说明书,确认已经掌握其应用程序接口。现在,就可以准备编写代码了。

你无需重新创建一切——只需要重建一个或几个最常见的使用案例。如果进展顺利,花几天时间即可完成。完成编码后,接下来的部分就有趣多了。你要检查代码,分析你所做的决定,考虑可能出现的极端案例和漏洞并将其标记下来。

然后打开你所重建工具的源代码,回溯代码以及同样问题的解决方案。思考一下,现在方案是否与原方案相似,是否有所改进,是否处理方式欠妥,以及其中的原因。你要试着理解程序库代码背后的决策。

许多程序库都是由成熟的程序员创建,并由社区扩展。通过检查其代码,你会学到新的模式以及解决问题的新方式。下次再遇到类似问题时,你便会将新知识投入实践。

2.结对编程

结对编程是一种颇具争议的方式。这是一种软件开发技术,常指两位程序员共同合作,但仅有一方负责编写代码,而另一方则负责观察并回顾整体工作。这两位程序员的角色会进行定期调换。这种方法的缺陷很明显:只有一位程序员编程,所以软件创建时间也就更长;但优势便是软件编写质量会更好。

或许结对编程对于软件开发的好处有待商榷,但其对于学习的帮助是显而易见的。

你编写代码时,对方会关注你的思维模式及思考方式。分析创建代码的过程,这对你们双方都是一种挑战。通过观察其他人编写代码,你会了解到对方的思维模式。你几乎不大可能与其有着一样的问题解决方案,所以这是了解另一种看问题角度的绝佳机会。

结对编程可能会有一些难度。为了使其更简单,更高效,你应该找一个与你水平相当的结对伙伴。如果他们资历太浅,你需要单方面不断对其进行指导;如果他们技巧太成熟,他们很快就会感到无聊,对一切任务大包大揽。

3.约束自我

创造力十分难得。一旦习惯一种解题思路,你甚至都不会考虑替换方案,就像挂了自动挡一样。程序员不是唯一苦寻创造力的职业。对于作家来说,创造力更是一个大问题。为了激发创造力,他们开发出了一些小技巧。

约束是激发创造力的最佳技巧之一。对于作家来说,这种约束可能是针对文章的字数(比如用少于十个单词写一个故事);也可能是针对单词的使用(比如文章中不能出现以“S”开头的单词)。

作为一名程序员,有无数方法通过限制自己来获取创造力,比如:

·避免一些语言特性(例如,代码中不出现和switch语句)。

·降低数据可变性——尽可能使用纯函数,甚至可以使用相关工具,如Immutable来实现不变性。

·使用测试驱动开发——这是一种强大的技术,可以优化你的代码,促使你改变思维模式。

·限制时间(例如,给自己三天时间来开发一款应用或参加一场黑客)。

约束自我的重点不在于约束,你可以任意选择自己感兴趣的方法,重点在于范式的转变。这种约束会迫使你重新思考基本原理。重新思考,精炼想法,你会收获成长。

4.编写技术文章

长时间的编程工作会让你觉得自己的工作十分了解。但我敢保证,你并没有。在写技术文章的过程中,你会感到十分震惊,你曾经对许多编程方面的事情习以为常,不经思考、一遍又一遍地重复着同样的步骤。

当以书面形式解释编程过程时,你会开始考虑你的假设和方法,质疑某些代码是否是问题的核心,其它代码是否冗余或过分复杂。

写作会使你更加有条理地、批判地思考你所编写的代码,将其进行重构以及简化,以创作出对其他人有帮助的学习材料。

这样做的意义何在?你在学习。表面上看是你在教别人,但其实是你在不断学习。要想深入地了解一门学科,没有比教授他人更有效的方式了。好好利用这一点,你将获得突飞猛进的成长!

PS:另外对于学习编程或者正在工作的朋友,如果你想更好的提升你的编程能力乃至转行,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

C语言C++编程学习交流圈子【点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值