由Python入门Java的一点感想

引言:鄙人本是由其他行业义无反顾投身到码农的,大势所趋选择了Python语言和机器学习那一套理论。方找到合适而满意的工作,如今工作上项目开发遇到了Java,遂开始了学习java 的一段路程,叙述一下学习经验和对入行IT的一些想法,刚刚半个月Java的经验,谈一些想法,实属浅陋,还请大神不要喷我==。

1. 谈一谈Java的地位:

虽然以Python入行,企业也一般以Python用来做机器学习项目,但是java在语言界的地位仍然不可撼动啊。鄙人认为,入行后如果应用算法理论,开发软件等产品,那么势必还是要熟悉Java开发的知识,与软件、web服务等相关的开发还是离不开Java,Java用以开发网站服务、企业级应用等,怎么会离得开。

当然,也有很大的可能工作内容只负责算法相关的部分(如模型搭建、优化啊,视觉、自然语言处理的技术应用啊),称为算法工程师,只负责算法也很可能;另外Python也可以全栈开发,我们也许全都用python搞所有的流程。

但是,对于一个外行入门,会算法的同时,如果接触并熟悉一下Java拥有一些开发经验(开发经验和机器学习项目经验毕竟不同),是很有必要的。人工智能的浪潮毕竟还要靠各种网站服务、软件服务等项目来落地。

总之,转行学了机器学习,也要认清行业还有哪些关键的技术,因此我也欣然接触了Java学习一些人生的经验。

2. 谈一谈Java的入门经历

确实刚刚接触Java只有半个月,以后有什么经验以后再说,先谈谈现在的。

接触Java领会面向对象的思想其实实在不经意间。一方面,之前有个机会看了看C#语言,当然也是在C++基础上的面向对象的语言,接触了面向对象的语言却是似董非董,大概因为看的时候还是绕弯讲的从基本语言开始,最后讲到类(也就是对象);此次直接学习Java,看的是中国大学MOOC上唐大仕老师的课程,上来直接开始介绍对象是什么,于是对这门语言及思想就主动接受了,对面向对象的思想先植入进来再开始学习语法等内容,我觉得十分有利。对于有其他语言基础的,可以看这门课,首先进入到万物皆对象的思想中再继续学习Java。

另一方面,在平常刷题的时候(LeetCode)题目的解析往往以Java的为主,刷了一段时间的题不得已看了不少的java代码(虽然是看完Java领会思想,再改为python的,但是帮助很大)。因此此次学习难度也降低了不少吧。所谓读Java百遍,其义自见了。

3. 谈一谈Java的特点和学习经验

说到java的特点,简单易学、面向对象等,我也不知Java是否对于每个人简单易学,鄙人学后反正觉得还算挺容易学的,语言易于理解。这里就要和Python比对一下了。在写代码时,往往很关注的其实是,比如一个函数,它的参数是什么类型的,返回值又是什么类型的,我调用时,使用的对不对,等等,由于Python这类语言并不标识数据类型,在语句灵活的基础上,我们使用它也产生一些问题。而Java在万物皆对象的基础上,每一个变量的出现都伴随着它的数据类型(应当说是它的类名),这样方法的参数传入、返回值我们都看的明明白白的。这是我认为的Java的第一个特点。

第二是面向对象,封装、继承、多态的特性,具体不再赘述,毕竟我也没什么经验,说两句的话就是,Java的这一特点,我们再开发项目时,考虑、构建并且是约定一个很完整的体系,每个功能、每个属性有它的父类、接口,我们开发时用来继承(extend)、实现(implement),理解了这一特点,才是理解Java的核心思想吧~

目前刚刚通过一个小项目有所接触,也确实领略了一番Java语言的严密性,和开发项目时的系统性,易于理解、易于维护。可以想象一个本来简单的项目,我们偏偏先写一堆父类和接口,再往下开发~这一特点可能就是Java用于大型应用开发的优势吧。

4. 谈一谈学习路线

刚学习半个月,哪有什么经验可谈,学习Java的路还长呢。

之前阅读了不少Java是个基础,也毕竟语音只是工具,都很相通;理解上述Java的特点是第一阶段学习的要点吧。

使用Java写一点微小的代码应当是第二步,开发个小项目,做一做LeetCode的题目,熟悉Java的常用工具库和数据结构。

然后就是漫长的应用阶段了,开发项目的过程中用到什么,去学习去使用吧。比如看起来十分复杂的却是轻量级的spring框架。。。还有啥我也不造了,慢慢来吧,毕竟还是搞机器学习的,也不可能总盯着Java开发的框架。

再重复一句就是,认识Java的地位,多一些开发项目的经验绝对不是坏事;在Python之外熟练Java这门语言也绝对不是坏事。加油~

猜你喜欢

转载自blog.csdn.net/xutiantian1412/article/details/80376681