提高编码技能成为更好的开发者的十个提示

独孤文彬 独孤文彬     2022-12-04     644

关键词:

许多Java开发人员问我如何成为一个更好的程序员,如何提高我的编程技能,或者我擅长Java但在解决问题的技能上不那么好等等。这是现实,今天的时代充满了语言专家而不是真正的程序员。

它易于理解Java编程语言的关键字,方法和API,但同时难以解决实际问题,设计可重用且可靠的软件并获得最佳的数据结构和算法。

我经常看到Java程序员在被要求在有限的时间内设计和编写解决方案时表现不佳,但同时他们对Java概念和所有理论都很好。即使是具有4到6年Java编程经验的高级程序员,有时也无法解决设计等问题 即使是具有4到6年Java编程经验的高级程序员,有时也无法解决诸如设计咖啡机,编码自动售货机或有时甚至以递归方式反转链表的问题。

我可能只是想成为一名更好的程序员,但重要的是要了解你的局限性,然后再努力解决这些问题。 如果您感觉编码有阻力,那么您应该尽可能地编码,如果您在使用面向对象的分析和设计进行设计时感到压力和迷失,那么您应该尽可能地使用笔和纸进行设计。这种阻力实际上阻止你成为一名更好的程序员。

我个人发现编码和设计对普通程序员提出了很大的阻力,因为他们大多数在专业工作中都没有做足够的编码和开发。 顺便说一下,有很多提示可以成为一个更好的程序员,我会坚持我的清单,我个人遵循,并不断帮助我。

为了成为更好的程序员,您需要非常擅长数据结构,算法,使用OOPS设计,多线程和各种编程概念,例如:递归,分而治之,原型设计和单元测试。

编程是许多技能的结合,这意味着它不可能在快速时间内学习,而是随着时间和经验而来,但这不会自动发生。 你可以花5年的时间从​​事Java编程工作,而不是一个优秀的程序员。从大多数Java开始,访谈都集中在理论而不是编程和编码技巧上。 没有多少程序员练习这些基本的编程技巧。如果有一个强制性的解决问题的编程测试,我敢打赌,普通的程序员会好得多。无论如何,这是我的清单,可以帮助您成为一名优秀的程序员。

1)编码,编码和编码
为什么我编码在此清单的顶部?因为它很难同时也是它的核心编程。

通过编码,您还可以实现设计,错误处理,线程中的错误,然后再回到相应的技能来改进。你只是不能只进行设计,编码产生输出,这对学习和行动很重要。 顺便说一下,在解决问题后不要停止,最好扔掉你的第一个解决方案,这只是一个原型,你的下一个解决方案应该解决问题,缺少你已经找到的构建原型的要求。 您还可以查看代码《整洁之道》:为人类编写代码,以了解有关编写生产质量代码的更多信息。

2)阅读书籍
编码说起来容易做起来难,好的代码和糟糕的代码之间存在巨大差异,但你怎么知道呢?在你看到一个好的代码并知道为什么特定代码是好的之前,你无法理解其中的差异。 这是书籍提供帮助的地方,作者往往是伟大的程序员。他们以书的形式提供他们的经验。我喜欢书籍,但是一本特别对我有帮助的书是鲍勃叔叔的代码整洁之道。 通过阅读本书,我发现自己在代码中发现了问题并且时不时地应用本书中给出的建议。

我的建议是,如果你找到这样的书,抓住它们。我还建议多次阅读这本经典书籍,并不时地推荐它们。 另一本类似的书是Joshua Bloch的Effective Java,它充满了很好的建议。 。此外,通过阅读书籍,您正在从别人的经验中学习,并且只有两种方法可以通过学习自己的经验(非常有限)或从他人的经验中学习(无限制)来提高自己。 记住更多并不总是好,而不是阅读5本书,我建议阅读两本书,你喜欢多次阅读。这两本书也来自我的Java程序员必读书籍清单

3)贡献开源,注册邮件列表

贡献开源代码,特别是来自Apache,Google和其他一些项目,是提高编程技能和成为更好的程序员的另一种方法。只需签署他们的邮件列表和以下讨论教你很多。 由于大多数讨论发生在优秀程序员之间,通过倾听他们并理解问题及其方法,解决方案和视图,自动为您开发良好的编程习惯。 要获得大部分内容,不要只是坐视不管,提出问题,提供观点,同时也要重视其他人。

4)练习数据结构

算法和设计相关问题 我想把它作为第二项,但它最终排在第四位。在我看来,这是成为更好的程序员最关键的事情。我见过和见过的大多数优秀的程序员都非常擅长数据结构,算法和基础知识。 通过学习这些东西,您可以更好地利用可用的东西。由于数据结构是任何程序的关键部分,因此对它们的扎实了解有助于解决问题。 同样,关键编程原理,搜索和排序算法以及其他众所周知的算法的知识也会为您提供编程技能。 您可以参考这些书籍来提高您对数据结构和算法的了解。

