许多Java开发人员问我如何成为一个更好的程序员,如何提高我的编程技能,或者我擅长Java,但不擅长解决问题的技巧等等。今天的时代充满了语言专家,而不是真正的程序员。理解Java编程语言的关键字、方法和API很容易,但很难解决实际问题,设计可重用和健壮的软件,并获得最大的数据结构和算法。我经常看到,当被要求在有限的时间内设计和编写解决方案时,Java程序员的表现并不是很好,但同时他们的Java概念和所有理论都非常好。即使是拥有4至6年Java编程经验的高级程序员,有时也无法解决设计等问题。
即使是拥有4至6年Java编程经验的高级程序员,有时也无法解决诸如设计咖啡机,编写自动售货机或者有时甚至递归地颠倒linkedlist等问题。你可能正在脱离成为一名更好的程序员,但重要的是要知道你的局限性,然后解决这些问题。
如果您在编码时遇到阻力,那么您应该尽可能地编码,如果您在使用面向对象分析和设计的设计中感到压力和失落,那么您应该尽可能使用笔和纸进行设计。这种阻力实际上阻止你成为更好的程序员。
我个人发现,编程和设计给普通程序员带来了很大的阻力,因为他们中的大多数人在他们的专业工作中并没有做足够的编码和开发。
顺便说一下,有很多方法可以成为一个更好的程序员,我将列出我的方法,这是我个人遵循的,并且一直在帮助我。
改进编程技巧并成为更好程序员的10个技巧
为了成为更好的程序员,你需要非常擅长数据结构,算法,使用OOPS(面向对象分析和设计)的设计,多线程和各种编程概念,例如递归,分而治之(分离程序中变化的部分),原型设计和单元测试。
编程是许多技能的组合,这意味着它不可能在短时间内学习,而是具有时间和经验,但这不会自动发生。你可以花5年时间做一个Java编程工作,而不是成为一个好的程序员。
由于大多数Java,面试重点是理论而非编程和编码技能。没有多少程序员练习这些基本的编程技巧。如果有一个强制性的解决问题的编程测试,我敢打赌,一般的程序员会好很多。无论如何,这是我的技巧清单,它可以帮助你成为一名优秀的程序员。
1) Coding, Coding, and Coding
为什么我要在此列表顶部编码?因为它很难,同时也是它的核心部分。
通过编写代码,您还可以在设计,错误处理,线程化等方面意识到自己的错误,然后再回到各自的技能来改进。你不能只在设计中工作,编码产生输出,这对于学习和成功非常重要。
顺便说一句,不要在解决问题后立即停止,最好扔掉你的第一个解决方案,这只是一个原型,你的下一个解决方案应该解决问题,因为第一个方案缺少需求。
您还可以读 Clean Code: Writing Code for Humans
以了解更多关于编写生产质量代码的信息。
2) 读书
编码说起来容易做起来难,而好的代码和糟糕的代码有很大的区别,但你怎么知道的?
在你看到一个好的代码并知道为什么原来的代码是好的,你无法理解它们之间的区别。
这就是书籍能帮助我们的,常常作者本身就是伟大的程序员。他们以一本书的形式提供他们的经验。我喜欢书,但有一本书,特别帮助我,《代码的简洁之道》。
通过阅读本书,我发现自己的代码存在问题,并且时不时应用本书给出的建议。
我的建议是,如果你找到这样的书,抓住他们。我也推荐多次去阅读这些经典书籍,并且时不时地提及参考它们。
另一本类似书籍是Joshua Bloch的Effective Java,它充满了很好的建议。
另外,通过阅读书籍,你可以从别人的经验中学习,只有两种方法可以提高你自己,第一通过从自己的经验中学习(这是非常有限的),第二从别人的经验中学习(这是无限的)。
记住阅读更多的书并不总是好的,我建议阅读两本书,并且反复阅读。 这两本书也来自我的必读Java程序员书籍清单
3)为开源贡献力量,订阅邮件
贡献开源代码,特别是来自Apache,Google和其他一些项目是提高编程技能并成为更好的程序员的另一种方式。只需订阅他们的邮件,跟着他们的讨论会教你很多。
由于大多数讨论都是在优秀的程序员之间进行的,通过倾听和理解问题和他们的方法、解决方案和观点,自动地养成出良好的编程习惯。
要充分利用它,不要只是坐在被动的地方,提出问题,提供你的观点,同时也要重视他人的观点。
4)练习数据结构,算法和设计相关的问题
我想把它作为第二项,但最后是第四项。在我看来,这是成为一个更好的程序员所要做的最关键的事情。我所见过的大多数优秀程序员都非常擅长数据结构、算法和基础知识。
通过学习这些东西,你可以更好地利用现有的东西。由于数据结构是任何程序的关键部分,所以对它们的可靠知识有助于解决问题。
类似地,对关键编程原则、搜索和排序算法和其他众所周知的算法的了解,可以开发出编程技能。您可以参考这些书籍
来提高您对数据结构和算法的了解。
5)阅读好的博客
阅读好博客是阅读书籍的一小部分。阅读博客如何帮助您成为更好的程序员?嗯,它的确如此。由于博客通常由程序员自己编写,大多数博客都分享他们的个人观点和经验,所以您经常会发现它们是相关的。
此外,博客是一小块信息,因此消化得很好。博客还有助于学习现有语言和API的新技术和新功能。
很多次,我在一篇博客文章中看到了描述Java非常有名的部分中遗漏东西。
6)阅读代码
如果阅读博客有助于成为一名优秀的程序员,那么阅读代码会比这更有帮助,但是阅读博客很容易,但是阅读代码是很困难的.你看到阻力吗?那么你应该这样做。查看开源项目的代码,您的同行程序员的代码,您现有的专有代码,Java SDK中的代码,并尝试了解它们的工作方式,尝试了解他们在做什么以及他们为什么这样做。
找到模式,开发寻找坏代码技能,一开始你会发现它很无聊,很困难,但是随着时间的推移,你将会开发出一种好的代码感觉,当你犯错误时,它会提醒你,帮助你发现其他的错误、漏洞和坏代码的味道。
这种代码感觉是好的程序员的标志之一,他们往往倾向于看你错过了什么。
7)写单元测试
单元测试补充思维和编码过程,并随后帮助您更好地设计。任何难以测试的东西都有改进的机会。此外,编写单元测试
可以帮助我们找到更好的名称,更好的抽象,更好的界面和抽象类设计,并提高代码质量。
但是像编码和设计一样,单元测试对普通程序员来说也是一项艰巨的工作,你会在那里看到很多阻力。一些程序员写的是微不足道的测试,而不是在使用场景中努力思考。记住,在分析,设计和开发之后,没有什么可以替代思考的过程,单元测试是思考代码中的场景和空白的另一个机会。定一个规则,总是为你的代码编写一个单元测试。
8)做代码审查
像单元测试一样,代码审查是帮助成为一名优秀的可靠程序员的又一件事。代码审查有助于审稿者和作者,审稿人提高了他的代码感,并提供真正的建议,同时作者从他的错误中学习。
通常情况下,您认为的代码是可靠的,有一些只有其他程序员可以看到的bug,代码审查和四眼检查对您来说是这样的。
如果你很幸运并有机会在一家拥有单元测试的公司工作,那么把代码审查当作纪律,那么你成为更好的程序员。这两件事非常有助于提高编程技巧。
9)跟其他程序员交流
与说话相比,阅读是被动的事件。谈论一个程序并与一位程序员讨论这个问题通常会带来更好的解决方案,这很自然,因为当你谈论和倾听其他人时,你的头脑往往会涉及更多。
然后我在与队友讨论时发现了差距,缺少要求,错误和设计缺陷。在软件行业,程序员倾向于将他们与计算机隔离开来,谈话,分享和做白板会话帮助非常大。
不要只是坐下来编写代码,交谈,倾听,思考和与其他程序员混在一起。参加该活动也有帮助。
10)参与Stack Overflow和论坛,在博客评论
这是另一种形式的活动,它有助于纠正知识。通过分享知识,第一个获益的人就是分享的人。由于编程是庞大而广泛的,你往往会忘记3个月以上不使用的大部分内容。
参与StackOverflow并回答其他疑问,评论博客和论坛是纠正知识的好方法,同时纠正你的错误观念。
通过把我们的知识放在别人面前,我们不仅帮助别人,而且还让他们接受考验。很多时候你会看到,有人从你的知识中获益,但同时你也在纠正你的误解。
每个程序员都想成为一个更好的程序员,但不是每个人都能成功。除了编程和解决问题的天赋之外,它还需要大量的辛勤工作、不断的学习和毅力才能成为一个更好的程序员。你做的实际工作越多,比如编码、设计、单元测试和代码审查,你就会变得越好。如果你现在只想做一件事,我会说去读《代码的简洁之道》。