1. 选哪一种医生?
①作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会:
首先我还不是一个软件工程师,其次在平时的实践作业或者是实验中,认为自己更像是a医生,甚至比a医生还要差一点的是,我很多时候还是不够严谨的,在进行实验或者实践时候,根本没有弄懂原理就进行试探性的操作,导致走了许许多多的弯路,
②看书的时候觉得“技止此耳”,开发项目的时候才觉得实际情况和书上讲的都有一些出入,一些重要的细节书上没有提。我们很多人是边看Asp.net的书, 边开发Asp.net 的项目,这相当于一边看医学书一边动手术……
如果你是病人,你希望你的医生是下面的哪一种呢?讨论: ① 你要选哪种类型的医生?② 医生、药剂师、律师和很多行业都有职业考试和职业证书,软件工程师需要有正式的职业证书才能上岗么?
我希望我的医生是b医生,因为如果他可以想到一个新的治疗方法的话,那肯定说明一个问题,他的普通的操作技术肯定是没有问题的,所以他才能想到一种新的方法,如果他连基本的操作都不懂的话,何谈创新呢,而且具备有创新意识还是很好的,但是作为医生应当在别的地方试验过再在临床上给病人进行治疗,下面的四中医生多多少少都会存在一些问题,如果是我的话我更倾向于选择b医生;
我认为软件工程师需要具有正式的职业证书才可以上岗,这样能使得刚上岗的新员工在一定程度上具备有相关的知识与技能,如果一个没有相关技能与知识的人误打误撞进入了软件开发的部门,
在接下来的工作中出了问题,不仅仅是员工本人需要对这个事故负责,公司也会承担不小的后果,这样得不偿失,所以我认为软件工程师需要具有正式的职业证书才可以上岗。
2. 工程还是艺术
①软件开发是一门工程(Engineering), 是一门艺术(Art),还是一门手艺(Craftmanship)? 你如何衡量艺术家? 如何衡量创造能力?
(1)先解释一下工程与艺术两词:
工程是科学和数学的某种应用,通过这一应用,使自然界的物质和能源的特性能够通过各种结构、机器、产品、系统和过程,是以最短的时间和最少的人力、物力做出高效、可靠且对人类有用的东西。
艺术可以是宏观概念也可以是个体现象,通过捕捉与挖掘、感受与分析、整合与运用(形体的组合过程、生物的生命过程、故事的发展过程)通过感受(看、听、嗅、触碰)得到的形式展示出来的阶段性结果。
(2)我认为认为软件开发首先应该先是一门工程,在保证基本的工程质量情况下,一些优秀的软件以及代码可以上升为艺术就像第二章的用几行c++代码就绘制出一幅图画。
(3)在哪个领域,优秀的作品就是艺术,创造它的就是艺术家。
(4)创造力是指产生新思想,发现和创造新事物的能力;如何去衡量他呢?我认为创造力是无法被衡量的,它并不是一个固定的实物他是一种能力,只能凭借由它创造出来的价值来对它进行间接的衡量
②如果是一门工程, 那工程师要守规矩; 如果是一门艺术, 那艺术家要创新。写诗歌最多的人是谁?最有创造力的诗人是谁?
(1)写诗歌最多的是乾隆,一生诗作四万多
(2)我个人认为最有创造力的诗人是李白
③例如,找出下面这首词中重复的字:
念奴娇 · 赤壁怀古 - 苏轼
大江东去,浪淘尽,
千古风流人物。
故垒西边,人道是,三国周郎赤壁。
乱石崩云,惊涛裂岸,卷起千堆雪。
江山如画,一时多少豪杰。
遥想公谨当年,小乔初嫁了。
羽扇纶巾,谈笑间,樯橹灰飞烟灭。
故国神游,多情应笑我,早生华发。
人生如梦,一樽还酹江月。
出现了三遍的字有: 江,人; 出现了两遍的字有: 国,生,千,故,如。这符合“好词”的标准么?
个人认为是符合的,即便是文学作品,关于“重字”这件事,不同类型的文学作品也对此有不同的定义,就像一部长篇小说中的“的”用了成百上千次,但是你能单凭这一点去否认这部作品的优秀性吗?答案是否定的。
④软件设计工程师们在做代码复审的时候,是看“重复字”的多少, 还是程序的艺术性?
主要是看程序的“艺术性“在一个软件之中代码的重用是无法避免的,不可能只用一次某一个函数,如何能够最快最简单的实现满足功能才是王道
⑤一个软件工程师就不能这样,在舞台上展现他当年写的“hello world” 程序,或者是1.0 的产品。为啥有这样的区别呢?
因为随着时代的发展我们要进步要满足大家各种的需求,如果一直都展示1.0的产品是无法满足市场的,也许就是工程与艺术的差别吧,工程是以最短的时间和最少的人力、物力做出高效、可靠且对人类有用的东西,而艺术则是个体通过捕捉与挖掘、感受得到的形式展示出来的阶段性结果。
②当代码是在2,000行以下,程序员可以用 “写了再改” 的蛮干方法,并且靠记忆力搞定一个程序,但是, 如果你的代码规模达到20,000行,你要用结构化编程(类,模块,API,细节隐藏,面向对象的其它方法,等)来保证程序不变成一团乱麻。 如果代码规模再大一个数量级, 20万,200万呢?http://www.techug.com/norris-numbers (翻译)
看过了作者推荐的网址我想引用其中的一段话来回答这个问题“突破这个瓶颈的关键是什么?对我而言,就是让事情保持简单。除非现在就非常需要,否则完全拒绝添加任何新特性或者新代码。”,首先我认为达到20万和200万这个数量级时,简单的结构化编程已经无法解决问题了,也许我们需要做的就是让事情保持简单,以及明白“什么需求增加了线性的复杂度”然后尽量去避免这个问题的发生,我想这暂时是最好的解决方法了。
(1)怎样才是有效的学习方法?
最有效的学习方法:是改变自己的思维定式
往往一件事我们是能做到的,但是我们如果不断的否定自己那么能力再强的人也无法去完成某一个既定的目标,相反如果我们每一天都对自己进行自我肯定,每天朝着既定的目标努力,那么能力弱的人也有可能完成这个目标,有时候是我们的思想局限住了我们自身的发展而不是我们的能力,所以我认为只有摆脱自己的思维定式,自己想学肯学才能进行高效的学习。
(2)打字快就能写程序快吗?
答案是不一定的,打字快但是不具备写程序所需的知识那也只是无用功,人们打字的速度是有限的,总不可能超越计算机吧,在这个有限的区间里打字快可能会在某一程度上加快程序的编写,但是写程序最终还是要靠脑子的,用最少的代码实现功能才是王道。
(3)哪一种语言、编辑器是最好的?
·编辑器
大师级别的:vi
有许许多多伟大的程序和代码是由vi开发编辑,但是这属于大师级别的代码编辑器,对于我们这些普通人来说,只能说是名气大但不实用。
专业级别的:Eclipse、Apatana Studio
首先这些软件免费且开源而且支持多种语言适合普通人的使用
【榜单参考:https://www.csdn.net/article/2012-08-01/2808069】
·语言
java、ios、c、c++、php、phython等等
最后我认为并没有所谓的最好的编辑器和语言只有最适合一个人的编辑器以及最适合完成某项功能的语言,适合的才是最好的
(4)核心竞争力是什么?
这个行业的核心竞争力是什么-------学习力
在这个高速发展的时代,学习力才是最核心的竞争力,如果你学的很慢你刚学好c,企业已经开始用java了,那这样肯定是不行,无法创造价值就会被淘汰。
学术职业阶梯是人们根据学术职业特性为从业者所设计的一套个人发展阶段的共同标识和职业规制,对大学教师的发展及其生存方式有着重要影响.
9.(1)对自知之明的理解?
我们在很大程度上都没有意识到我们无知和自己的不足,而我认为自知之明体现在对自己的的了解和掌控能力。
(2)你是否也有这种现象?
我认为没有这种现象。我在刚学习某个语言或技术的时候,在没有学到位的时候是不会轻易发表自己的意见的。