内容简介:如何成为一名优秀的 Java 程序员
许多 Java 开发人员问我:"如何成为一个更好的程序员?" ,"我如何提高自己的编程技能?" 或者 "我擅长Java开发,但不擅长解决问题的技巧"等,这是大多数 程序员 的现状。
在这行有很多编程语言专家,理解 Java编程语言的关键字,方法和API 是很容易的,但解决遇到的实际问题却是很难的,设计一个可复用和稳定的软件程序,并使用性能最优的数据结构和算法尤其更难。
我经常看到Java程序员在被要求在有限时间内设计和编写一个好的程序,或者解决一个难以解决的BUG, 但不可思议的是他们都有很好的Java基础和理论, 但效果不是很理想。
即使是4到6年的Java编程经验的高级程序员,有时也无法解决架构等问题; 也无法解决像 JVM,机器语言编码或有时甚至是递归链表的问题。我可能只是从成为一个好程序员的思维出发,但发现自己的不足 然后再改正是很有必要的。
如果你在编码方面感到压力和迷茫,那么你应该尽可能的写代码,如果你对 面向对象编程 缺乏理解,那么你应该尽可能地先在纸上用笔做初步的设计。
我本人发现,对于一般的程序员来说架构是一个很艰巨的问题,因为他们大多数的工作中没有做足够的编码和软件开发。
提高编程技巧的10条建议
如果你想成为一名优秀的程序员,你需要非常擅长数据结构 算法 OOP 编程 , 多线程 和各种 编程基础 ,例如 递归、分离原则、 设计模式 和单元测试 。
编程是许多技术的组合,这意味着你在短时间内不可能学好并精通,而是需要时间和经验,但也不会自然的成长,你可以花5年时间做一个Java编程工作,但并不能说你就是一个优秀的程序员。 由于你可能大部分时间花在 J ava的理论上, 而不是真正研究编程和编码技巧上。
大部分程序员却没有练习这些基本的编程技巧。如果有一个必须要解决的问题需要写编程测试,我敢打赌,你的技术将会提高的很快。
无论如何,下面是我的一些建议清单,仅可能帮助你成为一名优秀的程序员。
1)编码,编码,再编码
为什么我的建议首先提这个编码?
因为持续编码很艰难的,同时它也是编程的核心。通过大量的编程,你也可以自己设计代码,异常处理,高并发多线程等方面实现自己的想法,然后再回到相应的技能上来进行不断的改进优化。如果你能在编码中输出自己的思想,这就是你成功前提。 顺便说一句,不要只是在解决问题之后就停下来,最好pass掉你的第一个解决方案,换一个新的方案再去解决这个问题。
2)阅读书籍
编码说起来容易做起来难,不同程序员之间代码和代码差别很大,但你怎么知道的呢?
直到你看到一个好的代码,知道一个模板的代码为什么是好的,你却不明白的他们的区别。 这就是书籍的能帮助到你的,很多时候,作者本身就是程序员出身。他们将所学经验以书的形式分享给大家。我本人也喜欢书,有一本书对我很有帮助。
通过看这本书,我发现了自己代码存在很多的不足,并且经常参照本书给出的案列去开发我的程序。 我建议,如果你找到这样的书,就不要错过。我也推荐你多阅读下这本经典的书,以后也会不定时的推荐一些好的书籍。
另一本类似的书是Joshua Bloch的 Effective Java ,这本书的内容有很多不错的建议。另外,通过阅读书籍,你可以 学习到 别人到知识, 只有两种方法可以对比自己的代码好坏 。 借鉴自己的编程经验(非常有限)或从别人的经验中学习(无限) 。 阅读大量的书并不见的是好事情。 我认为 你不需要去阅读大量的书,而是花多次去读一两本优秀书。
3)参考开源项目,和issue
借助开源代码,特别是来自Apache、Google、和其他不错的公司和个人的一些项目来提高你的编程技巧。只需star他们的开源列表,下面的issue会教你很多。
由于大多数issue都是在优秀的程序员之间进行的,通过阅读他们的建议,和理解问题的方式,以及解决文推的方案和观点,自然而然帮你养成良好的编程习惯。 为了让自己提高得到最大化,不要只是被动的去阅读,而是去提出问题,回答问题,同时也要去关心他人的技术建议。
4)练习数据结构,算法和设计模式
我本打算把这条作为第二条,但结果却是第四条。在我看来,这是成为一个优秀程序员最关键的事情。我见过的大部分优秀程序员都非常擅长 数据结构,算法和基础知识 。
通过学习这些知识,你可以更有效地利用其它有用的东西。由于数据结构是任何一个程序中的关键之一,因此在解决问题时可以获得扎实的知识。 同样,编程思想,搜索和 排序 算法帮你提高开发编程技能。 你可以参考一 些书籍来掌握对数据结构和算法的了解。
5)阅读优秀的博客
阅读不错博客是也是属于阅读书本的一小部分。为什么阅读博客能帮助你成为优秀的程序员?
由于博客往往是由程序员自己编写的,大多数博客都分享他们的个人思想和经验,所以我们经常会发现博客内容和他们自己经验是相关的。而且,博客的内容一般是一小块信息,所以消化得很好。
博客还有助于学习现有语言和API的新技术和新特性。很多时候,我看到一篇博客文章中写的Java 部分中会学到了一些新东西。
6)阅读源码
如果阅读博客有助于成为一名优秀的程序员,那么阅读 源码比这个更有价值,阅读博客很容易,但阅读代码是艰难的。 阅读源码你怕吗?
如果怕,那么你应该这样做:
-
查看主流优秀开源项目的代码
-
你关注的程序员的代码
-
你手头上拥有的代码
-
Java SDK中的代码
并试着了解它们是如何工作的,试着看看里面在做了什么逻辑以及它们为什么做。
找到里面的设计模式,开发技巧,刚开始你会发现代码很无聊,阅读起来也是困难的,但随着时间的推移,你会拥有一个良好的阅读代码感,当你犯了一个错误,你的代码感会提醒你,让你发现和别人的差距。 这种代码感是成为合格程序员的标志之一,他们往往倾向于看你的代码出了什么错。
7)编写单元测试
单元测试补充编程思维和编码技巧,并帮助你更好地设计代码。
任何难以测试的东西都需要改经优化。此外, 编写单元测试可以帮助你找到更好的类名,更好的抽象思维,更好的UI界面和抽象类的设计,并提高代码的质量。 但是像编码和设计模式一样,对于一般的程序员来说单元测试也是一项艰巨的任务,你会发现很多不足。有些程序员写的是微不足道的测试代码,而不是在使用场景上努力思考。
记住,在分析,设计原型和开发之后,没有什么可以替代思考的方式让你提高的更快,单元测试是另外一个机会来弥补思考代码中的场景的空白。 做一个规则为你的代码写一个单元测试。
8)做代码ReView
就像单元测试一样,代码审查是帮助成为一名优秀靠谱程序员的一项指标。 代码审查都能帮助review的人和作者,review的人给了他的代码意义,并提供有用的意见,同时作者也从他的建议中学习,通常有助于你纠正你认为的代码是没问题,但是一些问题只有其他的程序员可以看到。
如果你有机会在一个有单元测试的公司工作,把代码审查当作规范,那么你很可能是一名有大量时间休息的程序员 。 这两件事对于提高编程技巧非常有帮助。
9)与其它程序员多交流
与沟通讨论相比,阅读书籍和博客都是被动的事情。与程序员讨论一个程序问题,往往会获得更好的解决方案,这是很常见的,因为当你发言,听别人时,你会学到更多。
接着,我在与同事讨论时会发现自己的差距,缺点,代码设计缺陷。 在软件行业,程序员们更倾向于用聊天 工具 沟通。 不要只是坐在那里编码,你应该跟他人沟通,倾听,思考并和其他程序员混在一起。
10)多上StackOverflow和论坛,多在博客评论
这是另一种有助于提高知识的办法。通过分享知识,第一个受益人就是分享的人。 由于编程是复杂的,你往往会忘记3个月以上不使用的技术。去 StackOverflow 浏览答案 并回答,评论博客和论坛是学习知识的好方法,同时也纠正你对某个技术的错误认知。
通过把自己知识分享给他人,我们不仅帮助了别人,而且还帮助他们做自我检讨。很多时候,你会看到,有人从你的知识中受益,但你也会发现自己的不足。 每个程序员都想成为一名优秀的程序员,但不是每个人都能达到这个境界。
除了你拥有丰富编程和解决Bug的天赋,你还需要付出更多的努力,不断的坚持学习才能让你成为一名优秀的程序员。
你 接下来做的事情实际上越多,例如 大量编码,设计模式,单元测试和代码审查, 你就会变得越优秀。
如果你现在只想做一件事情,我建议你反手来个赞 。
出处:http://javarevisited.blogspot.com/2014/01
翻译:Tmaic
开发者技术前线 欢迎各界读者投稿,加群学习请回复“加群”,
免费小密圈请点击: 免费小密圈资格邀您加入
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python 3网络爬虫开发实战
崔庆才 / 人民邮电出版社 / 2018-4 / 99
本书介绍了如何利用Python 3开发网络爬虫,书中首先介绍了环境配置和基础知识,然后讨论了urllib、requests、正则表达式、Beautiful Soup、XPath、pyquery、数据存储、Ajax数据爬取等内容,接着通过多个案例介绍了不同场景下如何实现数据爬取,后介绍了pyspider框架、Scrapy框架和分布式爬虫。 本书适合Python程序员阅读。一起来看看 《Python 3网络爬虫开发实战》 这本书的介绍吧!