欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习记录(3)(培训感悟)

程序员文章站 2024-03-23 21:40:10
...

不知不觉,从开始学习java到现在已经过去了二十来天。我的学习也进入了一个新的阶段(加入了某培训班),到现在学习了将近一个星期吧,这篇文章准备谈谈这段时间来的体验,也包含了大四最后一学期的一些回顾。
说实话,在加入培训班之前还是很忐忑的。虽然自认学习java转行的想法很坚定,但在真正踏出这没有回头路的一步之前,面对颇多阻力,心里还是有过一番激烈的交锋的。
首先面对的是家庭的不支持。说实话这一关还是蛮难过的。因为大四时跨考心理学的决定就不太合父母的意,他们觉得心理学相比我的本专业物理跨度太大,并且就算考上了研究生,读完出来找工作也不容易,舅舅的意见是考个计算机的研。当时我是不以为意的,只想着还年轻,既然感兴趣去尝试一下也无妨,就算失败了也输得起。
3月份出了考研失败的结果,我也只是短暂的难过了一段时间,对他们的话还不怎么放在心上。而当我参加春招,面对真实的招聘时,才发觉他们的话不无道理。在用物理的本专业茫无头绪地面试人力资源、咨询顾问、管培生等岗位失败之后,我发现心理学这个专业在就业市场上也没有什么竞争力。在某种程度上来说,找大部分工作还真的就看专业对口。其实想想也不无道理,假如你没有一技之长,也没有在人际沟通、活动策划等方面表现出特别突出的能力,企业自然更乐意选择专业对口的人,普通人想跳出专业的束缚,不做充分的准备是很难的。
当我不断成长,我日益发现,父母的话是有道理的。或许在当时你不明白,但你在之后的日子里总会慢慢理解。因此在转java这个问题上,我还是很看重父母的意见的。
父母的意见是就在家乡找个工作。准备考公也好,事业单位、国企也好,找个清闲的铁饭碗,安安稳稳地过一辈子。说实话,在几年前这样的生活还是很吸引我的。平静恬淡,我可以集中精力在生活上:看书、看电影、玩游戏,甚至尝试去写小说,追寻一下童年的梦想。但在大学这几年,由于对本专业毫无兴趣,差不多算过了四年这样的生活,我发现自己骨子里是个闲不下来的人。我确实玩够了,也玩厌了;而这样温水煮青蛙般的生活的可怕之处在于,就算你能明确地感受到自己对它的厌恶,第二天起来,你还是会习惯性地干着一样的事——你已经不知不觉地被它腐蚀了。我可以想象这样的日子过上几十年,我会变成一个什么样的巨婴。
我也是这样和他们沟通的。转it这个想法也是我在春招的过程中慢慢萌生的。一方面我发现自己确实不太适合那种销售型主要依赖人际能力的工作。一开始我想的是自己不擅长主动沟通只是因为没去尝试;但在找工作中我渐渐发现自己确实本质上不喜欢这种沟通方式。我是个交新朋友不太快的人,很难跟人一见面就称兄道弟。我觉得自己还是比较适合那种技术型的工作吧,在智力上对自己还是有点信心的;另一方面,我在校招中发现程序员的岗位确实很多,而且也不太看出身?而且待遇相比大部分工作也算优厚。父母眼中畏之如虎的压力和竞争在我眼里甚至是求之不得的——划了四年了,是时候努力了呀!(可能还是年轻吧=。=)
转it这个想法通过了之后,父母跟舅舅沟通,劝我考计算机的研。其实考研我也考虑过。但在6月份这个时间点确实有点尴尬。要复习那么多门课,这个时间实在是太紧张了。而花一年半的时间准备,要是失败了,这个代价未免太大了。而且我也有点厌倦学校里的学习方式,觉得不太*。父母和舅舅的想法,总结起来就是科班二字。但根据我的了解,it这个行业应该更看重实际的能力,不问出身:毕竟春招的时候,很多程序员的岗位都是不限专业的。软磨硬泡之下,最终还是获得了父母的支持。
关于培训:
在是否参加培训这个问题上,我也是纠结了很久。培训的优点是快速入行,可以少走弯路;但在网上也看了很多说培训不好的地方:比如培训出来的,在面试时更容易受到歧视;培训出来的程序员都千篇一律,比较定型,发展潜力不大;培训机构良莠不齐,比较浪费钱,而培训机构的课程网上都能找到……等等。我在家里自学了一段时间,自我感觉也还可以。但忧虑的就是在家里闭门造车会碰到问题:首先是和人交流不够,怕自闭;然后碰到问题,现在基础部分在网上搜一下还比较好解决,但是以后万一碰到难点卡主了就很麻烦;自学在进度上也比较慢……更重要的是,我需要一个圈子。需要认识这行的人,面对面结交朋友。
因此,我就来到了上海,参加了一家培训机构。
说实话,这里比我想的要好很多。首先是半军事化管理,上二休一,上课的时候早九晚十,上课收手机,学习效率比自学确实高了不少;同时资料齐全,不仅仅是视频,讲义也很详细,基础班的内容大部分看讲义就能理解,不懂的再看看视频,比自学纯看视频效率更高(比300集里公开的讲义详细多了);这里的模式是半天面授上课,半天自习,晚上自习。这个节奏我个人还是很喜欢的,有充足的时间可以用来练习、预习,一般预习利用笔记和视频提前把上课的内容学完,再上课听一遍就能掌握得比较详尽。最后一点是关于这里的人。这是来之前我很担心的一点:怕老师不负责;怕同学不努力。因为学习环境对学习的影响还是挺大的。来了之后这个问题的答案还是让我挺满意的:老师、助教都挺负责的;同学也都很努力,上课、自习的氛围都不错,我也认识了一些本专业的新朋友,特别是我的同桌,他对之后的职业发展路径的规划很清晰,让我这个行业的了解加深了很多。
但同时,不可避免的,培训班也会有一些缺点:首先课程难度简化,对一些底层的原理性的知识讲解的比较少,更偏向于应用。这可能也是培训班比较被外界所诟病的一点吧,跟科班出身的人在技术的理解上有所不足。,知其然而不知其所以然;(我个人的解决方案是在网上多找资料补上,打算有基础之后再买一些书研究)然后很多人学习能力很弱。这一点说的是他们不懂学习的方法,不会自己在网上拓展,而是拘泥于培训班提供的资料。我觉得让自己不局限于培训班最重要的就是培养自学能力,不断提升。
下面讲几个我在自学过程中遗漏掉,这几天培训中补上的知识点吧(在自学过程中真的非常容易学的很片面):
(1)byte、short、char进行运算时都会转换为int型,再进行运算。

