我大约是在1994年前后开始系统学习计算机技术的,到目前为止,己接近二十年。2002年我留校任教,又开始了十年的高校计算机教学生涯。
在IT与教育行业混的年头多了,零零碎碎的东西积累了一些,自己觉得对别人、尤其是在校大学生以及软件技术初学者来说,这些东西还是有些价值的。如果能够让别人少走些我走过的弯路,能以更高的效率掌握技术,多多少少也算是做了件好事吧。
在我近二十年的软件技术学习、开发与教学生涯中,我一直在思索和感悟软件技术的学、用和教这三件事。
具体地说:
(1)学:怎样才能更有效地学习软件技术?要不要追新技术?某个老技术要不要学?……
(2)用:软件是怎么写出来的?如何恰到好处地应用软件技术去解决实际问题?……
(3)教:学软件需要有天赋吗?对于普通学生,教师应该怎样教才能更见成效?……
上述三个领域每个都能提出N个具体的问题,涉及范围很广,也不存在标准答案。在这里,我只想围绕着“如何有效地学习软件技术”这个问题谈谈我的体会。
众所周知,软件技术进步非常快,怎样高效地学习并掌握它?
我的体会是:对某技术,刚开始时要“浅尝辄止”,其目的是快速地形成对此技术的总体印象,了解其适合的应用场景,特别地需要明了它与其他技术的相关性;之后,再深入学习其技术细节,以达到较全面地了解与掌握它的要求。在这个过程中,需要编写大量的小的Demo,仅仅看书、看网上找来的教学视频而不动手,基本上避免不了“似懂非懂”,“看完就忘”的宿命。最后,一定要用它来完成一个或多个真正的软件系统或项目。
一个结论:对于软件技术的真正把握,必须是在真正深入的开发实践中。
一个推论:在没有使用某种编程语言或技术写一个或几个较复杂的应用之前,不要说你己经“掌握”甚至(吹牛说)“精通”了这种编程语言或技术。
在上述整个学习过程中,第一阶段——形成对此技术的总体印象,非常关键,任何一个初涉某个新技术领域的人,要做到这点很困难。正是在这点上,有经验的人的点拨非常重要,他会告诉你:“XXX非常重要”,“你必须先学XXX,再学XXXX,最后才去学XXXX",……。
简单地说,初学者需要有一张技术导航图,知道在某个地方风景十分优美,不去可惜了;而在某个地方可能有漩涡和陷阱,千万要躲开……
一图在手,心中有数。有了这张导航图,方才有可能踏上高效的软件技术学习之路。
遗憾的是,高手们大多没时间去为初学者绘制这张图,就只好由我这种“半桶水”来勉为其难,尝试着为初学者绘制几个特定技术领域的”导航图“。我希望我能用通俗易懂的语言展示此技术领域中的要点与亮点,解析内部机理,指明应用场景,展示有价值的学习资料及资源(好书、好网站、好示例),以及个人对此技术的看法和观点等等。
在这系列文章中,由于篇幅有限,很多地方采用点到即止的方式。相关的技术细节,留给读者自己去深挖细掘。
能与大家一同分享我在学习与应用软件技术过程中的所思所想,正是我写这系列文章的初衷之一。
Web前端技术系列:
第1篇 《网页设计之CSS3精要》
第2篇 《史上被骂得最多的编程语言——JavaScript》
第3篇 《红红火火的HTML 5》(未完成)
Entity Framework系列:
Entity Framework技术导游系列开篇与热身
Entity Framework走马观花之把握全局
EntityFramework走马观花之CRUD(上)
EntityFramework走马观花之CRUD(中)
EntityFramework走马观花之CRUD(下)
EntityFramework走马观花之设计数据存取层(未完成)
ASP.NET MVC系列:
需要指出的是:
我虽然一直喜欢编程,但身在高校,没有太多的机会亲身参与业界大规模的软件系统开发,常自封为”软件开发水平有限公司“的董事长兼总经理。因此,如果我写的东西有不对的地方,一方面敬请海涵,毕竟我的初衷是好的,另一方面,还请不吝指教 ,我会及时修改文章中的相应内容。
========================================
本系列文章欢迎转载。转载时请注明作者与出处。
我的邮件:JinXuLiang@bit.edu.cn
我的新浪微博:http://weibo.com/jinxuliang