学习的榜样

90后的代码界“女神”李雪:在编程中找到自己的“灵魂”

发表于 2013-07-23 12:18126346次阅读| 来源 CSDN274 条评论| 作者 王鹏
摘要:在第二届微软“编程之美全国挑战赛”中,来自北京邮电大学的大三女生李雪以复赛以及决赛的优秀表现脱颖而出,获得最后的冠军大奖。李雪同时也是北邮ACM战队的成员之一,刚刚从俄罗斯参加ACM大赛回来。

在第二届微软“编程之美全国挑战赛”总决赛中,冠军是一名来自北京邮电大学的大三女生,她的名字叫李雪,今年21岁。本次决赛最大的不同之处就在于,这是在微软的云平台Windows Azure上进行的。在云平台上展开竞赛,这让很多在校大学生提前接受了云计算的“洗礼”。

本届的“编程之美全国挑战赛”一共吸引了13000多名来自全国40多所高校的优秀学子报名参加,其中不乏来自清华、北大、上交大等以计算机专业而闻名的顶尖院校的学生。万人竞技,竞争的激烈程度可想而知。李雪同学能从13000名参赛选手中脱颖而出,绝对可以让大多数“爷们程序员”汗颜了。

图:李雪的生活照

以下是CSDN对李雪的专访:

初中就开始接触编程,文化课成绩也因此而提升

CSDN:在大多数人的眼中,编程都是男孩子做的事情,你为什么会喜欢编程,从中可以发现哪些乐趣?

李雪:我接触编程其实是一件挺偶然的事情。在初中的时候,有一个教我们计算机课的老师带我们入门,当时也没有想那么多,就是觉得挺有意思。到了高中之后,也就参加了信息学竞赛,当时我们竞赛小组的关系比较融洽,学习氛围也比较好,相互之间都是朋友。然后大家一起学习编程参加比赛,那种互相帮忙调试程序的感觉也很好。对我而言,通过学习编程,首先是找到了自己的兴趣;另一方面,每编写一个程序,调试完一个Bug,都有一种满足感和成就感。

CSDN:那么你在初中和高中读书时,会花很多的精力在编程上吗?有没有影响自己正常的学习?

李雪:在初中的时候,我只能说是了解编程,谈不上花费很多的时间。到高中之后,我差不多都是每天按时上课,课下也是快速地完成作业,剩下自习课的时间都是泡在机房里面。虽然参加竞赛占据了很多的时间,但是文化课的成绩也随着在进步。可能是刚开始的时候还没有找到正确的方法,当我找到了恰当的学习方法之后,即使时间少一些也无所谓了。步入大学之后,我投入的精力比较多,每天都在训练,甚至暑假也是一直待在机房里面。

CSDN:现在每天大概花多少时间在编程上面?

李雪:暑假集训的话,每天大概花12个小时训练,平时的话,因为还要上课,基本上都是五六个小时。

CSDN:感觉编程很枯燥吗?

李雪:不枯燥。因为就像有的人很喜欢写文章一样,也许在别人眼中,作家就是一直在敲打文字。但是他知道自己写的东西是跟别人想象中的完全不一样,而且写出来的文字,都有自己的灵魂,他能够从中得到自己想要的东西。

编程之“美”

李雪对编程的理解恰恰与微软“编程之美全国挑战赛”的主题不谋而合。微软(亚洲)互联网工程院首席开发经理,同时也是本次大赛的评委会主席的邹欣在接受CSDN采访时表示,现在和编程相关的比赛其实很多,但是微软想做的是一个不那么艰苦的比赛,希望能够把编程里面的创意、设计及创新的想法,通过团队合作的方式表现出来。不是大家传统印象中艰苦的编程,而是充满乐趣的编程,这是微软“编程之美”比赛想展现的最重要的一个“美”。

另外,微软过去两届的编程之美比赛都是围绕着大数据、云计算这些看起来很复杂的课题来开展的。把复杂的东西通过简单的形式展现出来,这是大赛展现出来的编程的第二个“美”。

相信本届微软“编程之美全国挑战赛”最终由李雪这样一位“程序媛”摘得桂冠,也为大赛和编程增加了一“美”。

细节决定成败,会把每一个算法都搞明白

CSDN:在编程过程中,有没有对自己影响很深的故事?

