整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

前端程序员入门html的4大方法,这两本神书真心经典!

日,有不少的程序员问w3cschool这边,前端开发应该怎么学?

有个小白程序员表示,自己走了很多弯路,学java开发没学透不能就业,现在学前端又不知道如何下手,前后算起来浪费了不少的时间。

针对此问题,下面w3cschool就给程序员小伙伴们答疑解惑,并分享一些干货。

前端有三架马车你一定要学会“驾驭”,HTML+CSS+Javascript。

照目前看来,网上各种前端学习资料又多又杂,确实让不少入门前端的小伙伴不知所措。要选什么学习资料?如何入门前端开发?

0、Come on,来点国外的土特产视频!

关于视频的选择,直接网上搜“30 Days to Learn HTML & CSS”这个视频来看。

这个视频是国外的前端开发特产,大小有1G多吧!

前端开发可以照前端开发的视频进行实战训练,建议可以一边开着NotePad++ ,一边看视频,一边敲代码。

另外,可以用有道云,或者是印象笔记稍微做点记录,这会加快你对html、css的学习。

1、从经典的w3cschool前端html教程学习

当你咨询了很多的前端工程师,他们都会推荐你从经典的w3cschool基础教程开始,把上面的课程刷一遍。

2、html微课

通过前面两步的学习,你基本上算是入门html啦。

但相信也会有些程序员觉得很枯燥,那不妨可以尝试w3cschool新开发的html微课。

比如之前的《刀塔传奇》,很多人每天刷副本都可以乐此不疲,因为游戏升级通关是比较有趣的。

w3cschool微课同样采用了闯关刷副本的模式,你通过每天有趣的刷副本闯关,就可以掌握html重点的概念和编程技能。

3、前端开发神书推荐

会有些前辈会给你推荐《DOM编程艺术》、《Javascript权威指南》、《Javascript高级程序设计》、《锋利的JQuery》等,但对于新手来说似乎略难。

不妨去看Head first html, xhtml & CSS这两本简直是神书,真心经典!

/ InfoQ记者 Tina (微信:whitecrow-tina)

又将搜索业务往前推进了一步。4 月 30 日,宣布上线“头条百科”测试版。界面简洁,除了搜索框外,只有一个 Slogan:来这里,认识世界!

这是头条搜索继 2019 年 8 月推出头条搜索网页版,2020 年 2 月上架头条搜索 APP 之后的新动作。仅经过一年多的发展,尽管没有大肆宣传,头条搜索也吸引了不少用户的注意,在用户体验方面也获得了用户的肯定。

关于头条搜索的相关技术,在外界极少量的资料中,我们看到朱文佳在他的演讲中提到:“我们建立了一套业界独有的搜索技术架构,我们从推荐引擎上探索出机器学习的方案,然后把这套技术架构和底层算法迁移到搜索引擎上,发现效果也很好。“

实际上,于 2017 年才开始组建搜索技术团队,头条搜索如何在这么短的时间里,做到这种效果?他们的搜索引擎到底与传统引擎有何不同?头条搜索是否打造出自己“理想的搜索中台架构”?

为此,InfoQ 独家采访了搜索技术部门,这也是头条搜索技术团队第一次接受外界采访。

从推荐到搜索

从 2012 年开始,开始做推荐引擎。而到了 2016 年,在资讯信息分发市场上,有 50% 的内容分发是通过算法来完成的。

智能推荐引擎通过算法,综合用户特征、文章特征、环境特征,得出用户对内容感兴趣的概率,返回 TopN 的结果满足用户的需求。从无到有搭起平台,随着大数据技术的发展,在 2014 年及时引入实时流架构,用户的行为信息可以被模型快速捕捉并反馈至下一次刷新的推荐效果。 从成立开始,这家企业就开始大量招募擅长机器学习、推荐算法的技术人才。当时互联网还正处于招移动端、iOS 技术人员的阶段,有猎头评价:“很多人认为他们疯掉了”。

实际上,这些人才为推荐系统底层算法打下了基础。

随后,在构建搜索系统架构时,将从推荐引擎上探索出的技术架构和底层算法迁移到搜索引擎上。“发现效果也很好。” CEO 朱文佳在演讲中说。

头条搜索技术团队负责人在采访里表示:“推荐和搜索有一些相通的地方,背后都要有 AI 来理解用户的需求和内容,理解的越清楚,就越能帮助到用户。像大规模机器学习、深度学习、实时更新等推荐上成功应用的方法,都是建模用户、内容的有效方法。所以将这些技术应用到搜索上,也会取得不错的效果。”

实时更新也是传统搜索引擎的短板。最近几年随着 Storm、Spark streaming、Flink 等框架的成熟,实时流处理才能成为各公司 AI 平台的标配。

