`
蓝神100
  • 浏览: 10164 次
文章分类
社区版块
存档分类
最新评论

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

阅读更多
搜索技能的重要性
对于缺乏编程知识的人来说,完全有可能开发一个网页或一个小应用。如果运气够好,当你使用谷歌去搜索一些示例的时候,你有可能会搜索到现成的代码,并因此而完成工作。即便是那些经验丰富的程序员,也经常会为了节约时间和精力而去搜索现有的解决方案。

如果没有搜索引擎、网络和集体的智慧,现代化高效的编程技术是难以想象的。因此,搜索技巧对高效的程序员而言,变得越来越重要。

现在,我们不必去了解或记住许多程序的解决方法–只需要搜索即可。我们变得更加高效、更加有创造性,并且能够解决更多的问题。但是,难道这就意味着好的搜索水平就足够去开发软件了?本文,将深入探讨搜索技能在程序员知识形成过程中充当的角色,以及如何有效的使用搜索引擎。


知识的分类

有三种类型的知识:




概念知识(为什么、是什么、如果– 语义上的)–理解开发软件过程中的概念、原理、关系及主要方法。这类知识,可以回答软件体系结构或代码必须按特定方式设计的原因,以及其中的最佳选择和选择背后的逻辑是什么。概念知识,是对问题的长远看法和理解,而不仅仅是指用一门编程语言去解决具体的问题。
用途:对复杂的开放式问题寻找新的解决方案,并创建稳健的软件系统。
收获:学习计算机科学、计算机体系以及编程概念,并在实践过程和经验的基础之上,构建自己的理论。
实践知识(如何做 – 在程序中)——如何用知识去解决具体的编程问题。这类知识不需要高深的概念知识和背后隐藏的理论基础。对于这点,搜索技术显得最为重要;因为编程语言所遇到的问题,以及问题的特定解决方案都是有限的,搜索引擎可以相对容易的共享这些问题和解决方案。
用途:用已证实的和已知的解决方案快速解决问题,而不是每次都重新发明一种新的方法。
收获:搜索已有的解决方案,通过例子学习或自己研究,并且以后可以重复利用。
隐性知识(专业知识、经验及直觉)—— 人们在实现软件体系过程中积累的经验,会在大脑内部形成知识。通过强大的大脑功能,隐性知识可以综合及协调其他两类知识(概念知识和实践知识)。这类知识很难传授,因为大部分隐性知识都存在于我们的潜意识中。在特定条件下,它会和直觉一起发挥作用, 能够在经验、以及对概念性和实践性知识的反馈和评估的基础上,做出最佳决策。
用途:利用自己的专长、经验及直觉来实现最佳解决方案。
收获:开发软件并总结。


设计模式(还有架构、领域及其他)都是结合了多种类型知识的有趣的例子:都是“如何做”的示例,这些例子背后的“概念知识”和实现它们的经验。这种知识的体现形式,正是设计模式成功并广泛应用的原因之一。

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

因此,在软件开发过程中,概念知识和隐性知识仍然是非常重要的。在使用搜索技术时,我们应该去努力的扩展各种知识,而不是仅仅为了解决某个具体问题。随着解决高层次问题能力的提高,你将会成功的成为一位更高效的程序员。
searchskill-3.png

用于解决实际问题的高效搜索


A.查找

定义——搞清楚你要解决的问题是什么,并将注意力集中在查找内容上。网络上有非常多有趣的资料,搜索的过程会轻易的花费掉你全部的工作时间(和个人时间)。
搜索(常用高级搜索语法)——如何正确高效使用搜索引擎,如何高效使用百度搜索。
浏览结果(内容的质量、可信度及专业技术的水平;如果资料的可信度过低,无须再看)– 阅读 – 评估(人力物力、所依赖的工具及函数库)



B. 使用



复制代码 – 单独复制(为此,最好能加上各种极端的单元测试)
清除代码 –为你的解决方案仅保留最小限度、相关性、清晰的代码。
在系统中应用代码。



C. 学习



理解–你做了什么及为什么要那样做–从代码和实现中学习。
扩充知识—— a. 实践知识:解决问题的具体方法、技巧及风格; b. 概念知识:学习新概念、提炼已有的并构建自己的概念; c. 隐性

知识:如果你明智地使用搜索到的解决方案并从中学习,经验自然会地得到提高。
收集(链接、意见、参考文献、阅读清单)——任何对你今后搜索、探索及学习有用的有趣信息。为这些目标积累知识。

分享到:
评论

相关推荐

    如何成为一名C++程序员

    成为一名C++程序员是一个逐步深入的过程,需要掌握编程基础、提高编程技巧,以及不断提升设计思想。以下是一份详细的指南: 1. **入门阶段**: - 初步理解编程思维,通过编写小程序解决简单问题。选择合适的入门...

    成为一名更好的程序员

    《成为一名更好的程序员》这本书涵盖了软件开发者的全方位生活,从处理代码到学习技能、提高性能,没有特定语言或行业的偏见,适合有经验的开发者、新手专业人员或爱好者。 本书特别强调以下几点: - 从基础做起:...

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

    如何使用搜索技巧来成为一名高效的工程师?没有人是完全独立的孤岛,每个人都是整体的一部分。——约翰·多恩对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,...

    如何成为一个优秀的程序员

    在IT行业,成为一名优秀的程序员是众多技术追求者梦寐以求的目标。在《如何成为一个优秀的程序员》一文中,作者罗伯特·L·里德(Robert L. Read)列出了多达一百条准则,旨在帮助读者全面掌握成为优秀程序员所需的...

    电子书(如何成为一名优秀的JSP程序员)

    本书旨在帮助读者掌握JSP的核心概念、开发技巧以及最佳实践,从而提升在Web开发领域的专业技能,成为一名杰出的JSP程序员。 **JSP概述** JSP(JavaServer Pages)是Java平台上的一个标准组件,用于创建动态网页...

    作为一个程序员的最基本要求

    以下是对成为一名好的程序员所必需的关键要素的详细解释: 首先,扎实的基础知识是程序员的基石。这包括理解计算机科学的基本概念,如数据结构、算法、计算机网络和操作系统原理。对于初学者,学习C语言是建立基础...

    优秀程序员之路 C# 开发经验及技巧大汇总.rar

    首先,成为一名优秀的C#程序员,你需要掌握基本语法和数据类型。C#支持多种数据类型,包括整型、浮点型、字符型以及布尔型。理解变量的声明、初始化和作用域是至关重要的。同时,掌握控制流语句,如if条件语句、for...

    作一个真正合格的程序员要知道的

    作为一名合格的程序员,仅仅具备技术能力是远远不够的,还需要有良好的团队协作精神与沟通技巧。项目开发往往是一个团队合作的过程,在这个过程中,高效的沟通和协作能极大地提高工作效率并减少误解和冲突的发生。...

    成为一个好的程序员需要的书.txt

    本文将根据给定的文件信息,详细解析成为一名优秀程序员所必需的书籍和资源。 #### 编程书籍 1. **《C Primer Plus》** - **简介**:这本书是学习C语言的经典之作,它不仅介绍了C语言的基础语法,还深入讲解了...

    高级程序员必备条件

    掌握Java的核心概念和技术,如多线程编程、异常处理、集合框架等,对于成为一名高级程序员来说是必不可少的。 #### 7. 测试与调试 编写高质量的代码不仅需要优秀的编码技巧,还需要良好的测试和调试能力。这包括...

    高效程序猿的7个共同特征

    高效程序员是IT行业中备受推崇的群体,他们不仅具备深厚的技术能力,还...对于希望成为或已经从事编程工作的专业人士而言,理解和实践这些特征将有助于提升个人的技术水平和职业素养,最终成为一名真正的高效程序员。

    书中描述对了,相当一名好的程序员的必经之路

    在编程世界里,成为一名优秀的程序员并非一蹴而就的事情,它需要不断...通过阅读和实践书中的内容,程序员可以逐步掌握JavaScript的核心概念、高级特性,以及与之相关的开发技巧,从而走上成为一名优秀程序员的道路。

    怎样做一个优秀的程序员

    对于想要成为一名优秀的Java程序员的人来说,了解并掌握Java的核心技术和相关框架是至关重要的。以下是从给定文件中提取的关键知识点,旨在帮助读者更好地理解如何成长为一名优秀的Java程序员。 #### Java技术体系...

    程序员技巧收集助手 v1.3

    "程序员技巧收集助手 v1.3"是一款专为程序员设计的工具软件,旨在帮助程序员们高效地收集、整理和分享编程技巧与经验。这个版本1.3可能包含了新功能和性能优化,使得软件更加易用和实用。标签“技巧助手”暗示了其...

    如何成为一个合格的C++程序员

    因此,成为一名优秀的C++程序员不仅是很多程序员的梦想,也是市场需求的重要组成部分。下面将详细探讨成为合格C++程序员所需具备的关键技能。 #### 一、熟练掌握C++语法 1. **语法基础**:C++作为一种静态类型的...

    一个Java程序员应该掌握的10项技能

    ### 一个Java程序员应该掌握的10项技能详解 #### 1. 语法 作为Java程序员,必须熟悉Java...总之,成为一名优秀的Java程序员需要不断地学习和实践,掌握上述技能不仅有助于个人职业发展,也能为项目带来更大的价值。

    如何成为一个合格的java程序员

    要成为一个合格的Java程序员,需要全面且深入地掌握...总之,成为一名合格的Java程序员需要不断学习新知识和技术,同时也要注重实践经验和团队协作能力的培养。通过持续的努力和积累,逐步成长为一名优秀的Java开发者。

Global site tag (gtag.js) - Google Analytics