只需10个技巧,让你成为更好的程序员

如何成为一个更好的程序员?

扫码关注《Java学研大本营》,加入读者群,分享更多精彩

热点

  • 编码(重要的事情说三遍)

  • 阅读书籍

  • 为开源做贡献,注册邮件列表

  • 练习数据结构、算法和设计相关问题

  • 阅读好的博客

  • 阅读代码

  • 编写单元测试

  • 做好代码审查

  • 与程序员交流

  • 参与论坛,在博客中发表评论

许多Java开发人员问我如何成为一个更好的程序员?怎样才能提高我的编程能力?或者我的Java技术很好,但解决问题的能力不强等等。

这是一个现实,今天的时代充满了语言专家而不是真正的程序员。

要了解Java编程语言的关键词、方法和API很容易。但与此同时,要解决实际问题,设计可重复使用的、健壮的软件,并获得最佳的数据结构和算法,却是一个挑战。

我经常看到,当被要求在有限的时间内设计和编码一个解决方案时,Java程序员做得不是很好,但与此同时,他们对Java概念和所有的理论都很精通。

即使是有4到6年Java编程经验的高级程序员,有时也无法解决诸如设计咖啡机、编码自动售货机,甚至有时无法扭转一个链表的问题。我可能只是在成为一个更好的程序员,但了解自己的局限性,然后努力解决这些问题是至关重要的。

如果你在编码时感到阻力,那么你应该尽可能多地编码,如果你在使用面向对象的分析和设计时感到压力和迷失。你应该尽可能的用笔和纸来做设计。这种阻力实际上是阻碍你成为一个更好的程序员的原因。

我个人发现,编码和设计对一个普通的程序员来说有很大的阻力,因为他们中的大多数人在他们的专业工作中都没有做足够的编码和开发。

顺便说一下,要成为一个更好的程序员,可能有许多技巧,我将坚持我的清单,我个人遵循的,并不断帮助我。你可能会发现它们很有用,但如果你是在一个更高级的水平上,并且正在寻找成为一个解决方案架构师的技巧,你可能会喜欢看马克-法拉格尔的如何成为一个优秀的解决方案架构师课程。

为了成为一个更好的程序员,你需要真正擅长数据结构、算法、使用OOP设计、多线程和各种编程概念,如递归、分而治之、原型设计和单元测试。

编程是许多技能的组合,这意味着不可能在短时间内学会它,相反,它将随着时间和经验的积累而出现,但这不会自动发生。

你可以花5年时间做一个Java编程工作,但却不能成为一个好的程序员。因为大多数Java,面试的重点是理论而不是编程和编码技能。

没有多少程序员练习这些基本的编程技能。如果有一个强制性的解决问题的编程测试,我敢打赌,一般的程序员会好得多。无论如何,这里是我列出的可以帮助你成为一个好的程序员的清单。

1. 编码,编码,编码

为什么我把编码放在这个清单的首位?因为它是最难的,同时也是编程的核心部分。 通过编码,你也会意识到你在设计、错误处理、线程方面的错误,然后再回到这些各自的技能中去改进。你不能只在设计上下功夫;编码会产生输出,这对学习和作为一个成功者来说至关重要。

顺便说一下,不要刚解决完问题就停下来,最好是扔掉你的第一个解决方案,那只是一个原型,你的下一个解决方案应该解决你在构建原型时发现的问题、缺失的需求。

你也可以看看Udemy上的Clean Code with Java课程,了解更多关于编写生产质量的代码,这可以经得起时间的考验。

2. 阅读书籍

编码说起来容易做起来难,好的代码和坏的代码之间有巨大的区别,但你怎么知道?除非你看过好的代码,知道为什么某段代码是好的,否则你就无法理解其中的差别。 这就是书籍的帮助所在;通常情况下,作者本身就是伟大的程序员。他们以书的形式提供他们的经验。我喜欢书,但有一本书对我帮助特别大,那就是鲍勃叔叔写的《清洁代码》。

通过阅读这本书,我发现自己在代码中发现了问题,并时不时地应用这本书中给出的建议。我的建议是,如果你找到这样的书,请抓紧时间。我还建议多次阅读这些经典书籍,并时不时地参考它们。

另一本类似的书是Joshua Bloch的《Effective Java》,里面有很多好的建议。另外,通过阅读书籍,你是在学习别人的经验,而提高自己的方法只有两种,要么从自己的经验中学习(非常有限),要么从别人的经验中学习(无限)。

记住多了不一定好,与其读5本书,我建议读两本书,你喜欢读多遍。这两本书也是我列出的Java程序员的必读书目。

3. 为开源做贡献,注册邮件列表

为开放源代码做贡献,特别是Apache、Google和其他一些项目的代码,是提高你的编程技能和成为更好的程序员的另一种方式。只要签署他们的邮件列表和下面的讨论就能教给你很多东西。 因为大多数的讨论都发生在优秀的程序员之间,听他们的讨论,了解问题和他们的方法、解决方案和观点,会自动为你培养良好的编程习惯。

为了得到它的大部分,不要只是被动地坐着,提出问题,提供你的观点,但同时也要重视其他人。

4. 练习数据结构、算法和设计相关问题

我本来想把它放在第二项,但最后还是放在了第四项。在我看来,要成为一个更好的程序员,这是最关键的事情。我所看到和遇到的大多数优秀的程序员在数据结构、算法和计算机科学基础知识方面都非常出色。 通过学习这些东西,你可以更好地利用现有的东西。由于数据结构是任何程序的关键部分,在解决问题的过程中,对它们的扎实了解有助于解决问题。

同样,关键的编程原理、搜索和排序算法以及其他知名算法的知识也能培养你的编程技能。

你可以参加一个综合课程,如数据结构和算法。深入了解基本数据结构,它们的属性,以及何时在你的程序中使用它们。这是我在互联网上发现的较好的课程之一。

如果你喜欢看书而不是在线课程,那么你也可以参考这些书来提高你对数据结构和算法的认识。

5. 阅读好的博客

阅读好的博客是阅读书籍的一个小部分。阅读博客如何帮助你成为一个更好的程序员?嗯,确实如此。因为博客通常是由程序员自己写的,他们中的大多数人都会分享他们的个人观点,经验,你经常会发现他们是相关的。 而且,博客是一小段信息,所以它的消化率很高。博客也有助于学习新技术和现有语言和API的新功能。

很多时候,我在一篇小小的博客文章中看到了一些细微的东西,或者从Java的一个真正知名的部分中漏掉的东西。说到阅读好的开发文章,我更喜欢去Dev.to、FreeCodecamp和Medium等网站,尤其是一些专注于开发的出版物。

6. 阅读代码

如果说读博客有助于成为一个好的程序员,那么读代码的帮助就更大了,但同时,读博客很容易,但读代码却很难。你看到阻力了吗?那么你应该去做。 看看开源项目的代码,你的程序员同事的代码,你现有的专有代码,Java SDK中的代码,试着理解它们是如何工作的,试着看看它们在做什么,为什么这么做。

寻找模式,发展导航技能,起初你会发现这很枯燥和困难,但随着时间的推移,你会发展出良好的代码感,当你犯错时,它会提醒你,帮助你发现别人的错误,差距和代码气味。

这种代码感是一个更好的程序员的标志之一,他们往往倾向于寻找,你所错过的东西。如果你想提高你的编码技能,包括阅读和写作,并且需要一个资源,那么你也可以看看Udemy上的Pyramids of Refactoring(Java) - Clean Code gradually课程。这是一个你会在第一课就爱上它的课程。

7. 编写单元测试

单元测试是对思考和编码过程的补充,随后,帮助你更好地设计。任何难以测试的东西都有机会得到改进。另外,写单元测试对找到更好的名字、更好的抽象、更好的接口、抽象类设计有很大帮助,总体上提高了代码质量。 但是,就像编码和设计一样,单元测试对于普通程序员来说也是一项艰难的工作,你会看到很多阻力。一些程序员写了一些琐碎的测试,而不是认真思考使用场景。

