编译开发人员
① 项目开发经验谈:如何成为出色的开发人员
前言:之所以有此一文,不是空穴来风,也不是故意的哗众取宠,而是最近的一些所见,所感。在本文中总结出来,希望对大家有帮助。 因为一些工作原因,其他的系列文章没有接着写下去,还望大家见谅。 不要成为代码的机器 开发人员的事情就是coding,没日没夜的coding,而且大家都是这样在coding,但是效果和结局就不一样:有人coding了N多年,技术还是原地踏步,编写出来的代码还是bug连连;有人coding就变成了技术骨干,甚至有人成为了CTO, 架构师等。 首先从一个小的故事说起:一个项目,分配给了项目组的人开发。于是大家就热火朝天的干了起来。当时,就发现了一个现象:任务已分配完成之后,有人就开始coding了,噼里啪啦的开始敲代码,不久之后又开始噼里啪啦的改代码,然后又开始不断的调试,找出bug,然后修改bug。很快,这个迭代的期限就到了,原计划要完成的功能很多没有实现,有的人也确实做完了,问题也一大堆,有人也确实完成了,没有bug,但是在审查他的代码的时候,就是看不懂。 这里想起了自己刚刚步入IT开发行业时候的情景。总是希望尽快的把事情搞完,因为只要没有做完,就拖了项目的后腿,很可能被leader训导,甚至可能被认为没有能力而被开除。在写代码的过程中,发现一点:尽管写代码的速度是快了,但是在写完了之后,每次编译,都发现错误,编译通过了吧,逻辑又有错误,然后就这样不断的缝缝补补,功能是完成了,但是心里有一种想法:以后千万不要让我来看和来改这段代码。因为代码写的很烂,烂的连自己都不想看,而且很多实现的方式也是很诡异。反正结果是:功能完成了。其实自己心里也很清楚,在写代码的时候,脑子有点糊,而且写着写着就不知道写什么了。 后来慢慢的发现:如果再这样下去,对自己的发展是没有好处的,而且原本认为很有技术含量的编程活动也变成了一种没有技术含量体力活,有时候甚至不用脑子。 就如软件开发中的需求一样:变化。 人也要:改变。 所以在之后的项目开发过程中,就给自己定了一个目标:写完一个小功能的代码,确保一次就编译通过(当然,在写代码的时候肯定得注意逻辑,但是偏重在使得编译通过),于是,在开发的时候,就开始用心了,或者说是更加的细心了。 一段时间的磨练之后,这个目标达到了,而且还超出了期望的值:写完一个大的功能代码之后,编译也没有错误。 所以这里悟出了一点:同样是做事情,做的也是同一件事,目标不同,结果就不一样。 这样之后,写的代码质量确实是提高了,但是另外的问题又出来了:写出来的代码总是在缝缝补补,总是这里差一点,那里差一点。很多地方很欠考虑。 写代码也是一样的,不要走一步算一步。在写代码之前,首先从业务上,要把这个功能的流程搞清楚,然后再考虑:如果实现这个流程,要怎么写代码。然后在开始写代码,于是带着这个思想,发现自己写出的代码逻辑错误就少了,起码在总体的流程上是对的,可能在有些地方缺少一些考虑,如验证等。这样bug也少了,开发的速度自然快了。 说白了,就是在实现一个功能之前,先要设计,或者专业一点,画画流程图,其实流程图也不一定非得用UML画的那么标准,很多时候,就是拿一支笔和一个练习本开始画了,只要自己认识就行了。 采用这种方式之后,发现不仅自己的设计能力提高了,而且对开发出来的功能也是很有信心的。 其实很大的程度上就反映了设计的问题。 其实当我们在估算项目的时候,很多的时候我们没有一个准确的估算,或者说只有一个大概的估算。其实这就是设计做的不够。 如果设计做的充分的好,最后的结果就是:整个类,流程都基本敲定,只是填充方法的实现而已,这样项目是否按照计划进行就一目了然。 当然,这里不是闲着没事专门的说教,也不是说些大话,空谈,大谈。 其实,编程终究是需要动脑的,多多的思考。 其上是自己的一些经验,希望对大家有点作用,也希望大家多多的交流。
② 请问,编译软件最早是由谁发明出来的
Grave of Grace
后记
Grace Hopper是个非常amazing的人 (常被称为Amazing Grace),崇拜她的人相当多。虽然她的事迹很多,但是还有很多有类似事迹的人并没有像她这样受到众人的崇拜。由其中一点我们可以看出来:从1947年开始 (二战结束后第二年),她获得了第一个荣誉博士学位 (宾州大学),从那以后,她先后被40多所大学授予荣誉博士学位,其中包括芝加哥大学、华盛顿大学、马里兰大学等知名学府。各种妇女社会团体和学术组织都曾授予Grace各种称号和奖励。1991年,布什总统在白宫授予她的“美国国家技术奖” (National Medal of Technology) 是其中的最高奖项,她也是至今惟一获此殊荣的美国女性。她的名言有很多,她自己最喜欢的,也是她最喜欢对所谓的“年轻人”说的 (在她年老时,她所谓的年轻人就是“年龄不到我的一半的人就叫做年轻人”),这句话是:
“A ship in port is safe, but that is not what ships are built for.”
语录
下面Grace的语录中有几句比较有意思的话。
From then on, when anything went wrong with a computer, we said it had bugs in it.
The most dangerous phrase in the language is, “We’ve always done it this way.”
Humans are allergic to change. They love to say, “We’ve always done it this way.” I try to fight that. That’s why I have a clock on my wall that runs counter-clockwise.
Leadership is a two-way street, loyalty up and loyalty down. Respect for one’s superiors; care for one’s crew.
One accurate measurement is worth a thousand expert opinions.
Someday, on the corporate balance sheet, there will be an entry which reads, “Information”; For in most cases, the information is more valuable than the hardware which processes it.
We’re flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or knowledge. We’ve tended to forget that no computer will ever ask a new question.
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
They told me computers could only do arithmetic.
In pioneer days they used oxen for heavy pulling, and when one ox couldn’t budge a log, they didn’t try to grow a larger ox. We shouldn’t be trying for bigger computers, but for more systems of computers.
Life was simple before World War II. After that, we had systems.
We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.
At any given moment, there is always a line representing what your boss will believe. If you step over it, you will not get your budget. Go as close to that line as you can.
I seem to do a lot of retiring.
I handed my passport to the immigration officer, and he looked at it and looked at me and said, “What are you?”
参考
维基网络:
http://en.wikipedia.org/wiki/Grace_Hopper
国立中央大学数学系:
http://li.math.ncu.e.tw/bcc16/pool/3.06.shtml
耶鲁大学计算机系:
http://cs-www.cs.yale.e/homes/tap/Files/hopper-story.html
计算机先驱:
http://202.207.0.245:9001/jisuanjifazhanshi/xianqu/18.htm
This entry was posted in网络3Cand taggedcompiler,debug,Grace Murray Hopper,传记,发明,编译器,起源. Bookmark thepermalink.Post a commentor leave a trackback:Trackback URL.
③ oracle数据库开发人员说‘需要重新编译一下’是什么意思 是说要重新跑某个过程吗
重新编译,就是某个过程或者函数哪里做了修改 需要重新编译成可以执行的文件,并不是说重新跑某个过程。编译完成之后,把编译好了的过程再重新运行。
④ 在国内从事C/C++编译器的开发有发展前景吗
我给你讲讲我的经历。 我大概十年工作经验,大概五年c++编译器前端经验(在两家500强做静态分析),四五年项目管理和品质过程改善经验。其他主流语言都会用,实现的大概方式也明白。 前一段时间找工作,投了二十几个c++职位一个电话都没有。唯一的面试是朋友内推的阿里的项目管理专家。跑去面试,悲催,直接换岗成p5-p6的测试来面试,问了几个测试问题直接让我回家了(顺便吐槽一下,他们对于测试过程感觉还没问到点上) 最后的结局就是,没人要,转行去制造加工业了。我总结一下为什么找不到工作(可能只是我偏颇的认识:一是这行需求太少,二是hr根本不知道你是干嘛的,三是做这行的根本不好意思写精通c++。
⑤ C开发人员和java开发人员哪个多大概的百分比,还有两种开发语言的最大区别。
从我身边的朋友来看 java:c 是20:1的样子 两种语言方向不一样 做的东西不一样
⑥ 想成为一名游戏开发程序员应该具备哪些条件
首先陕西优就业的老师给你讲一下:
游戏开发中的程序开发主要由图形引擎、声音引擎、物理引擎、游戏引擎、人工智能或游戏逻辑、游戏GUI界面(菜单)、游戏开发工具、支持局域网对战的网络引擎开发、支持互联网对战的网络引擎开发九部分组成。
其次一名开发人员所具备的要求是熟练掌握计算机本科专业所学的知识,主要包括C或C++语言、数据结构、编译原理、算法等,另外线性代数、微积分、牛顿力学在图形和物理引擎开发方面用途也很广泛,如果要提高的话还有必要了解硬件相关的知识如计算机体系结构、汇编语言,这些对学习一个新的硬件平台、编写最优化代码、提高自己游戏的竞争力都是非常有益的。如果你可以保持有恒心、不怕苦的心态和对游戏的热情也是很重要的。
⑦ 程序员是做什么的什么是程序
程序员:
程序员是从事程序开发、程序维护的专业人员。程序员一般需要会做:确认通过审查方案的目标,输入数据,分析师,监事,和客户的输出要求的项目要求。安排项目要求在编程序列分析要求;准备工作流程图和使用计算机知识的能力,题材,编程语言和逻辑图等。
通常情况下将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。
软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。
程序:
程序是香港和台湾对英文procere的中文翻译,是在大陆于计算机科学、电脑工程、电子工程、电机工程、机器人工程学、机械工程领域中的英文术语program的中文译名。
一个程序即是特定的一系列动作、行动或操作,而这些活动、动作或操作必须被执行于相同方式以为了在相同环境下恒常得出相同的结果。打个比方,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语和烹饪手法的人(体系结构)来做这个菜。
(7)编译开发人员扩展阅读:
1.一般的程序员都有四年的在专业领域的学习,需要获得在程序领域的学士学位,不论是数学方面的还是工程方面的都是可以的。不同分类方式程序员分为:
(1)按照所使用的编程语言来分,程序员分为:c/c++程序员、php程序员、java程序员、delphi程序员、net程序员、asp程序员等;
(2)按照面向的开发平台来划分,程序员可以分为web程序员、移动开发程序员;
(3)对进行移动设备程序开发的人员来说,针对的操作系统不同,还可以分为针对苹果ios程序员以及针对安卓程序员。
2.服务于计算机科学的程序称为计算机程序,也称为软件,是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。
在大多数计算机中,操作系统例如Windows等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。
网络-程序员
网络-程序
⑧ 开发人员一般会犯那些逻辑错误
逻辑错误是相对于编译错误来说的,例如程序代码的语法有问题,编译时就会出错。而逻辑错误在语法上是正确的,程序能够编译并运行,但是运行的结果与预想的不同。
比如你想判断一个人的名字是不是叫Jill,但编写程序时却少写了一个l,变成了Jil,在运行时就会发生逻辑错误。
更隐蔽的逻辑错误的例子还有很多,比如变量由于忘记初始化而包含垃圾数据、忘记判断结束条件或结束条件不正确使得循环提前或延后结束,甚至成为死循环等等。
编译错误由于会被编译器发现,所以并不会带来严重的后果,相反很多逻辑错误很难发现,从而导致程序出现BUG
⑨ 软件工程师是干什么的
cs201 全栈软件工程师免费下载
链接:https://pan..com/s/1uvC9DjwH3O3qemDwhmO_OA
全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。