李雪:在高二的时候,有件事对我的影响很大。因为在那个时候(一般情况下),比赛只能参加到高二,如果高三再参加比赛,很可能会影响到高考。在我高二那年的比赛中,因为没有考好,我就没有保送资格。这件事对我的影响特别深,当时在比赛中遇到一道题,其实那个算法之前也学过,以前感觉自己好像会了,但是在比赛结果出来之后,才发现自己之前想的都不对。也是通过那次比赛,让我真正理解了那个算法,不过当时我也是很不服气,于是我顶住压力继续参加比赛,因为当时班主任不太支持。我是在高三的时候才拿到了竞赛的一等奖。正是那次比赛,让我在态度上比以前更认真,不管是写算法,还是编写程序,我一定会搞明白,每个地方都不会粗心。

跟大学很多女孩一样,喜欢打乒乓,不喜欢跑步

CSDN:在我看来,编程不仅是一项脑力劳动,也是一项体力活,你觉得编程很累吗?有没有意识到健康的身体对编程的重要性?

李雪:我个人的感觉,其实编程并不像很多人想象的那样,就是一直坐在那里,没日没夜的写代码,生活也不规律。就我自身而言,无论是学习还是看书或者是去机房训练,都是按点来、按点走,几乎不会熬夜。我都是根据自己的生物钟,作息很规律。当然肯定不能长时间的坐在那,也应该过一段时间休息一下。而且我们机房这边也有乒乓球台,大家晚上的时候,就一起出去打乒乓球。

CSDN:很喜欢打乒乓球吗?

李雪:还可以,就是打的不怎么样。

CSDN:经常跑步吗?身体好不好?

李雪:比较少。身体挺好的,我平时比较喜欢多走走,打乒乓球,有时候会踢毽子,感觉跑步太累了。

CSDN:北邮给你留下最深的印象是什么?有没有对自己影响特别深的人?

李雪:北邮给我最深的印象,就是它的学术氛围特别浓厚。北邮算是专业性比较强的工科院校,不像很多其他的综合学校,北邮开设的理科专业很少,人文专业更少,像医学这样的专业都没有。虽然有一些同学会觉得有点枯燥,但是我个人还蛮喜欢的。感觉北邮可以让我专心于自己的学术研究,尤其是在上实验课的时候,大家的态度都特别的认真,北邮的学风也非常好。

谈到对我影响特别深的人,首先想到的就是ACM集训队的教练房鸣老师。如果不是他给我加入集训队的机会,我很可能就不会在编程上面付出这么多的努力,也就没有了后面的故事。

ACM大赛那点事

ACM程序设计大赛(以下简称ACM)是大学级别最高的脑力竞赛,素来被冠以"程序设计的奥林匹克"的尊称。大赛自1970年开始至今已有30年历史,是世界范围内历史最悠久、规模最大的程序设计竞赛。

CSDN:这次去俄罗斯参加ACM大赛,有没有发生一些特别的事情?

李雪:我感觉有意思的事情挺多的,其实每次出去比赛都挺有意思的。我们7月5号回来的,不过这次去俄罗斯参加决赛有些曲折。就在离开的前一天,因为各种原因,我们的两位随行老师被拒签了,于是只有我们几个队员独立去参赛。当时老师的准备是比较充分,而我们自己准备工作并不太多,结果到了俄罗斯那边,我们不会讲俄语,他们会讲英语的人也比较少。反正就是各种尝试,这也是对我们能力的一次考验。

CSDN:比赛结果出来了吗?排名多少位?

李雪:比赛是当场出结果,北邮的目标就是拿到排名,我们团队相对排名为48名,基本上完成了任务。

CSDN:国内有多少大学参加?参加世界的ACM总决赛的团队,一共有多少?

李雪:中国大陆有17所高校参加,这是通过亚洲区的预选赛,选拔出来的17所高校。然后全世界共计有120多个团队参赛。

CSDN:我们都知道ACM是一个计算机领域顶级的大赛,它给你的生活带来了什么影响?

