导航:首页 > 源码编译 > 程序员必须懂编译原理吗

程序员必须懂编译原理吗

发布时间:2024-11-11 09:20:23

程序员要学习哪些知识呢

如果做一个专业的程序员:
1.基础语言知识 :从底层的ASM 到结构化的C,到面向对象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一门

2.基础数学知识: 高等数学(数学分析) 线性代数 离散数学,概率.数理统计等等

3.基础计算机原理:操作系统原理,微机原理,编译原理 数据库原来等等

4.看你感兴趣的学习一个方向:图形学...windows应用程序开发...linux程序开发,数据库方面 网络编程,等等
----------------------------------------------------------------------
如果只是想快速编软件:
敬告:这样不会成为一个真正的高手!

比如windows平台的编程:<这里仅仅是比如>

学习C语言(熟悉结构化编程)->《windows程序设计》(学习windowsAPI知识) ->可以用API进行编程了。
但是现在用纯API编程几乎绝迹。不是淘汰,因为商业用要尽快成为软件好卖,API开发会消耗程序员大量时间,但是API是基础。

或者
学习C++语言(熟悉面向对象技术)->《MFC程序设计》(学习MFC编程)->MFC开发 -> MFC应用比较广

.net技术我没有接触过。现在正流行这个,等楼下的给你介绍吧!
------------------------------------
相比较而言,用DELPHI最省事。但是你要了解Object Pascal语言,这个编程工具是以这个语言为基础的。Delphi开发也是很不错的。
-------------------------------------
以上只是一个建议,学习不可能简单,而且路子不一样,上边提到的两windows书,是微软出版社,在这个方面最权威的书。

② 计算机本科里最重要的是哪几门课程(想当C++程序员的话)

真理:数据结构:程序员必需懂操作系统:编程方面基本,从事计算机行业的都得懂。编译原理:进阶课程,开发中少有用到,建议不必学。软件工程和管理:从事大型项目或高阶职位者必须懂,进阶课程数据库原理:大型商业项目基本有数据库,要懂计算机网络:和网络相关的项目都很赚钱,要懂网络编程:c++很大一个应用,懂! 最后让我告诉你现状,你这样初学又不是应届对口毕业的人很难找c++的工作。你不急着转工作的话,我给你一个建议:学好上面的课程,不要搞windows的,做linux的网络编程,服务器端的。这个需求比较大,人数也少。就算学不太好,搞懂linux的配置和架设也能找到好工作。这样的话你就主攻linux系统的配置和linux下的c/c++,数据结构和网络编程,多线程编程。顺带一提,linux服务器要的就是效率,多看有关算法

③ 从工作角度出发,学习编译原理和操作系统哪个对于个人帮助更大

我是学软件工程的,你说的这些课程我们都已经学完。 如果你想从程序员做起的话,《编译原理》就很重要了,你只有知道了编译器是怎么编译你的程序的,你才可能编写出高效,稳健,占用内存少的程序。我们学编译原理的时候还自己设计了解释器。

④ 程序员是不是一定要懂编译原理

懂编译原理当然是方便你编程,不懂也不要紧,会用IDE工具就行,

⑤ 如果想成为一个程序员应该学习什么知识

声明:以后计算机也就没什么前景了 只能成为一个辅助工具
(1) 熟练掌握基本算法和数据结构,用C语言编制程序;
(2) 掌握数据结构、程序变速器和操作系统的基础知识;
(3) 了解软件工程、数据库、多媒体和网络的基础知识;
(4) 掌握数制、机内代码及其算术运算和逻辑运算的基础知识;
(5) 了解计算机的体系结构和主要部件的基础知识。
1.1按照软件设计说明书,能熟练使用下列程序语言编制程序
1.1.1C(美国标准)
1.2理解给定程序的功能,能发现程序中的错误并加以纠正
1.3具有良好的程序编制风格
1.4基本算法
1.4.1查找、更新、排序、合并及字符处理
1.4.2迭代、插值、数值积分、矩阵计算、议程求解和搜索求解
1.5程序编制方法
1.5.1分支、循环、子程序(过程和函数)、递归
1.5.2输入输出和文件的处理
模块2:基础知识(程序员级)
2.1软件基础知识
2.1.1数据结构基础
数组、记录、列表(list)、队列、栈(stack)、堆(heap)、树和二叉树的定义、存储和操作
2.1.2程序语言基础知识
·汇编、编译、解释系统的基础知识
·程序语言的数据类型
·程序语言的控制结构
2.1.3操作系统基础知识
·操作系统的类型和功能
·操作系统的层次结构和进程概念
·作业、处理机、存储、文件和设备等管理的基础知识
2.1.4软件工程基础知识
·软件生命周期各阶段的任务
·结构化分析和设计方法
·面向对象基本概念
·软件开发工具与环境基础知识
2.1.5数据库基础知识
·数据库模型
·数据库系统的结构
·SQL的使用初步
·常用数据库管理系统的知识
2.1.6多媒体基础知识
·多媒体基本概念
·常用图象文件
·简单图形(线段和圆)的计算机图示
2.2硬件基础知识
2.2.1数制及其转换
·二进制、十进制和十六进制等常用数制及其相互转换
2.2.2机内代码
·原码、补码、反码、移码
·定点数与浮点数的机内表示
·ASCII码及汉字编码等常用的编码
·奇偶校验码、海明码、循环冗余码(CRC)等常用校验方法
2.2.3算术运算和逻辑运算
·计算机中的二进制数运算方法
·逻辑代数的基本运算和逻辑表达式的化简
2.2.4计算机的体系结构和主要部件
·中央处理器CPU、存储器和输入/输出设备
·总线结构、指令流和数据流
2.2.5指令系统
·常用的寻址方式
·指令的格式、分类及功能
·指令的执行过程
2.3网络基础知识
2.3.1网络的功能、分类与组成
2.3.2网络协议与标准
2.3.3网络结构与通信
2.3.4网络的安全性
2.3.5Client-Server结构
2.3.6Internet和Intranet初步

⑥ 要做好一个程序员要具备什么条件

1、扎实的基础

数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。

2、丰富的想象力

不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。

3、最简单的是最好的

这也许是所有科学都遵循的一条准则,复杂的质能转换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。

4、不钻牛角尖

当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。

5、对答案的渴求

人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。

阅读全文

与程序员必须懂编译原理吗相关的资料

热点内容
linux下权限不够 浏览:670
android判断图片是否存在 浏览:349
有公网域名如何访问内部服务器 浏览:620
长安460压缩机 浏览:901
微信好友可以加密吗 浏览:221
鲸置app怎么下载 浏览:642
手机出现文件夹怎么回事 浏览:152
javaeclipse内存设置 浏览:292
cf卡在正在连接服务器怎么推迟 浏览:711
广东常见工艺压缩机售前服务 浏览:988
程序员挖坑事件视频 浏览:585
如何在手机上对u盘加密 浏览:901
php正则匹配换行符 浏览:105
电脑文件夹怎样用微信传给别人 浏览:819
db2新建用户命令 浏览:812
java程序设计自考 浏览:743
程序员考试有必要软考吗 浏览:874
cg动画放哪个文件夹 浏览:436
小米平板服务器异常是什么意思 浏览:921
如何防止代码被反编译盗取文件 浏览:385