从搜索引擎发展的黄金10年来看, 搜索引擎技术自身也在不断的自我完善, 修改, 甚至变的庞大复杂. 不可避免的需要进行分工和合作. 粗略的按照搜索引擎的功能划分的话基本有: 抓取, 索引, 检索以及成为标配的广告, 4大方向.
对于一个普通的搜索引擎工程师, 需要纵向深入一个方向或者横向参与到几个方向当中. 技术上覆盖的范围比较大, 针对"搜索引擎工程师"的基本要素而言, 只能泛泛的从几个大方向上来.
背景知识(domain knowledge, 战略级)
每个领域内的背景知识, 可能都是决定方向的重要因素. 97/98年李彦宏的链接分析和Larry Page的PageRank, 两者根本性的优势都在于背景知识上. 当大家都还在深入研究传统的信息检索(IR)方向时, 引入了新的链接关系和AnchorText作为强有力的新特征, 可以迅速获得技术领先. 其根源上是人对于互联网和搜索引擎的特点的理解, 认识到了链接关系上的重要性. 越是新兴的领域内, 背景知识带来的优势就越明显. 背景知识一方面可能需要一些深入的研究作为积累, 另一方面也有非常多的聪明人, 可以迅速的达到一个领域内的绝对高度. 这方面更考验的是视野和智慧, 具体的技术细节其实影响不大.
可能@彭鹏 讲的"数据敏感性"就是一种背景知识的体现.
专业技能(战术级)
有了背景知识作为指引, 大方向基本靠谱的情况下, 能走多远, 能不能达到预想的实际效果, 就依赖于专业技能了. 不同细分的方向上, 各种大招不一样. 前端工程师可能需要玩转javascript+css; 后端的算法工程师, 可能需要数理统计, 模式识别, 数据挖掘等等; 后端的系统工程师, 需要对网络, 分布式等等有深入了解.
回到"链接分析"和"PageRank"的例子上看, 同样是领先的背景知识下, 专业技能方面就显示出差别来了. 虽然"链接分析"同样是非常成功的技术, 不得不承认, "PageRank"自身的数学模型要比"链接分析"技术更优雅(...我是G粉...), 同时具有更好的扩展性. 这可能是造成google和百度前期的效果差距原因之一.
基本功(单兵作战级)
基本功可以算是工程师的内功, 之前实验的效果和模型再华丽, 如果实际系统无法达到的话, 那么都是白费. 基本功包括, 基础编程语言的使用, 基础算法的实现, 性能问题分析和解决等等. 就是有能力尽可能的消除现实系统性能对与效果的影响. 当然尽可能的减少BUG, 也是基本素养.
一个无法实际实现或者运行结果有错误的PageRank系统, 即使再完美, 也不可能产生实际的影响.
至于三者哪个更重要的问题
从实际情况来看, 背景知识起到的效果最明显, 也最容易体现一个工程师的个人价值. 战略级别"指点江山"的感觉听起来很吸引人, 但单纯讲远景和拼想法门槛是很低的, 还需要后续通过实打实做出东西来, 验证自己的想法是正确的.
从理想主义的"民工自我修养"来看, 我更倾向于是基本功- > 专业技能- > 背景知识, 循序渐进. 当然人的能力和精力都是有限的, 很多时候都不得不向现实妥协.
从搜索引擎发展的黄金10年来看, 搜索引擎技术自身也在不断的自我完善, 修改, 甚至变的庞大复杂. 不可避免的需要进行分工和合作. 粗略的按照搜索引擎的功能划分的话基本有: 抓取, 索引, 检索以及成为标配的广告, 4大方向.
对于一个普通的搜索引擎工程师, 需要纵向深入一个方向或者横向参与到几个方向当中. 技术上覆盖的范围比较大, 针对"搜索引擎工程师"的基本要素而言, 只能泛泛的从几个大方向上来.
背景知识(domain knowledge, 战略级)
每个领域内的背景知识, 可能都是决定方向的重要因素. 97/98年李彦宏的链接分析和Larry Page的PageRank, 两者根本性的优势都在于背景知识上. 当大家都还在深入研究传统的信息检索(IR)方向时, 引入了新的链接关系和AnchorText作为强有力的新特征, 可以迅速获得技术领先. 其根源上是人对于互联网和搜索引擎的特点的理解, 认识到了链接关系上的重要性. 越是新兴的领域内, 背景知识带来的优势就越明显. 背景知识一方面可能需要一些深入的研究作为积累, 另一方面也有非常多的聪明人, 可以迅速的达到一个领域内的绝对高度. 这方面更考验的是视野和智慧, 具体的技术细节其实影响不大.
可能@彭鹏 讲的"数据敏感性"就是一种背景知识的体现.
专业技能(战术级)
有了背景知识作为指引, 大方向基本靠谱的情况下, 能走多远, 能不能达到预想的实际效果, 就依赖于专业技能了. 不同细分的方向上, 各种大招不一样. 前端工程师可能需要玩转javascript+css; 后端的算法工程师, 可能需要数理统计, 模式识别, 数据挖掘等等; 后端的系统工程师, 需要对网络, 分布式等等有深入了解.
回到"链接分析"和"PageRank"的例子上看, 同样是领先的背景知识下, 专业技能方面就显示出差别来了. 虽然"链接分析"同样是非常成功的技术, 不得不承认, "PageRank"自身的数学模型要比"链接分析"技术更优雅(...我是G粉...), 同时具有更好的扩展性. 这可能是造成google和百度前期的效果差距原因之一.
基本功(单兵作战级)
基本功可以算是工程师的内功, 之前实验的效果和模型再华丽, 如果实际系统无法达到的话, 那么都是白费. 基本功包括, 基础编程语言的使用, 基础算法的实现, 性能问题分析和解决等等. 就是有能力尽可能的消除现实系统性能对与效果的影响. 当然尽可能的减少BUG, 也是基本素养.
一个无法实际实现或者运行结果有错误的PageRank系统, 即使再完美, 也不可能产生实际的影响.
至于三者哪个更重要的问题
从实际情况来看, 背景知识起到的效果最明显, 也最容易体现一个工程师的个人价值. 战略级别"指点江山"的感觉听起来很吸引人, 但单纯讲远景和拼想法门槛是很低的, 还需要后续通过实打实做出东西来, 验证自己的想法是正确的.
从理想主义的"民工自我修养"来看, 我更倾向于是基本功- > 专业技能- > 背景知识, 循序渐进. 当然人的能力和精力都是有限的, 很多时候都不得不向现实妥协.