李雪:我觉得ACM让我学会了团队合作。在此之前,我也没有跟别人组过队,一直都是自己一个人。这次参赛让我感觉到自己一个人和组队相比,差别还是挺大的。其实我们学校里最强的队伍,也许三个成员的个人实力都不是最强的,但是这三个人恰好能力互补,而且彼此之间的合作非常默契,相互之间的沟通也比较顺畅,所以就能够达到一个很好的比赛结果。我以前虽然接触过编程,但是和人交流,包括比赛的时候互相查错,验证思路是否正确这些,其实还是从这个比赛当中学到的比较重要的能力。因为以后不管是工作还是搞研究,实际上都是这种形式。

从13000名学生中脱颖而出

邹欣对李雪的评价很高,他认为李雪和她的队友不仅在比赛中的配合的十分默契,而且时间把控能力也非常好。利用有限的资源,通过两人的合作,把事情做出来,这是李雪和队友胜出的关键。

微软亚洲研究院学术合作经理吴国斌在接受CSDN的采访时表示,微软举办“编程之美”大赛,第一个很重要的目的,就是希望为学生提供一个平台,在这个平台展现算法之美,编程之美;第二个方面,微软也希望让同学们提前感受到企业的编程模式;第三个方面,Windows Azure刚刚落地中国,也希望让同学们提前感受到云平台的魅力。

CSDN:得知自己是第二届微软编程之美挑战赛的冠军,当时什么心情?

李雪:当时真的没有想象到,甚至有点难以相信的感觉。因为我在参加比赛的过程中,完全没有考虑名次的问题,包括进入复赛之后,也没有考虑过这件事情。当时也就是想去微软,体验一下他们的工作环境,感受一下微软公司的氛围。不过最终比赛结果出来的时候,肯定是非常高兴,也感觉自己特别幸运。可能是运气比较好吧,但是自己也确实努力了,拿冠军还是很开心的。

CSDN:这次比赛,编程环境使用的是微软的云平台Windows Azure,这跟你以往接触的编程环境是不同的,你感觉Azure云平台怎么样?

李雪:Azure云平台给我特别大的感触:第一就是它的功能特别强大,在开始看资料时,本来是想学透彻的,但是后来发现是学不完的,Azure支持很多种编程语言,提供很多不同的服务。

第二就是Azure带来的挑战也很大,仅仅是看教程,我就看了快两周的时间。可能因为这个平台比较新,可供参考的资料和经验都不多,还需要自己的摸索。在Azure云平台上编程跟以前编程的很多标准用法都不一样,很多的东西还需要去尝试。

CSDN:参加过这次比赛以后,怎么评价微软这家公司?未来会不会考虑去微软工作?

李雪:目前来讲,不会马上去工作,我正计划读研。因为我本身也是想去一家IT公司工作,微软肯定是会考虑的。微软给我留下的印象就是他们做事组织性很强,特别有条理。我以前也参加很多比赛,微软的“编程之美”在组织上是做的非常优秀的。从初赛到复赛,每一次都会及时通知,在比赛之前都会发好几封的邮件进行提醒,每一个地方做的都很好,让人感觉特别有条理。微软公司给人的感觉,就是非常人性化,工作环境也特别好。我们比赛的那几天,大家编程都很辛苦,经常会有人来送一些零食,考虑特别的周到。

CSDN:有没有考虑过创业?

李雪:没有考虑过。我觉得创业跟人的性格有关,这不仅仅是技术和能力的问题,我还是比较青睐于在大公司工作。

CSDN:未来会不会考虑出国深造?

李雪:有可能。但是在读研阶段,应该不会出国,工作以后很有可能。

CSDN:你身边的同学,他们都有什么想法,有没有考虑过创业?

李雪:我了解的身边朋友,计划创业的很少很少,几乎没有。大概有一半的人,是想去IT公司工作,还有一半的人会选择出国或者是读硕、读博,希望再深造。

微软的人才计划

在谈及微软是否希望通过组织此类比赛招揽像李雪一样的人才,同时在学生群体中推广Windows Azure时,邹欣表示,从短期来看,当然希望这样的比赛可以帮助微软找到优秀的人才;从长远来看,即使这些人才未来进入到别的机构,也能帮助微软拓展与其他机构合作的机会。但更重要的是,这类比赛的关键还是帮助高校学子在学生时代就能够接触到云计算,当然未来他们能够用Windows Azure这个平台进行创新最好,但也说不准他们当中有人未来能开发出另一个云平台。

