如何使用搜索技巧来成为一名高效的程序员

没有人是完全独立的孤岛,每个人都是整体的一部分。——约翰·多恩

对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。

如果不借助搜索技术、网络及集体智慧,现代化高效编程是难以想象的。因此,搜索技巧对高效程序员变得愈发重要。

现在,我们不需要了解和记住如何解决众多的编程问题,可以采用搜索技术。我们正变得更加高效、高生产力,并能够解决更多的问题。但这是否意味着在构建软件时,拥有好的搜索技巧就足够了呢?本文将讨论,搜索技巧在程序员知识的形成过程中的作用,以及如何高效使用搜索技巧。知识的类型及它在程序员大脑中如何成长。

有三类知识:

概念知识

(为什么、是什么、如果—— 语义上的)——理解软件系统构建过程中的概念、原理、关系及主要方法。根据这类知识,能够找出体系结构或代码必须按特定方式设计的原因,以及从中选择最佳 设计方案的备选方案和逻辑是什么。概念知识,不是指用特定编程语言解决特定问题,而是对问题的长远看法和理解。

用途:对复杂的开放式问题寻找新的解决方案,并创建稳健的软件系统。

收获:学习计算机科学、体系结构以及编程概念,在实际实现和经验的基础上,构建自己的理论。

实践性知识

(如何做 —— 过程中的)—— 关于如何解决特定编程问题的知识。这类知识不需要深入理解实现方法选择过程中隐含的概念及基本原理。搜索技术在这里最重要,因为对有限的编程语言问题所采取的特定解决方案,搜索能相对容易的加以共享并说明。

用途:用已证实的和已知的解决方案快速解决问题,而不是每次都重新发明一种新的方法。

收获:搜索现有的解决方案,通过例子学习或提出自己的解决方案并以后对其重利用。

隐性知识

(专业知识、经验及直觉)——基于软件系统实现过程中所积累的个人经验,在大脑中形成的内在知识。通过强大的 大脑功能,隐性知识可以综合并协调其他两种知识。这类知识很难传授,因为它的大部分都存储在我们的潜意识中。在特定环境下,它和直觉一同发挥作用,能够在 经验、对概念性和实践性知识的反馈和评估的基础上,制定最佳决策。

用途:利用自己的专长、经验及直觉来实现最佳解决方案。

收获:构建软件并从结果中学习知识。

设计模式(还有架构、领域及其他)是不同类型知识相结合的有趣的例子:“如何做”的例子,这些例子中隐含的概念及实现过程中积累的经验。这种知识的表现方式是模式成功及广泛应用的原因之一。

随着越来越多的可供使用的实践性解决方案和示例出现在网络上,人们大脑中的实践性知识的价值越来越小。我们不需要记住实践性知识。现在我们能够处理软 件构建过程中几乎所有可能遇到的常见编程问题。然而,除能够解决问题的示例或从哪搜索这些示例以外,一名大师级的程序员还知道更多的知识。他能够提出自己 的解决方案,制定大部分最佳决策,并采用最好的方式应用它们。此外,很难在网上找到新的、复杂的、领域性的及特定环境下的问题的解决方案。而且,对所有重 要的软件工程,在制定优秀解决方案的过程中,都需要高水平的软件开发理论、这些理论的应用经验、对系统的深入了解、问题空间及环境等相关知识。

因此,在软件开发过程中,概念知识和隐性知识仍然是非常重要的。在使用搜索技术时,我们应当努力扩充各种知识,而不是仅仅解决特定问题。随着解决更高级问题的能力的提高,你会取得成功,成为更高效的程序员。

可解决实际问题的高效搜索

A. 查找

1. 定义——弄清楚要解决什么问题,并以要查找的内容为焦点。网络上有如此多的有趣的材料,以至于搜索过程能轻易地占掉你全部的工作时间(和个人时间)。

2. 检索(使用标准的Google、代码搜索或其他的检索引擎)—有很多关于如何高效的使用检索引擎的建议。

