第一个问题,搜索工程师是怎么定位的?
不是很了解定位的意思。姑且理解为分类,和从事的工作,
1。 工程性工程师,或是基础架构类工程师,比如原来一台机器一秒抓10张网页,工程了一下,一秒能抓1000张了,比如原来一台机器能存1亿张网页,现在能存10亿张了,
2。 策略性工程师,比如爬互联网上的什么站点,爬这些站点的什么网页,一张网页需不需要收录,一个query下来返回什么结果
随着引擎越来越成熟,后者的比例会越来越高
第二个问题:怎样成为一个优秀的搜索引擎工程师?
我觉得吧,什么C语言牛叉,什么掌握艰深的机器学习知识,什么会分词,什么。。
这些都是术,或者说都是基本功,如果你对应的工作需要,会或是精通那是应该的,不会就需要被fire了。
优秀和普通的工程师的区别是对 数据的敏感性 ,那是日积月累,100张100张100张100张100张网页看下来,积累起来的。
一个算法过来,不需要跑调研,就知道靠谱不靠谱。
知道对系统来说,最需要完善的地方在哪
知道一个算法上线,对子系统剩下几十个算法是正面,还是负面的影响。
剩下的就是所有工程师都需要的两个字: 靠谱
综上所述:
如果您是一个学生,那不要纠结如何成为一个优秀的搜索引擎工程师,因为基本你能学到的都用不上
如果你是一个新入行的搜索引擎工程师,那么天天反复看网页吧
可能@彭鹏 讲的"数据敏感性"就是一种背景知识的体现.
回到"链接分析"和"PageRank"的例子上看, 同样是领先的背景知识下, 专业技能方面就显示出差别来了. 虽然"链接分析"同样是非常成功的技术, 不得不承认, "PageRank"自身的数学模型要比"链接分析"技术更优雅(...我是G粉...), 同时具有更好的扩展性. 这可能是造成google和百度前期的效果差距原因之一.
一个无法实际实现或者运行结果有错误的PageRank系统, 即使再完美, 也不可能产生实际的影响.
至于三者哪个更重要的问题
从实际情况来看, 背景知识起到的效果最明显, 也最容易体现一个工程师的个人价值. 战略级别"指点江山"的感觉听起来很吸引人, 但单纯讲远景和拼想法门槛是很低的, 还需要后续通过实打实做出东西来, 验证自己的想法是正确的.
从理想主义的"民工自我修养"来看, 我更倾向于是基本功- > 专业技能- > 背景知识, 循序渐进. 当然人的能力和精力都是有限的, 很多时候都不得不向现实妥协.
不是很了解定位的意思。姑且理解为分类,和从事的工作,
1。 工程性工程师,或是基础架构类工程师,比如原来一台机器一秒抓10张网页,工程了一下,一秒能抓1000张了,比如原来一台机器能存1亿张网页,现在能存10亿张了,
2。 策略性工程师,比如爬互联网上的什么站点,爬这些站点的什么网页,一张网页需不需要收录,一个query下来返回什么结果
随着引擎越来越成熟,后者的比例会越来越高
第二个问题:怎样成为一个优秀的搜索引擎工程师?
我觉得吧,什么C语言牛叉,什么掌握艰深的机器学习知识,什么会分词,什么。。
这些都是术,或者说都是基本功,如果你对应的工作需要,会或是精通那是应该的,不会就需要被fire了。
优秀和普通的工程师的区别是对 数据的敏感性 ,那是日积月累,100张100张100张100张100张网页看下来,积累起来的。
一个算法过来,不需要跑调研,就知道靠谱不靠谱。
知道对系统来说,最需要完善的地方在哪
知道一个算法上线,对子系统剩下几十个算法是正面,还是负面的影响。
剩下的就是所有工程师都需要的两个字: 靠谱
综上所述:
如果您是一个学生,那不要纠结如何成为一个优秀的搜索引擎工程师,因为基本你能学到的都用不上
如果你是一个新入行的搜索引擎工程师,那么天天反复看网页吧
如果你是一个老人,当我没说:)
从搜索引擎发展的黄金10年来看, 搜索引擎技术自身也在不断的自我完善, 修改, 甚至变的庞大复杂. 不可避免的需要进行分工和合作. 粗略的按照搜索引擎的功能划分的话基本有: 抓取, 索引, 检索以及成为标配的广告, 4大方向.
对于一个普通的搜索引擎工程师, 需要纵向深入一个方向或者横向参与到几个方向当中. 技术上覆盖的范围比较大, 针对"搜索引擎工程师"的基本要素而言, 只能泛泛的从几个大方向上来.
- 背景知识(domain knowledge, 战略级)
可能@彭鹏 讲的"数据敏感性"就是一种背景知识的体现.
- 专业技能(战术级)
回到"链接分析"和"PageRank"的例子上看, 同样是领先的背景知识下, 专业技能方面就显示出差别来了. 虽然"链接分析"同样是非常成功的技术, 不得不承认, "PageRank"自身的数学模型要比"链接分析"技术更优雅(...我是G粉...), 同时具有更好的扩展性. 这可能是造成google和百度前期的效果差距原因之一.
- 基本功(单兵作战级)
一个无法实际实现或者运行结果有错误的PageRank系统, 即使再完美, 也不可能产生实际的影响.
至于三者哪个更重要的问题
从实际情况来看, 背景知识起到的效果最明显, 也最容易体现一个工程师的个人价值. 战略级别"指点江山"的感觉听起来很吸引人, 但单纯讲远景和拼想法门槛是很低的, 还需要后续通过实打实做出东西来, 验证自己的想法是正确的.
从理想主义的"民工自我修养"来看, 我更倾向于是基本功- > 专业技能- > 背景知识, 循序渐进. 当然人的能力和精力都是有限的, 很多时候都不得不向现实妥协.
“搜索工程师”这个职位可以有很宽泛的解释,就像搜索领域里有很庞大的划分一样。涉及到文字处理方面的,有分词,中文处理,日语处理,这里面就涉及到人工智能,机器学习,语言学,语法学,统计分析学等等各个学科的知识。。。等等,数据抓取方面的,有网页结构化,协议,等等。海量数据处理方面,有数据挖掘,有广告排名,有全文检索。。。。等等。在移动搜索方面,有无线网络,有各种地图以及相关应用。。
这是个大的各个学科的集合,搜索工程师只是个统称。所以,按理说没法定位。但凡是称得上“优秀”,必然是很熟悉自己所在的领域,比如有人分词做的非常好,对语义结构化方面是专家,有人对网页结构化很擅长,有人擅长于海量数据挖掘和处理。
我认为,但凡“优秀”,就是该方向的“专家”,除了在这方面比其他人熟悉外,还要有比别人更为专业的眼光和更多的创意,更能优化和带动该方向的进展。