现在实时架构同样也被引入到头条搜索的搜索引擎里。“基于新闻推荐时效性的理解和经验,我们在搜索上也研发了全量实时更新的百亿倒排索引架构,大幅提升了内容的时效性,大事件发生时,往往最先能在头条搜索到。”头条搜索技术团队负责人表示。

即便如此,推荐与搜索还是存在不少差异。头条搜索技术团队负责人在采访中指出:“搜索要解决好长尾问题,不能过度依赖用户的行为反馈去理解特定的查询词、网页,而是需要寻找更泛化的方法。为了让通用技术发挥优势,也需要把搜索上特有的问题理解得更加充分,例如怎么做好对多语言的理解,怎么在万亿网页的检索系统中权衡好 Explore/Exploit,怎么在性能要求苛刻的场景中应用好复杂模型等等。另一方面,在推荐上目前不一定那么有效的方法,在搜索上却有可能大展拳脚,例如强化学习、迁移学习。整体来看,搜索系统复杂多样,对技术的广度、深度有非常高的要求,发挥的空间也更大。”

新技术应用

“很多新技术还没有被充分用到搜索引擎里去。”

作为全球最大的搜索引擎公司,Google 也是我们公认的大数据鼻祖,它存储着全世界几乎所有可访问的网页,数目可能超过十万亿规模。为了将这些文件存储并使用起来,Google 开发了 GFS、Bigtable 和 MapReduce 三驾马车。从此大数据得以繁荣发展,行业里也产生了数百万大数据从业需求。随着数据采集、存储、计算能力的提升,进一步开启了“AI 时代”。

搜索引擎的进化史,就是人工智能技术的进化史。今天,无论是搜索、还是信息流,所用的技术完全都是人工智能技术,包括谷歌在内的搜索引擎厂商,都在不断将人工智能新技术应用到搜索引擎中。

头条搜索在新技术应用上,也做了很多大胆的尝试。

例如,BERT 是 2018 年时 Google 在 NLP 上的一个重要突破,2019 年 10 月,Google 宣布将 BERT 算法应用到搜索引擎中,搜索结果得到了 10% 的提升。Google 宣称这是 Google 搜索引擎过去五年中最大、最正向的变化,而且也许是有史以来最大的变化。

但 Google 并不是第一家将 BERT 应用在搜索引擎里的,头条搜索技术团队负责人在采访中提到:“早在 2019 年初,头条搜索就已经将 BERT 在头条搜索上全流量应用,并且获得了显著的效果提升。上线得比 Google 更早,依靠的是大家大胆创新和快速迭代。”

此外,头条搜索技术团队负责人也认为,AI 技术能够更好的对问题进行端到端建模,例如网页内容的理解,传统方法会对这一问题进行不断细分,基于 HTML 结构等信息,对不同的子任务应用不同的规则,反复迭代来提升效果。而利用 AI 技术,头条搜索将网页渲染成图片,联合视觉、文本、HTML 结构等特征,对相似任务进行统一的端到端建模和多任务学习,大幅提高了分类、信息抽取的效果和效率。

头条搜索技术团队负责人表示,头条搜索技术团队也在继续借助 AI 探索更多的搜索引擎技术问题,例如多模态技术是否可端到端地搜索出更相关的图片、小视频;抓取、索引构建系统有没有可能基于模型重新设计;强化学习是否能让搜索排序更加智能并节约计算成本等等。

搜索的另一种可能

如果有这么一个可能,就是让老牌搜索引擎厂商在发展二十年后重做搜索系统,那么新的搜索系统会有什么不同?

搜索引擎是极其复杂的大工程,它通常都要将整个系统分解为若干子系统,比如会分解为链接发现、索引筛选、Query 理解、Ranking 等步骤。每一步骤内部又会进一步分解,这个过程可以无限分解下去,由不同的人和团队分工解决。但这个过程有个致命缺点,在每一步的分解过程中都会有信息损失,最后联合起来导致整个系统不能达到最优状态,比如 A 步骤精度 90%、B 步骤精度 90%、对接起来最终系统精度可能只有 80%。

这种精分细解,是传统搜索引擎受限于当时的技术手段,为了有效开展工作、更好地提升产品效果采取的技术决策,这在当时是非常正确的。“但精度不足,也限制了传统搜索引擎进一步提升效果。”在谈到传统搜索引擎的缺陷时,头条搜索技术团队负责人提到。

