积极答复者
现在一线企业做VC++的主要应用领域?

问题
-
从ISO C++到VC++到MFC到COM到ATL到ACE和DirectX...
学校生涯快要结束了, 2012就要进入社会了, 想请教一下各位前辈:
1. 包括微软在内的一线企业(重点是国内), 现在用基于VC的技术, 在windows平台上主要涉及哪几个领域的应用开发?
2. 国内企业由于大量VC6的遗留代码仍然使用VC6作为开发IDE么?
3. 顺便征求一下前辈的意见: 下学期可能要做一个和电台相关项目. 现在出于需求分析阶段, 目标群体是电台的相关工作平台. 我们的负责老师(PM)已经决定使用B/S结构. 基于ASP.net(C#), 当我问到前端播放模块是否考虑activeX的时候, 项目经理告诉我可能会考虑使用silverlight. 我的问题是: 在这个项目中, VC++优势在哪里? 最适合做那块开发? 是数据库(ADO)? 还是数据采集(关联特定专业声卡, 这个完全不懂)? 还是别的?
4. 其实问题3的问题也反映了问题1,2的问题. 希望各位前辈解惑.
争取准备明年3~4月的微软暑假实习生项目.
答案
-
1) 现在Windows 平台下主要的互联网应用还都是Visual C++, 比如迅雷、腾讯QQ、暴风、MSN Messenger 一类。 国内目前金融、电信行业的一些业务也是Visual C++ 写的比如招行个人银行专业版、中国电信天翼宽带等等。
2) 就目前来看,仍有很多企业使用VC6 作为开发工具,但微软早已经不对VC6提供支持了。
3) 其实我觉得用什么语言或者开发工具做,真的不是很重要。Silverlight 可以搞定,ActiveX 也可以搞定。 就算是用ActiveX 也不一定是VC++啊,DELPHI VB也可以写啊。 Silverlight 可能开发效率高一些,但是Silverlight 运行需要安装一个runtime。 如果对于小范围受众可能不是什么大事儿,如果针对全国几千万上亿的个人用户,那么就要考虑清楚了。 其实上面提到的互联网应用用.NET 去实现也不是做不到,但是考虑到部署的问题,VC++ 的程序还是有优势的。 因为runtime (CRT MFC ATL) 都是跟着操作系统默认装好的。 Java .NET 有时候就不具备这个优势。 比如www.imegabox.com 如果你在这个网站上预定电影票,那个页面就会提示你安装JRE,否则订票程序没法运行。 Silverlight 也是一样的情况。
4) C++ 的代码效率高,编译好的程序易于部署。 从项目实施经验来看,对于.NET 项目,一个有过C++ 编程经验的程序员的代码质量总体要比一个从.NET 直接学起的程序员要好。 尤其在互操作(P/Invoke COM), 性能调优, 内存管理方面优势很明显啊。
不知道你要申请哪里的intern ? 如果是MSRA、ATC 这些部门,那么你有C++的经验对你应该帮助很大的。 如果是Sales Marketing 部门比如CSS EPG 可能要求就低一些,会更好,不会也没关系会写.NET 代码就差不多了。 如果是GTSC,那么如果你不会C++,可能你就没法为用户分析dump了。
Would you know my name, if I saw you in heaven......- 已标记为答案 北京下雨了 2011年1月17日 6:35
全部回复
-
1) 现在Windows 平台下主要的互联网应用还都是Visual C++, 比如迅雷、腾讯QQ、暴风、MSN Messenger 一类。 国内目前金融、电信行业的一些业务也是Visual C++ 写的比如招行个人银行专业版、中国电信天翼宽带等等。
2) 就目前来看,仍有很多企业使用VC6 作为开发工具,但微软早已经不对VC6提供支持了。
3) 其实我觉得用什么语言或者开发工具做,真的不是很重要。Silverlight 可以搞定,ActiveX 也可以搞定。 就算是用ActiveX 也不一定是VC++啊,DELPHI VB也可以写啊。 Silverlight 可能开发效率高一些,但是Silverlight 运行需要安装一个runtime。 如果对于小范围受众可能不是什么大事儿,如果针对全国几千万上亿的个人用户,那么就要考虑清楚了。 其实上面提到的互联网应用用.NET 去实现也不是做不到,但是考虑到部署的问题,VC++ 的程序还是有优势的。 因为runtime (CRT MFC ATL) 都是跟着操作系统默认装好的。 Java .NET 有时候就不具备这个优势。 比如www.imegabox.com 如果你在这个网站上预定电影票,那个页面就会提示你安装JRE,否则订票程序没法运行。 Silverlight 也是一样的情况。
4) C++ 的代码效率高,编译好的程序易于部署。 从项目实施经验来看,对于.NET 项目,一个有过C++ 编程经验的程序员的代码质量总体要比一个从.NET 直接学起的程序员要好。 尤其在互操作(P/Invoke COM), 性能调优, 内存管理方面优势很明显啊。
不知道你要申请哪里的intern ? 如果是MSRA、ATC 这些部门,那么你有C++的经验对你应该帮助很大的。 如果是Sales Marketing 部门比如CSS EPG 可能要求就低一些,会更好,不会也没关系会写.NET 代码就差不多了。 如果是GTSC,那么如果你不会C++,可能你就没法为用户分析dump了。
Would you know my name, if I saw you in heaven......- 已标记为答案 北京下雨了 2011年1月17日 6:35
-
谢谢Michael版主的认真解惑...
3.1) 我说一下我对于您对我的第三个问题回答的想法. 也许我在程序员这条道路上还差得很多. 未曾领略到高人领略到的, 也就是前辈所说的"其实用什么语言或者开发工具做,真的不是很重要" 的境界. 我之所以希望我在新项目里担任我所熟悉语言技术开发的责任, 可能我觉得: "我熟悉VC++, 我有较完整的vc代码库, 我不用过多的考虑IO, 异常, 容器, COM等语言细节的东西, 可以专注于完美我负责的模块的设计, 而且是我认为优雅巧妙的设计". 而如果开始学习c#, siverlight(我对C#.net技术的理解可以说只限于当初使用c#做了一节课的设计模式的报告)则完全不是这么回事. 我欠缺快速学习一门语言并且投入生产的能力, 总觉得要相对深入了解语言内幕后才能开始设计项目, 有点完美主义倾向了.
3.2) 我知道我这样的想法是不对的. 我有一个朋友和我一样, 熟悉vc++的开发, 但是在去新浪实习后, 马上转为python语言的开发工作了, 而且适应良好. 我也希望利用过完年后开学的这个ASP.net的项目, 通过对c#, siverlight的学习, 适应这种快速转型, 投入生产的能力. 希望前辈能在这个问题上给予一些建议.
至于申请哪里的intern, 我现在在着手整理我的个人经历和项目经历, 还没有明确申请部门. 但是我个人优势我还是很明确的. 我个人同时热衷于技术和演讲. 所以如果我以后能有幸加入微软, 希望能走技术转型市场的路线. 也希望前辈能如何进入微软这个门槛提供一些建议.
-
我说一点儿小体会啊。 我觉得各位为团队的贡献不在于你会什么,而是你为团队做了什么。 如果大家都不会VC++,又或是大家都觉得用Silverlight 好呢? 如果你一味的坚持,你就会被边缘化。 这在任何团队都是一样的。 反过来,如果你能做团队中其他人都做不了的事情,而团队又很需要这个技术,那么你在团队中就非常重要了。
我前阵子做了一个Visual C++ 的项目, 其实,我也没写太多的代码。 而且我也承认我绝不是团队中Visual C++ 代码写得最好的人。 后来这个项目放出去公测,发现了很多的bug,异常退出,甚至蓝屏。 我就边学边做用Windbg 为大家查找问题, 到最后几乎就不怎么写代码了。 我这么做,第一可以帮助同事加快定位问题的速度,第二可以为团队省掉大笔的GTSC 开case 的费用。 这就是我在团队中的价值。
设计模式真的很重要。 但反过来说,并不是应用了越多的设计模式的软件架构,就越是接近完美的架构。 这就是所谓的过度设计问题。
从个人发展来说,你欠缺的能力,恰好就应该是你最需要弥补的。 短板理论就不再赘述了。
如果你想通过intern,进而成为微软的FTE, 那么你需要做好长期打算的准备。 一般来说,微软转FTE 第一要看表现, 第二要看老板是否有足够的headcount。 intern 一般都是打短工,邮箱都是t- (temp)开头。 如果做得好,就有可能给一个中间职位 v- 或者 i- 又或者a-, 工资可能不高,保险福利近乎没有。 如果表现优秀,并且老板有headcount,那么才有可能把你alias 前面这些零碎去掉, 成为FTE。 我说的这个过程也许很长也许很短, 要看你个人的表现和运气。 有的人i- 了几个月半年就是FTE了。 有的人一直v- 或者i- 几年都没动静。
Would you know my name, if I saw you in heaven......