据吴国斌介绍,负责高校合作的部门是微软亚洲研究院在98年建院时成立的第一个部门。目前,微软的人才培养计划已形成一个金字塔,包括面向广大高校学生的微软学生技术俱乐部,更有将近五千人在微软亚洲研究院进行过实习,还有针对本科生的微软小学者计划、针对年轻博士的微软学者计划,以及与部分高校合作的博士生培养计划等。微软非常希望帮助中国培养更多的计算机领域的优秀人才,进而推进整个中国计算机科研的发展,而李雪正是其中的一个代表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主要讲述了计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 本书介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 本书33章,有33位作者,每位作者贡献一章。每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。33位大师,每个人对代码之美都 有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。 虽然本书的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。 本书收录的是软件设计领域中的一组大师级作品。每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案,并且细述了这些解决方案的巧妙之处。 本书既不是一本关于设计模式的书,也不是一本关于软件工程的书,它告诉你的不仅仅是一些正确的方式或者错误的方式。它让你站在那些优秀软件设计师的肩膀上,从他们的角度来看待问题。 本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。 第1章 正则表达式匹配器 。 1.1 编程实践 1.2 实现 1.3 讨论 1.4 其他的方法 1.5 构建 1.6 小结 第2章 Subversion中的增量编辑器:像本体一样的接口 2.1 版本控制与目录树的转换 2.2 表达目录树的差异 2.3 增量编辑器接口 2.4 但这是不是艺术? 2.5 像体育比赛一样的抽象 2.6 结论 第3章 我编写过的最漂亮代码 3.1 我编写过的最漂亮代码 3.2事倍功半 3.3 观点 3.4 本章的中心思想是什么? 3.5 结论 3.6致谢 第4章 查找 4.1. 耗时 4.2. 问题:博客数据 4.3. 问题:时间,人物,以及对象? 4.4. 大规模尺度的搜索 4.5. 结论 第5章 正确、优美、迅速(按重要性排序):从设计XML验证器中学到的经验 5.1 XML验证器的作用 5.2 问题所在 5.3 版本1:简单的实现 5.4 版本2:模拟BNF语法——复杂度O(N) 5.5 版本3:第一个复杂度O(log N)的优化 5.6 版本4:第二次优化:避免重复验证 5.7 版本5:第三次优化:复杂度 O(1) 5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. 结论 第7章 美丽测试 7.1 讨厌的二分查找 7.2 JUnit简介 7.3将二分查找进行到底 7.4 结论 第8章 图像处理中的即时代码生成 第9章 自顶向下的运算符优先级 9.1. JavaScript 9.2. 符号表 9.3. 语素 9.4. 优先级 9.5. 表达式 9.6. 中置运算符 9.7. 前置操作符 9.8. 赋值运算符 9.9. 常数 9.10. Scope 9.11. 语句 9.12. 函数 9.13. 数组和对象字面量 9.14. 要做和要思考的事 第 10章 追求加速的种群计数 10.1. 基本方法 10.2. 分治法 10.3. 其他方法 10.4. 两个字种群计数的和与差 10.5. 两个字的种群计数比较 10.6. 数组中的1位种群计数 10.7. 应用 第11章 安全通信:自由的技术 11.1 项目启动之前 11.2剖析安全通信的复杂性 11.3 可用性是关键要素 11.4 基础 11.5 测试集 11.6 功能原型 11.7 清理,插入,继续…… 11.8 在喜马拉雅山的开发工作 11.9 看不到的改动 11.10 速度确实重要 11.11 人权中的通信隐私 11.12 程序员与文明 第12章 在BioPerl里培育漂亮代码 12.1. BioPerl和Bio::Graphics模块 12.2. Bio::Graphics的设计流程 12.3. 扩展Bio::Graphics 12.4. 结束语和教训 第13章 基因排序器的设计 13.1 基因排序器的用户界面 13.2 通过Web跟用户保持对话 13.3. 多态的威力 13.4 滤除无关的基因 13.5 大规模美丽代码理论 13.6 结论 第14章 优雅代码随硬件发展的演化 14.1. 计算机体系结构对矩阵算法的影响 14.2 一种基于分解的方法 14.3 一个简单版本 14.4 LINPACK库中的DGEFA子程序 14.5 LAPACK DGETRF 14.6递归LU 14.7 ScaLAPACK PDGETRF 14.8 针对多核系统的多线程设计 14.9 误差分析与操作计数浅析 14.10 未来的研究方向 14.11 进一步阅读 第15章 漂亮的设计会给你带来长远的好处 15.1. 对于漂亮代码的个人看法 15.2. 对于CERN库的介绍 15.3. 外在美(Outer Beauty) 15.4. 内在美(Inner Beauty ) 15.5. 结论 第16章,Linux内核驱动模型:协作的好处 16.1 简单的开始 16.2 进一步简化 16.3 扩展到上千台设备 16.4 小对象的松散结合 第17章 额外的间接层 17.1. 从直接代码操作到通过函数指针操作 17.2. 从函数参数到参数指针 17.3. 从文件系统到文件系统层 17.4. 从代码到DSL(Domain-Specific Language) 17.5. 复用与分离 17.6.分层是永恒之道? 第18章 Python的字典类:如何打造全能战士 18.1. 字典类的内部实现 18.2. 特殊调校 18.3. 冲突处理 18.4. 调整大小 18.5. 迭代和动态变化 18.6. 结论 18.7. 致谢 第19章 NumPy中的多维迭代器 19.1 N维数组操作中的关键挑战 19.2 N维数组的内存模型 19.3NumPy迭代器的起源 19.4 迭代器的设计 19.5 迭代器的接口 19.6 迭代器的使用 19.7 结束语 第20章 NASA火星漫步者任务中的高可靠企业系统 20.1 任务与CIP 20.2 任务需求 20.3 系统架构 20.4 案例分析:流服务 20.5 可靠性 20.6 稳定性 20.7 结束语 第21章 ERP5:最大可适性的设计 21.1 ERP的总体目标 21.2 ERP5 21.3 Zope基础平台 21.4 ERP5 Project中的概念 21.5 编码实现ERP5 Project 21.6 结束语 第22章 一匙污水 第23章 MapReduce分布式编程 23.1 激动人心的示例 23.2 MapReduce编程模型 23.3 其他MapReduce示例 23.4 分布式MapReduce的一种实现 23.5 模型扩展 23.6 结论 23.7 进阶阅读 23.8 致谢 23.9 附录:单词计数解决方案 第24章 美丽的并发 24.2 软件事务内存 24.3 圣诞老人问题 24.4 对Haskell的一些思考 24.6 致谢 第25章 句法抽象:syntax-case 展开器 25.1. syntax-case简介 25.2. 展开算法 25.3. 例子 25.4. 结论 第26章 节省劳动的架构:一个面向对象的网络化软件框架 26.1 示例程序:日志服务 26.2 日志服务器框架的面向对象设计 26.3 实现串行化日志服务器 26.4 实现并行日志服务器 26.5 结论 第27章 以REST方式集成业务伙伴 27.1 项目背景 27.2 把服务开放给外部客户 27.3 使用工厂模式转发服务 27.4 用电子商务协议来交换数据 27.5 结束语 第28章 漂亮的调试 28.1 对调试器进行调试 28.2 系统化的过程 28.3 关于查找的问题 28.4 自动找出故障起因 28.5 增量调试 28.6 最小化输入 28.7 查找缺陷 28.8 原型问题 28.9 结束语 28.10 致谢 28.11 进一步阅读 第29章 把代码当作文章 第30章 当你与世界的联系只有一个按钮 30.1 基本的设计模型 30.2 输入界面 30.3 用户界面的效率 30.4 下载 30.5 未来的发展方向 第31章 Emacspeak:全功能音频桌面 31.1 产生语音输出 31.2 支持语音的Emacs 31.3 对于在线信息的简单访问 31.4 小结 31.5 致谢 第32章 变动的代码 32.1 像书本一样 32.2 功能相似的代码在外观上也保持相似 32.3 缩进带来的危险 32.4 浏览代码 32.5 我们使用的工具 32.6 DiffMerge的曲折历史 32.7 结束语 32.8 致谢 32.9 进一步阅读 第33章 为“The Book”编写程序 33.1 没有捷径 33.2 给Lisp初学者的提示 33.3 三点共线 33.4 不可靠的斜率 33.5 三角不等性 33.6 河道弯曲模型 33.7 “Duh!”——我的意思是“Aha!” 33.8 结束语 33.9 进一步阅读 后记
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值