20165310_获奖感想与Java阶段性学习总结

获奖感想与Java阶段性学习总结

一、Learning By Doing

​ 在此之前,其实我并没有想到能够成为小黄杉的第一批成员之一,喜悦之余,也感受到了许多的压力。小黄杉一方面代表了老师对于我这一阶段学习成果的肯定,但同时也是对我的督促与要求,使我更加不敢在学习上懈怠,以免成为反面教材,贻笑大方。

​ 回忆这一阶段的学习历程与经验,其实正应了小黄杉上印的字:Learning By Doing。

二、课程学习

​ Java首先是一门专业课程,在专业课程的学习中,我认为理论、实践的学习都缺一不可。

1、语法基础

​ 学习一门编程语言,语法是基础。书本的意义正在于此,每一章的书本学习与代码练习正是一个扎下基础的过程。

​ 书本越往后内容愈发艰深,甚至有些同学前五章内容还没理解就试图钻研后面的内容,打算“遇到了前面的基础部分再回过去学习”,但其实,在我看来,前五章的基本语法反而比后续的更加深奥的内容更加重要,正如老师所说:学好前五章的内容后,后面的内容临时用到了再去学习也不迟,很快就能掌握。

​ 例如一直看书觉得不太能掌握的的第八章的I/O令我很是头疼,但在四则运算的结对编程中,由于需要实现文件的输入输出功能,不得不对每种输入输出方法进行更加集中深入的学习、理解,再进行优缺点选择出最适合需求的输入、输出流,最后进行语法的学习从而实现这一功能,效果比当初单纯的看书要好上许多。

​ 倘若没有前五章的基础,是无法一步登天学会更加深奥的语法的,回头学基础未免不成体系太过零碎,所以不可忽视这一基础。而仅仅把学习一门语言定义为语法的学习,从客观来讲,一周两章的内容学习任务的压力其实很大,个人来讲只能囫囵吞枣,不如“以用促学,学以致用”,从而进步。当然,若是精力能力足够完成学习任务的同学,也可以将书本所有内容细细学习一番,或许基础会更加的扎实。

2、实践巩固

​ 所谓“纸上得来终觉浅,绝知此事要躬行”。书本是基础但不能拘泥于书本,所有的语言学习都是为了实践而服务的。

​ 不知道有没有同学跟我有一样的感觉:单纯看书,不去使用,很多新学的东西过了一周,最多两周就会忘记,这时候实验的作用就会体现出来。

​ 但是每次的实验其实都不是一个一帆风顺的过程,往往要耗费大量的时间、精力去设计、调试,每当千辛万苦写完的代码甚至无法运行的时候,我的内心其实也是崩溃的:连个单步的机会都不给我。但正是一次次不厌其烦的调试,一次次地单步运行,才会使我们发现一些看书忽略的细节,发掘自己思维的漏洞,这是书上的东西才会变成你自己的东西,每次完成一个实验之后的成就感也会成为你继续学习的动力,而多次试验后你会发现实验过程越来越顺畅,最起码代码无法运行的情况减少了很多。

​ 例如,以前的我喜欢有个大体框架后就开始写程序的坏习惯,一些情况的判断与细节喜欢“到时候遇到了/想到了/运行出bug再写”,而这往往是逻辑错误的来源,后来多次碰壁后慢慢改正了这个习惯,更多的去将整个流程详细思考构建过后,再进行整体的书写,血与泪的教训下我的实验已经高效了许多。

三、元知识

​ 那么按照这个说法,我们学完前五章,定时写写实验,那么我们早在开学前几周就完成了Java课程的学习,我们之后的课程岂不是没有意义了?

​ 答案是否定的。我记得开学第一堂课,老师就提到过元知识这一概念,我们后续的学习在我看来,就是不断学习元知识的过程。

​ 这一过程是超脱Java课堂的过程,是可以用于其他领域的能力,这一能力使我更加受益匪浅。

1、工具的掌握与学习

