《构建之法》——软工学习进度(2)

如何衡量一个软件工程师

如何衡量一个软件工程师?这是《构建之法》第三章的核心问题。第一章讲述了团队的流程,第三章则是对第一章的具体描述,从笼统的团队具体到个人。软件开发流程不光指团队的流程,还包括了个人开发流程,因为软件团队是由个人组成的,简而言之,个人在团队中也有独立的流程。那么问题来了,如果我们去面试,该如何定义我们自身呢?又或者说,看到一个同行的软件工程师,该如何形容他的技术?

第三章通过对足球的比喻,向我们形象的阐述了这个问题的关键。足球中有传接、盘带、射门等具体技术,映射到软件工程上来,一个软件工程师也是这样,他们也有自己的成长。就像我们从小开始学习,一步一步,从小学升到初中高中,再到大学,甚至还有研究生等,我们的知识量在逐渐的积累,所学习的内容也在逐步的变难。对于软件工程师的成长,书上是这么描述的:积累软件开发相关的知识,提升技术技能;积累问题领域的知识和经验;对通用的软件设计思想和软件工程思想的理解;提升职业技能;实际成果。这是针对个人的成长,其实要想看清个人的成长,最直接的就是出套“试卷”给他做做。也就是询问他的成果,甚至对他进行实战考验。

再从未来看向现在,在刚过去的上海市等级考试中,我考了97分的成绩达到了优秀,但这只是二级罢了,漫漫考级路遥远着呢,考级也算是对软件工程师评价的一个标准。通过阅读,我才了解到,并不是说只有国家或省市才有等级考试,你拿到了证书,的确国家承认你有相应的能力,但是很多大公司自己本身就有一套全面的等级考核标准。比如说微软的MCP,甲骨文公司的OCP等等,如果你通过了上述考核内容,那么你加入他们的公司,才会更有底气。

整个第三章我最获益的就是一句话:技能的反面是“解决问题”。我们大学生在刚走出校门的时候去面试,如果面试官给我们出个问题,比如现场敲代码,我觉得以我这个水平,绝对不敢说不犯错。问题不在于多难,多复杂,而是我们本身对这些问题不够熟悉。面试官给你的是大问题,是最终实现的方向,那么小问题呢。小问题就是你在敲代码的过程中遇到的一系列细节问题,比如说漏打字母,漏敲分号,甚至串行等因为不细心而犯下的错误。我们在出校门前,多多练习,不管问题大小,把那些低层次的问题都解决了,那么我们才算是真正意义上的解决了问题,才算是学到了技能。

时间: 2024-10-13 12:28:01

《构建之法》——软工学习进度(2)的相关文章

《构建之法》——软工学习进度(3)

合作与审核 首先是代码的规范问题.关于这个代码规范,我并没有花很多时间去阅读,可能是自己的习惯,代码风格一向都是简约而规范.就比如在写一些if语句的嵌套时,很多人都习惯了不加括号,即使加括号可能是多此一举但我还是习惯加括号,不为别的,就为自己甚至别人看上去能更加清楚,这并不是画蛇添足,我觉得更像是画龙点睛.不过这一节对变量的命名我倒是深有感触,我们习惯了教科书上的一些命名,所以有时候看到问题不假思索的就为变量命了书上常出现的名字.但是当我们之后再去复核时,我们往往不懂这些变量在这个问题中的意义,

《构建之法》——软工学习进度(5)

敏捷流程 1.定义: 敏捷流程是一系列价值观和方法论的集合.流行做法的价值在得到肯定的同时,我们也发现敏捷的做法更能带来价值. 2. 敏捷开发的原则: ①.尽早并持续地交付有价值的软件以满足顾客的需求. ②.敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势. ③.经常发布可用的软件,发布间隔可用从几周到几个月,能短则短. ④.业务人员和开发人员在项目开发过程中应该每天共同工作. ⑤.以有进取心的人为项目核心,充分支持信任他们. ⑥.无论团队内外,面对面的交流始终是最有效的沟通方式. ⑦

《构建之法》——软工学习进度(7)