现在做搜索引擎,头条搜索技术团队负责人告诉 InfoQ,头条搜索技术团队主要有三个优势:

  • 第一,会更大胆地探索 AI 技术。相对传统搜索引擎的局限,倾向于对系统有限分解,重度使用前沿 AI 技术进行端到端的问题建模,系统性降低效果损失。
  • 第二,没有历史的包袱,才有机会去重新审视一个合理的搜索引擎架构应该如何设计、如何避免走弯路、容纳新技术,并且有足够高的研发效率。头条在短时间就让搜索效果进入第一梯队,合理的架构发挥了很大的作用。头条搜索还组建了专门的工程架构团队,专注于分布式系统、机器学习系统的构建和性能优化。一些深入到内存、SSD、Disk 甚至一些新硬件的优化,或一些对倒排索引压缩、召回等算法的底层优化,大幅降低了硬件成本,提升了搜索速度和稳定性。
  • 第三,优秀的团队和合理系统设计保证了“迭代效率”。头条搜索技术团队的目标是建设一个服务于全公司的搜索技术中台,在对标谷歌做一流全网搜索引擎的同时,也全力提升抖音、西瓜等产品的搜索体验。虽然现在头条搜索技术团队人数不到 200 人,却聚集了很多 Google、百度、360、Bing 这些老牌搜索公司的核心技术骨干,同时还有不少原推荐、广告、AI Lab 团队的核心成员,以及一批非常优秀的校招生,他们近 30% 来自于清华北大。为了保证“迭代效率”,头条搜索目前每周都会对线上进行数十次的优化更新,一些从其他搜索引擎公司加入头条搜索技术团队的同学表示,以前需要半年以上时间上线的项目,在头条搜索只需要几周。当然,快速的迭代也更容易犯错,头条搜索也设计了更多的稳定性机制,提前避免出错并大幅降低错误的影响,让问题可控,也让团队敢放开手脚。

我们在招聘

字节跳动公司搜索部门汇聚了大量行业顶尖技术精英,旨在从 0 到 1 打造一个用户体验更加理想的通用搜索引擎,支持公司所有产品的搜索功能,包括、抖音、西瓜、火山、懂车帝等多款备受欢迎的知名 app。在这里你有机会参与工业级搜索引擎从无到有的研发工作,并在此过程中挑战大规模分布式存储和计算架构、NLP、人工智能、ranking 等世界难题,很好地锻炼自己的工程能力、算法能力、业务能力。加入我们,参与并见证一个新产品的成长和成功,和大牛们一起完成最有挑战性的工作吧!

我们需要

搜索算法工程师/搜索架构工程师

搜索算法实习生/搜索架构实习生

扫码可获上述职位详情

任何相关问题咨询:searchhr@bytedance.com

、目录

  • HTML 基本概念
  • HTML 基本结构
  • HTML 基本标签

二、HTML基本概念

2.1、什么是 HTML

  • 超文本标记语言(Hyper Text Markup Language)
  • 描述网页的语言
  • 传输最简单的文本内容
  • 可以表达文字内容之外的语言——HTML1.0

2.2、HTML的发展

  • html1.0—-xhtml1.0( 过渡 )—-xhtml2.0( 放弃 )——html5

三、HTML基本结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>

四、HTML基本标签

4.1、标签和属性

  • 双标签:<标签名称></标签名称>
  • 单标签:<标签名 />

4.2、标签的属性

  • 基本格式:<标签名 属性1=“值1” 属性2=“值2”></标签名>
    • 标签可以拥有多个属性
    • 属性必须写在开始标签中,位于标签名后面
    • 属性之间不区分顺序
    • 标签与属性之间、属性与属性之间用空格隔开
    • 每个属性都有默认值,省略属性则表示使用默认值

4.2、HTML全局属性

  • class:规定元素的类名
  • id:规定元素唯一的id
  • lang:设置元素中内容的语言代码
  • style:规定元素的行内样式
  • title:规定元素的额外信息

五、HTML事件

5.1、HTML事件—窗口事件

  • 使用HTML事件触发浏览器中的行为,比如启动某一段JavaScript
  • 使用于body标签中
    • onblur:当窗口失去焦点时运行脚本
    • onfocus:当窗口获得焦点时运行脚本
    • onload:当加载文档时运行脚本

5.2、HTML事件—表单事件

  • form
    • onblur:当窗口失去焦点时运行脚本
    • onchange:当元素改变时运行脚本
    • onfocus:当窗口获得焦点时运行脚本
    • onreset:当表单重置时运行脚本,HTML5不支持
    • onselect:当选取元素时运行脚本
    • onsubmit:当提交表单时运行脚本

5.3、HTML事件—键盘事件

  • 键盘事件
    • onkeydown:当按下键时运行脚本
    • onkeypress:当按下并松开键时运行脚本
    • onkeyup:当松开键时运行脚本

