作者horngsh (要公理要正义)
看板C_Sharp
标题[建议] 程式新手如何进入程式设计领域
时间Sun Sep 23 19:59:08 2007
Learn and Train yourself and become an entry-level programmer.
自我学习与训练,成为初阶的程式设计员。
Getting Started…
古人道:「千里之行始於足下」。
任何的事业或计画都要有第一步,而要迈向开发人员的第一步,就是开始接触与学习资讯
科技的相关技术。一般企业需要的程式设计师,笔者认为至少要有下列条件:
‧ 电脑基本原理与概念(Computer Concepts)。
‧ 使用者介面的基础概念(User Interface Concepts)。
‧ 基础程式设计能力(Base Programming Skills)
‧ 基础资料库概念(Database Concepts)。
以商用程式设计(Business Application Development)来说,资料库应用是十分重要的
技能,而在一般企业内,使用者通常是最大,设计易於使用的使用者介面,也是一位程式
设计师应该要会的技能,而在现在 Web-Based 的应用程式盛行,Web Programming 的技
能也是十分重要的,看人力银行上张贴的人力需求就知道了,Web Programmer 是现在最
流行的程式设计师职务。
若是要朝低阶系统层级为目标的话,则低阶控制的程式语言必须要非常熟悉,而且要对硬
体与系统程式要有一定程度的了解,基本上要求会比商用程式设计的要求要来得高,像是
作业系统、组合语言与资料结构等等都要有通盘了解,因为系统层级的程式会影响到电脑
使用时的稳定性,所以品质要求通常会很高,当然,薪水也会比较高。
但商用程式设计的前景也不会太差啦,只要自己够实力,在台湾其实是饿不死的,但是若
要更上一层楼,则需要进一步的学习,以及要对产业界的实务经验要够多,产业知识要够
了解,才会有能力开发出真正符合产业界的应用,这也是赚钱的主要核心能力。
Programmer in Newbie…
通常初入门的程式设计新手,都会需要找寻一些学习资源,而这些资源可以是人、书籍或
是线上资源等等,之所谓称为新手,就是对这个产业和工作项目并不熟悉,因此需要学习
并受训。
新手如果要快速的进步,那麽通常都一定要经过下列的程序:
‧ 找一本自己看的下的初学用书,从头读到尾。
‧ 建置一个简单的实验环境(例如 Visual Studio Express 和 SQL Server Express)
,并且实际动手写程式。
‧ 在写程式的同时思考,要训练自己具有能够把程式结果在脑中重现的能力。
‧ 学习基本的侦错与除错方法。
‧ 练习寻找线上资源与求助的能力。
选择入门书籍
一本对新手好的书籍,必须要是自己看的下去的书,如果看不下去,那内容写的再好也是
枉然,所以如果是第一次买书,最好是跑一趟书店,把相关的书都大概翻过,找出一本自
己最看的下的书,然後从头看到尾,把书中所要传达的知识都吸收到脑中,并且要加以思
考,甚至把书翻烂都没关系,新手把书翻烂其实是很正常的。
新手的盲点:尽信书中之物
很多人都说过,新手要进步的最快方式就是模仿他人的程式来写作,但是笔者却不认为这
样,笔者认为要学习的是作者的实作概念,而不是把整段程式拿来抄,只会当程式的「文
抄公」,并不会让自己进步,并且在观念不够充份了解时,就引用太多别人写的程式码,
容易会疏漏掉许多很重要但却不容易发现的问题,而这也是新手很容易犯的毛病之一。
书中的说明与范例都有其道理,但是新手要学习的,是它背後的意涵,以及它背後的观念
,并且要能够按照作者所传达的观念来把程式写出来,这样才是正确的学习之道。
新手的盲点:只会看不会写
通常书中的程式都是作者已经写好,而且有附上范例程式光碟或网路下载的,但是新手可
能看书看得懂,但就是写不出来,原因是对它的观念不够了解,其实最快的学习方法,就
是自己动手写,只会看程式的话是不够的,因为工作是要「写程式」,而不只是「看程式
」。
在线上寻求解答
新手在学习与实验期间,通常会碰到不少的问题,这时如果身边没有高手,或是没有认识
比较了解的人时,最快的管道就是透过讨论区或社群(Community)来求助,通常这些社
群和讨论区都会有一些对这个领域与实际技术具有经验或研究的玩家级高手或专家驻点来
回答来自各方的问题,以微软技术来说,台湾微软 MSDN 技术论坛(
http://forums.microsoft.com/msdn-cht/default.aspx?siteid=14)就是一个官方的开
放性技术讨论区。其他还有像是程式设计俱乐部、蓝色小舖等网站都有丰富的讨论资源。
新手的盲点:不重视网路礼节
虽然网路与讨论区资源很方便,但是基本的网路上的人际互动与礼节,经常会被忽略,像
是问题一文多贴(Cross Post)、一文重覆贴(Duplicated Post)、问题描述不清(
Unclear question)、一行文(One-line article)、注音文、用词不当或是语气强硬等
等,都是在讨论区中被视为一种不礼貌,而且浪费网路资源的行为,而且这样的人通常会
被其他网友视为不受欢迎的人物。
因此,新手必须要学会如何发问,尤其应该要避免一行文、注音文、用词不当以及语气强
硬等,新手发问就应该要有新手虚心求教的「请求」态度,而不是姿态高高在上,「要求
」别人一定要帮的态度,因为讨论区的高手级人物不见得会吃这一套,要学的是问问题的
人,而不是回答问题的人,虽然常言道,回答问题可以让回答者学习更多,但是这不是回
答者回应问题的首要原因,基於相互尊重的立场,新手应该要表现出你的求教态度,而不
是强势的要求别人一定要给你回应,毕竟这些专家高手们并没有欠人任何东西,而且也没
有实金钱报酬,他们都是以一股帮助他人的热情来回答讨论区的各种问题,光就这一点,
发问的人就没有任何立场去要求,甚至於去质疑他们的回应,可以不相信,但要注意礼貌
。
在网路中找寻资源
新手在学习阶段,应该要学习如何找到你要的资料,并且至少要知道要去哪里找,以微软
技术为例,资源最丰富的地方就在 MSDN Online(
http://msdn.microsoft.com),而寻
求线上技术支援的 Microsoft Support(
http://support.microsoft.com)也是一个重要
的资讯来源之一。
新手应该要试着利用问题中所提供的资讯来检索网路资源,像是错误讯息、系统环境、开
发工具与技术等等都可以被用来检索网路的资源,而最常用的是 Google 或 Windows
Live Search 等搜寻引擎,MSDN Search 也是个不错的地方。
Validate your skill...
当新手学习到了一定程度,就会想要向更高一层的阶层前进,但是这个阶段的底已经打稳
了吗?其实可以透过一些方法来检验,例如坊间的书籍,讨论区上的问题,报考相关考试
,甚至给自己一个小小的专案,看看自己有没有能力可以做的出来,如果能够以写程式方
式独力完成 70% 以上,通常就可以算是新手中的老手了,而且已经具有充份的知识,向
下一阶段-程式设计师前进。
如果要以考试方式来检验的话,可以透过三种考试:
‧ 国内的 TQC 认证,如果是学习 Visual Basic 的话,可以报考 TQC的Visual Basic
初阶人员考试。
‧ 国内的 ITE 软体设计人员认证的程式设计考科,可以选择 Visual Basic 来报考。
‧ 微软认证考试:Exam 70-536: TS: Microsoft .NET 2.0 Application Development
Foundation.
Next level...
新手成长到了一定阶段,并且具有充份的知识与实验经验时,就可以向中阶的程式设计师
来前进,在这个阶段,要看的范围就要广一些,而且要能够具有分析个案的能力,简单的
说,就是要会看别人写的程式,然後找出它可能的问题,并且要加以改进,并且要会写更
深一层的应用程式,而不是只会写简单的使用者介面而已.这个部份,就下次再谈吧。
--
=============================
夏有凉风
冬有雪
http://itsoho.myweb.hinet.net
=============================
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.181.10
1F:推 FantasyRyu:推。不过我建议先考70-526啦~个人经验536比较难考。 09/23 20:09
2F:→ FantasyRyu:70-526至少所有object都看得见摸得到,「比较」不难考 09/23 20:10
3F:→ FantasyRyu:此外,TQC好像还停留在n年前的VB版本,不是很建议考 09/23 20:11
4F:推 chhuang:我是比较建议先考 70-536...因为你要了解语言的基础... 09/23 22:30
5F:→ chhuang:而不是了解 .net framework 能提供哪些控制项给你使用... 09/23 22:30
6F:→ chhuang:已经考过 70-536 正在准备 70-526 的人留... 09/23 22:31
7F:→ FantasyRyu:我是说,「通常」新手会连语法、基础与WinForm一起学 09/23 22:49
8F:→ FantasyRyu:不太可能会只玩Console就去考。在这些都有基础的情况下 09/23 22:49
9F:→ FantasyRyu:准备526是比536简单很多。至少不会面对一堆像hash、 09/23 22:50
10F:→ FantasyRyu:serialization、interop之类的天书。当然你考过536了, 09/23 22:51
11F:→ FantasyRyu:那恭喜你,526十拿九稳 -_- By 统统考过的人留 09/23 22:52