找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 372027|回复: 12

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

[复制链接]

该用户从未签到

发表于 2021-3-26 10:42:59 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[indent,全文共2251字,预计学习时长6分钟
[/indent,


                               
登录/注册后可看大图

图源:pexels


拿破仑有句名言:“战争需要三样东西——钱、钱、更多的钱。”这和编程中需要学习的东西异曲同工——编码、编码、再编码。这是唯一提升编程技能的可行方案。


也许这个道理你早就知道了,也许你已经当了很多年的码农。但总有些时候,你还是会感觉自己停滞不前。可能是因为身处于一个没什么挑战的长期项目之中,亦或是仍在求职,不知如何从人群中脱颖而出。


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


1.重建现有工具


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


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


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


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


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


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


2.结对编程


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


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


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


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



                               
登录/注册后可看大图

图源:pexels


3.约束自我


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


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


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


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


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


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


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


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


4.编写技术文章


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


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


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


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



                               
登录/注册后可看大图

图源:pexels


用上这些编程技巧,重新出发吧!



                               
登录/注册后可看大图



留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范
回复

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:06:49 | 显示全部楼层
你好棒!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:08:16 | 显示全部楼层
沙发!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:09:36 | 显示全部楼层
你历害!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:11:08 | 显示全部楼层
非常好!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:12:34 | 显示全部楼层
太棒了!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:13:54 | 显示全部楼层
赞!赞!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:15:33 | 显示全部楼层
支持!!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:16:44 | 显示全部楼层
牛逼!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-3-26 11:18:27 | 显示全部楼层
不错!!
回复 支持 反对

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-25 21:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表