学会敲键盘,能够实现盲打

程序员写代码,是通过键盘将程序输入到编辑器中,而码子的高效,能够让自己的思路更流畅一些。如果想从事IT工作,那面打字就必须得会,并且,如果还一个一个字母去找,上司就会认为是一个低级程序员。我在上大一的时候,也是敲键盘,需要一个字母一个字母的去找,而想要敲一个程序,至少需要十多分钟,就十多行代码,敲完之后,根本不记得程序的逻辑,所有的经历都放在了找字母上。等自己买了电脑之后,下载金山打字软件,不断练习,也终于在之后,能够实现盲打了。平常的时候,不会记得字符放在哪个地方,但当手指放在键盘上时,想要的字母都会自动浮现在脑海中,这样肯定也是敲多了,熟练了。对,敲多了也能够熟练,但是,在前期的时候,非常多的程序需要敲的时候,如果敲字速度不够快,并不能实现一定程序的盲打,那非常耗时耗经历。在入门之前,先练好打字,这个算是最基本的事情了。

抄代码

在最开始的时候,都不知道程序是什么意思,这些单词组成之后就能够运行起来,很神奇啊,而想要思考其中的逻辑,先要尝试的敲一遍,让自己的大脑对这些代码有一些映象,然后在慢慢推敲这些单词表示什么意思。在以后很长一段时间,都是抄代码。因为本人比较笨,大部分程序都理解不了,只能先抄完,然后一行一行代码再去理解,直接明白这些代码的意思,并且对这些代码有了一个映像,甚至一些代码会背下来,在需要的时候使用。在这个时候,尽量不要去复制粘贴,因为这样一来,根本就不知道这些代码是什么,只知道这行代码能够运行起来,如果没有运行起来,就会很烦躁。想要真正的懂,就必须要敲,至少那些大神,都是一行一行代码出来的,等之后了,重复的代码会抽象,会有自己的代码库,那个时候复制粘贴,是快速完成工作,而且那些代码已经知道表达什么意思了,不必要再去敲。

入门看基础的书籍

我入门Java的时候,买了一本Java核心第一卷,然后将其中的代码都敲了一遍,慢慢的去明白其中各个变量,我稍微理解的快一些,并且能够通过书籍去理解,因为在大一的时候学习了C语言,有了计算机的一些基础,但是这些基础还不能完全让自己轻松的面对Java这么语言。如果没有基础的朋友,我建议找网上找那些Java基础的视频来看,然后熟悉对Java有一个基础的认识,然后再看书,再将书籍中的内容敲一遍,熟悉Java这么语言。 视屏加书籍,然后就是练手,这个时候的自己,虽然有一点认识,但是所有的代码都还只能抄,或者是靠背下来。我在入门Java那两三个月的时候,就是抱着电脑,对照着书籍来敲,或者是在网上找那些程序来敲,这个阶段就是熟能生巧,厉害的人除外。并且在这个过程中,将Java的基础熟练了,能够知道了通过变量和方法组成一个简单的程序。

找项目来练手

现在培训班也都是按照这样的方式进行,学习基础,练习一两个项目就出山了。自己没有经济实力,或者相信自己有自学能力的,在网上找资源,找项目来练手,这样能够锻炼自己动手找资源的能力。虽然这个过程会辛苦一些,但是会对将来有一些帮助,至少能够自己独立去找资源完成项目,毕竟之后要学习内容特别多,不可能有一个人手把手的教,不可能有一个可以经常请教的人,唯有靠自己,自己动手丰衣足食。 我找的项目练手,是那个网上购物商城,对照着视频上的代码,然后一点一点去敲,在最开始的时候,搭环境就花了很长时间,没有人教,只能自己搭,但是中间总会出现一些问题,导致心非常累,好在不断找解决的办法,也算是解决了。然后就是对照着敲完,那个项目熟悉了数据库和Javaweb项目,而做完这个项目,自己也学习了Java有半年时间了。 这个阶段,就需要多找项目来练手,现在网上的程序还是非常多的,前期尽量找带视屏的项目,因为这个时候,没有一个完整的概念,如果再github上找到一个项目,会不知道从哪里下手的。

写好注释

