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

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

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

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

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


  知识的类型及它在程序员大脑中如何成长。
 

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

  有三类知识:

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

  • 用途:对复杂的开放式问题寻找新的解决方案,并创建稳健的软件系统。
  • 收获:学习计算机科学、体系结构以及编程概念,在实际实现和经验的基础上,构建自己的理论。

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

  • 用途:用已证实的和已知的解决方案快速解决问题,而不是每次都重新发明一种新的方法。
  • 收获:搜索现有的解决方案,通过例子学习或提出自己的解决方案并以后对其重利用。

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

  • 用途:利用自己的专长、经验及直觉来实现最佳解决方案。
  • 收获:构建软件并从结果中学习知识。
如何使用搜索技巧来成为一名高效的程序员

 

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


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


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

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

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

  A. 查找

  • 1. 定义——弄清楚要解决什么问题,并以要查找的内容为焦点。网络上有如此多的有趣的材料,以至于搜索过程能轻易地占掉你全部的工作时间(和个人时间)。
  • 2. 检索(使用标准的Google、代码搜索或其他的检索引擎)—有很多关于如何高效的使用检索引擎的建议。
  • 3. 浏览结果(内容的质量、可信度及专业技术的水平;如果资料的可信度过低,无须再看)-> 阅读 -> 评估(人力物力、所需工具及函数库)

  B. 使用

  • 1. 复制代码 - 单独复制(针对这一目的,带有长钉技术的显式单元测试最适合)
  • 2. 清除代码 - 仅保留最小限度、相关性代码,清除解决方案中的其它代码。
  • 3. 在系统中应用代码。

  C. 学习

  • 1. 理解——你做了什么及你为什么那样做——从代码和实现中学习。
  • 2. 扩充知识——
    • a. 实践性知识:解决问题的特定方法、技巧及风格;
    • b. 概念知识:学习新概念、提炼现有的并构建自己的概念;
    • c. 隐性知识:明智地使用并学习搜索到的解决方案,经验会自然而然地得到增长。
  • 3. 收集(链接、意见、参考文献、阅读清单)—任何对你今后搜索、发现及学习有用的有趣信息。为这些目标积累知识。

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux系统优化思路

文章目录一. 影响linux性能的因素1.系统硬件资源2.操作系统相关资源3.应用程序软件资源二. 分析系统性能涉及的人员1.Linux运维人员2.系统架构设计人员3.软件开发人员三. 系统性能分析工具四.思路总结一. 影响linux性能的因素 1.系统硬件资源 1)cpu 2)…

30分钟,让你成为一个更好的程序员

我相信激励是非常重要的。这也是为什么我常常把时间管理(这些书激励我不管改进我的时间管理方法)的书和软件开发拿出来看看。我最近刚看完一本 书,“Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman”。这本书推动我…

如何启用计算机的远程服务,远程桌面服务,教您怎么打开远程桌面服务

远程桌面可以通过控制另一台电脑的功能,让网络管理员可以在家中安全的控制单位的服务器,而且这个功能是系统内置的,所以比使用其他第三方的远程控制工具更方便。那么我的重点来了,我今天就教你们怎么打开桌面远程服务,…

pipenv相关指令

pip install pipenv 安装pipenv pipenv install 创建虚拟环境 (项目根目录下) pipenv shell     进入虚拟环境(如果不存在,则创建并进入虚拟环境) pipenv install flask   安装模块 pipenv uninstall flask 卸…

Vmware上安装RedHat Linux 7.3操作系统手册

文章目录1.点击“创建新的虚拟机”,勾选“自定义”选项,点击一步;2.默认选择最高版本的workstations,点击下一步;3.选择“稍后安装操作系统”,点击下一步;4&a…

软件工程15 个人阅读作业1

Task1:注册个人博客账号 个人博客地址 https://www.cnblogs.com/bmr666/ Task2:注册码云账号 码云账号 https://gitee.com/bmr666 Task3:完成博客-阅读与思考 阅读参考材料,并回答下面几个问题: (1&#xf…

Windows Server 2008操作系统安装手册

