导航:首页 > 源码编译 > 编译工作经验交流

编译工作经验交流

发布时间:2022-07-23 20:43:27

㈠ 大四毕业生但是毫无项目经验的程序员该如何提高自己

要快速提升自己的话,就要懂得该怎样去学习,掌握学习方法是很重要的。如果你没有一点编程基础,我建议你从c语言开始学起,为什么这么说呢?因为c语言是所有编程语言的基础,学会了c语言的编程思想之后,任何一门编程语言你都可以自己去学习了。在初学任何一门学科时,建立信心非常重要,所以在初学一个知识点时,你就老老实实的跟着教材的思维走,不要思考、不要较劲,你在初学时就是要接受而不是推敲。在这个时候,你还没有任何基础,你在思考和推敲的过程很容易受挫,如果你经常受挫,过不了一段时间你就会对这个学科产生了恐惧,害怕去学习,这样就很容易半途就自我放弃了。在第一次学习某个知识点,你的核心就是两个字“接受”,相信我,这会让你受益的。

㈡ 程序员的编程思想怎么培养

编程思想培养当然要多练习总结了,我就以编程思想中算法 —— 逻辑思维来举例子吧。

在具体解决问题的过程中,最关键的能力有两个 ——“逻辑思维”和“调试纠错”。

逻辑思维能力

程序员圈子很流行的一个笑话。

娃妈给程序员老爸打电话:“下班顺路买10个包子带回来,如果看到卖西瓜的,就买一个。”

结果娃爸手捧一个包子进了门。娃妈怒道:“你怎么就只买了一个包子?!”

娃爸答曰:“因为看到了卖西瓜的。”

虽然是一个黑程序猿的笑话,但也体现了很典型的编程思维。编程就是理性严谨地与电脑对话,因此对编程者的逻辑思维能力也有很高的要求。

逻辑思维中有个很重要的原则叫 MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。

在编程的算法中,需要处处考虑MECE原则。解数学题时,也是同一个道理——我们要保证答案中考虑到所有的情况,而这些情况既不遗漏,也不重叠。

调试纠错能力

编程的世界里,只有对与错,没有模糊值。在程序运行的过程中,只要最终的结果与期望不符合,就证明算法中肯定有错漏。

但是,程序中的bug常常不是一下就能找到的,需要我们把程序的运行顺序一步步地跟走一遍,同时观察每一步的运行结果。这就需要很多的耐心、观察力和专注力,对抗挫能力也是一种磨练。在这个过程中,也会逐渐懂得一个道理:犯错很正常,纠正它,下次不再犯类似的错误就好。

这一点,也是优秀的人身上常常共通的一项品质。这些人总是在进步,因为他们懂得“回溯、调试、纠错”,不断进行自我优化和成长,不断be better。

希望对你有所启发帮助

㈢ 软件工程师 进来

论如何才能提高软件的开发效率及写代码效率

————给初学者的一些感想

作者:林宣武 着作权所有,转载请带上作者名字

本文的适应读者:刚毕业的学生,并刚入软件公司同时又打算在软件业有所发展的人

首先让我们看一看刚入软件公司会出现的情况:

1. 你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟)

——别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心,

对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。

——如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点。同时要自已动手写自已的测试代码,而尽量不要抄别人的代码示例。即使抄,在学习阶段也尽量不要每一行一模一样的对着抄。而应对着代码示例写有所不同的例子。

比如:在学java 知识点时,你最好建一个工程把所有的代码都写到这个工程中,以便对照分析学习.

2. 你可能会常常发现,写完一段码后,编译通过,可是运行起来却出来很多逻辑上的错误。(原因:理解错误或逻辑上想错了)

——

——提高逻辑思维和理解能力

3. 拿到一个需求却不知从那里开始(对系统不太了解)

4. 常常为了一个小小的错误用了很长的时间,不知从那里查,也查不出结果

5. 常常做出来的东西是有了东却少了西(考虑不全)

6. 有时为了一个特殊功能模块的实现查了很工时间却没有查出结果来(备查的资料不全)

7. 有时是否要项目经理叫你做东,你做了完全没有必要的西?(沟通不及时)

8. 有时为了能提前完成某一个任务,加班到深夜,可是到了明天却效率低下,还不如不加班(要注意休息)