在之前的学习中,是否有人说,要写好注释。不知道在看代码的时候,会不会先去看一个方法的注释呢,如果有了一行注释,在去理解这个方法的时候,会不会更简单呢。好的程序,只需要通过变量名,方法名就能够知道表达什么意思。但是出于中国这个大的环境下,英文水平不高情况下,写好注释是对自己之后在看代码时,不在看细节,而直接看注释就明白,其他人看这段代码时,看了注释之后,理解代码会更容易。 在Java源码里,很多方法都会有一行注释,标识该方法表达了怎样的含义,如果方法的逻辑复制,会标出1,2,3.我个人认为,每个方法接口,都应该都一个简单的话来标识该方法或接口的意思。并且该注释尽量的使用中文,因为大部分去看这段代码不是自己,就是自己的同事,而且这个同事几乎就是中国人,写上英文增加了之后阅读的难度,而且英文不好时,那段英文表达的意思到了最后,都不知道是什么意思了。还有很多关键的地方都必须要写上注释,来表达自己使用时,为什么这样写。在我的代码中,特别是公司的代码,每个方法都将会有一行注释,而controller层中的代码,都将写好步骤注释,部分认为重要的地方也将注释代码。养成这样的习惯之后,每次修改和重构代码时,一下子就能回忆起当时怎么样思考的,而看其他人没有注释的代码的时候,自己会特别痛苦。有一点需要强调的是,不是非常详细的注释,能够表示大概逻辑,尽量精简语句。

这里可以简单列举一些在那些地方需要注释

  1. 实体类上,每个字段都需要注释
  2. 接口和方法,一段简短的话来简述其内容
  3. 某些方法上的关键字段,可能产生歧义的地方,之后可能遗忘但非常关键的地方。
  4. 逻辑代码标识步骤,清楚阐述整个逻辑

我java学习时的模样(一)的更多相关文章

  1. 我java学习时的模样(二)

    去掉自己浮躁的心 工作了三年,见识过高山,也见过低估,高山同大神一起共事,低估是几家特别烂的外包公司,现在有了另一种心境.已经开始重视自己,去掉当初浮躁的心. 毕业的一两年内,是人成长特别快的时期,也 ...

  2. 我Java学习时的模样(三)

    读Java源码 平常使用Java的时候,那些集合类使用起来很顺手,但是有没有想过这些集合内部的实现原理是怎样的,它的添加移除都有哪些操作? 有了一些工作经验之后,必须要读一读Java包中的源码,需要知 ...

  3. JAVA学习资源网站

    中文java技术网——http://www.cn-java.com/ 灰狐动力(http://www.huihoo.com/)—— 该站点有许多的开源的项目的介绍和学习,涉及操作系统,数据库等许多方向 ...

  4. java运行时内存模式学习

    学习java运行时内存模式: 各区介绍: 方法区(线程共享):用于存放被虚拟机加载的类的元数据:静态变量,常量,以及编译和的代码(字节码),也称为永久代(所有该类的实例被回收,或者此类classLoa ...

  5. JVM学习笔记:Java运行时数据区域

    JVM执行Java程序的过程中,会使用到各种数据区域,这些区域有各自的用途.创建和销毁时间.根据<Java虚拟机规范>,JVM包括下列几个运行时数据区域,如下图所示: 其中红色部分是线程私 ...

  6. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  7. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  8. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  9. 0032 Java学习笔记-类加载机制-初步

    JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...

随机推荐

  1. [leetcode] 1. Valid Palindrome

    leetcode的第一题,回文数判断. 原题如下: For example, "A man, a plan, a canal: Panama" is a palindrome. & ...

  2. 如何在github上上传readme文件

    首先打开记事本写好文字 然后保存为readme.md文件 打开github网页,登录自己的账号,选择右上角new repository 填写信息,勾选选项如下 创建好之后,选择upload files ...

  3. python之文件操作总结

    目录 文件:数据的抽象和集合 文件的打开关闭 文件内容的读取 文件的全文本操作 文件的逐行操作 数据文件的写入 使用json模块 文件:数据的抽象和集合 文件是存储在辅助存储器上的数据序列 文件是数据 ...

  4. Visual Studio Error

    Visual Studio Error 注意:文中所有“系统”用词,均指Windows Console操作系统IO Debug Error 错误类型 #0表示调用约定错误 可以考虑在指针前面加上_st ...

  5. GridView中合并单元格

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...

  6. js ~或者~~

    问题:~是什么意思? 答:js中是对数字取反 var a = null; var b = '23' console.log(~~null) console.log(~~b)

  7. NuGet文件下载与应用

    nuget是一款.net下强大的包管理开发工具,Visual Studio 2013和Visual Studio 2015都缺省支持Nuget.在线开发能享受到Nuget的便利,但是如果是离线开发,还 ...

  8. C#连接SQL server数据库

    C#连接SQL server数据库 创建一个Windows应用程序,在窗体中添加TextBox控件.Button控件.Label控件. private void button1_Click(objec ...

  9. 「AH2017/HNOI2017」礼物

    题目链接 戳我 \(Solution\) 应为我们可以将任意一个数列加上一个非负整数,即可以变为将一个数列加上一个整数(可以为负),我们将这个整数设为\(z\).所以要求的式子的变为: \[\sum_ ...

  10. 对Java意义重大的7个性能指标

      本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序现在,让我们看看这些性能指标,并了解如何查看并收集它们.: 一,响应时间和吞吐量 根据应用程序的响应时间可以知道程序完 ...