5)阅读好博客

阅读好的博客只是阅读书籍的一小部分。阅读博客如何帮助您成为更好的程序员?嗯,确实如此。由于博客通常由程序员自己编写,并且大多数人都分享他们的个人观点,经验,因此您经常发现它们是相关的。 此外,博客是一小部分信息,因此它可以很好地消化。博客还有助于学习现有语言和API的新技术和新功能。 很多时候,我在一篇小博客文章中描述了Java中一个非常着名的部分,看到了一些微妙或遗漏的东西。

6)阅读代码

如果阅读博客有助于成为一名优秀的程序员,那么阅读代码可以提供更多帮助,但同时阅读博客很容易,但阅读代码很难。你看到抵抗吗?那你应该这样做。查看开源项目代码,您的程序员代码,现有专有代码,Java SDK代码,并尝试了解它们的工作原理,尝试了解它们正在做什么以及它们为什么这样做。 找到模式,开发导航技巧,最初你会发现它很无聊和困难,但随着时间的推移你会发展出良好的代码感,当你犯错时会提醒你,帮助你发现别人的错误,差距和代码味道。 这段代码感觉是更好的程序员的标志之一,他们往往倾向于看,你错过了什么。

7)写单元测试

单元测试补充思考和编码过程,随后帮助您更好地设计。任何难以测试的东西都有可能改进。此外,编写单元测试有助于找到更好的名称,更好的抽象,更好的界面和抽象类设计,并整体提高代码质量。 但是就像编码和设计一样,单元测试对普通程序员来说也是一项艰巨的任务,你会看到很多阻力。一些程序员编写琐碎的测试,而不是在使用场景上苦苦思索。 请记住,在分析,设计和开发之后,通过整个过程无法替代思考,单元测试是另一个思考代码中的场景和差距的机会。做一个规则,总是为你的代码编写单元测试。

8)进行代码审查

与单元测试一样,代码审查是另一个有助于成为一名优秀的程序员的事情。代码审查有助于审稿人和作者,审稿人提高他的代码意识,并在作者从错误中学习时提供真实的建议。 它通常有助于您认为代码坚如磐石,有一些只有其他程序员可以看到的错误,代码审查和四眼检查为您做到这一点。 如果你很幸运并且有机会在一家拥有单元测试,代码审查作为纪律的公司工作,那么你可能会成为更好的程序员相比那些看起来经常放松要求的程序员。这两件事极大地有助于提高编程技巧。

9)与其他程序员交谈

与谈话相比,阅读是被动事件。谈论一个程序并与其他程序员讨论这个程序往往会带来更好的解决方案,这很自然,因为当你说话和倾听其他人时,你的思维往往会涉及更多。 然后我在与队友讨论时发现了差距,缺少要求,错误和设计缺陷。在软件行业,程序员倾向于将它们与计算机隔离,谈话,分享和进行白板会话有很大帮助。 不要只是坐下来编写,交谈,倾听和思考,并与其他程序员一起玩。参加此次活动也有所帮助。

10)参与Stack Overflow和论坛 评论博客

这是另一种形式的活动,有助于修改知识。通过分享知识,第一个受益者是分享者。由于编程很大且很大,你往往会忘记大多数你不使用超过3个月的东西。 参与StackOverflow并回答其他人的查询,评论博客和论坛是修改知识的一个很好的方法,同时纠正你的错误观念。 通过将我们的知识放在他人面前,我们不仅可以帮助他人,还可以对他们进行测试。很多时候你会看到,有人从你的知识中受益,但你也纠正了你的错误观念。

每个程序员都希望成为一个更好的程序员,但不是每个人都成功。除了编程和解决问题的天赋外,它还需要大量的努力,不断的学习和坚持才能成为更好的程序员。你做的工作越多,例如编码,设计,单元测试和代码审查,您将变得更好。如果你现在只想做一件事,我会说去看看《代码整洁之道》

原文链接:https://javarevisited.blogspot.com/2014/01/10-tips-to-improve-programming-skill-become-better-programmer.html

2019年成为更好的java开发者的十个提示

我经常收到读者发来的电子邮件,要求我告诉他们如何成为更好的Java开发人员,他们应该学习什么,以及他们可以成为RockstarJava开发人员的工作领域和方向有哪些?在过去几年中单独回答之后,我想了几点... 查看详情

2019年成为更好的java开发者的十个提示

我经常收到读者发来的电子邮件,要求我告诉他们如何成为更好的Java开发人员,他们应该学习什么,以及他们可以成为RockstarJava开发人员的工作领域和方向有哪些?在过去几年中单独回答之后,我想了几点... 查看详情

