前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何学好一门新技术?

如何学好一门新技术?

作者头像
程序员互动联盟
发布2018-03-15 15:01:13
6240
发布2018-03-15 15:01:13
举报

IT界存在这样一种典型的情况。一个大学刚毕业后参加工作的同学,凭着在学校学到的一些计算机专业知识,熟悉VC、VB、Java、Delphi等一两种编程语言的技能,以及一两张计算机等级证书,比较顺利地进入一家软件公司工作。但是他满足于现状,对实际工作中碰到的问题也不求甚解。不多久,就陷入了公司里的一种“上一天班拿一天工资”的圈子里。大家知道,IT行业风险与利润同在,而且行情变化很快,说变就变。有一天,公司领导层突然宣布公司经营状况不太好,要紧缩成本,开始裁员。他很不幸,名列其中。没想到,一两年的不思进取,造成了如今如此被动的局面。 所以,让我们警醒一点吧!因为,一不小心,这个不幸者就可能是你。我们要时时提醒自己:加紧学习,学习,再学习;做一个积极上进的人。只有不断保持并且提高自己对于公司的价值,我们的事业才会更上一层楼。笔者写这篇文章的目的,一来是想给广大同仁们敲一下警钟,二来也是想更加务实地提出一些学习新技术的个人心得,以作抛砖引玉之功。

技术是在不断发展的,新技术也在不断地涌现。然而,人的精力是有限的,我们不可能去研究每一种新技术。选择适合自己的去学才是明智之举。那么,我们怎么来做到这一点呢?一定要结合自己的工作实践,综合考虑到自己现有的知识结构,并分析一下公司的核心技术是什么(以及它的市场前景如何),看看你周围同事们的专长,看看网上用人单位的类似职位的招聘要求,我想,我们不难得出结论。 笔者从事多媒体软件开发工作这么几年来,也颇有几分心得。下面,我想结合自身的实践,跟大家一起来回顾一下这段学习、进步的历程。我们开发微软Windows平台上的多媒体应用软件,程序使用DirectX中的DirectShow作为基本架构,这是微软自DirectX 8.0 SDK发布以来的最新技术(DirectX 8.0之前没有DirectShow这个技术名词,萌芽状态的技术叫做Direct Media)。学习DirectShow编程技术,在当时是很具有挑战性的。因为作为一项新技术,它有自身的特点:书店买不到参考书,网上的资料微乎其微,交流的地方很少(很难找到专家型人物向其咨询),现有的资料都是英文的,还有就都是一堆一堆的源代码。这些因素决定了,学习一项新技术是份苦差事。不过,再苦也要上啊!因为这是一项先进的技术,如果掌握了它,能够提高自己的实力以及自身的价值。在做好了要付出艰苦努力的思想准备后,我们也应该认识到,这同时也是一次难得的机会。

学习DirectShow,最直接的资料就是它的帮助文档。这些文档篇幅很大,但是不要灰心,慢慢看!而且,这些文档不是读过一遍就能了事的。我们要把指向这些文档的快捷方式放到桌面最显眼的地方,以便于经常性的查看。电子文档看多了,眼睛受不了,也可以将部分章节打印出来再看;大块大块的文字很费解,我们就应该尽可能多地从相关的插图去获得更多的信息。第一遍阅读,我们要力图从总体上对这项技术作出一个了解,知道它能够做什么,大致是怎么做的。然后,逐步深入。这样,对于理解这项技术,保持对这项技术认识的完整性很有帮助。另外,大家知道,任何新技术的出现都不是突变的,它们总是在以前的技术成果基础上发展而来的。因此,对于学习一项新技术,了解它的技术发展背景,以及它使用到的相关技术也是相当重要的。就比如DirectShow来说吧,这套架构完全是建立在COM的原理之上的。如果我们对COM一无所知,直接学习DirectShow的结果只会是云里雾里,似懂非懂。另外,DirectShow集成了DirectX其他部分如DirectSound、DirectDraw等的技术,对这些相关技术了解,对于我们学习DirectShow也是大有裨益的。 除了DirectX的帮助文档外,第二个宝贵的资源,就是随SDK一起发布的开发类库源代码,以及一些例子程序。看人家的代码是很辛苦的!但为了深层次地了解它,我们必须这么做。DirectShow SDK的目录里BaseClasses工程,提供了开发DirectShow Filter的所有基类。通读了这里的所有类的源代码,我们就能对Filter的工作流程“亲密接触”,以后自己开发Filter可以说肯定也是游刃有余。另外,就是学习例子程序,一个一个研究过去。发现它们的共同点,比较它们的差异;要勤记笔记;必要的时候,我们还可以在编程环境中单步跟踪,直至将不明白的技术细节彻底搞清楚为止。这是一个巩固和加深第一阶段看文档学习所获知识的过程,也是一个能够不断品尝到点点滴滴收获喜悦的过程。“痛并快乐着”!

在学习的过程中,我们还要学会善于总结。总结,是给前一阶段的学习设置一个“里程碑”;在总结中,我们同样也能学习到新的知识,所谓温故而知新。总结的方式多种多样,可以写一些学习心得,在网上发表(可以和网友交流一下);或者跟一起学习这项技术的同事定期交流等等。这些方法无疑都会促进我们的学习。学习的过程中,我们还要勇于实践。因为理论来源于实践,理论能够指导实践。我们要把学到的东西放到实践中去验证;进而得到更加丰富的实践经验,上升为理论;然后再实践。学习本来就是一个反反复复的过程。实践的内容,可以是自己动手编写一些小型的、功能简单的应用程序。一个好的建议,就是可以编写一个这项技术相关的实用工具。拿DirectShow来说,我们就可以开发一个工具性质的Filter,利用这个Filter,我们能够方便地查看其他Filter的状态细节,可以控制Filter的行为等等。 总之,学习一项新技术是不容易的,要快速掌握它更是难上加难。但是,如果我们始终保持一个积极上进、刻苦努力的心态,并且适当地注意学习方法,我想,我们一定能够做得更好!谁说我们不会成功呢?

转自(http://www.douban.com/note/277570123/)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档