当前位置: 首页 > 科技观察

.NET开发人员提高编程技能的五种方法

时间:2023-03-14 18:42:30 科技观察

即使有40年的编程经验,我唯一可以确定的是,一定有比我更好的程序员。但我没有放弃,我会继续努力,提高我的编程技能。我认为有五件事可以帮助任何人成为更好的程序员。有些是我个人的经验,有些是我从网上和其他程序员那里学到的方法。找到适合您的学习方法我们都以不同的方式学习。例如,我不是视频学习的忠实拥护者,而是更愿意从书本或网站上学习。而且我确信我并不孤单:30分钟(甚至更长)的视频对很多人来说太慢了。这就是为什么YouTube上一些最流行的节目视频往往很短——在许多情况下,在5到12分钟之间。如果您在学习视频时遇到困难,我建议您去学校阅读。回到我刚开始的时候,编译器附带了大量的纸质手册,您可以从头到尾阅读这些手册。现在所有软件文档似乎都在线,您可以按照自己的节奏阅读。如果您不喜欢被动学习(无论是基于视频还是基于文本),还有另一种可能性:编码竞赛。您不一定要赢,但在快节奏的环境中将您的技能与他人较量通常会教给您一些新东西。如果你真的赢了——嘿,通常会有现金奖励。ProjectEuler[2]、TopCoder[3]、Coderbyte[4]和其他几个网站可以挑战您。无论您选择哪种教育方式,都要确保自己走出舒适区。您需要投资于未知领域才能成为更好的程序员。即使你有多年的经验,仍然有很多东西要学。简化您的代码只要所讨论的代码写得很好并且易于理解,阅读其他人生成的代码就会很有见地。如果您在编写和维护代码时遇到困难,检查有经验的程序员如何处理类似任务是获得一些指导的好方法。通常,您会发现这些专业人员尽可能地简化了他们的代码。以下是我多年来总结的一些简化技巧:删除明显的复制和粘贴代码。如果您在不同的地方看到相同的代码,它很可能是某个类中的函数或方法的候选者。将大代码块拆分为更小的代码块。此外,您可以将这些巨大的块简化为函数或方法,即使它们只被调用一次:具有有意义名称的代码块更容易理解。您不能总是将代码缩减为单个函数,但这是您可以追求的。使用重构工具使变量名称更具描述性。另外,添加有意义的评论。从简单的函数开始,这样你就可以理解它们,并力求在每个函数、类和方法的顶部至少有一行注释。学习不同的编程语言同样,作为一名程序员,提高意味着超越自己的舒适区。例如,如果您知道一种面向对象的语言,请尝试使用函数式语言。对于C#,最明显的函数式语言是F#。同样,如果您只编写桌面应用程序,请尝试学习移动或Web开发[5];如果您了解C#,则可以将Xamarin用于移动开发[6],将ASP.NETMVC用于Web。我知道桌面C#和Xamarin,但不知道ASP.NETMVC,我最近开始参加在线课程。尽管它可能对您的编程没有帮助,但我鼓励Windows开发人员学习如何使用Linux[7]。您可以将其安装在旧PC或Windows机器上;如果您想编写网站,请尝试在Linux[8]上设置ApacheWeb服务器。学习新编程语言的首选方法是转换现有的实用程序或小程序。因为你已经知道它的作用和工作原理,并且你有输出或测试结果,所以使用一门新语言确实简化了学习过程。例如,我通过获取现有Z80编辑器/汇编程序的源代码并从中编写6502交叉汇编程序来学习Z80汇编程序编程。我没有调试器,这可能有点极端,但它对我有用。探索不同的做事方式这可能是五件事中最难的。面对编程问题时,我的直觉总是锁定解决问题的特定方法。但通常有更多的方法来修复它。一旦你用通常的方法解决了问题,你就可以用更快或更节省内存的方法重做舒适区。一开始可能会令人沮丧,但它可能会让你成为一个功能更丰富的程序员。在调试器中单步执行代码您可能认为所有程序员都这样做;但在我的职业生涯中,我遇到过至少两个没有这样做的人,他们留下了一个bug被客户发现。(“生产测试”,我以前听说过,但这对职业发展不利。)如果您确信您的软件没有错误,您可以遵循著名计算机科学家DonaldKnuth[9]的方法]:他的邮件奖励检查任何在他们编写的软件中发现错误的人。不愿意冒险?单步执行代码。您将更好地了解正在发生的事情,找出自己思维中的薄弱环节,并了解下次构建类似软件时该做什么(或不该做什么)。结论我要练习这些技能吗?很可能是的。任何程序员都知道,工作繁忙时很难抽出时间学习和成长。尽管如此,预留时间尝试新事物仍然很重要。尽可能长时间地磨练你的技能是最好的方法,不仅可以保住你的工作,还可以完成你真正想做的项目。参考资料[1]DavidBolton:https://insights.dice.com/author/dhbolton/[2]ProjectEuler:https://projecteuler.net/[3]TopCoder:https://www.topcoder.com/challenges/?pageIndex=1[4]Coderbyte:https://coderbyte.com/[5]Web开发:https://www.dice.com/jobs/q-Web+development-jobs[6]移动开发:https://www.dice.com/jobs/q-Mobile+development-jobs[7]Linux:https://www.dice.com/jobs/q-Linux+Administrator-jobs[8]Linux:https://www.dice.com/jobs/q-Linux+Administrator-jobs[9]DonaldKnuth:https://en.wikipedia.org/wiki/Knuth_reward_check原文链接https://insights.dice.com/2017/08/29/5方式提高编程技能/