34.js开发者必须知道的十个es6新特性

JS开发者必须知道的十个ES6新特性这是为忙碌的开发者准备的ES6中最棒的十个特性(无特定顺序):默认参数模版表达式多行字符串拆包表达式改进的对象表达式箭头函数 =&>Promise块级作用域的let和const类模块化注意:这... 查看详情

iphone开发常问的十个问题

iPhone开发常问的十个问题前言今天去stackoverflow.com上看了一下iPhone标签下排名最高的10个问题,将它们整理出来,希望这些常见问题能帮到一些iPhone开发的初学者。本来想把答案也翻译过来的,后来发现答案资料通常都比较复杂... 查看详情

编码器信号电缆与传输抗干扰的十个问题讨论!

>>>>>>>>>>>转自“伺服与运动控制”微信公众号<<<<<<<<<<<<<<<---->侵删。--------------------------------分割线---------------------------------- 查看详情

javascript开发者都应该知道的十个概念

1.原始值和引用值(Valuevs.Reference)理解对象、数组和函数是如何复制和传递到函数中的。了解引用值是被复制了什么,理解原始值是通过复制值来进行复制和传递的。 2.域(Scope)理解全局域、函数域以及块级作用域之间的区别。... 查看详情

开发者关心的十个数据库技术问题

...新程序员002》经过用户、专家调研,收集汇总了十个开发者关心的数据库技术问题,并邀请腾讯云TDSQL技术负责人、首席架构师雷海林作出解答,希望为越来越多投身数据库的技术人才提供参考。数据 查看详情

开发者关心的十个数据库技术问题

...新程序员002》经过用户、专家调研,收集汇总了十个开发者关心的数据库技术问题,并邀请腾讯云TDSQL技术负责人、首席架构师雷海林作出解答,希望为越来越多投身数据库的技术人才提供参考。数据技 查看详情

2020年精心收集的十个java开发网站

...托管平台,一个拥有数十亿行代码的网站,每天有数百万开发者聚集在一起,研究开源软件中存 查看详情

成为资深ic设计工程师的十个阶段,现在的你在哪个阶段?

近几年,很多人进入了IC行业发展。但真正做好职业规划的没有几个,大多数的人都是处于迷茫的状态。IC行业的风口还能持续多久?IC行业到底卷不卷?自己能在IC行业待多久……我们在网上总能看到这样的一些... 查看详情

成为资深ic设计工程师的十个阶段,现在的你在哪个阶段?

近几年,很多人进入了IC行业发展。但真正做好职业规划的没有几个,大多数的人都是处于迷茫的状态。IC行业的风口还能持续多久?IC行业到底卷不卷?自己能在IC行业待多久……我们在网上总能看到这样的一些... 查看详情

架构师害怕程序员知道的十项技能的读后感

...都是一位出色的程序员(卓越的程序员)确实,首先得会编码,知道编码是咋回事,才能设计出结构来进行逻辑开发,不然设计出来的东西自己不知道该从哪里入手,别人就更不知道了。我从事编码也有8年了,对程序开发也算... 查看详情

级数的十个重要公式

查看详情

7个flutter开源项目,让你成为更好的flutter开发者

...开源的Flutter项目,它们可以帮助你成为更好的Flutter开发者。1.inKino如果您想知道如何构建源代码以在多个平台上运行,那么这对您来说将是一个很好的资源。这个项目是一个用于浏览电影和放映时间的多平台Dart应用程序... 查看详情

图灵学院java架构师要掌握哪些技能?你所不知的十五条秘密

...一线的“菜鸟”码农,不知道成为Java架构师要掌握哪些技能?熬不完的夜,想要升职加薪?看了很多书还是写不出最高效的代码,花了很多钱学习网课还是不见成效?遇到我图灵学院江南老师那就对了,少侠我看你骨骼清奇,... 查看详情

回顾马云与阿里的十个高光瞬间

...的灵魂人物,马云和这家公司注定被永远绑定在了一起,成为一种符号。在马云即将退休之际,我们不妨来回顾一下马云与他所创立的这家公司的十个高光瞬间。1、马老师从这一天开始叫起1988年,马云从杭州师范学院外语系毕... 查看详情

新站推广必备的十个付费增加网站外链渠道

...就是将网站发布到各大分类目录网站上,分类目录收录能提高搜索引擎中网站权重,可为网站带来外链和流量,对站长来说也还是有很大用处的。目前所有的网站目录都提供免费收录服务,但前提是要做好他们站的链接,不做链... 查看详情

nginx学习总结(15)——提升web应用性能的十个步骤

...性能从未像今天这样刻不容缓。在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行了(相关数据请参考本文后面的资源)。在这个超级链接、随时在线的现代世界,用户的期望也远非昔日... 查看详情