我java学习时的模样(一)
学会敲键盘,能够实现盲打
程序员写代码,是通过键盘将程序输入到编辑器中,而码子的高效,能够让自己的思路更流畅一些。如果想从事IT工作,那面打字就必须得会,并且,如果还一个一个字母去找,上司就会认为是一个低级程序员。我在上大一的时候,也是敲键盘,需要一个字母一个字母的去找,而想要敲一个程序,至少需要十多分钟,就十多行代码,敲完之后,根本不记得程序的逻辑,所有的经历都放在了找字母上。等自己买了电脑之后,下载金山打字软件,不断练习,也终于在之后,能够实现盲打了。平常的时候,不会记得字符放在哪个地方,但当手指放在键盘上时,想要的字母都会自动浮现在脑海中,这样肯定也是敲多了,熟练了。对,敲多了也能够熟练,但是,在前期的时候,非常多的程序需要敲的时候,如果敲字速度不够快,并不能实现一定程序的盲打,那非常耗时耗经历。在入门之前,先练好打字,这个算是最基本的事情了。
抄代码
在最开始的时候,都不知道程序是什么意思,这些单词组成之后就能够运行起来,很神奇啊,而想要思考其中的逻辑,先要尝试的敲一遍,让自己的大脑对这些代码有一些映象,然后在慢慢推敲这些单词表示什么意思。在以后很长一段时间,都是抄代码。因为本人比较笨,大部分程序都理解不了,只能先抄完,然后一行一行代码再去理解,直接明白这些代码的意思,并且对这些代码有了一个映像,甚至一些代码会背下来,在需要的时候使用。在这个时候,尽量不要去复制粘贴,因为这样一来,根本就不知道这些代码是什么,只知道这行代码能够运行起来,如果没有运行起来,就会很烦躁。想要真正的懂,就必须要敲,至少那些大神,都是一行一行代码出来的,等之后了,重复的代码会抽象,会有自己的代码库,那个时候复制粘贴,是快速完成工作,而且那些代码已经知道表达什么意思了,不必要再去敲。
入门看基础的书籍
我入门Java的时候,买了一本Java核心第一卷,然后将其中的代码都敲了一遍,慢慢的去明白其中各个变量,我稍微理解的快一些,并且能够通过书籍去理解,因为在大一的时候学习了C语言,有了计算机的一些基础,但是这些基础还不能完全让自己轻松的面对Java这么语言。如果没有基础的朋友,我建议找网上找那些Java基础的视频来看,然后熟悉对Java有一个基础的认识,然后再看书,再将书籍中的内容敲一遍,熟悉Java这么语言。 视屏加书籍,然后就是练手,这个时候的自己,虽然有一点认识,但是所有的代码都还只能抄,或者是靠背下来。我在入门Java那两三个月的时候,就是抱着电脑,对照着书籍来敲,或者是在网上找那些程序来敲,这个阶段就是熟能生巧,厉害的人除外。并且在这个过程中,将Java的基础熟练了,能够知道了通过变量和方法组成一个简单的程序。
找项目来练手
现在培训班也都是按照这样的方式进行,学习基础,练习一两个项目就出山了。自己没有经济实力,或者相信自己有自学能力的,在网上找资源,找项目来练手,这样能够锻炼自己动手找资源的能力。虽然这个过程会辛苦一些,但是会对将来有一些帮助,至少能够自己独立去找资源完成项目,毕竟之后要学习内容特别多,不可能有一个人手把手的教,不可能有一个可以经常请教的人,唯有靠自己,自己动手丰衣足食。 我找的项目练手,是那个网上购物商城,对照着视频上的代码,然后一点一点去敲,在最开始的时候,搭环境就花了很长时间,没有人教,只能自己搭,但是中间总会出现一些问题,导致心非常累,好在不断找解决的办法,也算是解决了。然后就是对照着敲完,那个项目熟悉了数据库和Javaweb项目,而做完这个项目,自己也学习了Java有半年时间了。 这个阶段,就需要多找项目来练手,现在网上的程序还是非常多的,前期尽量找带视屏的项目,因为这个时候,没有一个完整的概念,如果再github上找到一个项目,会不知道从哪里下手的。
写好注释
在之前的学习中,是否有人说,要写好注释。不知道在看代码的时候,会不会先去看一个方法的注释呢,如果有了一行注释,在去理解这个方法的时候,会不会更简单呢。好的程序,只需要通过变量名,方法名就能够知道表达什么意思。但是出于中国这个大的环境下,英文水平不高情况下,写好注释是对自己之后在看代码时,不在看细节,而直接看注释就明白,其他人看这段代码时,看了注释之后,理解代码会更容易。 在Java源码里,很多方法都会有一行注释,标识该方法表达了怎样的含义,如果方法的逻辑复制,会标出1,2,3.我个人认为,每个方法接口,都应该都一个简单的话来标识该方法或接口的意思。并且该注释尽量的使用中文,因为大部分去看这段代码不是自己,就是自己的同事,而且这个同事几乎就是中国人,写上英文增加了之后阅读的难度,而且英文不好时,那段英文表达的意思到了最后,都不知道是什么意思了。还有很多关键的地方都必须要写上注释,来表达自己使用时,为什么这样写。在我的代码中,特别是公司的代码,每个方法都将会有一行注释,而controller层中的代码,都将写好步骤注释,部分认为重要的地方也将注释代码。养成这样的习惯之后,每次修改和重构代码时,一下子就能回忆起当时怎么样思考的,而看其他人没有注释的代码的时候,自己会特别痛苦。有一点需要强调的是,不是非常详细的注释,能够表示大概逻辑,尽量精简语句。
这里可以简单列举一些在那些地方需要注释
- 实体类上,每个字段都需要注释
- 接口和方法,一段简短的话来简述其内容
- 某些方法上的关键字段,可能产生歧义的地方,之后可能遗忘但非常关键的地方。
- 逻辑代码标识步骤,清楚阐述整个逻辑
我java学习时的模样(一)的更多相关文章
- 我java学习时的模样(二)
去掉自己浮躁的心 工作了三年,见识过高山,也见过低估,高山同大神一起共事,低估是几家特别烂的外包公司,现在有了另一种心境.已经开始重视自己,去掉当初浮躁的心. 毕业的一两年内,是人成长特别快的时期,也 ...
- 我Java学习时的模样(三)
读Java源码 平常使用Java的时候,那些集合类使用起来很顺手,但是有没有想过这些集合内部的实现原理是怎样的,它的添加移除都有哪些操作? 有了一些工作经验之后,必须要读一读Java包中的源码,需要知 ...
- JAVA学习资源网站
中文java技术网——http://www.cn-java.com/ 灰狐动力(http://www.huihoo.com/)—— 该站点有许多的开源的项目的介绍和学习,涉及操作系统,数据库等许多方向 ...
- java运行时内存模式学习
学习java运行时内存模式: 各区介绍: 方法区(线程共享):用于存放被虚拟机加载的类的元数据:静态变量,常量,以及编译和的代码(字节码),也称为永久代(所有该类的实例被回收,或者此类classLoa ...
- JVM学习笔记:Java运行时数据区域
JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途.创建和销毁时间.根据<Java虚拟机规范>,JVM包括下列几个运行时数据区域,如下图所示: 其中红色部分是线程私 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
随机推荐
- phpize命令在安装AMQP插件是报错phpize:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF envir的解决方法
phpize命令在安装AMQP插件是报错phpize:Cannot find autoconf. Please check your autoconf installation and the $PH ...
- Verilog MIPS32 CPU(二)-- Regfiles
Verilog MIPS32 CPU(一)-- PC寄存器 Verilog MIPS32 CPU(二)-- Regfiles Verilog MIPS32 CPU(三)-- ALU Verilog M ...
- 微信公众平台开发框架 Bee.WeiXin
我们来看一下如何通过Bee.WeiXin开发微信公众平台.关于微信公众平台的一般性介绍, 这里不做展开. 园里找一找就可以了. 本文主要是介绍Bee.WeXin, 代码已发布到https://beew ...
- RobotFramework与Jenkins集成发送邮件
转: A. 目标:实现RobotFramework的脚本定时自动执行,执行完后自动将结果发送到指定邮箱 B. 前提1. 配置好Robot Framework的环境,脚本可以正常运行 2. ...
- owin Oauth
原文:http://www.cnblogs.com/richieyang/p/4918819.html 一.什么是OAuth OAuth是一个关于授权(Authorization)的开放网络标准,目前 ...
- Magicodes.NET框架之路[转]
插件式框架 响应式布局以及前后端对移动设备的支持 便捷的业务代码生成,比如CRUD生成,并且表单支持根据不同数据类型或特性生成相应的展示组件. 从框架到插件包括代码生成模板均走开源路线,便于理解和定制 ...
- js webstrom中svn的配置及使用
js webstorm中svn的配置及使用 一.webstorm配置svn: 1.在webstorm工具中找到file(文件)-setting(设置)菜单按钮: 2.在左边菜单中找到plus(插件) ...
- 5个Shell脚本编程入门练习例子
例子一:绘制特殊图形 复制代码代码如下: #!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " read ...
- 支付机构MRC模
一.电商RFM模型 RFM模型是一个简单的根据客户的活跃程度和交易金额贡献所做的分类.因为操作简单,所以较为常用. 近度R:R代表客户最近的活跃时间距离数据采集点的时间距离,R越大,表示客户越久未发生 ...
- 201621123023《Java程序设计》第6周学习总结
一.本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 二.书面作业 1. clone方法 1.1 在te ...