① 请问达到怎样的水平才能进微软这类公司从事搞编译器这类工作
我读研究生的时候才对编译开始有兴趣,当我毕业时我不知道我对什么感兴趣。结果,当时的成绩很好,他们也跟上了形势,然后给了我一些时间思考。
后来我也在想,我其实更大的兴趣是什么呢?其实是C++和挑战,做编译器也许是方便我更好的研究它,也有很大的挑战性,也许有一天我会因为发现更大的挑战而不做编译器了。
有什么书和方法,有很好的答案,我不会说。写下这些内容有点荒唐。
② 软件开发的专业的毕业生,在就业方面有哪些不错的岗位可以挑选
网络程序员网站开发工程师。网络工程师等。简单管理信息系统开发维护人员、网页制作及客户端脚本编写人员、初级数据库管理维护人员、数据库开发工程师、系统分析设计工程、软件项目配置管理员、文档编写工程师等。
运维负责控制项目的正常运行。服务监控技术、服务故障管理、服务容量管理、服务性能优化等技术需求很多。产品岗。产品需要根据用户的需求决定开发哪种产品,选择哪种技术和商业模式,并推动相应的产品开发组织。这个职场对理解用户体验、把握用户需求、产品设计框架和商业感的综合能力要求更高。第六,操作岗位。运营岗位主要从事内容建设、用户维护、活动策划和数据分析,确保产品与用户的连接。
③ 计算机编译程序主要是做什么工作
编译程序就是将高级语言程序设计语言源程序翻译成计算机可执行代码的软件
④ 精通了C++,C,MFC,SQL数据库,操作系统,UML建模,软件工程可以找到专业方面的工作么 大概可以找什么工作
前5个是技术,后两个是管理协调;
在国内基本上首先要靠技术去找工作,然后利用你的软件工程的理念(还要看你的口才和魅力)去影响公司从而获得更高的收入。
不过这个谁也不敢说精通的。
例如我问一下,C++你是精通STL还是VC还是,C/C++你用过什么编译器,编译选项熟悉吗,Makefile或者prj文件熟悉吗,操作系统你熟悉哪几个,对内核对象,系统调用熟悉多少;
当然其实这些都不重要;
最重要的是,假设现在有个产品的Spec,你觉得你能多久选好工具,做好架构,多久完成开发。
⑤ 国内有做编译器相关的公司么
Windows下开发C语言也有很多产品。包括Eclipse(使用CDT插件)、NetBeans(C++插件)。还有Borland公司的产品C++Bulider等等。很多免费和收费的IDE工具都可以使用。Visual C++6可以说是很老的产品了,不过现在还是有人在用。
⑥ 软件工程专业毕业后出来的工作岗位有哪些
成为公司的技术总监是很多程序员的梦想。这条路线是从初级程序员成长为高级程序员之后,以做项目为工作重点,进而发展成项目经理、开发经理,最终成为技术总监甚至公司副总裁。这些程序员走的是技术管理路线,从做项目开始,逐渐积累管理经验,然后成长为优秀的技术管理者。技术总监在公司甚至技术界的影响力非同一般,对于那些有志于成为公司领导层的程序员,是个很大的诱惑。但是权力大、管的人多,就意味着更大的压力,技术总监不仅要保持对新技术的敏感,还要抽出精力做管理。比起成为纯技术专家,这条路也许更为艰难。 还有一些程序员职业发展的终点是总架构师、总设计师。这类程序员的兴趣,不是某种特定的技术,而是偏重对软件产品或者软件应用项目的设计。如果将软件项目开发团队比作一个乐队,那么程序员就相当于一名乐手(比如小提琴手、长笛手等),他们负责将自己的乐器演奏好;项目经理是乐队指挥,负责指挥和协调这个乐队的配合;架构师则相当于作曲家。从入门的架构师开始,逐渐成为资深架构师乃至总架构师。如同历史上伟大的作曲家,杰出的架构师能够在各种软件中谱写出旋律优美的“曲子”。 另外一些程序员心怀创业的理想,等到自己有了一定的技术积累,再掌握一些市场需求以及管理方法,他们会开始创业之路。一旦成功,这类人的影响力会非常大,像Google和雅虎的创始人,都是技术创业的成功典范。但是这条路也是最艰辛的,有句话叫做“不当家不知柴米贵”,不亲自创业的人也很难体会它的艰辛。创业涉及方方面面,稍有差池就会功亏一篑,投身创业的程序员并不少,但是真正能成功的少之又少。踏上这条路不仅需要过人的勇气和魄力,更需要坚韧不拔的毅力,以及深度的商业智慧,再加上市场机会,才能够赢到最后。 很多程序员会走上技术支持路线,进而发展成为精通业务的技术和行业咨询专家。这类程序员会在成为高级程序员之后加入销售团队,直接面对客户,负责技术层面的问题。如果对某一行业(比如银行、电信)非常熟悉,久而久之,就成为精通这个行业技术的专家;如果对于某一类解决方案(比如ERP、CRM、SCM)非常擅长,就可以发展成为跨行业的技术专家。 还有一部分程序员会成为IT专栏作家和自由职业者。这些人通常对写作比较感兴趣,文字表达能力也不错,他们会将自己从事技术工作的内容或心得写出来,然后发表文章赚取稿费。只要对技术足够精通,这类人是很受杂志欢迎的。在北美还有一种自由职业者叫做合同工,就是不定期的承接项目,在项目开始前签订协议,项目完成后结束合作。虽然这种职业目前在中国还不太多,但是其自由性对于很多程序员来讲,也非常有吸引力。 上文提及的若干条路,程序员可以根据自己的兴趣进行选择,但是一般来说,无论走哪条路,都有一个前提条件:从初级程序员进阶为高级程序员。因为在这之前,你甚至没有选择的机会。从初级进阶到高级,通常需要2~5年的时间,因个人素质而异。大家都说,程序员要耐得住寂寞和枯燥,年轻的程序员更要克服浮躁的心态。在职业生涯的起步阶段,很多人总会摸不着头脑,这时一定要静下心来,多向资深程序员求教,慢慢熟悉技术、熟悉开发流程和行业。有时你会感觉掉进了一个知识海洋,身边全是陌生的事物,很难抓住。所以就更要四处探路,逐渐寻找到方向,在寻找中进步。 成功进阶为高级程序员,也并不意味着前途一片光明。如果说从初级到高级需要的是学习,那么从高级到专家,需要的是不断地尝试和坚持。比起前一个阶段,这个过程更为漫长,通常需要5~8 年。在这期间,因为有了之前的积累,并且已经取得一定的成就,人会更加自信,同时也会更加彷徨,有一个问题会时常盘旋在脑中:将来的路到底要怎么走?这时就可以利用自己所积累的资源,多做一些尝试,尝试不同角色、不同的项目,与不同的客户打交道,时间长了,自然会找到最适合自己的发展方向。 总结起来,初级程序员和高级程序员时期,都属于职业生涯发展的第一阶段,我们可以称之为黄金时期。这阶段程序员的年龄在20~35岁之间,因为年轻,所以更善于学习,而且体力充沛,很多走过这个阶段的程序员有过通宵工作的经历。在这个时期,你有大把的时间学习提高,为将来的事业打下坚实的基础。而一旦超过了30 岁,无论从体力还是精神上,都会有所改变, 从30~40 岁是转型时期。这时的程序员(很多人已经不再编程)已经明确了自己的发展方向,并且向着目标努力,让自己有所建树。40~60岁是专家时期,至此,一名优秀的程序员会彻底实现“破茧成蝶”的愿望,成长为专家。 程序员的职业很精彩,同时也很艰苦。享受高工资,掌握最新的技术,有可能成为创业成功的富豪,甚至有机
⑦ 编译器做什么工作
1. 词法分析 词法分析器根据词法规则识别出源程序中的各个记号(token),每个记号代表一类单词(lexeme)。源程序中常见的记号可以归为几大类:关键字、标识符、字面量和特殊符号。词法分析器的输入是源程序,输出是识别的记号流。词法分析器的任务是把源文件的字符流转换成记号流。本质上它查看连续的字符然后把它们识别为“单词”。 2. 语法分析 语法分析器根据语法规则识别出记号流中的结构(短语、句子),并构造一棵能够正确反映该结构的语法树。 3. 语义分析 语义分析器根据语义规则对语法树中的语法单元进行静态语义检查,如果类型检查和转换等,其目的在于保证语法正确的结构在语义上也是合法的。 4. 中间代码生成 中间代码生成器根据语义分析器的输出生成中间代码。中间代码可以有若干种形式,它们的共同特征是与具体机器无关。最常用的一种中间代码是三地址码,它的一种实现方式是四元式。三地址码的优点是便于阅读、便于优化。 5. 中间代码优化 优化是编译器的一个重要组成部分,由于编译器将源程序翻译成中间代码的工作是机械的、按固定模式进行的,因此,生成的中间代码往往在时间和空间上有很大浪费。当需要生成高效目标代码时,就必须进行优化。 6. 目标代码生成 目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:计算机的系统结构、指令系统、寄存器的分配以及内存的组织等。编译器生成的目标程序代码可以有多种形式:汇编语言、可重定位二进制代码、内存形式。 7 符号表管理 符号表的作用是记录源程序中符号的必要信息,并加以合理组织,从而在编译器的各个阶段能对它们进行快速、准确的查找和操作。符号表中的某些内容甚至要保留到程序的运行阶段。 8 出错处理用户编写的源程序中往往会有一些错误,可分为静态错误和动态错误两类。所谓动态错误,是指源程序中的逻辑错误,它们发生在程序运行的时候,也被称作动态语义错误,如变量取值为零时作为除数,数组元素引用时下标出界等。静态错误又可分为语法错误和静态语义错误。语法错误是指有关语言结构上的错误,如单词拼写错、表达式中缺少操作数、begin和end不匹配等。静态语义错误是指分析源程序时可以发现的语言意义上的错误,如加法的两个操作数中一个是整型变量名,而另一个是数组名等。
⑧ 跟程序员相关岗位有哪些
1.技术+技术(深入阶段)
这算是一条纯技术路线,具体又可以分3个方向:
技术(2年以上编程经验)+技术(软件测试,或系统分析师,或系统架构师)
有软件开发的工作经验,再加软件测试,比刚开始就进入软件测试行业的人要更具竞争优势。软件测试工作经验越多越好,可以干到退休,不用担心年龄问题。
如果选择“系统分析师,系统架构师”,则首先要打好扎实的“理论基础”(可以通过考证书,比如参加软考),以保证自己“后劲力十足”,这样等有了4,5年的工作经验后,才有可能能冲上这个高端领域。平时工作中要不断的锻炼自己的“发散思维”,培养善于发现业务需求的“眼光”。
2.技术+管理 :比如 项目经理。
像雷军说的那样:“程序员象木工一样,熟能生巧。程序员必须写足够代码量(8万行以上)的程序,才会有感觉,这是一个苦力活,没有任何捷径可走。”项目经理大多是从“优秀”的程序员里挑选出来,想走这条路,平时就要疯狂的编码,迅速累积丰富的编程经验,然后再补充一些管理方面的知识。(本人打算走这条路,呵呵)
3.技术+销售:比如 技术销售工程师,技术支持工程师。
这类工作要有一定的技术背景(入门级也可以),具备较好的语言表达,沟通能力。工作比较轻松,月薪待遇主要看个人销售业绩等,个人收入差别可能比较大。
4.当培训老师
如果你“乐于分享”工作经验,传授知识,或者觉得自己年龄比较大,精力不够充沛,且往上升又比较困难的话,可以选择去培训机构当老师,就目前而言,当老师工作轻松,待遇也不错。
⑨ 纯C++的工作岗位有哪些
C/C++这门语言能做什么
最近和一些学习计算机的朋友聊天,很多人都问我现在学什么语言最有前途?对于这个问题,我很难回答,(这里说的不是英语呵,是电脑的编程语言)。其
实这个问题我常常很难回答,因为不管什么语言,只要你学的好,高薪工作肯定是不发愁的,所有的编程语言,最终都是编译成机器语言的,也就是0和1,不
同的只是你用什么方式告诉计算机该做什么。
不过,不同语言还是有差别的,比如java跨平台性很好,除了可以开发桌面程序外,还常用来开发手机程序,C++一般用来开发大型程序,手机用的比
较少。着名的《魔兽世界》很多部分就是用C++写的,如果用Java写,那么游戏速度将会慢到让你崩溃!
近几天我关注整理了一些常用软件的编写语言,希望能对有志于从事软件开发的朋友有一定的指导。
一、 游戏
PC平台几乎所有的游戏
星际争霸、魔兽争霸、CS、帝国时代、跑跑卡丁车、传奇、魔兽世界.... 数不胜数了,自己数吧
都是用C++开发的,C++语言靠近系统地称,执行速度最快。比如你的两个朋友与你分别玩用VB、Java、与C++编写的“跑跑卡丁车”,你玩C++编写的
游戏已经跑玩结束了,发现你的两个朋友还没开始跑呢,那是相当的卡啊,
二、办公软件
微软Office (就是你常用的Word、Excel):汇编 -> C -> 稳定在C++
Sun Open Office (这个可能很多朋友不知道,但用Linux系统的都知道这个办公软件): 部分JAVA(对外接口),主要为C++ (开源,可下载其源代码)
三、图形处理
Adobe Photoshop : C++
GIMP:C
四、网站
eBay :2002年为C++,后主要迁至Java
Facebook : C++和PHP
新乡学院网站:网页程序用ASP写的,数据库应该是SQL
五、搜索引擎
Google : 汇编与C++,主要为C++
六、操作系统:
Windows :汇编 -> C -> C++
备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终
又回到C++重写。
相信很多朋友都知道Windows Vista,这个系统开发早期比尔盖茨想全部用C#写,但是最终因为执行慢而放弃,结果之前无数软件工程师日夜劳作成果一夜
之间被宣告作废。
Linux :C
苹果 MacOS : 主要为C,部分为C++。
备注: 之前用的语言比较杂,最早是汇编和Pascal。
Symbian OS : 汇编,主要为C++。(诺基亚手机)
Google Android 2008年推出: C语言(有传言说是用Java开发的操作系统,但最近刚推出原生的C语言SDK)
七、图形界面层
Microsoft Windows UI :C++
苹果 MacOS UI (Aqua) : C++
Gnome (Linux图形界面之一,大脚丫): C和C++, 主要是C。
KDE (Linux图形界面),C++。
八、关系型数据库
Oracle : 汇编、C、C++、Java。主要为C++。
MySQL : C++
IBM DB2 :汇编、C、C++,主要为C。
微软SQL Server : 汇编 -> C->C++
IBM Informix : 汇编、C、C++,主要为C。
SAP DB/MaxDB : C++
九、浏览器:
微软IE: C++
火狐浏览器: C++
苹果Safari :(2003年1月发布)C++
谷歌Chrome :(2008的发布)C++
Opera : C++ (手机上占用率比较大)
十、邮件客户端
Outlook : C++
IBM Lotus Notes : Java
Foxmail:Delphi
十一、软件开发集成环境/IDE:
Microsoft Visual Studio : C++
备注:是不是有点搞笑?用C++开发出来的Visual Studio又用来开发C++程序
Eclipse :Java (其图形界面SWT基于C/C++)
Code::Blocks : C++
十二、编译器
Microsoft Visual C++ 编译器:C++
Microsoft Visual Basic 解释、编译器:C++
Microsoft Visual C# : 编译器:C++
gcc (GNU C compiler) : C
javac (Sun Java compiler) : Java
Perl : C++
PHP : C
十三、3D 引擎
Microsoft DirectX : C++(相信玩游戏的同学都知道这个,现在最高版本是DX11)
OpenGL : C
OGRE 3D : C++
十四、Web Servers (网页服务)
Apache : C和C++,主要为C
Microsoft IIS : C++
十五:CD/DVD 刻录
Nero Burning ROM : C++
K3B : C++
十六:媒体播放器
Nullsoft Winamp : C++
Microsoft Windows Media Player : C++
Microsoft Windows Media Player : C++
⑩ 在国内从事C/C++编译器的开发有发展前景吗
我给你讲讲我的经历。 我大概十年工作经验,大概五年c++编译器前端经验(在两家500强做静态分析),四五年项目管理和品质过程改善经验。其他主流语言都会用,实现的大概方式也明白。 前一段时间找工作,投了二十几个c++职位一个电话都没有。唯一的面试是朋友内推的阿里的项目管理专家。跑去面试,悲催,直接换岗成p5-p6的测试来面试,问了几个测试问题直接让我回家了(顺便吐槽一下,他们对于测试过程感觉还没问到点上) 最后的结局就是,没人要,转行去制造加工业了。我总结一下为什么找不到工作(可能只是我偏颇的认识:一是这行需求太少,二是hr根本不知道你是干嘛的,三是做这行的根本不好意思写精通c++。