技术开发 频道

关于编程学习的七点思索

  6、Unix

  如果你定期使用一些类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命令行环境力量,鼓励用户像程序员那样去思考,而非观众。

  7. Web网页

  这是一个危险的建议,通过玩JavaScript来学习编程。这不是因为JavaScript是一种不好的语言,而是因为追求动态用户体验的缘故,网页已经被不加限制地滥用JavaSciprt弄得乱七八糟,因而在网页上放纵程序员新手可能会被认为是不负责任的。在网页中JavaScript也有一些积极用法,而且可以让新手们对编写在浏览器中运行的桌面应用程序的想法愈来愈感兴趣,这给了我们在程序员职业生涯中尽早开始学习JavaScript的很多理由。

  事实上,JavaScript是一种最常见的、单独的客户端网页脚本,这也意味着JavaScript可能是最简单的语言,通过阅读别人的代码就能学习。找到具有客户端动态元素的任何网页,然后右键单击并选择查看页面源代码的选项,你就会发现它布满了JavaScript的散落片段。对于更复杂的动态页面,(X)HTML的网页甚至可能引用一个纯代码的单独.js文件。

  在把代码上传到公共访问的Web服务器前要细心检查;确保它是好的。如果你想让更多的有用脚本以本地方式来启动,浏览器扩展性可以让你将任意脚本应用到你查看的网页上——而且只适用于你个人的浏览体验。Firefox的Greasemonkey是一个例子。

0
相关文章