论Java如何入门

前言:

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

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



关于读书:

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




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

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

因此我推荐的正确读书姿式是api

  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).


相关文章
相关标签/搜索