​ 我的电脑是MacOS系统,班里和我用同样系统的同学对于一项事情大概心有戚戚焉:安装软件工具有时候真是太麻烦了。

​ 的确,不使用虚拟机的话,MacOS安装使用一些工具的教程其实并不多,它和Linux很多部分可以共通但也有很多不同,和Windows系统更是截然不同,每次安装新的工具都会使我们耗费很多的精力,例如上次的XAMPP的安装,端口、环境、配置等各种因素影响下,耗费了我一个周末的时间研究,才能正常运行使用。

​ 但是正是每次这一并不简单的过程,使我掌握了如何通过网络,快速寻找解决方法的能力,如何独自解决开发环境与工具的安装使用问题,这一能力,并不仅仅局限于Java的开发使用,而是在别的学习过程中也大有用处。

2、思维的学习

​ Java和C语言最大的不同在哪里?在于其思维的不同。在开始学习Java的过程中,我经历了一个很长的思维转变过程,通俗来讲,C语言更多的是解决一个问题,而Java更多的是解决一类问题。

​ 说来惭愧,其实直到现在我有时候的程序依然没能完全满足O·L·D·I·C·L的原则,但是我一直在努力改变自己思维,也在不断修正以往写过的程序努力靠近这一原则,虽然还没有完全达成目标,但是这一过程本身就是一种进步,思维的进步比语法的学习其实是更为重要的收获。

​ 其实我并不反对上网查询、借鉴别人的代码,因为我也常常有逻辑上的疑问需要解答,每一次解决的困惑都是经验与思维的积累,但是我并不赞成直接的复制粘贴,因为不会的语法可以查询,可以借鉴,但是别人的思维是无法借鉴的,不掌握它,下一次依然不能独立解决问题。

3、不要重复制造车轮

​ 上述的感想似乎将Java描述成了一个艰苦卓绝的学习过程,但其实你要是能够寻找到正确的省力方式,这个过程会简单很多。

​ 正如我上文所说,我不反对遇到瓶颈的时候去阅读别人的代码以求启发,而能够引用别人的库更是一种轻松而又简单的做法,众所周知重复的制造车轮并不是一种聪明的行为。当然,在引用别人库之前为了加深自己的理解与学习进行的实现编程也是一个必须的过程,正如我们在用sort方法之前自己理解并且实现过快速排序、冒泡排序等一系列的功能,但是若是次次都“反复制造轮子”,未免就有些费力不讨好了。

​ 例如之前老师课上讲到的密码学算法的库,就可以在接下来的密码学实验中一展身手。能够正确的“偷懒”,相信大家也是喜闻乐见的。

四、元知识的应用

这些元知识的应用其实往往是并不显眼的潜移默化的学习能力的增强,但是由于这段时间连续的比赛,我的感受较为深刻一些。

在比赛的时候,你遇到的往往都是你不曾接触过的内容,涉及程序的题目,也不会只有C语言、Java相关的程序需要你去解读,你看到更多的是Python、JavaScript、PHP……

但是你从来不会听到一个选手说:这个语言我没有学习过,题目我不做了。取而代之的是你必须抓紧时间,去学习新语言的新语法,尽快读懂题目的代码与意义,这时候你的元知识就会派上用场:你能否利用搜索引擎快速寻找到合适的编程、运行环境?你能否结合你学过的东西尽快理解新的语法?……这个时候你会发现,所有的语言都只是一种工具与载体,同样的题目可以用不同的语言来编写,但本质其实并没有改变。即便是相对了解的语言,例如Java,你也需要重新学习并不常见的类,例如上次比赛出现的BigInteger类也是一次新的学习,随后的密码学计算方法实验的大数运算中,就派上了大用场。

与此同时也不代表对于你掌握的语言,能看懂就足够了。例如上文提到的Java的面向对象的思维,使我面对类似思维的Python等有所熟悉,就是一种经常运用、思考带来的好处。但此时能否将陌生语言的题目重写成你熟悉的语言进行改写、运行,也是十分需要功底的,倘若你编写、调试代码的时间就需要好几个小时,就会错过做题的时机。所以对于已经学过的语言,我们依然要精益求精,有所进益。

