高级软件工程pair project工作总结 By 何栋梁

2023-11-05 02:40

本文主要是介绍高级软件工程pair project工作总结 By 何栋梁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       高级软件工程的pair project正式结束了。我和徐海峰同学经过一个星期的努力圆满完成了以下任务:

       1、 修改Academic map中代表各机构的圆圈颜色显示模式,将单调的四种颜色模式改 为按照红橙黄绿青蓝紫的颜色变化顺序表示各个机构。

       2、在各个机构中的中心显示区,根据作者数目排序显示出该机构的前三位的研究领域。

       我们预期我们的实验的结果应该是各个机构按照其规模从大到小的顺序,依次显示出由红色到紫色的渐变。另外,当我们点开一个organization的时候,在中心的大圆上显示出该机构作者数目在前三的domain. 那么我们任务完成后的实际效果怎么样?以下两图略做展示:

clip_image002

对机构重新赋上颜色,按从大到小的顺序依次由红色到紫色渐变

 

clip_image003

按作者数目显示每个机构的前三位的研究领域

 

        我们两个以前从来没有接触过silverlight以及C#。一开始我们组队的时候还是免不了对于结对项目的担忧。我记得,当我们拿到Academic Map的代码的时候,我们两个人都颇觉压力。然而,更加让我们窘迫的事情是,我们总共只有两个星期的时间,而上个周五周六徐同学都有丘成桐杯数学竞赛的面试需要应付,从这个周一到周三,我和他两个人都得参加微软亚洲研究院小学者夏令营活动,我们需要准备面试,需要参与团体的活动,而他在这个周四晚上就得启程去考托福,这也需要时间来准备。这一切让我们两个一开始都有点焦头烂额的感觉。我们各自所在的研究小组还会有一定的任务需要我们去完成,当事务如洪水般涌过来的时候,就看谁能激流勇进了。因此,基于这样的客观情况,一开始,我们两个对于项目任务并不乐观,预期的效果也不是很高,给自己定位的任务也并不太艰巨。我们两个讨论后,一致认为,我们做得不多不要紧,只要我们在这个过程中学到了东西就会有收获。于是,项目任务就在这样的前提下开始了。

      时间是如此的有限,我们拿到代码的第一天下午就开始了讨论。晚饭期间,我们就自己使用Academic Map的切身体会交流了各自的看法,最终商量好做排序,我们决定对机构的domain按作者数排序,以显示出来它比较优势的专业领域。然后我们跟唐敖兄弟确定了这个题目。后来,唐敖说我们这个任务相对的轻松,我们应该再做点别的,正好夏睿同学提出很多很好的idea,我们就掠夺了他其中的一个,那就是根据机构的规模将颜色做成渐变的模式,美化界面。

我们两个决定分头行动,我们的任务被分为了几个小部分,简单得说,一个是如何显示结果,一个是如何获取数据。以下是我们将任务的划分和预期及实际的耗时情况:

Untitled

 

       首先我们一起开始看代码,他注重关注silverlight代码部分关于图形界面的代码,找到关键切入点,以实现我们在界面进行处理的目的;而我,主要负责关注C#代码中关于控件的操控以及如何去获取数据部分。我们把任务分成几个部分,各自行动,然后每天晚餐时候,我们一起去吃饭,在饭桌前讨论我们最近的进展和发现,交换一下各自的意见,饭后回来两个人就一起把不能读懂的代码拿出来共同讨论,通过查MSDN和向同学请教等方式,共同学习。此处插入小图一张~

clip_image005

