3.算法综合实践——搜索引擎
上网搜索有关“搜索引擎”的相关资料,包括但不限于以下方面(至少要有2个方面):搜索引擎岗位要求、搜索引擎工作原理、搜索引 擎涉及到教材中哪些算法、搜索引擎的盈利模式、搜索引擎源码链接、国内外搜索引擎公司现状等。
<1>搜索引擎指自动从因特网搜集信息,经过一定整理以后,提供给用户进行查询的系统。因特网上的信息浩瀚万千,而且毫无秩序,所有的信息像汪洋上的一个个小岛,网页链接是这些小岛之间纵横交错的桥梁,而搜索引擎,则为用户绘制一幅一目了然的信息地图,供用户随时查阅。
<2>搜索引擎的工作原理大致可以分为:
1、搜集信息:搜索引擎的信息搜集基本都是自动的。搜索引擎利用称为网络蜘蛛(spider)的自动搜索机器人程序来连上每一个网页上的超连结。机器人程序根据网页链到其他中的超链接,就象日常生活中所说的“一传十,十传百……”一样,从少数几个网页开始,连到数据库上所有到其他网页的链接。理论上,若网页上有适当的超连结,机器人便可以遍历绝大部分网页。
2、整理信息:搜索引擎整理信息的过程称为“建立索引”。搜索引擎不仅要保存搜集起来的信息,还要将它们按照一定的规则进行编排。这样,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的资料。想象一下,如果信息是不按任何规则地随意堆放在搜索引擎的数据库中,那么它每次找资料都得把整个资料库完全翻查一遍,如此一来再快的计算机系统也没有用。
3、接受查询:用户向搜索引擎发出查询,搜索引擎接受查询并向用户返回资料。搜索引擎每时每刻都要接到来自大量用户的几乎是同时发出的查询,它按照每个用户的要求检查自己的索引,在极短时间内找到用户需要的资料,并返回给用户。目前,搜索引擎返回主要是以网页链接的形式提供的,这些通过这些链接,用户便能到达含有自己所需资料的网页。通常搜索引擎会在这些链接下提供一小段来自这些网页的摘要信息以帮助用户判断此网页是否含有自己需要的内容。
<3>搜索引擎的盈利模式:
第一类: 左侧排名
客户为用户的每次点击搜索付钱。页面的左右两边都推出竞价服务,搜索次序是竞价结果优先。国内主要采用对象:百度和雅虎中国
第二类:右侧排名
搜索出来的结果是,左边为真实的搜索结果,从不进行竞价排名,可以保证用户的体验和需要的搜索结果。搜索页面的右边为盈利模式,采用固定排名。国内主要采用对象:Google
第三类:按时间计费
客户为某个时间段、某个时期的搜索结果显示付钱,有可能会附带竞价排名和固定排名。国内主要采用对象:门户网站
第四类:中文网址
在网民的电脑上安装地址栏搜索插件,在搜索结果页面的左边是竞价的搜索词汇。国内主要采用对象:3721和通用网址
4 .实习与工作
上招聘网站(如 51job、智联招聘)上查看自己感兴趣的职位与要求。
作业要求:写下自己感兴趣工作的至少2个岗位名称(如Java程序员、搜索引擎工程师)、工作岗位具体要求、自身目前具备哪些条件、有哪些不足的地方并如何弥补。
(1)网页设计师
工作描述:
1、熟悉网站建设的流程,具备独立进行网站项目的整体版式、风格设计能力。
2、精通Photoshop,Flash,Drewamweaver等网页设计美工软件,有网页设计工作经验。
3、熟练掌握DIV+CSS的运用与制作,熟悉各种浏览器兼容性调整(至少3种浏览器ie6、ie7、ff);熟悉HTML/CSS/Javaerror等并能熟练手工编辑修改HTML源代码。
4、具有良好的美术功底以及良好的创意构思能力,对色彩敏感,具有把握不同风格页面的良好能力。
5、有良好的组织观念和团队合作精神、敬业精神,工作积极主动,细致专注,能承受工作压力。
6、会flash动画设计.
职位要求:
1)有自信,学习能力强。男女不限,两年以上网页设计经验;
2)对大型网站的页面设计有独到见解,简历请附成功案例;
3)熟悉Photoshop,Dreamwaver、Firework、Flash等网页制作软件,熟悉Flash As;熟悉HTML,javascript,div+CSS,web2.0等Web标准;
4)对所从事的事业有热情,对行业相关的新技术有相应的敏感度,善沟通及能吃苦耐劳者优先;
5)有创意,能独立完成网站的策划制作,了解网页设计的细节知识,对互联网有深刻的认识;
6)有大型网站工作经验者优先。
(2)JAVA高级开发工程师 |
岗位职责:
1、负责前后端程序的设计及编写;
2、参与项目需求分析和系统设计;
3、参与核心/重要模块的设计、编码、测试以及相关文档编写;
4、参与代码设计、审核和检查;
5、能独立解决开发中遇到的难点问题;
任职资格:
1、精通Java编程,熟练使用J2EE设计模式。有高并发、分布式系统开发经验;
2、 4年以上Web项目实际开发经验;精通web mvc框架,熟悉JSP/Servlet、JavaScript、extjs、JQuery等WEB开发技术,熟悉lucene,Spring,Struts和Hibernate (ibatis)等主流的开发框架;
3、业务理解力强,有过彩票项目、金融、电商开发经验优先;
4、熟悉oracle数据库;
5、熟悉apache、tomcat等应用服务器部署和配置;
6、掌握项目开发中常用的工具及开源软件。
7、有大型项目开发经验,具备一定的架构设计能力;
(3)Unity 3D 主程 |
岗位职责:
1、使用Unity 3D开发基于iOS的手机游戏客户端;
2、管理客户端开发团队;
任职要求:
1、精通C++或C#语言及面向对象编程、具有严谨的逻辑思维能力;
2、熟悉游戏相关的基本算法,熟悉常规的物理算,熟悉计算机图形学。
3、三年以上相关工作经验,有成功项目者优先;
4、良好的沟通协调能力及团队合作精神,抗压力强
5、有Unity 3D开发3D游戏项目经验优先。
对自己所中意的岗位仅仅具备了一些基本的能力,有很多地方需要加强学习 ,相信自己在今后的学习中会进一步加强理论知识的学习,加强技术技能的提升,争取做到更好!
第2次实验——算法基本功 与 综合思考,布布扣,bubuko.com