五、小结

​ 每个人的学习形式并不相同,有的人适合系统的理论知识学习再进行实践体会,有的人适合边学边做例如我,只要是适合自己有所收获的方式都是值得鼓励的,我的学习方法上也依然存在许多需要改进的不足,更需要在学习中逐步调整方向与方式,不断改进,也希望能和老师同学进行交流,接受意见,汲取经验与教训。

​ 但是最重要的是,我们要清晰明确自己的目标,对于元知识硬知识软知识加以学习分析并且灵活运用,努力向目标前进,不是一昧做题、练习,而是有所思考、感悟,学会融汇贯通式的学习,能够“举一反三”,相信不只在Java,而在任何领域上都会学有所成。

转载于:https://www.cnblogs.com/atbaoi/p/8998524.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chrome浏览器崩溃_不只是您:Chrome浏览器在Windows 10的2018年4月更新中崩溃

chrome浏览器崩溃If your computer is hanging or freezing after installing the Windows 10 April 2018 Update you’re not alone, and Microsoft is aware of the problem. 如果在安装Windows 10 April 2018 Update之后计算机挂起或死机,您并不孤单,…

读名老中医之路笔记(二)

任应秋:我的治学门径和方法 任应秋先生从幼读经,十三经皆能成诵,属于带童子功的医学家,他的医学经验: 一、读经宜读全本,解经宜先识字,读经宜正音读,强调对经典著作的朗读和背诵&…

致敬青春岁月

昨天发生的一件神奇的事情。我们公司工会组织了一次小型的户外团建,有机会认识一些其他部门同事,没想到有一个同事小心地认出了我,然后还谈起了关于.NET技术和社区的一些发展的历史和故事。他在微软工作的时间比我久,但时空交错&a…

谈谈- declare-styleable属性

在Android开发中,往往要用到自定义的控件来实现我们的需求或效果。在使用自定义 控件时,难免要用到自定义属性,那怎么使用自定义属性呢? 一、简单使用: 1.在文件res/values/下新建attrs.xml属性文件,中定义…

docker:自定义ubuntu/制作镜像引用/ubuntu换源更新

一、需求 1. 制作一个图像辨识的api,用到相同设置的ubuntu镜像,但是每次制作都要更新ubuntu和下载tesseract浪费半个到一个小时下载,所以制作一个自定义ubuntu几次镜像大大提高开发效率。 2. 制作ubuntu过程时,可以调试tesserac…

jQuery 属性和CSS

HTML代码&#xff1a; <div id"div1">div1<p>1</p><p>2</p><p>3</p> </div> <div id"div2">div2</div> <div id"div3">div3</div>attr()设置节点的属性 $("#div1…

facebook人脸照片_为什么您的Facebook照片看起来如此糟糕(以及您可以如何做)...

facebook人脸照片Facebook is a popular platform for sharing photos, even though it’s not a very good one. They prioritize fast loading images over high quality ones. You can’t stop it from happening, but you can minimize the quality loss. Facebook是一个受…

用C#自己动手写个操作系统,爽!

自从C#的AOT编译机制发布以来&#xff0c;有趣的项目越来越多&#xff0c;今天给大家推荐一个开源项目&#xff0c;用C#开发的64位操作系统。项目简介这是一个使用.NET Native AOT技术编译的C# 64位操作系统&#xff0c;系统的基础功能基本都已经支持&#xff1a;网卡、多处理、…

JavaFX 学习笔记——窗口与控件

前言 如今比较流行的桌面gui框架有WPF、WinForm、Qt、javafx等。其中WPF和WinForm目前还只能在运行Winsows上。Qt(widget)是一个很强大的跨平台C框架(不只是UI)&#xff0c;但用C写界面实在有点蛋疼&#xff0c;且编译出来的体积很大。 JavaFX是基于JAVA的开源桌面框架&#xf…

