为什么国内高校没有专门开设web前端的课程?
曾经参与百度高校公开课，作为讲师在清华、北理有过授课经历。 @沈洪顺 就是这个项目的百度方面的工程师负责人，他的答案介绍的比较全面了，我想对这种现象做一下分析。 这里要从前端的特殊性说起： 理论上讲，前端在高校的基础课程应该是偏向于图形用户界面（GUI）相关的知识。GUI工程本身历史短、概念少，所以高校很少针对GUI开发设立课程，统一归类到基础学科课程中学习就好了，毕竟对于传统软件工程开发来说，开发GUI软件和开发一般软件在工程上没有太大差别。 其实高校的课程设计思路是正确的，学习基础学科之后，理论上通过“算法+数据”就能组合得到GUI软件，方法论相同。 OK，坑爹的事情来了：前端是运行在浏览器环境下的GUI软件！本来正常的计算机毕业生所掌握的知识经过简单培训是能上手传统GUI软件开发的，但前端却不能，因为你要花时间摸清楚浏览器的“脾气”，而后才是运用本科的基础知识进行开发。这个摸清浏览器“脾气”的过程，可能就要经年的积累了，这就是造成现在前端校招比较难对口的原因之一。 高校计算机课程认为前端并不特殊，再怎么复杂，也就是GUI开发而已吧。而前端从业者知道，从科班毕业之后，还有一段痛苦的自学之路。然而，这些经验应该在本科传授么？我觉得以现代前端发展这个尿性来看，是不可能的，你今天教的东西，明天就过时了，学生毕业各个都会兼容IE6也没啥用，这是很讽刺的。 “教学生点什么”是摆在眼前最大的问题。一方面要摆脱前端一直以来在高校眼中的low逼气质，另外一方面要传授一些不会过时的知识，课程设计最为关键。如果我来定制高校的前端课程，我觉得可以在已有计算机专业课基础上，增加（或加强）以下课程（必修）： 以下是一些选修课： 必修课部分我觉得都是值得在本科学习的，一方面是在已有计算机基础上深入了解一些编译原理、数据结构、软件工程等学科是如何在浏览器这个集大成者的软件上应用的，这是对已有计算机基础课程的延伸，符合高校课程设计胃口；另一方面我们让学生在本科期间就从浏览器内核层面理解浏览器的工作原理，缩短我在开篇提到的“摸清浏览器脾气”的过程，一举两得。 说着说着，我突然好怀念大学时光。。。。 ========【4.22补充】========很多答案提到了“我们不是技校，不用学前端”。摔，这明显是不了解本科课程设计的思路。比如现阶段本科课程与计算机直接相关的一般有：计算机组成原理、数电模电、汇编、编译原理、数据结构、操作系统等课程，但是最后教授出来的学生是为了让他们都去研发CPU、写编译器、设计操作系统么？显然不是，本科课程教的是基本的计算机科学思维方式+了解基本的计算机原理，为将来的工作和深造打下一个基础，是在训练学科素养。所以本科也没有开设《20天学会C++》，《php从入门到精通》这些就是所谓的“技校课程”吧？ 所以，如果是前端在高校的课程，其课程设计思路也不用是教你“怎么写前端”，而可以以“如何设计实现现代浏览器”的目标去授课，最后，学这些的学生毕业出来才大多去写前端。。。（哈哈） 相信现代浏览器的复杂程度和涉及的知识广度已经足够开设几个学期的课程了，而且这些内容对于基础本科课程具有一定的巩固作用。深入浏览器内核研究可以覆盖很多本科课程的知识点，如果几个学习了这个课程的本科生能在期末实现一个简易的浏览器，这个课程也足够“高大上”了吧，即不失学院派的学术形象，又是一个与现代IT时代高度契合的课题，是本科接触前端的一种非常合理的途径。 另，这里附上  @钱康来 同学答案中给出的清华大学web前端公开课的地址： Web前端技术实训课程的课程信息 很感谢这个公开课能摒弃传统观念拥抱前端，我读书那会要是能接触到这些就好了。 什么高端低端的，事在人为好么！！！