3. 浏览结果(内容的质量、可信度及专业技术的水平;如果资料的可信度过低,无须再看)-> 阅读 -> 评估(人力物力、所需工具及函数库)

B. 使用

1. 复制代码 - 单独复制(针对这一目的,带有长钉技术的显式单元测试最适合)

2. 清除代码 - 仅保留最小限度、相关性代码,清除解决方案中的其它代码。

3. 在系统中应用代码。

C. 学习

1. 理解——你做了什么及你为什么那样做——从代码和实现中学习。

2. 扩充知识——

a. 实践性知识:解决问题的特定方法、技巧及风格;

b. 概念知识:学习新概念、提炼现有的并构建自己的概念;

c. 隐性知识:明智地使用并学习搜索到的解决方案,经验会自然而然地得到增长。

3. 收集(链接、意见、参考文献、阅读清单)—任何对你今后搜索、发现及学习有用的有趣信息。为这些目标积累知识。

你还有其他高效搜索代码的诀窍吗?欢迎在评论或微博中和大家分享。

本文来自:http://www.jobbole.com/entry.php/371

相关阅读:

参加IE9开发大赛 赢取现金大奖

微软最顶级平台技术会议PDC10全程视频播放

Microsoft Web平台——优秀项目展示

Windows Phone 7 MSDN开发中心

微软Web平台优秀项目精选推荐:

世界顶级论坛、社区程序:bbsmax论坛

世界上最大的自承载博客工具:WordPress

架站必备之开源内容管理系统(CMS):Joomla!

快速构建Web程序之内容管理系统:Umbraco CMS

开放源代码ASP.NET博客项目:BlogEngine.NET

专门构建Web课程的学习管理系统(LMS):Moodle

快速构建动态公众网站的内容管理系统:Acquia Drupal

构建、管理和共享wiki的开源系统:ScrewTurn Wiki 3.0  

基于Microsoft ASP.NET构建网站的开源框架:DotNetNuke Community Edition

时间: 2024-09-15 04:10:18

如何使用搜索技巧来成为一名高效的程序员的相关文章

如何使用搜索技巧来成为一名高效的程序员(很好的总结)

没有人是完全独立的孤岛,每个人都是整体的一部分.-- 约翰·多恩   对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序.如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码.即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案.   如果不借助搜索技术.网络及集体智慧,现代化高效编程是难以想象的.因此,搜索技巧对高效程序员变得愈发重要.   现在,我们不需要了解和记住如何解决众多的编程问题,可以采用搜索技术.我们正变得更加高效.高生产力,并能够解决更多的问题.

如何使用搜索技巧来成为一名高效的程序员(Google, Bing, Yahoo or Baidu)

没有人是完全独立的孤岛,每个人都是整体的一部分.--约翰·多恩  (至少你拥有95%以上的知识在网上都可以找到! 你遇到的问题中至少80%是别人也可能遇到过的!)   对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序.如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码.即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案. 如果不借助搜索技术.网络及集体智慧,现代化高效编程是难以想象的.因此,搜索技巧对高效程序员变得愈发重要. 现在,我们不需要了解和记住如何

10个习惯助你成为一名优秀的程序员

当谈到编程时,很多人应该都有听过10x程序员的说法. 据说一个10x程序员的效率大约是其他程序员的10倍. 这是一个有争议的话题,无论你选择相信10x程序员,还是认为这十分可笑,下面的10个习惯可以在一定程度上助你成为一名势不可挡的优秀程序员. 1.积极使用搜索工具 作为开发人员,你需要了解如何利用搜索解惑,查看其他人对你正在研究的主题所讨论的话题和内容,并将学到的知识应用于手头的项目. 当面临一个问题,优秀的程序员应该知道如何花很少时间去查验和解决手头的问题. 2.保持初学者心态 技术发展如此

如何成为一名专家级的程序员

