知乎话题:如何面试.NET/ASP.NET工程师?
No.1
初级:
1.对 C#(推荐) 或 VB 语言直至与 .NET 4 (目前为止)相匹配的版本,绝大多数特性熟悉并使用过
2.通晓
HTTP 协议的结构,及 ASP.NET 与 HTTP 请求、Web 页面之间的关系
3.能独立运用 HTML 构建页面,并掌握一定的
JavaScript、CSS 知识
4.能独立开发具有业务功能的 Web Form 或 MVC 应用程序
5.能完成到本地 IIS
和服务器上的发布,有 Web 安全意识
中级:
1.熟练使用 .NET 4 及更新版本的特性,知晓不同大版本之间的差异,以及各版本平台、语言和开发工具的对应关系
2使用
ASP.NET MVC 以及 Web Form 开发项目,并了解两种机制的异同,根据项目场景作出合适的选择
3.知晓 IIS 7
集成模式,并了解与经典模式的异同;熟悉 http://ASP.NET
运行机制,独立完成模块和处理程序的开发
4.有系统分层的概念,能使用面向对象的方法创建模型和服务,能独立组织出解决方案的结构
5.运用设计工具独立设计数据库,运用
ORM 工具与多种数据源的交互,知晓各种数据源的大概差异
6.至少使用过一种源代码管理工具,参与过 2 人以上协作完成的项目
高级:
1.至少对一种其他的服务器开发平台(如 LAMP、Java、Python、Node.js 等)有深入的了解,并清楚其与ASP.NET
之间的主要区别;明确 ASP.NET 在整个项目布局中所处的位置
2.对 C# 3.0 以上版本(或 VB
对应版本)有深入研究,熟练地处理多线程开发;合理运用异步和 COM 组件等功能解决问题
3.深入了解 ASP.NET
运行机制,对应用程序域、配置、模板引擎、编译、请求处理管线等十分了解
4.能独立完成ASP.NET Web Form 中用户控件、服务器控件的编写;对
ASP.NET MVC 中的路由机制、控制器调用方式、过滤器、模型绑定与验证等特性十分熟悉,并能根据现有机制轻松完成扩展与 定制
5.能结合对 WCF
和 Web API 等技术的应用,构建分布式的系统
6.清楚 IIS
的集成模式与经典模式、请求过滤与跟踪、信任级别等特性与功能以及应用程序池进程数量、进程模型、回收等特性与功能对应用程序的影响
7.对项目的性能、压力和安全性要求有明确的认识,熟练运用
http://ASP.NET 输出缓存、进程内或分布式数据缓存提高性能;合理配置 IIS 输出缓存、压缩;了解常见的 Web
攻击方法并加以防范
8.熟知请求和响应在各个过程的状态,并适时完成诸如请求流预处理、拦截、缓存、统计等功能
9.对常见设计模式和思想非常熟悉,合理在项目中加以应用;熟练运用常见的开源和第三方库,结合项目需求,合理选用
DI、ORM
等用于提升开发效率的工具
10.能独立完成大型项目的架构,独立完成系统中日志、缓存、数据处理等基础功能的开发计划
11.对整个项目数据库设计、界面实现与优化、领域模型和数据服务、调试与测试、部署与服务器配置均能完整掌控
12.能完成组织和协调
5 人以上人员参与的项目的开发计划和工作分配,把握开发进度,激励团队前进
当然,对于更高级的人才,上不封顶。
No.2
IF你是想要开发小型网站,那么你需要熟练C#语法,ASP.NET
的基础web知识以及SQL知识和MSSQL基本用法,一个月的时间就能写出一个小型的简陋的博客。 然后你想要让她界面布局变得合理漂
亮,你需要学习网页方面的HTML和css;如果你要增加动态效果,你需要学习JavaScript语言,来提升整个网站的动态效果。这样你的比较好的博客就能拿出手了。
这个过程中用的技术有:C#基础语法,各种控件的基本用法,SQL知识,操作MSSQL数据库的命令,HTML,CSS,JavaScript。做到先能用基础的语法,这样变学边练习。
ELSE
IF你想要开发大型的企业应用,基础知识的学习例如上图中提到的操作系统、数据结构、算法、设计模式已经其他的够专业方面的知识。
等你跨越了第一阶段的时候,你接触到了更多这方面知识领域的人,通过他们更能找出哪方面你最缺少的知识。这个时候,不是说你先学会上面那张图上所有的知识,看完所有的书,你才能动手去做这
个,而是你做的过程中去学习。在《程序员的思维修炼》中提到了德雷福斯模型,新手
——高级新手——胜任者——精通者——专家。很多人是新手,但更大的一部分人是高级新手,了解基础知识,
但在需要实际用的时候,却又不但用到实际的工作中。所以所谓入门,就是让你去解决遇到的问题运用自己所学到知识。
No.3
你可以去如鹏网学学杨中科老师的视频!这样我觉得还是能比较快的提高你的asp.net的水平的!
应你的要求,我今天就详细讲讲我的学习经验吧,不过可能我的不是最终的捷径。
首先,你照着杨老师给的视频的路线走,坚持吧视频看完,当然看的同时必须要敲代码,就算你照着视频一字不漏的敲下来也好,这样绝对比你光看视频不敲代码好很多!
看完后,你可以试着做一个新闻系统之类的项目实战下,然后最开始可以都用服务器控件,包括ajax。做完后,你慢慢的尝试着放弃服务器控件,ajax就用杨老师将的jquery来做,这些都做完后,别人
会发现你真的不同了,但是你自己会发现你不知道的东西越来越多!呵呵,是不是迷茫了?这是必然的,因为你学的多了,知道的自然就会变多,当然不知道的也从知道的里头变的多起来!可能有点绕
,慢慢体会吧!
然后,你可以开始看一些web的架构,三层经典架构,工厂模式,等等。
然后再可以看看silverlight和wcf!
同时,你也可以看看数据结构的东西,比较好的公司去笔试和面试的时候都会考数据结构的!
这就是我大概的学习过程吧!希望可以切磋切磋!
No.4
1.语言:C# 非常熟练
2..NET框架,熟练掌握ASP.net基本开发技能,一定项目开发技能和经历
3.熟练掌握SQL
Server,熟练编写T-SQL语句,了解SQL性能优化
4.熟悉 JavaScript 脚本编写、熟练使用 Ajax
技术。
5.精通XML,能基于DIV+CSS构建页面。
6.熟练掌握.Net开发框架,熟悉.Net
MVC/MVP编程架构;理解面向对象(OO)编程思想,熟悉常用的设计模式,熟悉UML。
7.熟悉Flash或Silverlight中至少一种开发技术,具备一般网页动画的开发能力。
8.熟悉TCP/IP,熟悉C#
Socket编程;熟悉WPF。
其它要求:
1.思维能力:面对非常棘手的问题,能够恰当地运用已有的概念、方法、技术等多种手段,分析问题产生的原因,找出最有效的应对解决办法;
2.团队合作:愿意帮助其他成员解决遇到的问题,无保留地将自己所掌握的知识与技能传授给其他成员;
3.主动性:主动挖掘潜在问题,寻找适当机会,并采取必要的措施应对机遇与挑战。
原文:http://www.cnblogs.com/the-three/p/3737111.html