软件设计与实现 图形建模和分析方法:①表达实体和实体之间的关系: 思维导图:思维导图没有严格的语法定义,一般来说是从图形的正中开始写下一个概念,然后按照绘图者所关心的属性拓展.几乎每个人都能马上开始画图.思维导图形式灵活,适用于很多鼓励探索.发散思维的场合,但是它的图形元素缺乏严格的语法和语义. 实体关系图:着重于表现现实世界中的实体和它们之间的关系.在我们分析实体之间的关系时,这就是一个理解和抽象的过程.当我们要表示实体之间的静态关系时,ERD时一个合适的工具. UCD:用例图的元素简单,绘图

软工学习记1

这学期,我们分了方向,专业方向.也许向老师说的那样学习好的选了计科,我大概属于学习差的吧.高中的紧绷让我到了大学不知道该干嘛了,荒废了整个大一,到现在还不知道自己读了大学学会了干什么.现在我要追赶了,毕竟差的不是一点半点.分了方向,有了任务,也大概自导自己该干嘛了.开始感觉还是挺无从下手的,不过信心还是有的.也算亡羊补牢吧. 这俩星期自己抽空看了看这本构建之法.粗略明白了点要想开发一个堪称完美的软件是十分困难的.需要大量人力时间.软件等于程序加软件工程,软件开发的阶段不同,我们所需要的标准花费的

构建之法第八章学习心得

今天,我学习了构建之法第八章软件需求,人们为了解决现实社会和生活中的各种问题,要求助于软件.人们的需求五花八门,那么软件团队如何才能准确而全面地找到这些需求呢? 需求分析1.获取和引导需求 软件团队需要找到 软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求. 不同的项目需要不同的手段,这一步骤也被叫做"需求捕捉",形容真正的需求稍纵即逝,需要靠火眼金睛和敏捷的身手来发现并抓住它们.另外,很多时候用户并不知道自己确切的需求,或者不愿意表达完整的需求,软件团队需要设

《构建之法》小组学习心得

baba爱你小组  组长:阮俊  组员:钱洪章.黄维.光萍.张启飞.王学飞 这周我们小组学习了<构建之法>第八章需求分析的内容. 人们为了解决现实社会和生活的各种问题,要求助于软件.人们的需求五花八门,那么软件团队如何才能准确而全面的找到这些需求呢?主要有这几个步骤: 1.获取和引导需求 软件团队需要找到软件的利益相关,了解和哇挖掘他们对软件的需求,引导他们表达出真实的需求.另外,很多时候用户并不知道自己确切的需求,或者不愿意表达完整的需求,软件团队需要设身处地,替用户着想,引导出需求. 2.

软工学习笔记——代码规范

上大学以来写了这几年的代码,却一直没怎么关注过代码规范相关的问题,直到软工课上讲了之后,才开始有所顾及.上课的时候回头看看自己写过的那些代码,真是丑死了,几个月前自己写的代码现在就已经读不懂了. 看了书上的相关章节,对于我来说,我觉得我的代码主要注意这几点: 1. 少写冗余代码,已经用不到的代码段就应该删去.(我今天刚刚发现我的昆特牌Online项目中竟然还存在有两个没用的类) 2. 多利用空行来将代码小规模地分段. 3. 大段的无用代码不要一直注释着,该删就删.(我的项目里经常会有一大堆没用的

软工学习记4

随着学习的进程越走越远,我们的团队也更加确定.在人员分工.开发项目方面都做出了明确的规划.有了个目标,我们便不是那么迷茫,困惑着去学习,学习了这么久到底能干什么?这个问题很关键.我和我的队友们也达成了共识,决定尝试着去做一下一个基ASP动态网页开发技术的二手书贩卖系统.我们的分工也十分明确. 牟得力主要负责总体的规划,也就是我们的小领导.钱政捷主要负责数据库的建立和对接,杨子琪版式设计后期处理美化,我呢,就是开发ASP网页主题的构建咯. 对于一群对编程并不太擅长的学渣来说,一个有着太复杂功能的系

构建之法第二周学习体验

首先我学习了个人能力的衡量与发展.软件工程中有一项是软件开发流程,目的是为了提高软件开发.运营和维护的效率.但是软件开发流程不光是指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的.单个成员在团队中的流程包括:1.通过交流.实验.快速原型等方法,理解问题.需求或任务2.提出多种解决办法并估计工作量3.与相关角色交流解决问题的提案,决定一个可行的方案 4.执行,把想法变成实际中能工作的代码,同时验证方案的可行性和其他特性5.在测试环境中测试实现方案,修复Bug6.在解决方案发布出去后,对