两人共同探讨学习中

 

       现在,任务完成了,当我回过头来想想,两个人一起工作其实与平时一个人完成一个任务还是有很大的不同的。首先,我想就个人的看法说说其优势。

       首先,两个人一起工作,至少,有个心理依靠。尤其对于两个不熟悉silverlight和C#的合作伙伴来说,刚刚看到Academic map的原始代码的时候,如果只有我一个人,我相信我的信心不会那么的足,但是,现在是两个人,我会觉得也许我不明白的地方队友会知道,我们可以一起讨论,也会相互鼓励。这样,其实信心要足一些。我清楚的记得,在我拿到那一堆代码之初,疑惑的问我的队友我们能否按时完成,他的一句“小伙,年轻没有什么不可以。不问结果,每天都能学到东西就值了!”让我无比的兴奋,那一刻,自己真跟打了鸡血一样。

      另外,我觉得两个人工作的另一个好处在于,两个人一起工作是一种鞭策,谁也不想因为自己的不努力而把对方拉下水,那么,在我们想懈怠的时候,就会有种无形的推力在自我推动着。

      还有,我觉得两个人一起工作,能够学到更多,有时候一个人完成一项任务,当你走入到一个死胡同或者瓶颈的时候,容易走入思维定势的怪圈。然而,有两个人,当你遇到麻烦的时候,你可以让另一个人来想想这个问题。这样,更加容易解决问题,而且还能学到别人在处理问题时的思维方式。

       此处插播一则小故事以作说明:

       当我们做颜色修改的时候,我们用一个在0到1之间的数去衡量机构的规模的大小,然后根据这个数去生成颜色。我们发现各机构的颜色中红色居多(也就是接近1的数太多),于是我们想要做下均衡,让各个颜色的数目尽量的均匀。然而,我站在信号处理的角度首先想到的就是在做图像均衡时候用的的直方图均衡算法。而他,作为一个数学背景的学生,他的第一想法就是做一个位于区间[0,1]的下凸函数f,经过映射,使接近1的数变成更小的数目达到均衡的目的。而这个算法实现的复杂度就比直方图均衡要容易,关键在于下凸函数的设计。最后,我们寻找了一个(ax-1)/(a-1) , (a>1) 这样一个函数。集思广益略见一斑。

      当然,两人结对编程也有一些其他方面的影响,我们需要适应彼此的编程风格,当我们在想法上有冲突的时候,需要商量,讨论,最后一方说服另一方或者找到一个折衷点。这样相对来说耗时要多但是个人觉得不能算浪费,因为学会说服一个人也是种不错技能。

       掰扯了这么多,我想,最后我得好好谢谢大家,感谢唐敖同学和夏睿同学的帮助,感谢邹老师能够给我们提供这么好的机会让我们有所锻炼,感谢国斌跟贝哥,在我们两个参加MSRA夏令营期间,鼓励我们俩从忙碌中survive,也很感激他们对我们的信任与支持。

       跟我的队友徐海峰短暂而愉快的合作过程中,我看到了他许多的优点。他是一个很积极进取的人,跟他的合作让我受到了他迎难而上的生活态度的感染,是他给了我不少的信心和鼓励,在纠结的时候,有他的开导,在迷惘的时候有他的鼓励。另外,他是个很善于思考的人。当面对一个问题的时候,他能很快的从数学的角度,考虑找到一个合适的解。还有,他是一个善于和人沟通和交流的人。如果能有下一次合作的机会,我很乐意和他合作,不过我更希望下一次合作的时候,你不会忙碌于丘成桐杯竞赛的面试,也不会要担心TOEFL的考试,也不用应付summer camp的各种活动,我希望我们能全力以赴,做出更好的成果。当然,我也希望给他提点小小的建议,同样这也是我自己需要加强的地方,那就是,对于C#和silverlight的了解需要继续加强。我想,不仅仅是这个项目,以后的团队项目都需要这两个方面的知识。当然,以你那好学进取的态度,我相信这个不是问题。

       期待下一次的合作,期待从你那学到更多……Cheer up, buddy!

转载于:https://www.cnblogs.com/OMG-Team/archive/2011/08/27/2155624.html

这篇关于高级软件工程pair project工作总结 By 何栋梁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346859

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果