5.4、HTML事件—鼠标事件

  • 鼠标事件
    • onclick:当单击鼠标时运行脚本
    • ondblclick:当双击鼠标时运行脚本
    • onmousedown:当按下鼠标时运行脚本
    • onmousemove:当鼠标指针移动时运行脚本
    • onmouseout:当鼠标指针移出元素时运行脚本
    • onmouseover:当鼠标指针移至元素之上时运行脚本
    • onmouseup:当松开鼠标按钮时运行脚本

5.5、HTML事件—多媒体事件

  • 多媒体事件
    • onabort:当发生中止事件时运行脚本

六、标签

6.1、注释标签

  • 标签: < !-- 注释内容 -- >
  • 作用:在源文档中插入注释。注释不会在浏览器中显示

6.2、文档标题标签

  • 标签:
  • 作用:
    • 定义浏览器工具栏中的标题
    • 提供页面被收藏时的标题
    • 显示在搜索引擎中显示的页面标题

6.3、标题标签

  • 标签:

  • 作用:
    • 用来定义HTML的标题
    • 用例定义最高等级的标题
    • 用例定义最低等级的标题
  • 属性:全局属性、事件属性

6.4、段落标签

  • 标签:
  • 作用:定义段落
  • 属性:全局属性,事件属性

6.5、容器标签1

  • 标签:
  • 作用:对行内元素进行组合,提供了一种将文本或文档的一部分独立出来的方式
  • 属性:全局属性、事件属性

6.7、容器标签2

  • 标签:
  • 作用:
    • 定义了HTML文档中一个分隔区块或一个区域部分
    • 经常与CSS一起使用,用于定义网页布局
  • 属性:全局属性、事件属性

6.8、图像标签

  • 标签:
  • 作用:定义HTML页面中的图像
  • 属性:
    • src:定义显示图像的URL(必选)
    • alt:定义图像的替代文本(必选)
    • title:鼠标悬停图像时显示的文本
    • width:图像的宽度
    • height:图像的高度
    • border:设置图像边框的宽度

6.9、超链接标签

  • 标签:
  • 定义超链接,从一个页面链接到另一个页面
  • 属性:全局属性、事件属性
    • href:规定链接的目标URL

6.10、列表标签

  • 标签:
<ul>
<li></li>
<li></li>
</ul>
  • 作用:
    • 定义无序列表
      * <ul>与<li>一起使用,创建无序列表
  • 属性:全局属性、事件属性

6.11、列表标签 - 有序列表

  • 标签:<ol><li>...</li><li>...</li></ol>
  • 作用:
    • 定义了一个有序列表,列表排序以数字来显示
    • 使用
    • 标签来定义列表选项
  • 属性:全局属性、事件属性

5.12、表格标签

  • 标签:
    • 表格:<table></table>
    • 行:<tr></tr>
    • 单元格:<td></td>
  • 作用:定义表格
  • 属性:全局属性、事件属性
    • border:定义表格是否有边框

6.13、表单域

  • 标签:<form></form>
  • 创建用户输入的HTML表单
  • 属性:全局属性、事件属性
    • action:指定接收并处理表单信息的服务器URL地址
    • method:表单数据提交的方式
    • name:指定表单的名称

6.14、表单标签

  • 标签:
  • 作用:定义了用户可以在其中输入的字段,输入字段可以通过多种方式改变,取决于type的属性
  • 属性、全局属性、事件属性
    • type:规定要显示input标签的元素的类型
      • text:单行文本(不可换行)
      • password:密码输入框
      • radio:单选框(配合name可以实现单选效果)
      • checkbox:复选框
      • button:普通按钮
      • submit:提交按钮
      • reset:重置按钮
      • image:图像形式的提交按钮
      • file:文件域,点击之后打开文件选择器
    • name:控件名称,name相同则表示为同一组数据
    • value:指定input元素的值
    • size:显示大小
    • checked:是否被选中
    • maxlength:控制输入的最大字符长度

6.15、文本标签

  • 标签:
  • 定义一个多行的文本输入控件
  • 属性:全局属性、事件属性
    • cols:规定文本区域内可见的宽度
    • disabled:规定禁用文本区域
    • name:规定文本区域的名称
    • readonly:规定文本区域为只读
    • rows:规定文本区域内可见的行
    • placeholder:规定一个简短的提示,描述文本区域内期望的输入值

6.16、下拉菜单

  • 标签:…
  • 作用:
    • 用来创建下拉列表
    • 中的标签定义了列表中的可用选项
  • 属性:全局属性、事件属性
    • isabled:当属性为true时,会禁用下拉列表
    • multiple:当属性为true时,可选择多个选项
    • name:定义下拉列表的名称
    • size:规定下拉列表中可见选项的数目

霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。