凭借着优秀的搜索素养,复制黏贴,拿来主义的能力(我不是在讽刺,这是一种编程必须的能力),成功地解决了一个又一个陌生的需求。

关于搜索技巧

任何一个开发人员,都应当具备搜索能力,甚至是一定要具备搜索能力,搜索引擎的宝藏,是无穷无尽的,同样具备搜索意识的不同程序员,却因为搜索技巧的差异最终在程序开发质量、项目实施效率、甚至是工程产品质量上出现数倍的差异,因此,掌握高效、先进、灵活的搜索方法和技巧,是非常非常非常(重要的事情说三遍)有用的。其中主要的方法介绍如下:

1)搜索源选择

  • 虽然英文的编程资料更为准确高效,但中文的编程资料数量上却占优,因此遇到问题第一搜索选择还是百度
  • 谷歌对于专业中文词汇的处理能力有时候甚至比百度还要强,而且谷歌能搜出大量的英文资源,因此谷歌也是首选之一,但是由于谷歌被封锁,因此需要进行VPN、SSH等FQ操作,或者在百度搜索“谷歌镜像”关键词,通过谷歌的镜像网站进行访问。
  • 除了搜索引擎,专业的技术网站、论坛、社区也是非常直接有效的搜索源,比如国外的StackOverFlow网站,国内的Cnblogs博客园、OSChina开源中国等,都具备搜索功能,将问题关键词输入其中,也许也会很快的得到相关答案。
  • 对于QQ群,建议不要使用,除非QQ群主或者成员是非常闲或者非常非常热心的人,否则在QQ群询问技术问题,是非常低效率的搜索方式。

2)关键词构造

搜索关键词的构造,直接影响搜索效率和正确结果的过滤,没有什么特别的技巧,关键在于搜索积累,但是总体遵循的原则是,准确和简洁,比如当出现一个描述,如何用C#对XML进行序列化和反序列化,非常愚蠢的关键词构造就是“如何用C#对XML进行序列化和反序列化”,而正确高效的关键词则是“C# XML 序列化 反序列化”,或者在谷歌里面搜索则是“C# XML Serialization”。在平时的编程中,一定要注意相关方法和经验的积累

3)联想搜索

联想搜索,不属于搜索引擎的范畴,却是在搜索中很有用的高级技巧,举一个通俗的例子,比如想使用C#,利用某个.NET类处理一种HTTP通讯,但是一直搜索不到完美的结果,不过换个思路,考虑到VB.NET也是.NET体系,和C#完全相通,那么也可以试着用VB.NET关键词进行搜索,搜索到完美代码后再临摹成C#代码。这样的联想搜索,不仅能够帮助搜索正确结果,也是对大脑思维的训练,值得多多尝试。

4)资源搜索

开源的框架、产品、工具、控件等开发辅助类东西越来越多,稳健性和迭代性越来越强,去寻找一款成熟的工具或者插件,也成为了大量开发者的必备方法和技能,而如何高效的搜索出想要的资源,也成为了一门学问,其核心方法就在于知晓资源网站的地址,常见的例如有开源中国、Github、CSDN下载、pudn等。资源类网站需要平时多积累,到用到的时候会非常关键。

你觉得自己走过了很长的路。这时候大概三年过去了,确实不短。

但也渐渐意识到似乎缺了什么东西,有一种不满足感,以前你只追求高效率地完成工作,现在你想追求得更多一点。

你也许想知道用过的某个库的实现原理,也许想实现自己的版本,你想理解框架的架构模式,想获得这种能力,你想把语言本身用得更自如更生动,想真正拥有它,而不是使用它。

你学会了做功能,用各种库,各种框架,项目形形色色,需求千姿百态,变化莫测。

这是你从developer到engineer的关键时刻。你将要学会的程序设计能力,而不是为功能而代码的能力,你越来越多关注质量,而不是数量。

如果你是PHP程序员,你将理解的这个概念可能是“data driven”,你尝试让数据来驱动程序,而不是层层嵌套的逻辑,无休无止的if else,你想把程序变短变平,你想把复杂的逻辑编程简单的“配置”,你想让这些配置来帮你写逻辑,而不是自己手动去敲逻辑代码。理解它以后,你会发现原来这么多的程序其实可以有更好的写法,更“快好省”的结构设计。你不再觉得“业务逻辑”是浪费时间,你看到了把任何业务逻辑转化为数据驱动的设计的途径,这时候你不再是原来那个PHP程序员了,packagist上的库你看过去,都是你的朋友,因为你知道在某个时候,你需要他们支撑(简化)你的一个设计,以前你看到一个包,看它的API,找到一个,require进来,发现可以,完了;现在你想看看它的“设计”,想的是“可以怎么用”,对我的项目有什么意义。

如果你是JS程序员,这个概念也许是事件驱动也许是异步编程,你懂得了以事件为中心来设计一个完成的架构,你驾驭了异步程序的技巧,以前你总是觉得驾驭不了复杂的项目,感到恐惧,错综复杂的事件流,异步程序写起来各种不自然,UI交互,因为你总是追着每个具体的功能跑,而没有想过高一两个层次的设计,事件如何统一起来管理,而不是让它们乱窜,UI的模块怎么分割,分割以后怎么交互,对你的要求不是去设计一个具体的模块,而是为设计任意多模块提供一种可扩展可维护的机制,你需要设计规则,决定程序的结构、层次、模式。这时候你不再只是document.getElementById那时候的JS程序员,这时候你具备了编程的“元”能力:剖析问题,设计程序。你会觉得即使不给你任何框架和库,自己也能设计出一套方案来。你选择库或者什么技术,开始处于非常具体的“需要”,而不是听说它“很好用”,那时候是它在选择你,你很被动。“我想用A,因为这时候A是最佳选择”,你有一种清晰感,也开始有了品位,判断力。

