如何成为更好的编码员?

本文的目的是使任何人都可以轻松访问学习编程

顶级编程语言

如果您正在寻找2019年排名前10位的编程语言,可以在这里找到它: 单击此处

该列表非常适合检查当今是否正在使用特定的编程语言。 但是,如果您不熟悉编程,建议您不要仅基于列表来选择一种语言。

激动!!!

因此,在这里,我开始撰写有关如何成为更好的编码器的文章。

现在是认真考虑提高编程技能的时候了。 我们开始做吧!

这是一个容易实现的职业发展目标,但“成为一名踢屁股的程序员”并不是一个简单的目标。 一方面,说“我想变得更好”是假设您认识到“更好”的模样。 另外,太多的人追求改善而对如何到达那里一无所知。

因此,让我分享八个可行的指南,这些指南可以作为提高您的编程技能的流程图。 这些智慧的秘诀来自计算机行业35年的历史,其中许多是在定义和记录它的一些人的脚下用作低级蚱hopper。

1.提醒自己要学多少

学习某些东西的第一步是认识到自己不知道。 这听起来很明显,但是经验丰富的程序员记得克服这种个人假设需要花费多长时间。 太多的计算机科学专业的学生以傲慢的“我最了解”的夸张语毕业,这是他们有充分的把握,他们知道一切,并且迫切需要向每个新工作的同事证明这一点。 换句话说:您的“我知道我在做什么!”的态度可能会妨碍您学习新知识。

2.停止尝试证明自己正确

要成为一个伟大的人,而不仅仅是一个好人,您必须从经验中学习。 但是要小心,经验可以教会我们重复不良行为并养成不良习惯。 我们都遇到了具有八年经验的程序员……同一年的经验,重复了八次。 为了避免这种综合症,请仔细观察您所做的一切,然后问自己:“我该如何改善呢?”

新手软件开发人员(以及太多有经验的软件开发人员)会看着他们的代码来欣赏它的美妙之处。 他们编写测试来证明他们的代码有效,而不是试图使其失败。 真正优秀的程序员会积极寻找他们的错误地方-因为他们知道最终用户会发现他们遗漏的缺陷。

3.“代码有效”不是止步不前; 这是你开始的地方

是的,您的第一步始终是编写符合规格的高质量软件。 普通的程序员在那时候退出,然后继续下一步。

但是,一旦“完成”就停止就好了,就像拍摄快照并期望它是艺术品一样。 优秀的程序员知道,第一次迭代只是第一次迭代。 它有效-祝贺您! -但您还没有完成。 现在, 使其变得更好

该过程的一部分是定义“更好”的含义。 加快速度是否有价值? 更容易记录? 更可重用? 更可靠? 答案因每个应用程序而异,但过程没有。

4.写三遍

优秀的程序员编写有效的软件。 优秀的人编写的软件运行得非常好。 第一次尝试很少发生这种情况。 最好的软件通常被编写三遍:

  1. 首先,您编写软件以向自己(或客户)证明解决方案是可行的。 其他人可能不会意识到这仅仅是概念验证,但是您确实可以。
  2. 第二次,您使它工作。
  3. 第三次,您使它工作正常

当您查看最佳开发人员的工作时,这种工作水平可能并不明显。 他们所做的一切似乎都很棒,但是您看不到的是,即使是摇滚明星开发人员也可能在向其他人展示他们的软件之前就发布了第一版和第二版。 扔掉代码并重新开始可能是一种将“更好”纳入个人工作流程的有效方法。

如果没有其他问题,“三遍”将教您解决问题的方法。 而且它可以防止您陷入车辙。

5.阅读代码。 阅读大量代码

您可能希望我以这个建议为指导,这确实是提高编程技能的最常见和最有价值的建议。 不太明显的原因是阅读他人的代码如此重要的原因

当您阅读别人的代码时,您会看到别人如何解决编程问题。 但是不要将其视为文学作品。 认为这是一个教训和挑战。 为了变得更好,请问自己:

  • 我将如何编写该代码块? 既然您已经看到了另一种解决方案,您将做些什么?
  • 我学到了什么? 如何将这种技术应用于我过去编写的代码? (“我从没想过要在那儿使用递归下降法……”)。
  • 我将如何改进此代码? 如果这是一个开放源代码项目,并且您确信自己有更好的解决方案, 那就去做吧!
  • 以作者的风格编写代码 。 这样做可以帮助您深入开发软件的人,这可以改善您的同理心。

不要只是闲着想着这些步骤。 无论是在个人日记本,博客中,在代码审查过程中还是在与其他开发人员的社区论坛中,写下您的答案。 就像向朋友解释问题可以帮助您找出解决方案的方式一样,写下并共享分析结果也可以帮助您理解为什么以给定的方式对他人的代码做出反应。 这是我之前提到的内省的全部内容,可以帮助您无私地判断自己的优点和缺点。

警告:无需成为一名优秀的程序员就可以轻松阅读大量代码,就像想成为一名作家的作家可以在不提高自己的散文的情况下阅读优秀的文学作品一样。 许多开发人员都在寻找开放源代码或其他软件来“寻找答案”,最有可能的是复制并粘贴似乎可以解决类似问题的代码。 这样做实际上会使您成为更糟糕的程序员,因为您会盲目接受他人的智慧,而无需对其进行检查。 (此外,它可能比夏天的野餐还要麻烦,但是由于您没有花时间去理解它,因此您永远不会意识到您只是导入了一个错误工厂。)

6.编写代码,而不仅仅是分配代码

在个人编程项目上工作有很多优点。 首先,它为您提供了一种学习工具和技术的方法,这些工具和技术在您当前的工作中尚不可用,但可以使您在下一工作中更具市场价值。 无论您是为开源项目做出贡献还是为当地社区组织从事无偿工作,您都将获得技术技能和自信。 (此外,您的个人项目向可能的雇主表明您是一个自我入门者,永远不会停止学习。)

编写有趣代码的另一个优点是,它迫使您自己弄清楚事情。 您不能将艰苦的工作留给其他人,这样可以避免您过早寻求帮助。

专家提示:不要只选择永不失败的个人项目。 你需要失败! 但是您可能不想在工作中或有期限时失败。

7.以任何方式与其他开发人员一对一地合作

它有助于倾听其他人的声音。 这可能意味着结对编程,或参加黑客马拉松,或加入Facebook或其他社交媒体上的编程用户组。 在为开源项目做贡献时,请注意从用户和其他开发人员那里获得的反馈。 您对他们的批评有什么共同点?

您可能会很幸运地找到一位值得信赖的个人导师,以指导您完成从编码技术到职业决策的所有工作。 不要浪费这些机会。

8.学习技术,而不是工具

当您拍摄自己的网时,将您的手定位成看起来像蜘蛛侠的行为“这是蜘蛛侠的技巧”,您的是什么???

编程语言,工具和方法论来来去去。 这就是为什么要付出尽可能多的语言和框架来获得尽可能多的经验的原因。 专注于编程基础,因为基础永远不变。 更加注重体系结构而不是编程。 如果您确定只有一种正确的方法可以执行某项操作,那么可能是时候进行现实检查了。 教条可能会影响您学习新事物的能力,并使您适应变化的速度变慢。

我可以继续前进,但是自我完善的主要原则是知道何时停止。