写给 Java 新手的学习编程指南

起源

本人在学习编程的时候的一些感想, 得到的一些教训。

学什么?

有一句俗语, 地基打不牢, 楼层再高也很快就会倒塌。 学好 c 语言, 书就是大学课本了, 觉得不好的话自己再买一本。

必须掌握 数据结构 + 操作系统 + 计算机网络 + 数据库

这里推荐一本书 《深入理解计算机操作系统》, 这本书基本包含 c 语言应用 + 操作系统 + 计算机网络 + 计算机组成原理。 适用于想要入门软件开发和初级的程序员使用。

你真的会使用 Windows 操作系统吗?

应该有些人是上大学才开始接触电脑, 对于电脑的使用并不熟悉。

在这方面, 班干部和学生会的 Leader 应该更加熟练地使用 Windows 及其软件。 因为他们平时还要整理各种 Excel、Word、PPT。 而有些同学则除了打游戏外恐怕连 Excel 是什么都不知道。

作为一个路人,当我还是学生的时候, 有一个谣言, 那就是 软件千万别安装在 C 盘上。

熟练使用 Windows 应当了解: - Windows 系统安装 - 软件安装 - 桌面整理 - 任务管理器 - power shell 和 cmd - 注册表 - 驱动程序 - 软件加壳解壳(如破解搜狗输入法的广告) - BIOS

即使 Windows 是请别人给你安装的, 自己也要用虚拟机安装一遍。

windows 应用程序中有个 使用技巧 的应用介绍。 MSDN 网站上有 Windows 系统镜像和 开发人员手册, 可以去了解一下。 你需要掌握包含如何识别流氓软件, 如何调度进程, 卸载和破解软件,Windows 卡顿问题、Windows 开机启动等等。

怎么学?

举个例子, 如果要学 Java 后台编程。 你必须会 - Java - XML 以及 XML 验证 (XML DTD、XML Schema) - Spring 官网 - Maven/Gradle/CMake

Java 这个还是买本书平时翻一翻, 菜鸟教程: http://www.runoob.com/java/java-tutorial.html, 自己对着目录敲一遍。

XML 这个 http://www.w3school.com.cn/xml 可以去了解一下。

有不少人一上来就上框架 SSH、SpringMVC, 但是他们连 XML 文件是什么都没理解, 看到那么多配置文件一脸懵逼, 你确定是在编程而不是在迷路吗?

学习 Spring 前期你可以去博客和 Google 上搜索教程, 你也可以跟着电子书写代码, 也可以跟着视频学。 我强烈推荐 https://spring.io 这个 Spring 官方网站。

大部分 Java 项目是采用 Maven 构建的, Gradle 兼容 Ant、Maven, 并且语法更为简洁, 正在逐步替代 Maven。 记得经常去拜访下 Gradle 官网。

关注语言的语法特性

现在很多书包括大学老师都教人怎么写出 Hello World 的代码, 简直是误人子弟。 学习一门语言真正应该掌握的是该语言的语法特性, 而不是各种 printf()。 语法特性包括: - 变量定义 - 算术运算 - for 循环语句,while 循环语句 - 函数定义,函数调用 - 递归 - 静态类型系统 - 类型推导 - lambda 函数 - 面向对象 - 垃圾回收 - 指针算术 - goto 语句

Java 语言四大特性

  • 接口
  • 枚举
  • 注解

有些人不了解 Java 这几个特性就上 SSH、SpringMVC 框架, 结果学的一塌糊涂。 特别是关于注解和反射的部分, 代理什么的。 这四大特性中注解这部分可能是很多人最容易忽视的, 但是 Spring 各种框架看不懂注解, 你真的是在编程而不是迷路吗?

Java 类加载器

很重要, 不多说, 因为我也不知道。

官方文档优先原则

学习编程一阵子, 在网络上发现大部分的问题都能在官方文档上找到答案。 所以当你还是新手的时候, 你可以去 Google、Stavk Overflow、CSDN、百度、博客园 上找到答案, 可以去找培训、慕课网、网易云课堂、腾讯课堂学习。

直到现在还有朋友找我推荐 Java Web 后端的书, 那就推荐一本吧, 《Spring3.0 就这么简单》, 可以去百度找免费 PDF。 我强烈推荐 https://spring.io 这个 Spring 官方网站。

官方网站的使用方法

善于使用站内搜索, 比如, 现在要你去看看 如何使用 Gradle 构建 Spring 项目。

正确的做法是: - 打开 spring.io 网站 - 点击 Guilds, 光标显示输入文本, 输入 Gradle, 回车 - 在搜索结果中点击 Building Java Projects with Gradle

从动手中学习

初学 Java 后端时, 应当尽量让代码跑起来, 然后再来将就程序正不正确。

及时做笔记

人总是过于相信自己的记忆力, 结果反而造成很多问题, 因为记忆是可以篡改的。

遗忘曲线大家应该了解吧。 我不想做纸质笔记, 因为繁琐而且还要携带。

现在是云时代, 各种云盘哪怕是手机中的便签应用都可以同步到手机厂商的云服务器中。

这里着重推荐一款云笔记--有道云笔记。 电脑上使用 chrome 浏览器用网页版就可以了。

手机上装个有道云笔记 app, 主要用来复习的。 有道云支持 markdown, 而且免费, 很良心了。

搜索引擎的正确使用方法

搜索引擎的作用: - 辟谣 - 解惑 - 涨知识 - 分享

百度经验, 百度知道, 和百度贴吧还有其他社区网站可以获取一些资源。

博客的正确使用方法

在你接触一个新框架时, 其他人的经验可以让你少走些弯路, 因此你可以对着别人的波博客进行新框架的入门代码。

在你还是初级程序时, 博客可以当做百度使用, 站在前人的肩膀上, 少走别人的弯路。

关于各种 Shell

无论是 cmd, power shell, git, java, Linux shell, 遇到不懂的多打 --help

git --help

javac --help

ls --help

读书的正确方法

总有人说, 把书读薄, 这是狗屎, 厚书本不应该拿来阅读, 而是拿来当字典用的, 可以将厚书的目录浏览一遍, 等你需要的时候再对应目录去寻找。 当然, 有一些章节也是要细读才能更好掌握。

不要去做聪明人

聪明人喜欢做比较, 最近有个朋友一直在纠结 Java 编程用哪个 IDE 好, 是 Eclipse 还是 IDEA 呢? 结果他两个都安装了一遍, 这倒没什么, 因为可以比较。 但是如果两个都用, 那你可能会很痛苦, 浪费时间。

所以, 宁可当个傻瓜也不要去做个聪明人。

关于 fan qiang

有时候百度给你的是一堆已经过时的信息, 而且国外的一些信息也没办法提供给你。 这里推荐 Google 搜索, fan qiang 工具: Tor 浏览器、蓝灯(Github 下载)。 稳妥一点还是自己买个 wei P N。 注: 部分词语被和谐

关于面试

本人从一百多次面试失败的经验提醒你, Java 基础和 Java 数据结构有多重要。

Java 基础很重要,特别是关于语言特性的只是一定要多加掌握, 而不是到处 clone 项目, 然后开始各种各样的 Hello World。

Java 有很多数据结构, 各种链表集合看得人眼花缭乱。 里面的大部分算法是数据结构的内容, 因此学好数据结构很重要。

PS:

吐槽可能得罪一些朋友, 请见谅!

写的比较粗糙, 有不足之处望多多包涵。

发表评论

评论内容
 

评论列表, 共 0 条评论