A. linux是什么意思
在了解Linux之前,我们先认识一下UNIX,因为Linux的诞生还是和UNIX有很大关系的。
1969年,UNIX操作系统诞生。
它由美国贝尔实验室的Ken Thompson(肯*汤普森)、Dennis Ritchie(丹尼斯*里奇)发明。
后来在unix操作系统推广开来以后,1990年的时候,AT&T认识到了UNIX价值。
UNIX系统是运行在小型机和大型机上的,我们平时用的笔记本电脑可能还装不起来。像IBM一台服务器可以卖到好几百万。
因此他起诉包括伯克利在内的很多厂商。
那个时候开源的协议还没那么明确。
伯克利也因此推出不包含任何AT&T源代码的4.4 Free BSD Lite.
然后就在1991年,Linux系统正式发布。
Linux的诞生,有赖于两个人。
第一个是理乍得 斯托尔曼。
他是自由软件运动的精神领袖,NU计划以及自由软件基金会(Free Software Foundation)的创立者。也是着名的黑客。
当时的黑客就跟国内的极客差不多,也就是说你的技术很高超。
真正做坏事的称为骇客。
而GNU计划,是由Richard Stallman公开发起。它的目标是创建一套完全自由的操作系统。
GNU是“GNU‘s Not Unix”的缩写。翻译过来就是,我们不是UNIX。也强调了我们这个是一套真正完全自由的操作系统。
不会像UNIX,一开始是免费,是开源,过了一段时间又说不能用了。
“free”指的是自由(freedom),而不是价格。
开源收费其实也不是完全反对的,像谷歌的一些开发技术,华为也是花钱买来的。但是这种一旦授权结束以后,那也就不能再用了。
所以有的时候收一些费用也正常,这样才能保证这些技术能够长期延续下去。
另一个人就是林纳斯·本纳第克特·托瓦兹。
他做了一个Linux内核。现在内核已经更新到4.7或者5.2的版本了。
像现在centos5 centos6都是2.5 2.6左右的版本。
有了内核还有GNU各种软件的支持,加上后来不断的改进,Linux也就诞生。
B. 程序员是什么职业什么职务
程序员(英文Programmer)是从事程序开发、程序维护的专业人员。
一般将程序员分为程序设计人员和程序编码人员。
软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。
职务:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
程序员职业要求:
1、熟练开发工具
作为程序员,掌握至少两个或三个开发工具是程序员的基础。其中,C/C++和java是最推荐的开发工具。C/C++已经成为开发工具高效、灵活的锐利工具。
许多系统级软件都是用C/C++编写的。Java的跨平台与Web的良好结合是Java的优势,Java相关技术JavaOne很可能成为未来主流的开发工具之一。
其次,最好掌握一个简单的可视化开发工具,如vb、powerbuilder、delphi、cbuilder,这样可以降低开发难度,强化程序员对象模型的概念。另外,您需要掌握基本的脚本语言,如shell、perl等,至少能理解脚本代码。
2、熟知数据库
很多应用都是以数据为中心的数据库,有很多数据库产品,其中关系数据库仍然是主流形式,所以程序员至少要精通一两个数据库,非常清楚关系数据库的关键元素,熟练掌握在SQL的基本语法中。
虽然许多数据库产品提供可视化的数据库管理工具,SQL是数据库操作的基础和常用方法。如果您没有访问商业数据库系统的权限,那么最好使用免费的数据库产品,如mysql、postgres等。
3、了解操作系统
目前,主流操作系统是windows、linux/unix,熟练使用这些操作系统是必要的,但只有这些还远远不够。
作为一个真正的编程大师,我们需要对操作系统及其内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等有深入的了解。
Linux作为开发源代码的操作系统,是一个很好的学习平台。Linux几乎具有现代操作系统的所有特征。虽然关于Windows系统内核实现机制的信息很少,但是通过Internet仍然可以获得很多信息。了解网络协议TCP/IP。
C. 一个程序员在公司没有数据库权限意味着什么
数据库,一般软件开发中都会用到,关于它的权限问题是这样的:一个公司的一个软件产品,其实在不同的研发上线的不同阶段,数据库是独立的。这个很好理解,开发环境程序员可以随便改。线上环境可不是谁都有权限的。
不同的公司,这个数据库管理的方式也是不一样的,仅从我的经历上来回答这个问题。如果更多疑问可以继续探讨。
D. 程序员的 职业素养
程序员因其致力于程序开发、设计、维护、编程等这一特殊领域,使其天生具备了坚定的职业信念、超强的职业知识技能、良好的职业行为习惯等职业素养。
简介:
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
岗位职责:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
职业认证:
考试介绍:
软考程序员考试属于计算机软件水平考试(简称软考)中的一个初级计算机职称考试。对于软考程序员考试并无学历及资历条件限制,更无论年龄、专业与资历。一年可报考软考程序员考试两次,但一次考试只能报考一种资格,因此报考了程序员考试则无法再报考软考其他级别或科目的考试。同时软考程序员考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试方式。
通过国家统一组织的考试,资格考试分为:程序员级(原初级程序员)、软件设计师(原高级程序员)以及更高水准的:信息系统项目管理师、系统分析师(原系统分析员)、系统架构设计师、网络规划设计师、系统规划与管理师。
考试目标:
通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照程序设计规格说明书编制并调试程序,写出程序的相应文档,产生符合标准规范的、实现设计要求的、能正确可靠运行的程序;具有助理工程师(或技术员)的实际工作能力和业务水平。
1、CVEQC认证持有者已经通过了中国职业教育资格认证指导中心组织的培训和相应的考试,具有相应的专业技能和知识。
2、CVEQC证书可作为劳动者岗前培训、在职培训、提高培训、继续教育的培训认证;也是劳动者“先培训、后就业,先培训、后上岗”的凭证。
3、CVEQC证书是中国职业教育资格认证指导中心颁发的专业技能证书。标有证书序列号、证书编号、培训者及证书持有者身份证号码,并盖有全国职业教育管理委员会、中国职业教育资格认证指导中心的证书专用章。
4、 证书证明参加培训及证书持有者具有系统地接受岗位技能培训的经历,证书在全国范围内有效。
二、报考条件:凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术应用能力的人员,均可根据本人情况报名参加相应专业类别、级别的考试。[1]
考试要求:
(1)掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
(2)理解计算机的组成以及各主要部件的性能指标;
(3)掌握操作系统、程序设计语言的基础知识;
(4)熟练掌握计算机常用办公软件的基本操作方法;
(5)熟练掌握基本数据结构和常用算法;
(6)熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
(7)熟悉数据库、网络和多媒体的基础知识;
(8)掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
(9)了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(10)了解信息化、计算机应用的基础知识;
(11)正确阅读和理解计算机领域的简单英文资料。
相关书籍:
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 9的书。
其实除了前9本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。
下面就按照各本书的推荐数排列。
1、《代码大全》 史蒂夫·迈克康奈尔
2、《程序员修炼之道》
3、《计算机程序的构造和解释》
4、《算法导论》
5、《重构:改善既有代码的设计》
6、《设计模式》
7、《人月神话》
8、《计算机程序设计艺术》
9、《编译原理》(龙书)
岗位分类:
世界上第一位程序员是英国着名诗人拜伦的女儿AdaLovelace,曾设计了巴贝奇分析机上解伯努利方程的一个程序。她甚至还建立了循环和子程序的概念。由于其在程序设计上的开创性工作,AdaLovelace被称为世界上第一位程序员。美国国防部开发的ADA语言就是为纪念这位世界上的第一位程序员而命名的。
计算机科学发展到今天(21世纪初期),程序员从事的人群很多,分工也不相同,从大的方面可以分为以下几类:asp程序员、jsp程序员、delphi程序员、php程序员、powerbuilder程序员、C程序员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、android程序员、iOS程序员。
职业要求:
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。所以要尽量抓住有用的工作和实习机会,这样的话在毕业后你就会发现,多实习让你有更多的经验,在找工作的时候就有更多的机会。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。
素质要求:
团队精神和协作能力:
团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
文档习惯:
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间用于写技术文档。没有文档的程序员势必会被淘汰。
规范化的代码编写习惯:
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
测试习惯:
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
学习和总结的能力:
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,只能说他是一名熟练的代码民工(码农),他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。
拥有强烈的好奇心:
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
日常工作:
确认通过审查方案的目标,输入数据,分析师,监事,和客户的输出要求的项目要求。
安排项目要求在编程序列分析要求;准备工作流程图和使用计算机知识的能力,题材,编程语言和逻辑图。
编码工作流程的信息转换成计算机语言的项目要求。
通过输入编码信息的计算机程序。
确认程序操作进行测试,修改程序序列和/或代码。
准备写操作指令供用户参考。
保持历史记录,通过记录方案的制定和修订。
维护客户的信心和保护保密的业务。
技能/资格:一般的编程技巧,分析信息,解决问题,软件算法设计,软件性能优化,注重细节,软件设计,软件调试,软件开发基础,软件文档,软件测试。程序员其实分为很多种,大家开发的语言可能不尽相同,但是都是有他们的共同点。