文章目录1.输入语言和其他首选项,然后单击“下一步”继续;2.点击“现在安装”,启动安装程序;3.选择要安装的操作系统,这里选择Windows Server 2008 R2 Enterprise(完全安…

云计算机有哪些特征,你知道云计算有哪些核心特征吗?

你知道云计算有哪些核心特征吗?下面跟小编一起来了解下吧!!!1、敏捷:使用户得以快速的,且以低价格的获得技术架构资源。2、应用程序界面API的可达性是指允许软件与云以类似“人机交互这种用户界面设施交互相所相一致的方式”来交互。云计算系统典型的运…

域名劫持

转载于:https://www.cnblogs.com/xinghen1216/p/8548323.html

cesium html源码,Cesium源码的本地运行及调试

CesiumJS源码运行有两种方式:基于node.js运行官方下载地址:https://cesium.com/cesiumjs/下载解压后,在根目录安装依赖后,就可直接运行npm initnpm start如果调试代码呢,官方的示例都是在Sandcastle里放着,…

阿里云上Kubernetes集群联邦

摘要: kubernetes集群让您能够方便的部署管理运维容器化的应用。但是实际情况中经常遇到的一些问题,就是单个集群通常无法跨单个云厂商的多个Region,更不用说支持跨跨域不同的云厂商。这样会给企业带来一些担忧,如何应对可用区级别…

缺氧游戏计算机,缺氧PC最低什么配置一览 你觉得高吗

缺氧PC最低什么配置一览,你觉得高吗。游戏对于电脑有不同程度的要求,缺氧这款游戏也有着自己的配置要求,看看下面的缺氧PC最低什么配置一览,你的硬件够得上吗。缺氧最低配置:首先公布的是官 方配置需求,目前…

Diango博客--14.使用 Django 项目中的 ORM 编写伪造测试数据脚本

文章目录0.思路引导1.脚本目录结构2.使用 Faker 快速生成测试数据3.批量生成测试数据4.执行脚本5.效果展示0.思路引导 1)为了防止博客首页展示的文章过多以及提升加载速度,可以对文章列表进行分页展示。 2)不过这需要比较多的文章才能达到分…

基于Sql Server 2008的分布式数据库的实践

配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选择“属性”。左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式 3.选择“连接”&#x…

Diango博客--15.通过 Django Pagination 实现简单分页(一)

文章目录0.思路引导1.Paginator 类的常用方法2.用 Paginator 给文章列表分页3.在模板中设置分页导航4.效果展示0.思路引导 1)当博客上发布的文章越来越多时,通常需要进行分页显示,以免所有的文章都堆积在一个页面,影响用户体验。…

SpringMVC 测试 mockMVC

SpringMVC测试框架 基于RESTful风格的SpringMVC的测试,我们可以测试完整的Spring MVC流程,即从URL请求到控制器处理,再到视图渲染都可以测试。 一 MockMvcBuilder MockMvcBuilder是用来构造MockMvc的构造器,其主要有两个实现&…

Diango博客--16.稳定易用的 Django 分页库,完善分页功能(二)

文章目录0.思路引导1.分页效果概述2.分页思路3.Django 第三方拓展:django-pure-pagination4.自定义模板0.思路引导 1)在前面我们通过 Django Pagination 实现简单分页 中,我们实现了一个简单的分页导航。但效果有点差强人意,我们…

不同的写法 其中 1 2 (试了下 没有效果 ,先记载这里把)

转载于:https://www.cnblogs.com/kaibindirver/p/9145455.html

美国西北大学 计算机工程专业排名,[转载]美国西北大学计算机工程研究生最新专业排名...

对于打算去美国西北大学读研究生的学生来讲,美国西北大学研究生申请要求及美国西北大学研究生专业介绍是学生最关心的问题。本文香港介绍美国西北大学研究生申请要求及美国西北大学研究生的专业介绍,帮助更多的学生更好的了解美国西北大学。2016年西北大…

析构函数virtual与非virtual区别

作为通常的原则,如果一个类定义了虚函数,那么它的析构函数就应当是virtual的。因为定义了虚函数则隐含着:这个类会被继承,并且会通过基类的指针指向子类对象,从而得到多态性。 这个类可能会被继承,并且会…