你不再是“码农”了,你是Engineer,你做事开始有了逻辑(你不确定以前做的事对不对好不好,只管做,现在你比较清楚了),很多东西在你脑子里开始有了主次,你用设计、架构来解决问题,而不是光用代码和搜索引擎。“你”开始真正成为解决问题的主角,而不是你“用到的东西”。你真正地驾驭了语言,这个语言可以怎么用,应该怎么用,而不是写成什么样算什么样。你能比较轻松的从别人的东西里看出苗头来。

这个时候,你走上了技术能力的phase 2。

在做程序员的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?相关推荐

  1. 收藏 | 在算法工程师的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?...

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨沈世钧.DLing.坡哥说 来源丨知乎问答 编辑丨极市平台 985人工智能博士笔记推荐 周志华<机 ...

  2. 在做算法工程师的道路上,你掌握了什么概念或技术使你感觉自我提升突飞猛进?...

    链接:https://www.zhihu.com/question/436874654/answer/1808192248 在科研中训练到的思维方式,是我最宝贵的成长. 一. 反馈的闭环 在一个研究任 ...

  3. 在程序员的道路上,义无反顾的努力,有思想的人,很多,好的想法,需要学习。(以此共勉)...

    程序员:差距在哪里,你与开发高手的距离到底有多远? 投递人 itwriter 发布于 2010-08-27 13:45 评论(19) 有5369人阅读  [收藏] 开发者的技术成长是个永恒的话题.&l ...

  4. 来到传统行业做程序员,从准备提桶跑路到引领技术风潮?背景

    制造业央企,七年老程序员,精通JAVA "HELLO WORLD".SHELL脚本 ECHO "HELLO WORLD"的编写,拥有1分钟装完DOCKER,五分 ...

  5. 知乎热问:成为算法工程师的路上,掌握什么技术会感觉自我提升突飞猛进?

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:桔了个仔,南洋理工大学,Datawhale成员 这个问题我犹豫了很 ...

  6. 35岁,工作十几年,被开除15次,面试被拒200多次,还有必要继续做程序员吗?...

    人生路上总有诸多不幸,我们写过许多程序员的悲惨故事,有人中年失业,有人婚姻不幸,有人加班猝死......今天给大家带来的是一个残疾程序员的故事. 一位因听力障碍导致沟通困难的程序员发帖自述:在十几年的 ...

  7. 转行做程序员,从月薪5k到50k,46岁程序员道出了一路的心酸

    前言 20年前,自己有幸入行IT行业,毕竟对于出身寒门的我来说,能够有一份体面的工作已经很不错了. 现在自己也42岁了,薪资也突破了五万元,在行业中虽然算的上中等,但却感觉人生才刚刚开始.如今,发现学 ...

  8. 应届毕业生零基础转行做程序员,怎么看?

    其实,IT行业是个很宽泛的范围,里面包含了很多不同的职业,具体工作内容和收入也千差万别.简单来说,对于比较新的技术,缺口很大,前景也比较好,比如区块链.AI.云计算.大数据等等,但是,这些技术门槛也比 ...

  9. 北京人不能做程序员?

    大家好,我是程序员小灰,是一个北京土著,做过10年的编程工作. 在我的职业生涯当中,我身边的同事大部分是外地朋友,很多人在知道我是北京人之后,往往会问出这样的问题: "哎,你是北京人?那你还 ...

最新文章

  1. 人脸标记检测:ICCV2019论文解析
  2. 探究被Win7保留的100MB活动分区
  3. 深入redis内部--内存管理
  4. 安卓图表引擎AChartEngine(一) - 简介
  5. 网络游戏红利未减,昆仑万维如何急于转型?
  6. 【Xamarin.Android】应用消费品
  7. 误打误撞的模板字符串
  8. java-程序流程控制
  9. 对于Y=Hx的H细节的一些讨论
  10. JAVA毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析计算机源码+lw文档+系统+调试部署+数据库
  11. java 邮件批量发送邮件_利用Java实现电子邮件的批量发送
  12. 三十难立,四十有惑:三个代际的产品经理一起聊聊职业体验
  13. JAVA 油站管理系统_加油站管理系统
  14. 微分方程——线性微分方程
  15. 互联网日报 | 7月14日 星期三 | 京东宣布涨薪两个月;腾讯收购搜狗股权获无条件批准;教育部辟谣取消教师寒暑假...
  16. 推荐几个练习键盘打字的工具【自己用过的】
  17. 检测mysql字符正确_mysql字符集的测试
  18. 移动端应用视频小程序加密播放(存档)
  19. Python中的字符串下标
  20. (转)被讨厌的勇气--目录

热门文章

  1. 89C51单片机之寄存器
  2. 手写VIO --学习笔记 - Part8
  3. C#——ReportView生成报表
  4. R语言基于mediation包行中介效应分析
  5. 【转载】SAP Smartform二维码打印实例教程
  6. 流媒体分析之srt 协议libsrt 实现
  7. linux应用--SPI协议
  8. 软考中级的软件设计师好考吗?通过率高吗?
  9. overleaf 插入图片_Overleaf—使用教程-致谢原作者
  10. 泰国潜水圣地——斯米兰岛近期开放,不去浪还等什么!