如何进入程序设计的领域 http://bunny.blogdriver.com/bunny/946271.html
本文作者:蔡学镛
撰文日期:05/12/00
这一阵子,软件和网络相关产业相当兴盛,许多人对程序设计开始感兴趣,我收到好一些读者的来信,不少读者共同的问题是:如何进入程序设计的领域?所以我写了这篇文章,让各位读者以为参考。
程序设计是很有趣的一件事,可以把自己的想法付诸实行。写程序的工具很简单,只要有一部PC,适当的开发环境,就可以上工了。这样有限的工具却可以创造无限的可能,这也正是程序设计迷人的地方。只要你能力够,你可以将你脑海中的创意写成程序,你可以从中得到成就感。甚至你可以把程序变成商业化的软件,从中得到金钱的报酬。
培养程序设计能力,不是一蹴可几的,下面提供我的一些建议,希望对有志进入此领域的你有所帮助。
培养兴趣
把程序设计当成兴趣可以让你学得更快乐,学习效果自然会更好。在我到一个单位面试时,主管看了我的履历之后问我:「你怎么有这么多时间学会这么多东西、做这么多事?」我的回答是:「把工作、学习、和娱乐结合在一起,时间就会是别人的三倍。」
我承认我很幸运,可以把程序设计当作赚钱的工作、学习的题材、以及茶余饭后的休闲活动。不是每个人都像我这般幸运,但是我相信至少大家都可以把它当成兴趣。相信我,调整你的心境,把它当成是兴趣,而非苦差事,你非发现你的进步与日俱增。
慎选程序语言
对于初学者来说,慎选程序语言很重要,一开始就学太难的程序语言很容易让你遭遇到挫折而放弃。你可以挑比较容易且有趣的语言下手,建议您可以从下面的语言中择一:
Java:简单,好用,支持许多平台,用途非常广,相当有前途。可以当作学习C++的跳板。
Python:很简单,好用,支持许多平台。国外很红,在台湾很少人使用。
REBOL:非常简单,好用,观念新颖,很有趣,支持许多平台。
这三个语言共通的特色是:简单,好用,跨平台。这三个语言只是我给各位的建议,你也可以多听听别人的意见。在选定一个程序语言之后,就要执着,不可以很快放弃,又改学另一个程序语言,否则永远都只懂皮毛。有句谚语是这么说的:「A Jack-of-all-trades is master of none」。如果你号称会C++、Java、…等十种程序语言,只不过每种程序语言都停留在Say Hello的阶段,相信面谈主管很快就会对你Say Goodbye。
当你学精某程序语言,然后想再学另一个程序语言,你会发现有了前一个程序语言扎实的根基,学任何新的程序语言都很快。
使用适当的开发工具
现在RAD工具软件盛行,Visual Basic、Delphi、JBuilder、VisualAge、VisualCafe都是。有了RAD工具,只要「把组件拖放到窗口上,再设定相关选项程序」就完成一大半了。许多硬底子的程序员颇不以为然,认为初学者使用RAD工具不是好习惯,不过我倒不这么认为。我认为RAD工具可以降低初学者学习的门槛,提高兴趣。只是,在你学会「拖放并设定组件」的简单步骤之后,应该要找机会精进自己,弄懂内部的机制,不然不仅会有一种不踏实的感觉,甚至有许多程序会写不出来。我再强调一次:RAD可以当初学者入门的工具,但小心不要使它变成让你停滞不前的桎梏。
另外也要学会使用开发工具所附的诸多功能(特别是除错功能)。许多人买了昂贵的Enterprise版开发工具,却只用到copy-paste功能,那么这套开发工具和Windows所附的记事本就没有两样了。建议你开始使用一套新的开发工具前先花些时间把使用手册翻一翻。
现在许多开发工具都有免费版本可以下载,初学者不妨多加利用。
多读好书,少上课
大量阅读好书,是精进自己的不二法门。在这种快餐时代,许多人没耐心读书,反而喜欢到处上课,所以现在到处都是计算机班。如果遇到厉害的好老师,当然上过他(或她)的课会收获很大,只是目前好老师的比例实在不高(虽然我自己也在开Java相关的课,但我还是得这么说)。我曾在网络上看到有人说:「没听过这些课能教出什么程序高手」,这倒也有几分真实性。不过一方面要归咎老师之外,一方面也要归咎学生,因为我发现通常上课的学生会在家里读书和写程序练习的比例不高。
相较于上课动辄花费上万元台币的高代价,买书只需要区区几百上千,划算多了,更何况书上的内容又比上课来得多且详细。不过「买书容易,看书难」。怕自己偷懒的话,找志同道合的朋友组织「读书会」,彼此加油打气,还可以互相切磋。最好是像我前面提到的:把它变成兴趣。
加强英文阅读能力
加强英文和崇洋无关,而是有它实际的价值。许多信息都是要直接看英文的资料,因为没有中文版可看。
「可是我的英文很烂!」
这不是理由。没人一生下来就能阅读英文,都是一点一点累积起阅读能力的。给自己一个机会,找一本单字文法都比较简单、且页数又少的书籍下手,很快地,你会发现技术书籍的单字就是哪几个在重复出现,阅读这样的书一点都不难。
请注意:英文技术书籍的写作风格也有相当大的差异,有的书的确是不好读。所以,如果你刚开始要尝试阅读英文技术书籍,不要挑到像Bjarne Stroustrup所写的The C++ Programming Language这类又厚、又非循序渐进、用字遣词又比较难懂的书,……尽管大家都说它是经典。
尽量自行解决问题
遇到问题,可以到国内外的程序设计相关讨论区去请教别人,如果态度谦逊,且问题叙述清楚,相信许多有经验的前辈会很乐于参与讨论。不过,凡是遇到问题就发问,这不是好事,因为你会因此越来越依赖别人,而失去了自我解决问题的能力。自己应该尝试着查书、写程序做实验、甚至阅读原始码,来找出答案。如此一来,真的没办法而请教别人时,也才能比较深入地讨论。
多写程序
学程序设计不可以只看书,将随书所附光盘的程序执行一次,就认为自己已经学会了。应该开始写一些程序,且由小到大,由简单到复杂。找一些有趣的题目(比方说:计算器,踩地雷,小画家,俄罗斯方块),可以提升写程序的动力。
我看到许多学生大一的程序作业都是copy同学的,失去了练习的机会。等到二年级之后,想开始写程序,却写不出来了。初学程序设计的阶段,应该给自己多一些机会写程序。
向上延伸,向下延伸,向旁延伸
当你发现你已经可以掌握此程序语言之后,你可以选择:
向上延伸:学习OOA、OOD、Design Patterns、以及软件工程,以培养做大型计划的能力。
向下深入:深入了解系统内部的运作机制,例如操作系统、虚拟机器(Virtual Machine)、甚至硬件(hardware)内部。
向旁延伸:学习不同的API,例如:多媒体、数据库、企业运算(Enterprise Computing)…。
另外,数据结构(data structure)、算法(algorithm)等基础也很重要。
结论
一分耕耘,一分收获,用对方法,持之以恒。每半年检阅自己这段期间以来的进步,相信你也会很高兴地说「我做到了」!
分享到:
相关推荐
2012中国软件开发者大会(SDCC2012)的第五场分论坛“编程语言”中,创新工场首席架构师蔡学镛做了题为“认识Google Dart语言”的演讲,深入浅出地帮助研发人员建立了对于Dart的基本了解和判断,并对“Dart是进可攻...
从蔡学镛的《香鸡排三部曲》中,我们可以提炼出一系列关于IT行业,尤其是程序员职业状态的深刻洞察,以及对台湾社会经济环境的反思。以下是对该系列文章中涉及的关键知识点的深入分析: ### 程序员的社会地位与薪酬...
通过以上介绍可以看出,《蔡学镛软件架构入门》这本书深入浅出地讲解了软件架构的基本概念和设计方法,为初学者提供了一个清晰的学习路径。希望读者能够通过学习这些内容,掌握软件架构设计的核心理念和技术要点,...
通过《编程ING:人人都能学会程序设计》一书,你就能拥有这样的能力,甚至培养出对编程的兴趣。 本书在编写上采用了心理学的一些技巧,每一页都有绘制精美的彩图并配有相应的说明文字,通过图的方式加强说明,而且...
从给定的文件信息来看,我们探讨的主题是“Java夜未眠—蔡学镛”,一个在IT行业,尤其是Java领域有着深厚造诣的人物。蔡学镛,现任梦工厂首席技术总监兼框架师,以其对Java的深刻理解和独到见解,在业界享有盛誉。 ...
蔡学镛在平安科技上课时的课件
《PPT制作技巧:不瞌睡的简报设计模式——支付宝蔡学镛》是一本深入浅出地探讨如何创建引人入胜、高效传递信息的PPT作品的专业指南。作者蔡学镛,作为支付宝的知名专家,他在书中分享了自己的经验与见解,帮助读者...
本简报由蔡学镛老师制作,旨在分享一种能够让观众保持高度专注的简报设计方法——“不瞌睡的简报设计模式”。此模式融合了尼古丁和咖啡因的概念,寓意通过激发兴趣和活力的方式使简报更加吸引人。 #### 简报三要素...
蔡学镛,又被称为Chia Heng Yung,是一位知名的Java技术专家,他撰写了多篇关于Java技术的文章,这些文章可能涵盖了Java的基础知识、进阶特性以及最佳实践。他的文章对于Java开发者来说是宝贵的资源,可以帮助他们...
蔡学镛架构设计方法强调在进行软件架构设计时,应当遵循一系列原则和步骤以简化设计过程、提高设计效率,并确保系统能够应对未来的业务扩展和变化。该方法提出首席架构师在系统架构老化后应当发起重构,以保持架构的...
综上所述,《第五期 蔡学镛软件架构入门第二场 蔡学镛.pptx》提供了丰富的关于软件架构基础知识的信息,从架构的基本概念出发,深入探讨了互联网系统的特点、架构设计的关键要素、4D坐标系统以及七层架构模型等多...
软件架构入门培训资料,强烈推荐
### 中学生编程(蔡学镛) #### 知识点概览 1. **Red语言介绍** - Red语言概述 - Red语言的特点 - Red语言的应用领域 2. **Red语言环境搭建** - Windows操作系统的环境配置 - macOS操作系统的环境配置 - ...
《Java夜未眠》是台湾知名程序员蔡学镛的一部专为Java工程师撰写的著作,旨在深入探讨Java编程语言的方方面面,帮助读者提升技术水平和理解深度。这本书在Java社区中享有较高的声誉,对于想要深入了解Java的开发者来...
在函数式编程(Functional Programming,简称FP)领域中,主要的知识点包括以下几个方面: 1. 函数式编程基础概念:函数式编程是一种编程范式,它将计算视为数学函数的计算,并避免改变状态和可变数据。函数式编程...
DSLs 是一种专为特定领域设计的语言,旨在简化该领域内的编程任务。这些语言通常具有特定于领域的语法和概念,从而提高了效率和易用性。 **优点:** - **减少复杂性**:DSLs 可以将复杂的领域逻辑封装起来,使得...
《C#程序设计》是计算机科学领域中一本深入讲解C#编程语言的教材,由蔡立军编写。这本书旨在帮助读者掌握C#的基础知识和高级特性,为开发Windows应用程序、Web应用以及移动应用等提供坚实的理论和技术支持。通过学习...
描述中提到蔡学镛老师是这部作品的主要创作者,这暗示了蔡老师在程序设计教学领域的权威性和影响力。蔡学镛老师的作品通常深入浅出,易于理解,适合初学者入门。 ### 知识点三:李开复老师的推荐 李开复老师的力荐...
蔡冯顺,11212-73,计算机1163,1161308312,2018/3/8 16:33 蔡叶开,11212-64,制药1172,1172502420,2018/3/8 16:33 曹昊昊,11212-28,自动化1171,1171212344,2018/3/8 16:33 曹仁杰,11212-24,机自1173,1171517210,2018...