2017《面向对象程序设计》随笔一活在当下
如果现在给你一个机会,不必考虑收入、面子、生活质量、家人的期许等许多客观条件,让你自由选择一项 “最爱”的职业,你会选择什么?
--引用自《时间会证明一切》
==========
读书看到这个问题时,原本一腔热情的我被当头浇了一桶冰水,许久沉默。
你有什么技能比大多人(超过70%以上)更好?针对这个技能的获取你有什么成功的经验?
对于这个问题和前言中所提到的问题,我以为我会掷地有声的说出那句话:
写作,当一个作家。.
可我最终却是没有太多底气,百般纠结下敲下了这段话。既因它是我的兴趣,也因为我实在是在我身上找不出第二个璀璨点。
小学时,我是“千年第三”,成绩不温不火,惟有语文这门课能时不时拿到第一。
我爸时常笑着跟别人说:“我女儿随我,我小的时候作文也被拿来当范文。”
叔叔阿姨笑着回应:“你们家这是要出个小作家啊,有出息。”
那种一笑而过的场面话,却不知不觉的满足了一颗幼小的虚荣心。
中学时,因为文艺的写作风格,收获了赞美,也收到了老师的“警告”。
初三整体成绩下滑,作文经常不及格。
我还记得当时老师说的话:“这种抒情风拿不了高分的,你成绩一般,语文又是增分项,想上好点的高中,就稳保点,写议论风。”
中招成绩下来,我成了黑马,除了语文,其他均是超常发挥,上了重点高中。
高中,是我最大的转折点,我改头换面,也面目全非。
分科时,选了理科。但我仍是死性不改的走着自己的文艺风,作文被当成美文欣赏,文风却不被提倡,成绩忽上忽下,在理科这个满是大神的圈子里死命挣扎。
我感觉我就是像一只被扔错地方的野猫,在充满竞争和紧张的龙虎场里慵懒随意,格格不入。
高三冲刺时期,班主任和我谈话:“考试反思里你说以后要当作家,这没有错,可眼下最重要的是什么,高考,你说你很成熟,可做不好眼下事的人才最幼稚。”
我当时真觉得我班主任是个哲学家,他让我不服气的同时又让我无言以对。
我开始加入了高考大军,早起晚睡,废寝忘食,在学习上使着比减肥时更大的劲头,写作成了我缓解压力的活动。
雨果说过:“压力下成长的果实才最甜美。”
我当时的思想就是熬过高考,我再也不碰理科了,我要弃理从文,走上我自己的阳关道。
报志愿时,我说:“我想报偏文点的专业,理科太难了,学不会。”
七大姑八大姨加老师:“你报偏文的以后工作怎么办,好点的偏文专业也不收理科生啊。”
最后折中,选了计算机,偏重数学,物理少学,还好找工作。
-说来可笑,我左撇子,右脑发达,对除了理科之外的所有事都有着好奇心。高中时,一味学习,除了语文课上写作文,其实没有什么机会写作,但我却不务正业的在这最紧张的三年里写完了一本小说和一本随笔集。
那是我最苦的时代,也是我最美的时代。.
-到了大学,加入了校编部,开始在校报上发表文章,业余时间在小说网站上码小说。
-回首看下,我这一路走来,因为不自信,选了理科,因为懦弱,选了工理结合的大学,而我引以为傲的文笔好像也没有给我带来什么大的转机。但让我欣慰的是我到现在还没有放弃,虽然中间有过自我怀疑,有过他人劝讽,失败过,矫情过,但你让我现在说我最擅长的是什么,我还是会在犹豫后选择回答那句话。
因为那既是我的天赋也是我的坚持..
-我没有那种一提起就全身发烫,两眼泛光的梦想,这么多年,我已经将我的梦想变成了业余爱好,也只有这样,我才能永久的保留最初那种对写作的悸动,都说人生是我们与上帝的一场博弈,虽然现在这赌局我少赢多输,可无论是天赐还是天谴,在怨天尤人又无可奈何后,我还是相信一切都是最好的安排。
Take my time,step by step..
要往前走,就得先忘掉过去,这就是跑的用意。
--引用自《阿甘正传》
失败者,争不过朝夕,又念着往昔。怀着初心,忘掉不甘,原谅曲折,这才是一个奔跑者应该拥有的力量。.
-我骨子里有点像阿甘,有点傻,一根筋,写作让我有了自己的思想,它成了我寡淡生活里唯一的私有,让我品味酸甜苦辣,也看遍人间悲喜,所以我坚持了这么久。但他也给了我一个后遗症,就是让我的每篇文章都写的像小说,让我一个理科生有了矫情的本领。
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
- 首先,不得不承认,我是一个重文偏理的“瘸腿生”,文科春风得意,理科一脸懵逼。
拿到好牌只是运气,打好烂牌才是能力。. - 第二,C语言上我是初学者,高中不曾接触过这方面的知识,但依着我以前学习的经验,不会就看书,多看几遍,实在不行就背下来。
- 第三,C语言对我来说确实是那种让我头疼的课,刚接触时会发怵,因为无知会恐惧,碰到难题,第一反应是搜百度谷歌,看网络上例题讲解,记下例题方便以后翻阅,在看懂原理后开始码程序。
- 第四,询问老师是我在课堂上经常采取的方法,询问同学是课下遇到难题的习惯措施。
解题三大宝:看书,上网,问人。 - 就像我们记忆知识时,把题目在脑子分成摞,按难度从低到高分类到各个抽屉里,每个抽屉对应的钥匙也是从简单到复杂。学习上没有万能钥匙。我知道高中那一套在大学这种讲究自主,知识深奥零碎的坏境里只能是给了我一个拐杖,却不能让我稳健行于这片天地。在大学是听不得废话,看不得废物的,适者生存,败者认命,它是一个比高中更残酷的试兵场,因为败者往往无知且不自知。.
- 写作让我有了自知之明,让我知道坚持并不一定会有回报的,这看似消极,却成了支撑我走下去的动力,不考虑后果,奋力一搏,没心没肺的活着,跌倒了就再爬起来,没什么大不了的。
- 我自认是个特别能忍的人,忍痛忍苦,忍笑忍泪,久而久之,成了习惯。运气好的话,说不定也不会有坏结果。身上的阿甘精神让我每次在丧失斗志时都一个鲤鱼打挺的振作起来,每次不甘的时候都会安慰自己这已经很好的,这种心态让我熬过了一个个奋力学习的深夜,让我笑着哭着一股脑的走下去。
- 我的傻在学C语言时变成了笨,那种天生的不通理科和后天写作养成的随意性格,造就了今天的我—感性大于理性,有时缺乏思考能力,这总让我在学习时抓不到重点,落后别人一拍,我有时甚至不知道C语言要怎么学,如何快乐的去学习,一度失去动力、兴趣,但又因为天生的不服输脾性和强烈的自尊心努力扛着,像个孤独患者在C语言里自我拉扯,把叹气留给深夜,把微笑留给白日。都说写作的人骨子里有一块反骨,接受枯燥死板的书本知识对于我来说是有难度的,就像抓着一条活蹦乱跳的鱼,你越用力抓,越抓不到。那种无力感,会让人崩溃抓狂。不得不承认,学C语言让我再次看到了我学理科时的无奈彷徨。
- 就像一只先飞的笨鸟,努力坚持着,却不知道鸟群的方向,迷失在这片浩瀚的计算机网络中。.
- 谈起我上半期的C语言学习,我是不满意的,完全是跟着别人走,就这样浑浑噩噩的度过了,因为长久以来的不自信,不能及时的投入学习中,一味的选择逃避,因为专业并非是自己擅长的,有时会迷茫困惑,产生自我怀疑。
那时我就会告诉自己Beautiful girls all over the world,I could be chasing but my time would be wasted。
活在当下,方得始终。
我今年一百岁,已经走到了人生的边缘,我无法确知自己还能走多远,寿命是不由自主的,但我很清楚我快“回家”了。
我得洗净这一百年沾染的污秽回家。 我没有“登泰山而小天下”之感,只在自己的小天地里过平静的生活。细想至此,我心静如水,我该平和地迎接每一天,准备回家。
在这物欲横流的人世间,人生一世实在是够苦。你存心做一个与世无争的老实人吧,人家就利用你欺侮你。你稍有才德品貌,人家就嫉妒你排挤你。 你大度退让,人家就侵犯你损害你。你要不与人争,就得与世无求,同时还要维持实力准备斗争。你要和别人和平共处,就先得和他们周旋,还得准备随时吃亏。
少年贪玩,青年迷恋爱情,壮年汲汲于成名成家,暮年自安于自欺欺人。
人寿几何,顽铁能炼成的精金,能有多少?但不同程度的锻炼,必有不同程度的成绩;不同程度的纵欲放肆,必积下不同程度的顽劣。
上苍不会让所有幸福集中到某个人身上,得到爱情未必拥有金钱;拥有金钱未必得到快乐;得到快乐未必拥有健康;拥有健康未必一切都会如愿以偿。
保持知足常乐的心态才是淬炼心智,净化心灵的最佳途径。一切快乐的享受都属于精神,这种快乐把忍受变为享受,是精神对于物质的胜利,这便是人生哲学。
一个人经过不同程度的锻炼,就获得不同程度的修养、不同程度的效益。好比香料,捣得愈碎,磨得愈细,香得愈浓烈。我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系。
--引用自《[杨绛百岁感言]{https://site.douban.com/136100/widget/notes/6048777/note/287103389/}》
信仰自己铸造,榜样一直追随。--致榜样杨绛先生
目前为止估算自己写过多少行C代码?理解的情况如何?
目前为止,应该有两千多行代码。多是简单中等的代码,困难的较少。
- 写过的大部分都能掌握,简单的写五遍左右,中等的就十遍以上,把中等中易忘的点和例题记成笔记,标上注释,时不时翻阅下,从基础这点说,我觉得我的基础打得很夯实。
- 拔高能力这点,会硬着头皮坚持学下去,就算是啃,也要一点点啃下来。
- 而放在最后学习难度高的程序,平心而论,尽力而为,有时会没时间,有时也没那个能力,看书加百度也会很迷糊,在别人讲解下可以理解一些,剩下的便留给自己慢慢咀嚼。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
- 数组指针是指向数组地址的指针,其本质为指针,一般使用下标法和指针法;
- 指针数组是数组元素为指针的数组(例如 int *p[3],定义了p[1],p[2],p[3]三个指针),其本质为数组。它也是一个整数数组,那个数组的各个元素都是整数,指向某个内存地址。
函数指针,指针函数不经常用,也不太了解。
看书加百度后得到下述结果。 - 函数指针可以像一般函数一样,用于调用函数、传递参数。在如 C 这样的语言中,通过提供一个简单的选取、执行函数的方法,函数指针可以简化代码。函数指针只能指向具有特定特征的函数。因而所有被同一指针运用的函数必须具有相同的参数和返回类型。
函数指针有两个用途:调用函数和做函数的参数。 - 指针函数,指针函数是指带指针的函数,即本质是一个函数。函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针。
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
存储介质:文件是指在各种存储介质上(如硬盘、可移动磁盘、CD等)永久存储的数据的有序集合,它是进行数据读写操作的基本对象。
特性:每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。 - 流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
存储介质:除了和磁盘文件直接相关的文件流以外,流还有多种类型。流可以分布在网络中、内存中或是磁带中。
借助了知乎上大神的回答。(是在仔细看过后发的链接。)
- 能存储的数据类型不同
文本文件只能存储char型字符变量。
二进制文件可以存储char/int/short/long/float/……各种变量值。 - 每条数据的长度
文本文件每条数据通常是固定长度的。以ASCII为例,每条数据(每个字符)都是1个字节。
二进制文件每条数据不固定。如short占两个字节,int占四个字节,float占8个字节…… - 读取的软件不同
文本文件编辑器就可以读写。比如记事本、NotePad++、Vim等。
二进制文件需要特别的解码器。比如bmp文件需要图像查看器,rmvb需要播放器…… - 操作系统对换行符('\n')的处理不同(不重要)
文本文件,操作系统会对'\n'进行一些隐式变换,因此文本文件直接跨平台使用会出问题。
在Windows下,写入'\n'时,操作系统会隐式的将'\n'转换为"\r\n",再写入到文件中;读的时候,会把“\r\n”隐式转化为'\n',再读到变量中。
在Linux下,写入'\n'时,操作系统不做隐式变换。
二进制文件,操作系统不会对'\n'进行隐式变换,很多二进制文件(如电影、图片等)可以跨平台使用。
--引用自https://www.zhihu.com/question/19971994/answer/36121103
-如何编程这两种文件我实在是看不懂。
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
- 面向过程以过程中心,打个比方,它就像80年代时候人们的生活节奏,规律工整,紧凑妥帖,每天都按着制定的步骤完成工作,起床、吃饭、上班、工作、下班。也像一个上好发条的机器,在核心里输入了精细步骤,从小到大,步步求精,流程一气呵成,完成的漂亮利落。
- 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。它的优点就是当程序规模不是很大时,程序的流程很清楚,按着模块与函数的方法可以很好的组织.
在C语言里面,什么是模块?你写过多个源文件的程序吗?
- 宏观上说,按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块。就像一个外表看起来很强大很有发展力的公司,摊开来讲,它的兴盛离不开那一个个加班加点努力拼搏的员工,是这些员工拼凑在一起,众人协力把公司建造成了商业帝国,如阿里巴巴和马云背后的员工,新东方和俞敏洪带领的优质教师。微观上举例,函数是C语言的最小单位,每个函数均实现一个独立的功能,那每个函数就可以当做是一个最小的功能模块。
- 没有写过。
上百度查了下,我一般是用VC++6.0工具的,创建工程时要将文件建在同一个工程下,源文件编译后生成文件是目标文件,然后有自定义头文件将多个源文件关联起来,并将函数定义放在头文件中,就能实现多文件程序了。(这个是我看完资料后的总结。)
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
第一次听这个词。上百度搜了下,
- 耦合性是指模块间的联系。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。内聚是模块内的联系。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。我的理解就是它就像是一个快要破碎的大冰块,大冰块里的每个碎冰块是每个模块,碎冰块之间联系就是耦合,联系越强,大冰块越不易碎,耦合性强,碎冰块也就越不能独立存在。而每个碎冰块里分子间的联系就是内聚,分子联系越强,碎冰块越不容易融化,就像分子间的距离,分成固体,液体,气体三种状态,固体内聚性最强,气体最低。
- 事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
#include <stdio.h>
int main()
{
char a[100] = "\0",b[100] = "\0";/*如果数组是字符串*/
int a[100] = "\0",b[100] = "\0";/*如果数组是数字*/
int i = 0;
printf("输入一行字符:\n");
scanf("%s",a);/*字符串时*/
scanf("%d",a);/*数字时*/
for(i = 0;a[i] != '\0';i++)
{
b[i] = a[i];
}
printf("%s\n",b);/*字符串时*/
printf("%d\n",a);/*数字时*/
return 0;
}
#include <stdio.h>
#include<stdlib.h>
#define N 50
int main()
{
char a[N];
int i,s,n=0;
gets(a);
for(i=0;a[i]!=‘\0’,i++)
{
if (a[i]==‘5')
{
printf("exist\n");
n=1;
break;
}
if(!n)
printf("without\n");
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#define N 50
int main()
{
char a[N];
int i,j,t;
gets(a);
for(i=0;a[i]!=‘\0’,i++)
{
for(j=i+1;a[j]!=‘\0’,j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
puts(a);
}
写一个程序,统计自己C语言共写了多少行代码。(将上述多个程序的Github链接附在随笔上,可以在随笔上附上关键而非全部代码)
-这个可以用“文件读写”的知识,C语言里,freopen可以打开一个文件,fgets每次可以从文件读一行。(这是咨询的老师得出的思路)
#include<stdio.h>
#include<stdlib.h>
int main()
{
longint n,a;
printf("你写了多少个程序:\n");
scanf("%ld",&n);
printf("每个程序大概多少行:\n");
scanf("%ld",&a);
printf("大概写了%ld行代码:\n",n*a);
return 0;
}
你知道什么是断点吗?给出自己调试程序的例子。(可以截图贴图说明)
- 这个是在你调试的时候使用的,所谓断点,就是当你的程序执行到该地点的时候,停止,不继续执行。在调试状态下,在断点处,你可以查看数据的值,状态等等,比如,研究为什么想要的结果不对,赋值后的结果是不是正确。
补充:程序断点是指由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。
比如我经常用的VC++,如果我在某程序的一代码int a=10,这句中插入一个断点会有什么反应。
这个时候让程序运行到指定位置停止,观察变量赋值情况,叫断点。
断点之后,每次执行一条语句叫单步,
int a;
a=10;
这样写才可以看到断点和单步的效果。断点定在a=10;
执行到这一句停止,可以观察到 a=0;(定义后a默认赋值)
单步执行后,可以看到 a=10; - 调试程序推荐这片博客。http://www.cnblogs.com/daojian/archive/2012/10/09/2716788.html
对比C语言的学习,你对《面向对象程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
我不想成为高中老师口中的人,做不好当下事的幼稚人。
- 对比C语言的学习,我希望学了Java以后我可以设计出一款小的软件。
- 我觉得持续的练习,每天坚持写程序可以训练提高程序设计能力和培养计算思维。
- “学生在实践中发现问题,解决问题,在迭代中提升”就像老师认为的一样,我们不断地练习实践,然后发现问题,想办法解决问题,然后就会一步步得到提升。
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
- 我可以提笔即写,但我擅长古风和抒情风以及故事类。就像青春文学风和心灵哲理类这些。
纯学术和理论知识方面比较薄弱,会在这方面下功夫。多阅读一些有见解有思想的学术性博客,了解写作流程和写作特点。另一方面多阅读专业性书籍,了解专业名词及专业知识,丰富阅读量,拓展阅读范围。 - 开口能说方面应该是不怯场但不能控场,主要是缺乏自信和经验。
- 问策能对,遇事能办方面需要加强,它不但涉及学习工作,也包含人情世故,这方面需要不断磨练。
不能做到十全十美,但会做到尽善尽美。.
若想让别人认同你的策略,首先你要有让人信服的资本,强大的知识储备,还要有说服力和威信力。两方面都要不断进步,会着重锻炼前一个。其次,善于组织语言,以简洁干练的语言总结你的想法,毕竟对面坐的是你的合作者,不是你的家人,没有时间听你唠家常。
说这么多,我写的提高思路就是面向过程程序设计,重要的还是要按着步骤一步步实现。