很多人问我如何才能成为一名专家级别的程序员,现在我们对此还没有一种统一的模式,但是我还是想把我总结的一些经验分享给大家.如何成为一名专家级别的程序员,在很大程度上取决于你开发的软件和你所处的行业,以及你所在公司使用的工具等等.对于本文讲的一些方法,你可以选择适合自己的情况. 本文仅为个人观点,如果各位有任何补充或建议,欢迎不吝赐教. 还有一点要着重说明的是,成为专家与被认为是专家是不一样的.很多人虽然荣誉是专家,但其实他们并不是.但是如果人们相信他是专家的话,他就能因此赚钱.此外,也有的专家虽然

如何成为一名优秀的程序员?

作为一个从业快10年的程序员,我想给新入行的程序员们一些建议.这些建议是我希望自己可以在毕业时就读到的,也希望它们可以帮助你成为一个更好的程序员. 简单归纳一下,总共有7条: 保持健康 编程之外的爱好 持续学习 正确应对犯错 不要囿于角色 展示你的创意 刻意练习手速 下面我来详细说说每一点. 保持健康 三寸气在千般用,一旦无常万事休. --<金瓶梅> 首先要说的当然是健康,脱离了这个本钱,一切都无从谈起. 久坐.不运动.睡眠不足.不注意及时补充水分.长期的伏案工作等都会对健康造成很大的影响,而

教你如何成为一名Java初级程序员

程序|程序员 目前,JAVA是开发人员的热宠,很多论坛都有不少热爱JAVA的开发人员,也有不少想成为JAVA程序员,但苦于不知道该如何学习,也不清楚该学些什么知识才能成为一个JAVA程序员.本人在这里抛砖引玉,和大家讨论成为一个JAVA初级程序员应该具有的知识,与大家共享. 个人认为想成为一个合格的JAVA初级程序员应该具备如下知识: 一.面向对象的知识:JAVA是一个面向对象的开发语言,因此熟悉面向对象对学习JAVA很有必要,您要了解:什么是对象,什么是类;什么是封装,什么是多态,什么是继承;

想做一名合格的程序员,应该具备怎么样的知识基础?

问题描述 刚刚毕业不久,本人对编程有比较厚的兴趣,专业是计算机应用,工作岗位和专业毫不相干.想去找一份程序员的工作,不知道应该做怎么的准备?希望做C#方面的编程,希望能给我做一个比较系统的介绍.诚心求教!!!!!!!!!!! 解决方案 解决方案二:数据结构面向对象的理论基础一定要理解否则你在开发中会一直跳不出面向过程的思维~~~解决方案三:楼主学的计算机专业?那么毕业后还不会C#???大学肯定在玩了,自己学吧,不会的到CSDN上问,只有这个办法!解决方案四:自己先用C#做个小项目

程序员编程从初级到中级的10个秘诀_相关技巧

这个观点很好,有关程序员如何从初级跃升到中级的信息极少.以下是为了实现这种转变需要你去做的10件事. 1.学习另一门语言 其实你学的是哪一门语言并没有关系,但是学习另一门语言(不管你已经了解多少种语言)将把你打造为更好的程序员.能学会一门与你日常使用的语言风格迥异的语言则更佳.打个比方,如果你是C#程序员,学习VB.NET或者Java对你的帮助就没有学习Ruby或者Groovy大. 我说"学另一门语言"的意思是要真正学会它.学习一门语言包括三个领域的知识:语法.内置操作符和库,以及&q

从零开始成为一名开源程序员,其实只需要九步!

探索技术世界,是一件非常令人兴奋的事情.你会发现有非常非常多的领域,等待你去学习,去深挖.如果有兴趣参与和帮助创造更好的功能,加入到开源的队伍当中,你知道要从哪里开始吗?第一步该做什么?第二十步又是什么? 首先要明白,开源是开放的.这听起来似乎是句废话,但现实中有很多人恰恰就忘记它只是一个文化现象的描述,而不是一家500强公司的名字.不需要去面试或完成注册表或注册表单才能成为开源程序员.只需要做好程序,然后共享代码.在理想情况下保证代码能保持开放,不管它被如何使用. 就是这样,你就是一名开源程序