9. 有时自已认为已测好了好多次,可以保证不会出错,可是经测试人员一测试却很多错误(不够细心或测试方法有问题)

10. 有时为了避免出错,常常全比写代码的时间超出两倍用于测试(方法有误)

11. 有时写好了一段代码给质量管理人员时却因为代码不够规范而导致重写?(代码不够规范)

为了写好代码(包括,代码没有问题,需求符合,健壮性好,总用时小),那我们应该怎么做呢,有没有什么方法没有.

回答是肯定的!!

可以总结为两大关键点:一是养成好的编程习惯,二是针对自已的工作提高自已的知识含量.

一. 好的编程习惯

1. 写程序前打个草稿可以在心里,最好在纸上:目的要从整体上考虑程序的实现。

如果公司采用建模的方式,有建模工具(rose ,visio )那是最好不过的了。

2. 注意休息,不要浪费自已的休息时间,用去了自已的时间不但会写出的代码因为注意力不集中而会常常出现代码的质量有问题,逻辑常出错

3. 要善于收集相关的专业开发上的资料,以便以后能更快更好的解决问题目。提倡公司能提供内部知识勾通的工具(如知识论坛,内部即时聊天器);提倡公司内部有技术资料的共享库,提高解决问题的能力.

4. 提高对所写的模块的相关全局把握能力,在写程序中要最好先详细设计后再发布.

5. 要学会与他人沟通如非工程师,学会沟通的不同方式,提高沟通的效率。

二. 不同的目标不同的知识重点

(一) 目标:程序员

职责:根据详细设计文档,或根据高级程序员的设计进行相关的开发。

1. 要学会看相关的需求文档及详细设计文档。

注意:你必须要通过阅读这些文档把握住其中的重点,关键点,相关易漏点

2. 如果公司里会用UML来相互的沟通,这时你必须要深刻理解UML 的相关知识,一定要注意千万不要对UML图一知半解的情况下,就着写代码,那样会错的很惨。

3. 学好对应的计算机语言的基础知识,如:程序的语法,关键点,易错点,对应的出错如何出理,如何才能把对就的程序写的键壮一些

4. 如果用到数据库的内容,在学会sql的前提下,尽量学会数据库原理中的相关sql内容, 当然为了提高查询的能力也可以增加一点

5. 如果用到面向对像的语言那最好学点相关的设计模式,这样的可以增加代码的扩展性,及可维护性等,能够理解详细设计中的模块间的设计原则这个也可以提高对模块的内容编写的正确性.

6. 你一定要学会公司内部的通用的编码规范。

7. 学习如何做单元测试比较好.必须要熟悉相关的单元测试工具.

8. 要不断的对相关知识进行总结,同时也要必须把相关的资料进行整理和学习,在学习过后的资料中你可以在遇到问题时更快的找到问题的答题。

9. 在开发你必须记录下大家常出错的地方及大家的解决方法,这个对你以后错误的避免有很大的作用.

10. 在写代码中时必须把上面写过代码记在心里,这样就可以养成习惯,提高代码的速度

11. 对数据库操作时,要尽量共用Connection,并小用以减少Connection的数量

(二) 目标:高级程序员

职责:对需求文档进行系统相关模块的详细设计,并负责对程序员的支持及指导和相关核心模块的编写

所以不但要学会相关程序员要的知识,同时还要学会难度比较大的知识。

1. 程序员的知识,如设计模式你一定要不是简单的看要懂,你还要应用设计模式对相应的模块进行相关的详细设计。

2. 要学好相关详细设计的工具做的有的放矢,这样可以更好提高对自已的设计的表达

3. 为了提高系统的运行效率会运用到

a. 数据库的表结构如何建才能使应用的要查询sql 更快。这时可要认真认真的学习一样数据库原理,千万不要以为采用数据库的范式越高系统的运行效率会越好,有时候适当的表冗余可以大幅度的提高系统的查询效率. 同时适当的建索引,视图,存储过程也是提高系统对数据库的查询的效率之一。

b. 学习多线程的编程,不过千万不要以为线程数越多运行的速度会越快,一般线程的数量超过一定的数量后,系统的运行速度反而会变慢。为了应用好多线程,操作系统这本书也要关于同步及相关进程和线程的知识必不可少。