请记住,在分析、设计和开发之后,单元测试是另一个思考场景和代码中的差距的机会,这一点无可替代。让它成为一个规则,总是为你的代码写一个单元测试。

如果你想学习Java中的单元测试,我建议你学习JUnit和Mockito,这是Java中单元测试的两个基本框架,如果你需要一个课程,我建议你参加Udemy上Ranga Karnan的JUnit 5 in 20 steps课程。

8. 做好代码审查

和单元测试一样,代码审查也是另一种有助于成为一个优秀的坚实的程序员的开发实践。代码审查对审查者和作者都有帮助,审查者提高他的代码意识,并提供真正的建议,而作者则从他的错误中学习。 你认为坚如磐石的代码,有一些只有其他程序员才能看到的错误,代码审查和四眼检查往往对你有帮助。

如果你很幸运,有机会在一个把单元测试和代码审查作为一门学科的公司工作,那么你就有可能成为一个比其他人更好的程序员。这两件事对提高编程技能有极大的帮助。

如果你想知道在代码审查中要检查什么,我建议你检查代码在功能上是否正确,是否遵循了标准做法,如SOLID设计原则和Java命名规则。你可以检查的另一件事是是否有足够的单元测试,这一点经常被忽视。

9. 与程序员交流

与交谈相比,阅读是一个被动的事件。谈论一个程序并与其他程序员讨论,往往会导致一个更好的解决方案,这是很自然的,因为当你说话和听别人说话时,你的思想往往会涉及更多。 我就曾在与队友讨论时发现差距、需求缺失、bug和设计缺陷。在软件行业中,程序员往往把自己与电脑隔离开来,谈话、分享和做白板会议对他们有很大的帮助。

不要只是坐在那里写代码,要多说、多听、多想,和程序员同事一起玩。参加活动也有帮助。你也可能得到一些有用的和实践的提示,在一夜之间成为一个更好的开发者,比如这个:-)

10. 参与论坛,在博客中发表评论

这是另一种形式的活动,可以帮助你修正知识。通过分享知识,第一个受益的人就是分享者。由于编程是一个庞大的领域,你往往会忘记大部分你超过3个月没有使用过的东西。

参与StackOverflow (IT问答网站),回答别人的问题,在博客和论坛上发表评论,是一个很好的修正知识的小方法,同时纠正你的错误观念。

通过把我们的知识放在别人面前,我们不仅可以帮助别人,还可以让他们接受考验。很多时候,你会看到有人从你的知识中受益,同时你的错误观念也得到了纠正。

每个程序员都想成为一个更好的程序员。但不是每个人都能成功。除了编程和解决问题的天赋外,要成为一个更好的程序员还需要大量的努力,不断的学习和坚持不懈的努力。你越是做真正的工作,如编码、设计、单元测试和代码审查,你就会变得越好。如果你此刻只想做一件事,我会说去阅读干净的代码。

参考文章:https://javarevisited.blogspot.com/2014/01/10-tips-to-improve-programming-skill-become-better-programmer.html#axzz7aVq8xnBN

推荐书单

《Java编程讲义》

购买链接:https://item.jd.com/13495830.html

《Java编程讲义》根据目前Java开发领域的实际需求,从初学者角度出发,详细讲解了Java技术的基础知识。

全书共15章,包括Java开发入门,Java语言基础,Java控制结构,数组,面向对象编程,继承和多态,抽象类、接口和内部类,异常处理,Java常用类库,集合与泛型,Lambda表达式,输入-输出流,多线程,JDBC数据库技术,网络编程等内容。内容全面覆盖.1ava开发必备的基础知识点,结合生活化案例展开讲解,程序代码给出了详细的注释,能够使初学者轻松领会Java技术精髓,快速掌握Java开发技能。

《Java编程讲义》适合作为高等院校相关专业的教材及教学参考书,也适合作为Java开发入门者的自学用书,还可供开发人员查阅、参考。

精彩回顾

想要代码干净又整洁?这里有十大原则

详细&全面的RxJava架构原理与设计讲解

Java面试宝典大集锦

扫码关注《Java学研大本营》,加入读者群,分享更多精彩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值