写在博客前面

  博客初衷,一直觉得写博客是很高大上的东西,因为觉得个人能力有限,写不出什么东西,迟迟未动笔。平时学习也记了不少笔记,但都是保存到电脑,前段时间换电脑系统备份资料时操作失误,导致之前的学习笔记丢失了一部分。因为这次的惨痛教训,萌发了写博客的念头,不管怎么样能多有一分备份也更安全些。

  博客的主要框架:前面主要是搬运整理之前所学的一些Java基础包括JavaSE、常用API等基础内容,数据库、JavaWeb、JavaEE这些内容可能也会涉及一些,更新时间前面可能快些,因为平时工作可能忙些,尽量利用周末把之前的内容搬运过来。后面的内容,自己学了什么就更新什么。

  重点备注:因为笔记有一部分是大二大三记的,很多地方都是通过个人的理解,可能理解存在偏差,若有知识性错误望轻喷,劳烦指正,看到后会及时更正。

   下面的内容是关于个人的一些口水话,可不用看。

  个人大概介绍,本人目前从事的Java初级开发,大学不是计算机本专业,勉强算相关专业。学习Java初衷时在大二时,看到一位学长开发了一个安卓app,顿时绝得高大上,自己就想学。在网上查阅了资料后,安卓app的开发主流时用Java,从此就走上了Java学习的道路。当时专业基础课也比较多,在大二寒假开始了自己的Java学习。因为没有太多基础,在网上下了某培训公司的视频,一点一点的看,再把知识点记在本子上,这样学习效率虽然低但是也还算能理解大概的内容。后面开学就断断续续的学习,印象深刻的是当时卡在了面向对象那块,一直没有理解面向对象的思想。好在当时专业课正好学到了C++,同样也是面向对象,磕磕碰碰面向对象的思想也算基本理解了。

  大三因为学校要求,参加了专业相关比赛,因为比赛项目的战线比较长差不多从培训到比赛要一年的时间,之前也没有参加过相关项目所以就先暂缓了Java的学习,全身心投入到比赛项目上。比赛项目一般是两个人,一个负责硬件,一个负责软件,软件的编程语言主要是C语言,用到的编程知识并不是很多,关键在于将实际问题用软件解决,这个过程也是我最享受的,每当自己的想法通过代码实现后,那种感觉真的比游戏通关的快感还要强烈。但是整个项目最磨人的不是软件开发,而是系统调试,因为是要在硬件系统上运行,为了达到整体系统的稳定,通常要将参数调到某个数值,这个数值没有确切的值,甚至于没有可参考的规律,只有一遍遍的改参数看看硬件会有什么反应,不同的硬件,同一个参数对他的响应也往往不一样。这就导致了很多时候我通宵花了几天的时间调出来的参数,因为硬件的一个小小的器件改动或者硬件机械结构的稍微变动,导致参数都不能用。又得重新调试,看看影响这个地方的参数是哪一个甚至是多个参数。通过一遍遍的改动,直到你真正的熟悉到某个参数改动了硬件会有什么变化,才算正真的到达参加比赛的水平。虽然后面因为各种原因比赛结果并不是很理想,和实验室其他人相比甚至可以说是垫底的,但是在这个过程中正的学到了很多东西,最重要的是找的了自己的发展路线。我很享受将自己的各种想法通过代码实现的过程,但是我并不想将生命浪费在一遍遍的枯燥无味的参数调试过程中,这也是我最终选择Java开发的一个重要原因。

  另一个方面就是毕业设计了;毕业设计是实验室老师的一个项目,当时接到题目时特别当心完成不了,因为在网上查阅资料后这个题目一般都是研究生项目,甚至于有些是研究生的毕业设计。不过好在要求没有那么严格,并不一定要做到研究生的那种程度,只要能够搭出大概的框架,实现主要功能就行,而且也是软硬件两个人。难点在于要求使用的开发平台最好使用实验室常用的那种平台,一种基于Linux系统的便携式开发平台,用这个的好处是成本比用其他平台的成本低,而且做出来的产品便于携带,可扩展性高。但是难点也在这个地方,查阅了很多资料后根本没人在Linux系统下做过这个东西,而且各种参考文献都没有可参考的代码,都是只提供了一个大概的思路,而且都是在Windows系统下开发的,没有办法只能硬着头皮做了。

  开发语言选择了 Python,因为Python的库比较多而且这个项目的核心是数据的分析处理,还好之前有C语言和Java的基础,Python用到的知识点也不是很深,第一步是搭建系统的UI因为之前专业课学过MFC,虽然不是很美观但是基本要素齐全,最头疼的是数据的处理当时不知道该怎么处理,还好实验室有另外一个大佬在搞的项目正好用到数据处理,在他建议下用了机器学习中一个很简单数据处理算法。然后就查找各种资料学习算法,测试过后这个算法能够基本满足系统的功能;其它功能模块也不细说,从一开始的小框架慢慢的添砖加瓦完善系统,这个过程中遇到各种各样的问题,但也是痛并快乐着,一个坑一个坑的踩,然后一个个坑的填。其实在这个过程中没有太大的感觉,完成后才发现,从数据读取,数据分析,数据可视化,系统UI,数据库管理都是自己慢慢搭建出来,虽然现在看起来那个代码简直是不忍直视的粗糙,UI设计更是功能性比可看性高些,但是核心的功能实现了,框架搭好了,看着这些功能成就感还是挺强的。印象深刻的是答辩完成后,一位系里很严厉的教授问我的“你这个东西申请专利了吗?”,这句话感觉算是对自己大学四年的一个交待,也算是对专业的一个交待了。

  说了这么多其实就一句话,我享受用代码实现自己想法的这个过程,但是随着学习的深入越来越发现自己专业知识的薄弱,过去的开发往往跟着框架走,实现局部功能就行了,可是实现功能的方法很多,但是得判断哪一种最适合应用场景,哪一种成本最低,哪一种消耗内存最低,哪一种更利于维护....这种判断能力也是我现在所欠缺的,也是作为一个Java初级开发正在学习的地方。共勉。

  

猜你喜欢

转载自www.cnblogs.com/Kanekiyi/p/9497420.html