c. 设计好的一程序的好的算法,可要比起解一道同一复杂的数学题,要难的多,所以要在学好的相关数学的知识上(如线性代数,离散数学,概率论,数理统计)。更要深入计算方法,及数据结构,让数学问题用计算机来解决。

4.为了让系统设计的更加的可扩展性,稳定性,设计模式和软件工程可是不能少的东西。所以必须把设计模式用于模式级的设计.

5. 如果公司采用的是Rose (UML)进行设计的话,你对于UML 的理解一定要非常的准确,同时你要跟小组中的程序之间进行充分的UML概念上及对应用例图,类型图,对象图,协作图的意思多写一些注释加深大家对你的设计上的理解。

(三) 目标:系统分析员

职责:做好与客户之间的关系,同时对客户的需求要正确的理解,要选择合适的开发技术,同时做好与客户间沟通交流,学会说服对方。

1. 学会对客户的沟通:要正确理解客户的需求同时要保证相互之间的沟通顺畅。

2. 对了解来的需求要能用笔正确的描述下来,并能很好的传叙给其他人。这时要学会用如ROSE 等的软件建模的工具。和powerdesign等的数据库建模工具。和相关的UML,数据流程图及相关的内容的知识。

3. 不但要全面的了解客户的需求而且还要对需求进行未来的可能的改变要有相当多的了解。

4. 全面的了解客户的需求后,要选择合适的相关技术用于开发,:

这时要学习各种知识

a. 先择数据库:db2,infomix ,oracle ,sql server,mysql 的优缺点,可以从中选择最适合的数据库及理由。

b. 设计数据库:要扎实在数据库的理论(数据库原理,数据库系统设计)及相关数据库设计经验,要尽量多的分析过去数据库设计,分析这么设计数据库的好处。这时可能要用到 powerdesign等工具。

c. 写需求说明文档和概要设计文档,同时要学会要分析相关需求说明文档的需要的内容的相关知识,如人员工时的计算方法, 一般会用 project 来分析相关的项目的内容。

d. 选择合适的程序语言及相关的架构,一般主流的架构是 J2EE和.net的相应的优点及它们之间的结合,如采用soap xml进行相关的结合,或用java-com 桥 进行相关的功能的调用。和它们之间的相关语言优缺点

e. 还要根据b/s,c/s 结构对开发的网络影响的相关内容采取选择。

5. 学会说服对方,毕竟客户都不是个个是软件专家,他们的选择有时未必是正确的所以学会说服对方,是系统分析员必备的能力条件.

三. 训练的方法:

1. 计划行事:

(1 设定你的未来的学习目标

a. 未来要成为什么样的人(主要是工作角色,如程序员,高级程序员,系统分析员)

b. 你近期要成为什么样的人(当前的工作职责是什么,如果只写代码是程序员等)

c. 要完成近期的工作所必须要知识(如java 程序员,要学习java 基础知识,等),关键的知识(如java中关键要用到的知识有,面向对象等),易错的知识(比较原来的已有知识进行合对)

(2 设定你的学习目标后,并要有针对性的对应目标设定学习时间的按排及学习路线。并直观的记录在案,以便以后随时核对,

(3 常常抽出一定的时间认真核对计划的完成情况,如果没有按时完成计划的内容。分析原因,尽量想法赶上计划内容如果存认是计划有误,要认真总结计划失败出错的原因,对你的未来有很大的帮助。

注意:不要对计划的按排过于乐观 要尽量的考虑实现中的各种情况,同时适当按排一些缓冲时间,以便真正能按照计划行事,以提高按计划行事信心,同时这能有效避免出现计划中途成没有意义的东西。

2. 针对工作角色对自已的能力进行培养和知识进行学习。

关键的能力:

(1. 记忆能力:要学会把自已的写的代码和改的代码记的清清楚楚。要能提高效率。

(2. 逻辑思维能力:要多多的看别人的复杂逻辑的代码,分析复杂逻辑的运算。

(3.全局能力: 不要再范改了东,却西出错。(构造软件这个很重要)

(4.学习能力: 并不是每个项目都你是所熟悉的项目的,并不是每个项目中的知识你都知道,要掌握最新的技术和最有用的知识,是最关键的。要学会,提高能力,这个东西是永远对自己有好处的。

(5. 沟通能力; 学会幽默,学会讲故事,学会交朋友,学会礼节。

(6.自制能力:如果一个人不能自制那这个人以后,不会有很大成果,即使很大机会发展起了,可是因为没有自制能力很容易被人利用,或自己明明知道怎么做,可是就是不能控制自己的欲望.而常做下无法挽回在错误.

四. 例:java 程序员的知识结构及学习流程:

(一) 学习相关工作必须的知识

1.Java 语言的基础(推荐书:《 java 编程思想》)

关键:

(1. java 面向对象及对应的程序现实

(2. java 多线程

(3. java 网络 socket

(4. 应用界面

2.学会用智能集成开发工具jbuilder,eclipse等一种,根据资料里的内容,自已写与例程类似的代码,但注意不要直接抄它,一定要自已写。同时最好写到一个工程中以便对比。

3.如果用b/s结构要学习jsp的知识(推荐书:《 JSP 2.0技术手册 》)

关键:

(1. 界面处理:

a . HTML——超文本标志语言:用于显示页面如:超文本链接, 表格,各种标志等。

b. CSS———层叠样式表:控制正文外观的一组格式.用于美化HTML页面。

c. javaScript—嵌入HTML页面浏览器来执行的脚本语言:让页面可以根据用户的操作或事先设置等在客户端进行动态变化,而且不需传回服务器。比如: 对表单输入的正确性做客户端验证.

(2.jsp元素:如java代码写法,对应标志---jsp:include,jsp:useBean,jsp:setProperty,

jsp:getProperty等.jsp的几大对

(3. javaBean及其在jsp 中的调用和相关应用.

(4. 其他技术:

a. 如何操作数据库—用jdbc(可能要补充一些数据库的知识,如oracle ,sql server,

包括如何写高效率的查询sql,存储过程等) ,

b. 如何发送email—用javaMail,

c. 如何学习如何用实现文件的上传下载,如果操作文件,

d. 如何操作xml --用jdom 及 jaxp(这时有必要学习一下xml 的语法如 dtd等)

e. 如何远程方法调用—用 rmi

f. 如何进行消息服务 ---用 jms

5.再有些公司会用到 J2EE 的架构如 EJB 作为业务逻辑.

(1.EJB中要分清

(2. struts MVC

(3. Hibernate 操作数据库

6.最好学习一下UML

学用Rose建模

五 忠告:

1. 不要以为自已很差,要明白每个人都是这样一步一个脚印的走过来的。(我们要有信心)

告诉自已:比尔盖次,也是同我们一样,出生时也是巴掌大.

我们只有多学,多练才可能有出路.

2. 不要以为自已学的多就很强,世界上的高手多的是,问问自己,你每小时可以写几行代码,代码一次写下来有多少错误,如果你一次写下没有错误,一小时可以写1000代码,那才是真正的高手.

3 . 不要以为自已没有项目做就会落后于他人,人家是参加了很多项目,可是人家只是项目中的一个小角色,如果我们在空时能都写一些开源的项目,或自己开发和设计一些有用的开源的项目,水平及能力很快就上来了.

4. 不要以为自己做过很多的项目就很了不起了。你能说你做的项目中,你能体会整个项目为什么要这样设计,为什么要这样开发吗?相信绝大多数是否定的回答。那还不如多学习一些已做的项目,了解他们为什么要这么做,为什么这么开发,多看一下它们的项目的文档,我们能明白很多,这样把他们的经验放于你未来可能要接手的项目,这样不是更好吗?

5. 不要以为自己的学习能力很牛,你能快速阅读一本书又能快速掌握它的内容吗?

这篇文章应该有些帮助吧!

㈣ 一个国家最重要的部门不是什么什么部,而是教育部

中央教育行政部门职能

中央教育行政部门,一般称为教育部,是国家一级主管教育的工作部门。

由于世界各国的社会政治制度、国家体制、文化传统等互不相同,所以各国的中央教育行政部门的职责和权限,彼此很不相同。教育行政实行中央集权制的国家,如法国,教育部的权限相当广泛,有领导、检查或监督全国公、私立教育机构,确定学校教育的政策、原则,统一规定教学大纲、教学方法以至考试的内容、时间等权力。教育行政实行地方分权制的国家,如美国,教育部的业务活动范围则受到很大限制,在国会通过的《教育部组织法》里仍强调“关于教育的权限和责任,保留给州和地方学区以及州所规定的其他机关”。英国的中央教育行政部门称教育和科学部,它和地方──郡的教育行政部门的关系,则既非严格的中央集权制,亦非绝对的地方分权制,属于中央与地方共同合作制的类型。

从各国中央教育行政部门工作总的情况看来,既要加强中央的统一领导,又要充分发挥地方的积极性,彼此取长补短来组织领导教育事业的趋势已日益明显。

2.2 中国教育部职能

中华人民共和国主管全国教育工作的行政部门称教育部,是1949年11月1日成立的。它所担负的主要职责是:

①贯彻执行中国共产党和国家的方针、政策,研究教育理论,总结实践经验,制订教育工作的具体政策、行政法规和学制等重要制度,制订教育事业的长远规划和年度计划,并督促、检查和组织实施。

②制订普通教育(包括幼儿教育、小学教育、中学教育、中等师范教育、特殊教育等)的具体方针、政策等重要规章制度;制订教学计划、教学大纲等基本文件,组织编审教材和教学参考书;制订普通学校师资管理的原则、办法和师资培训规划,指导、督促、检查普通教育工作,组织经验交流。

③会同有关部门制订职业技术教育的具体政策、发展规划和重要规章制度,指导、督促、检查职业技术教育工作。

④会同有关部门制订高等教育的具体政策、发展规划和重要规章制度,规定各类高等学校的培养目标、质量要求和专业目标;制订教学计划、教学大纲的原则,组织制订参考性的教学计划和教学大纲,统一规划、组织高等院校教材的编选、审查和出版工作;制订高等院校干部和教师管理的方针、原则、办法及培训规划和实施计划;指导高等院校的思想政治工作、教学工作、科研工作等;统一指导和组织全国高等院校的招生工作;统一管理全国研究生的培养工作,领导高等院校的学位授予工作。

⑤协同有关部门指导全国职工教育、农民教育,电视、广播大学和各种形式高等学校的工作,以及高等教育自学考试工作;制订机关、团体办学及民办学校的具体政策和管理办法。

⑥制订少数民族教育的具体方针、政策和重要规章制度,组织少数民族文字教材的编译出版工作,指导、督促、检查少数民族教育工作。

⑦负责与各建交国家政府间进行教育合作和交流,管理教育部门的国际学术交流及援外、外援的有关计划、组织和人员往来的工作等。教育部设有主管高等教育、中等教育、初等教育、师范教育、计划、科技、外事、基建等工作的司、局,并设中央教育科学研究所、教材出版社、电化教育馆等事业单位。除教育部外,中央其他各部、委等业务部门也都设有相应的教育行政机构,主管本部门或本系统各级各类教育事业。

㈤ 如果,我想当一名程序员,如何从零开始

1、 程序员意味着要编程序。(如果你仅仅想得到一份高薪水的工作,喝喝咖啡就等老板发薪水,我奉劝你还是另找一份更合适的工作,譬如练摊,真的,兄弟,这份工作不适合你)
2、你是学文的还是学理的,编程序也许需要浪漫,但更需要逻辑和严谨。(说坦白点就是,在你没有找到乐趣以前,它很枯燥)
3、你有对新技术追求的热情吗?你有刨根问底的探索精神吗?(热情绝对是最重要的!你仔细思考一下自己的性格适合当程序员吗?)
4、当程序员决不是什么好差事,时刻需要学习,需要思考。(直到你成为那个可以引导别人去学习和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序员的未来很迷茫。(但我认为关键看你自己!我希望你是一个有追求的人,不仅仅是混碗饭吃。因为真正的乐趣在于创造;如果你能改变软件业的历史,那才是英雄;不想成为Bill Gates,不想成为Dennis Ritchie和 Bjarne Stroustrup,我会说你没有追求。有个关于程序员未来的笑话,也许你还没听过,你该听一听,摘抄如下:
一个程序员对自己的未来很迷茫,于是去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的”
于是他去问Lippman。
Lippman说“程序员的未来就是驾驭程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的”
于是他去问Gates。
Gates说“程序员的未来就是榨取程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝说“我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的”
于是他去问侯捷。
侯捷说“程序员的未来就是诱惑程序员”
这个程序员对这个未来不满意,于是他又去问上帝。
“万能的上帝呀,请你告诉我,我的未来会怎样?”
上帝摇摇头“唉,我的孩子,你还是别当程序员了”)
6、当程序员还是很有乐趣的。(当你学到新知识时,当你有新的思想见解时,当你有新的产品问世时,和知己探讨你的成果时…我问你,觉得这些是乐趣吗?)
7、当程序员不易也不难。(世间事有难易乎?为之…;不为…。你有决心和信心吗?)
8、你真的要当程序员?是你自己的想法?
9、你舍得花钱买书吗?(读好书绝对是学习编程的最佳捷径。你一定会说,现在电脑书籍真他XX的贵,没法子,谁让知识和技术在人家的脑袋,在人家的书里呢;等你写书时可以把价格定低一点,记着还有好多没钱但想买书的兄弟很困难呀。要舍得买书,买好书,不好的的书不如不读,其害大于其益,关于买什么书,你可以问高手或看候捷的书评;准备一个小本子记录你想买的书的名字,逛书店时看看,如果好就买下,记住要读,别光买不看。) 10、我告诉你,程序就是:任何有目的的、预想好的动作序列,它是一种软件。
11、编程序就是编写程序。
12、你想好了吗?(如果你想好了还是决定要当程序员,可以继续往下读;否则,你可以继续寻找别的出路了。)
(三) 一个程序员应该具备的基础知识和概念
1、计算机是有什么组成的,CPU是什么东西,其工作原理是什么。(对于这些以及下面将要提到的概念我不会告诉你什么答案,你可以看相应的教材,关于教材我会在下一部分详述,记住理解最重要!)
2、机器语言和微指令集的概念。
3、程序的概念。
4、汇编语言是低级语言但不是机器语言。
5、高级语言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中国软件业的英雄,你也写一门语言,最好不用英语) 6、编译程序和解释程序的概念和其原理。(编译器是高手和专家编写的)
7、HTML、XML等是标识性语言。
8、Prolog是人工智能语言。
9、操作系统OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,还有一些实时OS,嵌入OS,编这些的绝对是高手)
10、Windows编程说白了就是Windows API的调用。(中国的程序员很多只是会编windows程序,用的是VB,我的建议是这些程序员顶多只是低级编码员,我称其是coder)
11、VC++、VB、BC、BCB、Delphi、VF等都只是编程的工具和环境,不是编程语言。
12、面向结构的设计概念。
13、面向对象的概念。(好好理解,兄弟,这个东西还是很重要的)
14、软件工程的概念和原理。(如果你想当老总就需要好好研究了,系统分析员比编码员要高一个等级,薪水也高哟)
15、数据库的概念。(要熟悉一些着名的数据库系统和语言的名字,如Orcle,SQL,DB2,DyBase等)
16、了解网络概念。
17、了解多媒体概念。
18、熟悉和掌握数据结构和基本算法。
19、是不是要求太高了,别着急慢慢来,进步在不知不觉之中。(一旦开始学习,一个月以后你就会有一个基本的概念;两个月以后你就会感觉自己有了全面的基础知识;当你知道编程序是怎么回事时,说明你已经入门了。也有很多人编了很多年程序还没有入门呢,你不会希望自己步其后尘吧。要有信心和耐心。沉不住气怎么能成大事?!)
(四) 教材推荐
――-推荐的教材主要还是针对概念来的,最好选用名校的教学用书。
1、《计算机组成原理》(熟悉)
2、《数据结构》(掌握)
3、《操作系统》(了解->熟悉)
4、《The C language》(掌握)
5、《编译原理》(了解原理)
6、《汇编语言》(了解)
7、《计算机网络》(了解)
8、《软件工程》(了解)
9、《关系数据库》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
(五)一些经验和体会
1、真正的程序员用C++;(一位专家说的)
2、动手去编程序;
3、动脑去思考;
4、要有良好的编程风格;
5、读书,读好书,尽量读原版书!(我反复强调这一点,读书要有选择,坚持读好书,名家出的经典书,不要浪费实践在一些粗制滥造的书上面;坚持博览群书)
6、有自己的学习计划;
7、总结自己的经验教训;(准备一个笔记本,记录错误和心得)
8、不要怕学新东西;
9、要有软件工程的思想;
10、善于发现问题,然后去寻找答案;
11、向高手请教;(要虚心直到你成为高手)
12、和同行交流;(不善于交流肯定不行)
13、懂得软件的实质,不要被千变万化的表象所迷惑;
14、真正要学习用的是编程语言和方法,不是什么库,什么类,什么工具;(学用那些什么库都比较简单,但光会这些库,我觉得还远远不够)
15、学习wiodows编程主要是学习windows OS和win32 API;
16、有空了解一下嵌入式开发;
17、有空了解一下PDA软件开发;
18、了解一下.NET框架和C#语言,也许它是你新的衣食父母;
19、要有耐心,不要作浮躁的人; 20、对程序加注释,并保留你的老程序;
21、学到的东西越多,了解的越多,你就越接近专家;
22、有空去逛逛CSDN,那里有你很多知己;
23、要有信心成为一个优秀的程序;
(六)一些好书的推荐
1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)
2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)
3、《Inside The C++ Object Model》 (lippmans)
4、《Effective C++》 (同上)
5、《More Effective C++》 (同上)
6、《Exceptional c++》
7、《C++面向对象高效编程》
8、《设计模式》
9、《Thinking In C++》
10、《The Standard C++ Bible》(一般推荐)
11、《The Art of Computer Programming 》
12、《Programming Windows》 (Charles Petzold)
13、《VC++5.0技术内幕》
14、《MFC 深入浅出》
15、《软件需求》
16、《Advanced Windows》
17、《C++ primer》
18、《win32程序员参考手册》
19、《用TCP/IP进行网际互连》
20、《COM 本质论》
(七)学习计划
――-这个学习计划是我个人定的,也共享给大家参考一下,共同进步吧。 1、《计算机组成原理》
2、《操作系统》
3、《数据结构》
4、《汇编语言》
5、《 C 》
6、《 C++ 》
7、《VC 技术内幕》
8、《Programming Windows》
9、《深入浅出MFC》
10、《Advanced Windows》
11、《Inside The C++ Object Model》
12、《Thinking in C++》
13、《Effective C++》
14、数据库
15、网络
16、嵌入式OS和编程
17、硬件单片机
18、.NET和C#
19、软件工程
20、UNIX和Linux

㈥ 如何学好 程序设计语言 编译原理 诚求

1.明确学习目的

学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。

2.打好基础

学编程要具备一定的基础,总结之有以下几方面:
(1)数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
(2)逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
(3)选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台开发开发工具如 Java 等。 3)网络开发对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。

3. 注意理解一些重要概念

一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。

4.掌握编程思想

学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程......;学习 COM 就要知道 VTALBE 、类厂、接口、idl......,关键是学一种思想,有了思想,那么我们就可以触类旁通。

5.多实践、多交流

掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。

6.养成良好的编程习惯

编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。

7.上网学编程

在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。例如网站“编程课堂”()主要以 VB 和 Delph;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”()是专门介绍C、VC、VB、Delphi 等的综合编程网站;网站“ VB 编程乐园 ”()提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。

8.加强计算机理论知识的再学习

学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。

阅读全文

与编译工作经验交流相关的资料

热点内容
70个4相乘的简便算法 浏览:291
安卓手机没有机身存储了怎么办 浏览:314
输入法文件夹不能用 浏览:83
发单买多大的云服务器 浏览:331
特价云服务器如何注册 浏览:296
安卓手机账户忘记密码怎么解锁 浏览:821
如何用健身app确定一个特工 浏览:911
多级压缩的原理 浏览:864
java项目开发案例视频 浏览:70
文件夹快速查找表格不同内容 浏览:493
合并排序算法java 浏览:920
如何将文件夹删除的部分恢复 浏览:808
eco为什么连接不上服务器 浏览:294
查看linux的命令是 浏览:12
苹果邮件服务器地址 浏览:343
U盘超级加密3000时间 浏览:738
如何跟别人解释什么是服务器 浏览:939
安卓11原生如何隐藏软件 浏览:712
解压清洁面部女士 浏览:856
美的变频空调压缩启动一下报p1 浏览:472