Linux 用户名、主机添加背景色

文章参考&#xff1a;PS1应用之——修改linux终端命令行各字体颜色 Linux 用户名、主机添加背景色&#xff0c;用于生产环境&#xff0c;这样可以减少人为的误操作。 1 [rootzhang ~]# tail /etc/bashrc 2 ……………… 3 export PS1"\[\e[37;40m\][\[\e[37;41m\]\u\[\e[3…

python 调用文件上传图片简单例子

使用方法&#xff1a; python.exe .\test.py "fileD:\img\mark_1080.png" "matchWordListRUN" "urlhttp://192.168.0.37:8081/templateMatch" test.py import requests import sysif __name__ "__main__":print(参数个数为:, len(s…

解决网站在负载均衡环境下SESSION丢失的问题

在WEB场中,动态网页往往会因为几台主机做了负载而产生SESSION丢失的问题&#xff0c;网上也有很多的介绍&#xff0c;我这里只将我经历的过程给大家分享一下&#xff1a; 系统要运行在负载平衡的 Web 场环境中&#xff0c;而系统配置文件web.config中的Session状态却设置为InPr…

如何从手机或PC将游戏下载到PlayStation 4

PlayStation 4 games can be huge, and take hours to download. Thankfully, you can start downloading games even when you’re away from home. All you need is Sony’s official smartphone app, or a web browser on any PC. PlayStation 4游戏可能非常庞大&#xff0c…

CML更新 | 新增百度小程序、支付宝小程序

祝所有工程师小伙伴开工大吉&#xff0c;Beatles 团队已经开始忙碌起来了。 几个事情要向诸位汇报一下&#xff1a; 一、新增百度小程序、支付宝小程序 发布alpha版本支持百度小程序、支付宝小程序&#xff0c;已有项目可以无缝直接运行在新增平台&#xff0c;欢迎安装试用&…

C#中4种深拷贝方法介绍

概述为什么要用到深拷贝呢&#xff1f;比如我们建了某个类Person&#xff0c;并且实例化出一个对象&#xff0c;然后&#xff0c;突然需要把这个对象复制一遍&#xff0c;并且复制出来的对象要跟之前的一模一样&#xff0c;来看下我们一般会怎么做。1、利用反射实现public stat…

kaggle入门项目:Titanic存亡预测(三)数据可视化与统计分析

---恢复内容开始--- 原kaggle比赛地址&#xff1a;https://www.kaggle.com/c/titanic 原kernel地址&#xff1a;A Data Science Framework: To Achieve 99% Accuracy Step 4: Perform Exploratory Analysis with Statistics 使用描述性与图表分析数据&#xff0c;重点在于数据可…

docker遇到问题归纳

/bin/sh^M: bad interpreter #在win下编辑的时候&#xff0c;换行结尾是\n\r &#xff0c; 而在linux下 是\n&#xff0c;所以才会有 多出来的\r #可以用以下方式解决先在控制台cd到报错的目录#编辑报错的那个文件 vi xxx.sh#利用如下命令查看文件格式 :set ff 或 :set filef…

faster rcnn训练过程讲解

http://blog.csdn.net/u014696921/article/details/60321425

firefox 扩展_如何检查您的扩展程序是否将停止与Firefox 57一起使用

firefox 扩展With Firefox 57, scheduled for release in November 14, 2017, Mozilla will end support for legacy extensions, and only support newer WebExtensions. Here’s how to check if your extensions will stop working—and how to keep using them after Novem…

《构建之法》 读书笔记

《构建之法》 读书笔记 娄雨禛 PB16060356 第一部分 关于结对编程的体悟与实践 在结对编程这一部分我曾讲过很多的注意点&#xff0c;比如代码变量命名风格、缩进风格、注释风格&#xff0c;前后语句次序风格&#xff0c;等等。然而这里还有一些新的东西。代码风格这个老掉牙的…