第二章 练习与讨论
1.软件工程和程序设计大作业的调查
请同学们做一个调查,到相关的软件学院或计算机学院采访学长或学弟学妹,调查一下程序设计大作业的完成情况:程序花多少时间完成?程序量是多少(多少行代码)?开发过程中使用了源代码管理等工具么? 完全独立完成的同学有多少个?程序解决实际问题么?在一些学校里,全班50 个同学,交上来的作业只有 4 到 5 种版本。这说明了什么?
答:①经过这几天的调查,程序花多长时间完成因人而异相同的程序写的好的大概一个小时完成二十行左右的代码,相对写的差的就需要两个甚至更长的时间来完成。②
开发过程中未使用源代码管理等工具③完全独立完成的同学较少更多的是相互合作④程序解决实际问题的很少大多是编写程序完成作业⑤50个同学交上来的只有4到5中版本说明大部分学生的思维是相同的毕竟是一个班的肯定是同一老师教的,还有一种可能就是copy的。
2.各种编程的玩法
编程可以是一门理论,也可以是一门工程,还可以是一门手艺,这些年来程序员们玩出了不少好手艺,请看:
http://news.cnblogs.com/n/501488/
你有什么相关编程的手艺?
在大一的时候学习了C语言但是学的没有那么精通只是略懂皮毛,大二选了一门和自己专业相关的网页设计这门课虽然是一门选修课但是我热爱这门课并且在最后通过自己的努力设计了一个网页,现在正在学java,我希望通过老师们的讲授能够学到更多的知识和编程语言,希望通过我的努力我的愿望可以实现并且成为一名优秀的程序员。
- Coder和Hacker 的区别:
http://news.cnblogs.com/n/513177/
http://st-threath.blogspot.tw/2013/06/an-engineer.html
http://aknow-work.blogspot.tw/2013/06/reply-to-coder-hacker-and-architect.html
coder和hacker虽然都是写程序的人,但他们在本质上有很大的不同:
我们都知道code的翻译是代码,顾名思义,coder可以说是写代码的人,它在工程师的等级划分中可以说是最底层的。coder知识为了写代码而写代码,他们并不关心写的程序的目的和作用,只是为了完成属于自己的任务,为了自己的生活。他们有一种固定的思维——这是上司交代的工作,必须完成,因为这关系这自己的工资、奖金。而且他们希望自己的工作量最少,所以不会主动做会让自己增加工作量的事,比如对团队开发项目中发现的问题不会提出来,也不会想完善开发的项目。总之,coder只会机械的完成自己份内的工作,也是在未来最大可能会被人工智能取代的一类人。相较之下,hacker就是比coder更高层次的等级了。他们写程序都有自己的目的,为了达到自己的目标,会对程序进行反复的修改,直到达到自己的要求。而且,他们有很强烈的探索欲,当接触到新事物时,他们会用尽全力去探索其原理,并付诸实践,而且乐在其中。此外,hacker会将程序做到自己觉得最好的状态,并且提出会让项目更好的建议或者提出项目的问题并提出自己的解决办法。
以上都是我认为coder和hacker中的不同之处。
4.分析开发工具
请到http://code.visualsyudio.com下载最新版本并构建几个简单的程序,写一篇博客描述这个工具的优缺点。
优点:(1)作为一个颜色控还真蛮好看的 ;
(2)可以使用各种语言;
(3)跨平台,免费;
(4)100%的本地环境,无需联网;
(5)安装包小,性能好;
缺点:(1)不支持markdown扩展语法中的tasklist,流程图;
(2)不支持快捷键输入,那种像写代码般的快感没有了;
(3)没有自定义css的功能;
(4)默认的字体是不支持中文的,输入中文的时候会出现口口。