byte a=1;
byte b=2;
byte c=a+b;
 System.out.println(c);

编译报错,因为a,b是变量,变量的值是可能变化的,编译时无法确认a+b的结果是什么,因此会将结果以int类型处理,不能用byte赋值。
而byte类型数据,是可以使用++的。

(2)基本数据类型传递的是值的副本,引用数据类型传递的是地址的值:

int[] arr1 = new int[]{1,2,3,4};
int[] arr2=arr1;
arr2[1]=3;

System.out.println(arr1[1]);

输出结果为3.因为arr2=arr1相当于把arr1的地址给了arr2,两个变量指向了同一个地址的数组,当利用arr2修改第二个元素为3时,arr1[1]的结果也是3.

(3)this关键字的用法:
这也是之前自学时不太懂的一点。之前只知道this指的是当前对象的地址值,以及在构造方法中需要用this来初始化值,却不明白this.name=name这行代码的意义是什么。
用一个JavaBean的类来举例:
这是没用this书写的结果:

public class Student {
  private String name;
  private int age;

  public void setName(String n) {
    name = n;
  }

  public String getName() {
    return name;
  }

  public void setAge(int a) {
    age = a;
  }

  public int getAge() {
    return age;
  }
}

下面是使用this之后的代码:

public class Student {
  private String name;
  private int age;

  public void setName(String name) {
    //name = name;
    this.name = name;
  }

  public String getName() {
    return name;
  }

  public void setAge(int age) {
    //age = age;
    this.age = age;
  }

  public int getAge() {
    return age;
  }
}

在没用this时,假如set方法中成员变量和局部变量同名,就会赋值失败,而this能解决这个问题。

这段时间还有一个心得,就是遇到卡主的问题,想不出来的代码时可以缓一缓,等心静下来再写,可能有奇效。(昨天一道解决数组重新输入的题卡了挺久的,睡一觉起来很快就想好啦)

努力、奋斗!

上一篇: DP(状压进阶一)

下一篇: