2022年的陈凯祥

  前言:

    从中学到大学,时光飞逝转眼间就从一个懵懵懂懂的孩子变成一个逐渐成熟的成年人。过去的事情无法改变,我现在要做得是在今后的学习中不断收获,不断成长。

  一、自我分析

    我是软件工程专业一名大三的学生,在大学生涯接近尾声的这些时间里,我要好好规划下自己今后的人生打算。

    我的性格开朗、真诚、乐于助人。我从小就对世界充满好奇,小时候就喜欢看动物世界、蹲在路边看蚂蚁。现在的我热爱生活,早睡早起,膳食平衡,肠胃畅通,闲暇时间我会选择在网上寻找新鲜事物丰富自己平淡的生活。我乐于帮助身边的人,尤其是自己熟悉的领域,每当成功帮助别人的时候,我都感觉很有成就感。

    我兴趣爱好还是画画、跆拳道、编程,我的情趣爱好也是父母不懈努力下还是培养出来的。在艺术方面,小时候经常在纸板上写写画画,无形中让自己的绘画能力高于身边人,后来系统的学习了画画,参加过比赛还取得过不错的成绩。在体育方面我还练过跆拳道,大一的时候还考取了黑带,在中学时期我也参加过跆拳道的相关比赛,也拿到过名次。但因为爱玩,早早放弃了这些难得的兴趣爱好,泯然众人,如今自己也只能回想回想以前的样子,这也是我个人成长路上最大的问题,人不能玩物丧志,我必须从过去的教训中清醒过来。

    在价值观方面,我要做一个热爱祖国,积极上进的人。热爱祖国,热爱社会的人才会积极的去建设自己的家园,爱护亲人,乐于助人,这就是价值的体现。

   二、现状、经验和计划

    作为一名软件工程专业的学生,我是热爱编程的,我打算在今后成为一名后端开发人员。我认为自己的优势有:

    1. 编程思路清晰,善于思考;

    2. 对工作有很大的热情,能够充分发挥主观能动性;

    3. 对一门程序语言掌握的比较扎实;

    4. 具有团队合作意识,善于沟通;

    自身的不足之处:

    1. 竞争意识不强,容易安于现状,自我满足;

    2. 遇到难以解决的问题容易浮躁;

    3. 各方面专业知识还有待提高;

 ==================================正文  ==================================

    目前我认为自己,熟练掌握java程序语言、熟练MySQL数据库操作、了解JavaWeb开发,完成过简单的项目开发,我具备一定的独立开发能力,能够完成一些需求任务;能够熟练地运用面向对象知识进行编程;对于编程自己脑中有一个清晰的开发逻辑,即先写出框架再具体实现每个功能(好比先画树干,再画树叶),从需求中得到需要实现的功能,从功能去找用到的对于数据库表,最后从表着手,写出一一对应的服务层,最终在界面展现(总体一个底层向上写的编程过程)。并且今后学习的方向就是Java的后端开发相关内容。同样自己也存在诸多不足,对Web开发了解甚少,以至于项目都是基于控制台为界面;对算法的理解知之甚少,做过得项目中几乎不涉及算法调优;虽然在实操方面略有小成但对理论性的知识掌握度远远不够;只完成过小项目开发,没有大项目的经验,当代码和数据量多起来时自己不具备对代码调优的能力。

    虽说自己未来将从事java后端开发工作,但实际上自己在这方面还是非常迷茫的。在私下中自己也经常在网上了解相关行业的情况,就今年而言网络上给我的感觉是异常严峻,不少java开发人员失业,各种厂裁员,应届毕业生找不到工作,外行转业内卷严重,唉声一片。我希望在今后的学习中能让自己树立一个正确的方向,再者就是能进可能多的学习专业知识,完善自己存在的不足。

    目前项目+学习,java大概有1w+的代码量,以后代码量至少要突破4w,要进一个不错的企业我至少要到达20w的代码量。对于这个目标而言,任重道远,还需要付出巨大努力。我计划在今后的学习中或与同学一起开发一个项目,具体方面现在暂时还没有思路,在完成现阶段学习之后在斟酌。我还要多刷刷题,从疑难杂题中多吸取一些编程经验和思路,让生疏的思路逐渐熟能生巧,我也希望自己早日成为一名合格的程序员。

    软件工程虽是一门偏理论性的课程,但我深知其中重要之处,在以后工作中对我的帮助不可小觑,就像老师所说学好408能让我们以后的路越走越远。通过上次的仿真实验我人生到了了这门课程的重要性,开发一个项目如果连客户需求都抓不住,代码些再好也不会被人认可。在今后的学习中我计划每周除去上课的时间,自己在花至少一个小时的时间去学习这门课程,复习所学知识,多动手画图。

    在本课程结束之后我要达到2w+的代码量,每周至少要达到500行的代码量。

    如果在前两年浪费了很多时间,现在要发奋赶上,我打算比以前课要多很多,直到达到目标为止。

    课程的目标

    在这门课程的学习过程中,我要基本掌握需求分析的方法,学会画需求分析列表,还有各种UML图的绘制,最后将学到的知识点运用到项目中去。在学完课程后,我会尝试去开发一个完整的项目,其中包括开发过程中的各种步骤,尽可能的模拟真实开发环境。我会从这一次的尝试中吸取经验,仔细研究开发中遇到的各种问题,自己还有哪些不足,哪方面还存在欠缺,然后针对这些方面加强学习,查漏补缺。当然纸上谈兵谁都会,关键是要付出行动,更何况计算机是一门要动手的学科,要杜绝眼高手低的情况。

    我深知自己在学习路上存在的困难,就我而言还是缺乏自律性,看到宿舍室友打游戏,自己也忍不住跑去玩,很容易走神;我很容易自己满足,知识点学了一半就去休息了,导致学习效率大打折扣;设备的局限可能影响最后的结果,很多软件不能很好的在自己电脑上操作,导致自己技术还停留在知识层面,不能很好的应用到实操中;还有一点就是对于茫茫知识,感觉什么都要学,什么都不会,自己不知从何下手,学习抓住不住重点。

    以上只是我自己能想到的困难,在今后的生活中,可能还会出现各种各样的困难,各种各样的问题在等着我。为了完成自己的目标,我必须学会克服这些困难,在遇到困难之前我得做到应对准备:

对于自制力问题,我在网上学到了一招,用心理暗示的方法,用一种事物对应一件事情,给树叶对应快递,当看到树叶时就想到要取快递。当我发现自己走神,注意力不集中的时候我会拍自己的左手,出现痛感后我就会意识到自己走神了,大脑马上就清醒了(效果确实很好);对于容易自我满足,我自己暂时也没有好的方法去克服,有时候感觉自己太差,可能就会多学些,有时候觉得还不错,就沾沾自喜了,也许是压力吧,生活中压力太小了;对于设备的问题,我会尽可能在网上寻找最优版本的软件,多敲代码,加深理解;不知从何学起问题,我选择咨询他人,吸取他人经验,我在网上购买了韩顺平老师课程,对于专业方面的问题,我经常回去询问老师,同时跟着老师学习,我也能好的学习后端知识。

    三、课中存在的问题

    1. 第一章 第6页 1.2.3面向对象方法概念:对象和抽象的概念分不清。

    我查了资料,对象有这样的描述:对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系,对象之间通过传递消息互相联系,从而模拟现实世界中不同事物彼此之间的联系。

    抽象有这样的描述:它可以忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。

    我个人的理解是对象就是客观世界存在的事物都对应成一个一个具有独立特征的封装体,他们就是事物的抽象体或是一个种类。而抽象的描述大致都如上述所说,抽象就是将多种事物中的共同特征取出单独封装,它只具有这些事物共同的特征,不具有特例。但我认为对象好像也是将具体的事物类型映射成一个个的对象,一个对象就代表了一种类型的事物,比如说不同人,只需要映射一个Person类对象,肤色、年龄等再具体封装。在不同体现的对象中他们都是围绕最初浓缩的那几个特征在变化,万变不离其宗。而抽象不也是将具体事物中的同有特征收集起来来吗?如果说事物映射对象的过程就是抽象,那我又该如何理解泛化,就像书中所描述,一个大类中划分多种小类,每个小类具有大类特点又带有自身特征,这些东西他们概念好像都很相近,越想越蒙。

    2. 增量模型中提到的高内聚,低耦合:概念不是很清楚,感觉有些矛盾。

    我大概知道二者的意思,高内聚:即分工明确,叫什么名字就干什么事,比如写了一个Bill(账单)service层,那么与账单有关的业务都应该在这个类中完成。小的方面,即冗余重复的代码封装进方法,统一规范调用;低耦合:耦合,藕断丝连,有联系。各代码之间存在联系,一处改处处改,牵一发而动全身。我认为为了避免这些问题的发生继承、多态、接口等概念孕育而生,给出一个规范剩下的只需要自己去修改,而不是每个地方都去修改。以上便是我对二者的个人理解,但在做项目中我发现,有些需求并不是一个service层可以完成,它涉及多种数据的交互使用,还是以BillService为例,一个账单生成要调用菜单的数据,要调用餐桌的数据,最后生成账单。在这其中势必会相互联系,我出现过在两个service层各new了一个对方对象,导致无限递归栈溢出的情况,网上询问有人说用各static就可以解决了,有人说spring啥啥啥的解决了这些问题,还没学到那里。不过后来我没用上这两个service层的联系,它们不需要这样些,问题也就解决了。我觉得既然代码都是高内聚了,各自独立运行,有需要的时候才小调一下彼此,但随着需求的增多出现新的调用,那耦合的量不是也上去了吗?在这种情况下修改一个区块的内容,很可能影响到其它区块的内容,这样内聚的初衷不也打破了吗?或则我的理解一开始就有误。

    3.螺旋模型缺陷中因为开发周期长,导致项目产品出现滞后性,为什么不能边开发边应用新技术?

    在软件工程模型中,螺旋模型以瀑布模型+快速原型模型为基础,再进行风险分析方式运行。但在过程中,由于开发周期过长,技术更新迭代又太快,可能等产品出来后以难以满足未来需求,存在滞后性。为什么不能边开发边更新新的技术呢?

    4. 喷泉模型中应用到了面向对象是什么意思,怎么体现的?

    在网上查阅:喷泉模型主要用于采用对象技术的软件开发项目。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。这里面所说的对象概念是什么,怎么实现的?不理解。

    5. UML软件选择哪个好?

    老师下哪个UML软件好一点,rational rose吗?还是enterprise architect。

    四认真反馈

    为了改进教学,收集资料,老师在教学过程中会要求学生填写对课程的反馈, 我会有问题就问,至少一学期提三个问题, 认真按时填写反馈。

    

    

    

    

    

    

posted @ 2022-09-17 16:13  陈凯祥  阅读(135)  评论(1)    收藏  举报