论Java如何入门

版权声明:本文为博主原创文章,未经博主允许不得转载。博主水平有限,欢迎指教 https://blog.csdn.net/Follower_JC/article/details/74937226

前言:

我学习Java也有一年多了,虽然现在还是个菜鸟,但是对于Java的基本编程还是学会了些。这篇文章就是我这大半年学(踩)习(过)经(的)验(坑)的一个总结,希望对于入门者有一些帮助吧。

学习编程语言的方法无不外乎三种:读书,编程,思考。



关于读书:

Java领域有很多很多的大部头经典论著,这些书籍往往令初学者感到既头疼又迷茫。那么初学者首先应该读什么书呢?我推荐的是《head first Java》,这本书非常之适合初学者。书里用图文结合的方法形象地阐述类、方法、继承、实现等java中的概念。这本书的中文译本也很棒,能感受到译者将书里原来就有的段子用心地改编成了中国版本。我也是受到别人安利才读的这本书,我所就读的学院软件工程相关课程的老师还将此书作为推荐书籍介绍给我们。




关于如何读这本书,我认为:

不要太急。博主当初觉得这本书挺简单浅显的,所以想早点读完然后去攻读《think in Java》这样的大部头,结果现实给了我响亮的一耳光。这本书语言虽然浅显,每页所分布的知识点也不多,但是其中很多地方都有很多思考空间的。读的太快的结果就是思考不够,后来编程时遇到问题往往想不到问题该如何解决。博主当年仅用了10天就把600页的《head first Java》读完了,并且还像模像样得做了两分十几页的读书笔记……然而……并没有什么卵用。我的一些同学甚至用一个学期才读完这本书,但是我们在编程上并没有什么差距[哭],甚至可能我还更菜些……再哭。

所以我推荐的正确读书姿势是

  1) 第一遍主要去熟悉Java中的概念和语法,对于一些读不懂的细节可以暂时不去管它。

  2) 对于Java中的一些重要概念,如对象、包、类、方法、继承、封装、多态、实现等要去了解和思考。

  3) 书里有很多质量很高的代码,建议亲自去实现一遍。

  4) Java的API是一种特别棒的东西,Java丰富的API也是Java应用如此广的原因之一。我建议能够浏览一遍Java的API,以有一个大致了解。了解Java的API有两种途径,一种是通过官方的文档,另一种是通过网上的API总结网站。关于第一种,我曾经上传过API文档,泥萌可以去下载(包括head first java我也有上传过)。关于第二种,我推荐一个网址http://www.howsoftworks.net/javaapi/。这个网址总结了Java中的常用API方法,配以简单的代码,理解起来很容易。不过没有官方文档那么细致全面。



如果你确定自己读透了这本书,就可以尝试其他书了。

推荐两本:

《think in Java》,这本书又大又全,适合深入理解Java。

《effective Java》第二版,这本书主要讲了一些Java中的编程经验,一共有78条,不过对于初学者用处不大,适合已经从事实际工作的人去阅读。

(同样的,这两本书我也都有上传,都可以去下的)



关于编程

读书一整天, 不如编程一小时。如果光读书不去实战的话,一天下来,收获能有二成就谢天谢地了。关于编程,首先是把《head first Java》里的项目都练一遍。然后呢,我再来推荐几个OJ网站。ACM的题对于普通编程学习者来说相对较难,而且ACM的题主要以算法为主,并不是很适合普通人学习。我推荐的网站有四个:


1) LeetCode 【http://www.lintcode.com/】。LeetCode是最好的中文刷题网站,支持Python、C++和Java三种语言。涉及算法、数据结构、字符串等多种知识点,建议Java初学者可以配套练习LeetCode网站中的入门/简单的题,这些题的可以在网上找到详细的讲解,我也写过几篇LeetCode解题分析文章(欢迎关注我[恬不知耻的笑脸])

(http://www.jiuzhang.com/solution/ 这个网站上有LeetCode上各题的答案代码,可供参考)


2) LintCode 【https://leetcode.com/】Lintcode听起来和LeetCode很相似,在某种程度上确实挺相似233,LeetCode是英文网站,题目总体难度高于LeetCode,并且测试样例也比LeetCode上更……更恶心人……,不过我不建议初学者刷LeetCode(毕竟提交错误代码是会影响accepted rate的,而且有许多公司的面试业会关注你的LeetCode情况,万一太难看就实在太尴尬了。如果觉得自己能力足够了就去刷吧少年!


3)牛客网 【https://www.nowcoder.com/】,牛客网贵在全,牛客网总结了各个大公司的面试题、Lintcode上的题,还有《剑指offer》里的编程题乃至ACM比赛题等,并且除了编程之外,还有知识点的选择题,倒是很适合去学习Java中的基础知识。


4)码农谷在线编程 【http://www.manonggu.com/biancheng/】,这个网站也有刷题乃至于编程比赛的渠道,但是我更推荐的是在线编程这个功能。你可以在网站上试运行简单代码,不必费力地去加载IDE。



其实关于刷题网站不必太纠结,都刷也不是不可以(比如我就是啦,每个网站都有账号,想刷哪个刷哪个),真正的难点在于”坚持“,坚持去刷题,遇到问题去思考,去搜索,去理解,不放弃。这才是最难的。我毅力就属于不上不下的那种,现在网站了还有几题处于 ”我做了但没做出来然后就不想做了于是题目就一直耗在那儿“ 的状态。

另外,刷题之余,也可以尝试着去写博客,用来理清自己的思路,也可以加深对知识的理解。



关于思考

思考这东西我真不知道怎么讲,所以干脆就不讲了吧23333(逃……



总结

Java这门语言其实学起来不难,至少比C++好多了orz。在读完入门书、网上刷题之后,还是要练一些较大的项目来提高水平的。可以去GitHub上学习一些优秀程序员的优秀代码。

嘤嘤嘤,你都看到这里了,不该给我点个赞关个注啥的么。


最后讲个笑话:Why do Java developers wear glasses? Because they cann't C# (see sharp).



猜你喜欢

转载自blog.csdn.net/Follower_JC/article/details/74937226