Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136513
  • 博文数量: 75
  • 博客积分: 3483
  • 博客等级: 中校
  • 技术积分: 820
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-07 08:31
文章分类

全部博文(75)

文章存档

2011年(53)

2010年(22)

我的朋友

分类:

2010-12-22 20:09:51

 

对大多数人来说,坐在教室里听课远非学习编程的理想途径。辅以阅读介绍编程概念的书籍可能会有所助益,但无法与通过有效阅读并思考其他人的源代码直至理解所获得的实践技巧相比。

  但是,真的没有什么方法比喜欢自己动手写程序更能积累编程技巧。阅读一点只能学到一点,而动手编程则能收获很多。找到你想简化的事情,并编写一些程序代码来通过自动化使它们更容易处理。

  不幸的是,搞清楚什么能做有时会是编程学习中最困难的地方。基于个人的经验,答案似乎是你可以一躇而就,而不是七上八下的事情,并能通过顿悟来找到通过编写程序来解决问题的方法。

  在寻求这种顿悟时,由于刚开始编程的人知识通常都非常有限,绘制流程图有助于以你喜欢的方式来事先准备。请这样来做,至少在开始时,包括搞清楚你每天使用电脑的流程,把其中使用最多的部分简化绘制出来。一旦你整理出来,就把在那些情况下特别有用的编程技能作为早期学习的重点。这样的机会在一定程度上是稀缺的,你可能要改变计算环境来提供这样的机会。

  需要做的最重要的事情是要找到一种方法来激励自己编写代码。下面是关于如何采取行动学习编程的建议。

如果你定期使用一些类UNIX系统,在寻找锻炼初期编程技能的方式时就具有巨大的优势。UNIX在简单脚本自动化方面提供了比任何其他家庭通用操作系统的更多的使用机会,这要感谢平台上管理脚本的极大灵活性。在最不复杂的情况下,一个管理脚本可能只不过是将一系列shell命令保存到一个文件中。在此基础上,可以利用简单的循环和条件结构、输入输出处理、文件读写、计划任务来进行扩展。

  通过编写简单shell脚本爽过一把后,花一段时间来学习如何用Perl、Python和Ruby编写管理脚本对任何一个Unix系统管理员都是值得的。在Unix环境使用这些语言的关键技能包括通过UNIX管道和重定向访问文本流,处理命令行选项,读写文件,使用正则表达式搜索和操作文本。管理员也想知道编程的公共基础知识,比如处理输出,循环(或在某些情况下递归),以明确界定的标准为基础,通过使用条件判断结构编程来作出决策。

  编写Unix命令行工具是一块沃土,有许多机会将脚本语言的巨大能力用于编程。由于管理脚本开发的灵活性和简约性要求,编写工具的范围可以从一些有用工具的最简例子到强大的服务器进程,甚至大规模并行任务自动化,负载平衡,启发式过滤,和一些其他有趣的问题解决作业,这些问题激起了世界上最好的程序员的兴趣。

  虽然几乎所有通用操作系统都具有一些使用管理脚本的能力,其中相当一部分用途比较窄,另一些操作系统则比较均衡。Unix在管理脚本的适用条件方面高人一等,因为诸如主要Linux发行版和BSD Unix系统等Unix类系统共享相同的基本运行环境设计,他们都可以从管理脚本和脚本平台之间的可移植性中受益 - 只要你按可移植性要求来写这些脚本(如通过使用sh或Perl而不是bash,选择系统标准sysctl值而不是数据源的proc文件系统)。

  这些工作也适用于除开非常高级,动态,解释型语言之外的其它语言。C,C++,Haskell,Objective-C,Objective Caml,以及大量其他选项正好合适各类简单Unix工具的编写任务。对于其中的许多语言,即使要完成像小型管理工具的这样简单的工程项目,也必须学会更广泛的技能,这一要求比Perl,Ruby和Bourne shell的这样的语言高。但这些任务与GUI应用程序开发、系统编程、其它经常使用(特别是在其他平台上的)的任务比起来,其艰巨性对编程初学者来说要小得多。

  实际上,鉴于Unix哲学多年来提供了大量常用工具,这些工具严格分工(大部分),并工作良好,类UNIX环境对编程新手的价值中有一部分是充分利用Unix命令行环境力量,鼓励用户像程序员那样去思考,而非观众。

阅读(302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~