程序员需要学什么

程序员需要学什么,第1张

一、 考试说明

1、 考试要求:

(1) 熟练掌握基本算法和数据结构,用C语言编制程序;

(2) 掌握数据结构、程序变速器和 *** 作系统的基础知识

(3) 了解软件工程、数据库、多媒体和网络的基础知识;

(4) 掌握数制、机内代码及其算术运算和逻辑运算的基础知识;

(5) 了解计算机的体系结构和主要部件的基础知识。

2、 通过本级水平考试的合格人员能按照软件设计说明书编制程序,具有相当于助理工程师

的实际工作能力和业务水平。

3、 本级水平考试范围包括两个模块:模块1——程序编制能力(考试时间为150分钟);模

块2——基础知识(程序员级)考试时间为120分钟)。题型为:单项选择题十多项选择题。

二、 考试范围

模块1:程序编制能力

11按照软件设计说明书,能熟练使用下列程序语言编制程序

111C(美国标准)

12理解给定程序的功能,能发现程序中的错误并加以纠正

13具有良好的程序编制风格

14基本算法

141查找、更新、排序、合并及字符处理

142迭代、插值、数值积分、矩阵计算、议程求解和搜索求解

15程序编制方法

151分支、循环、子程序(过程和函数)、递归

152输入输出和文件的处理

模块2:基础知识(程序员级)

21软件基础知识

211数据结构基础

数组、记录、列表(list)、队列、栈(stack)、堆(heap)、树和二叉树的定义、存储和 *** 作

212程序语言基础知识

·汇编、编译、解释系统的基础知识

·程序语言的数据类型

·程序语言的控制结构

213 *** 作系统基础知识

· *** 作系统的类型和功能

· *** 作系统的层次结构和进程概念

·作业、处理机、存储、文件和设备等管理的基础知识

214软件工程基础知识

·软件生命周期各阶段的任务

·结构化分析和设计方法

·面向对象基本概念

·软件开发工具与环境基础知识

215数据库基础知识

·数据库模型

·数据库系统的结构

·SQL的使用初步

·常用数据库管理系统的知识

216多媒体基础知识

·多媒体基本概念

·常用图象文件

·简单图形(线段和圆)的计算机图示

22硬件基础知识

221数制及其转换

·二进制、十进制和十六进制等常用数制及其相互转换

222机内代码

·原码、补码、反码、移码

·定点数与浮点数的机内表示

·ASCII码及汉字编码等常用的编码

·奇偶校验码、海明码、循环冗余码(CRC)等常用校验方法

223算术运算和逻辑运算

·计算机中的二进制数运算方法

·逻辑代数的基本运算和逻辑表达式的化简

224计算机的体系结构和主要部件

·中央处理器CPU、存储器和输入/输出设备

·总线结构、指令流和数据流

225指令系统

·常用的寻址方式

·指令的格式、分类及功能

·指令的执行过程

23网络基础知识

231网络的功能、分类与组成

232网络协议与标准

233网络结构与通信

234网络的安全性

235Client-Server结构

236Internet和Intranet初步

作为一名IT行业的从业者,同时也是一名大数据、机器学习方向的研究生导师,我来回答一下这个问题。

首先,程序员完全可以靠技术来不断延长自己的职业生命周期,目前IT行业内也有大量的“70后”程序员一直奋斗在技术研发的第一线。

对于程序员来说,如果想一直从事程序开发工作,需要面临三大问题,其一是软件开发技术更新速度较快;其二是软件开发工作压力较大;其三是软件开发岗位升级难度较大,要想解决这三大问题,需要通过以下几个手段:

第一:重视基础知识结构。 程序员的基础知识结构往往能够决定程序员的成长空间,基础知识结构越扎实则上升空间就越大,职业生命周期也会越长。基础知识涵盖两大块内容,一部分是数学和物理知识,另一部分是计算机 *** 作系统、计算机网络、算法设计等内容。从应用级程序员向研发级程序员过渡一个重要的条件就是数学基础是否扎实,而研发级程序员的职业生命周期要远长于应用级程序员。

第二:重视自主学习。 不论从事应用级开发岗位还是研发级开发岗位,自主学习对于程序员的成长都具有重要的意义,很多程序员就是由于不注重自主学习而导致知识结构逐渐陈旧,最终被行业淘汰。自主学习一方面要紧跟技术发展趋势,另一方面要围绕当前工作内容。

第三:注重提升资源整合能力。 随着程序员年龄的增长,资源整合能力将对于未来的发展起到重要的作用,程序员的资源整合能力包括技术整合能力、方案整合能力和研发资源整合能力。当然,如果再具备一定的人力资源整合能力,那么会进一步提升自身的职场价值。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!

从我过往多年的生涯案例来看,我觉得程序员是否可以一直生存下去,关键在于:“技术是否精湛”。

一般来说,技术除非你是非常稀缺,大部分到了一定阶段,都会面临天花板,学习能力会随着年龄提升慢慢下降,就很难占据技术的前沿,28法则的存在,大约8成程序员需要谋求新的出路。

一般来说,会分为两条路径:

1横向路径:

技术领域看似专业性很强,但是一部分泛泛之辈,小部分某一个技术领域非常精湛,那么需要深耕,多年打磨,成为某一个细分领域的专家。

2纵向路径:

还有一部分程序员,本身对于程序非常倦怠,无法继续下去,那么纵向领域寻求突破,打个比方,你在某一方面才艺很强,摄影,营养学,演讲等,但是区别主业本身,可以从纵向里面慢慢打磨,成为你的核心技能,实现新的发展。

所以是否可以生存下去,完全取决你的选择,当你有一技傍身,那么才可以拥有全新的未来。

首先靠技术肯定是可以的,因为无论什么公司都会需要一个经验丰富,技术鼎力的一线程序员,但是这个有两个限制,一是这种程序员的职位需求不会太多,二是这种程序员在某个技术领域必须非常厉害,而且在某一个领域大牛的基础上,要有跟进其他新技术的能力,因为这种级别的程序员,公司不可能白白养着你,跨组协调,跨项目协作是最基本的要求,所以如果技术不在某一个领域达到大牛级别,且这个技术领域要有比较强的生命力,也就是说它的技术前景要比较好,否则想靠技术生存一辈子,还是比较危险的。选定好技术领域,然后耐心学习,很多技术人员本身是对技术痴迷的一类,所以这一类人还是很有竞争力的,他们学习新技术,深化领域技术的主观能动性一般是很强的。相信真正爱技术的人,即使他不靠技术生活一辈子,也会一辈子畅游在技术的海洋中。

首先答案是肯定的,但因人而异。

如果基本功扎实,个人又对技术的提升有着狂热的追求,善于钻研,对新技术不抵触,学习能力很强的话,可以一直靠技术生存下去。可以一直战斗在研发的第一线。这只是本职工作。

另外,可以利用自己的技术能力去做些兼职工作。比如接些外包的项目做做也是蛮不错的!

还有,比如现在很多内容平台上可以发布一些文章,甚至付费课程。生存是一点问题都没有。

如果你足够牛叉,还可以组建团队做技术VC。

其实靠技术不是能不能生存的问题,而是能活得多好的问题!

但,如果上面的优势在你身上不存在,那就另当别论了。

其实现在很多人都在说,技术人员到一定年龄该转管理等等。我的观点是看个人特点再做决定,比如你很健谈,善于交际。可以转做销售,一个懂技术的销售该有多么牛叉?如果你思维缜密,表达清晰。可以转做售前,一个懂技术的售前该有多么牛叉?

总之,你懂技术,转做什么都牛叉

程序员属于软考初级资格考试,软考程序员上午考基础知识科目,考试题型为客观选择题,基础知识科目满分为75分,考试时间安排在上午9:00-11:30。

软考初级程序员上午考试科目为基础知识,考试时间安排在上午9:00-11:30,考试范围如下:

1计算机科学基础

11数制及其转换

二进制、十进制和十六进制等常用数制及其相互转换

12数据的表示

数的表示

非数值数据的表示

13算术运算和逻辑运算

计算机中二进制数的运算方法

逻辑代数的基本运算

14数学应用

常用数值计算(矩阵、近似求解、插值)

排列组合、应用统计

编码基础

15常用数据结构

数组

线性表及链表

队列、栈

16常用算法

算法与数据结构的关系

算法设计和算法描述

常用的排序算法

查找算法

常用的数值计算方法

字符串处理算法

递归算法

最小生成树、拓扑排序和单源点最短路径求解算法

2计算机系统基础知识

21硬件基础知识

211计算机的类型和特点

微机(PC机)、工作站、服务器、主机、大型计算机、巨型计算机、并行机

212中央处理器CPU

CPU的组成

常用的寄存器

指令系统,寻址方式

令执行控制、中断控制、处理机性能

213主存和辅存

存储介质

高速缓存(Cache)、主存

辅存设备

214I/O接口、I/O设备和通信设备

I/O接口

I/O设备(类型、特性)

通信设备(类型、特性)

I/O设备、通信设备的连接方法和连接介质类型

22软件基础知识

221 *** 作系统基础知识

*** 作系统的类型和功能

处理机管理

存储管理

设备管理

文件管理

作业管理(作业调度算法)

图形用户界面和 *** 作方法

222程序设计语言和语言处理程序的基础知识

语言翻译基础知识(汇编、编译、解释)

程序设计语言的基本成分:数据、运算、控制和传输

程序语言类型和特点

23网络基础知识

网络的功能、分类、组成和拓扑结构

基本的网络协议与标准

常用网络设备与网络通信设备,网络 *** 作系统基础知识

Client/Server结构、Browser/Server结构

局域网(LAN)基础知识

Internet基础知识

24数据库基础知识

数据库管理系统的主要功能和特征

数据库模式(概念模式、外模式、内模式)

数据模型、ER图

数据 *** 作(关系运算)

数据库语言(SQL)

数据库的主要控制功能(并发控制、安全控制)

25多媒体基础知识

多媒体基本知识

常用多媒体设备性能特征,常用多媒体文件格式类型

26系统性能指标

响应时间、吞吐量、周转时间

可靠性、可维护性、可扩充性、可移植性、可用性、可重用性、安全性

27计算机应用基础知识

计算机常用办公软件 *** 作方法

计算机信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等领域的应用

远程通信服务

3系统开发和运行知识

31软件工程和项目管理基础知识

软件工程基础知识

软件开发生命周期各阶段的目标和任务

软件过程基本知识

软件开发项目管理基本知识

软件开发方法(原型法、面向对象方法)基础知识

软件开发工具与环境基础知识(CASE)

软件质量管理基础知识

32系统分析设计基础知识

数据流图(DFD)、实体联系图(ER图)基本知识

面向对象设计、以过程为中心设计、以数据为中心设计基础知识

结构化分析和设计方法

模块设计、代码设计、人机界面设计基础知识

33程序设计基础知识

结构化程序设计、流程图、NS图、PAD图

程序设计风格

34程序测试基础知识

程序测试的目的、原则、对象、过程与工具

黑盒测试、白盒测试方法

测试设计和管理

35程序设计文档基础知识

算法的描述、程度逻辑的描述、程度规格说明书

模块测试计划、模块测试用例、模块测试报告

36系统运行和维护基础知识

系统运行管理基础知识

系统维护基础知识

4信息安全基础知识

信息系统安全基础知识

信息系统安全管理

加密与解密基础知识

5标准化基础知识

标准化基本概念

标准的层次(国际标准、标准、行业标准、企业标准)

相关标准(代码标准、文件格式标准、安全标准、软件开发规范和文档标准、互联网相关标准)

6信息化基础知识

信息、信息资源、信息化、信息工程、信息产业、信息技术的含义

全球信息化趋势、信息化战略、企业信息化战略和策略常识

有关的法律、法规要点

7计算机专业英语

具有助理工程师(或技术员)英语阅读水平

掌握本领域的英语基本术语

温馨提示:因考试政策、内容不断变化与调整,猎考网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

下方免费复习资料内容介绍:信息系统项目管理师论文历年真题pdf下载

格式:ZIP大小:83044KB 2022上半年系统集成项目管理工程师下午真题

格式:PDF大小:41142KB

资格考试有疑问、不知道如何总结考点内容、不清楚报考考试当地政策,点击底部咨询猎考网,免费领取复习资料

一、 考试说明

1、 考试要求:

(1) 熟练掌握基本算法和数据结构,用C语言编制程序;

(2) 掌握数据结构、程序变速器和 *** 作系统的基础知识;

(3) 了解软件工程、数据库、多媒体和网络的基础知识;

(4) 掌握数制、机内代码及其算术运算和逻辑运算的基础知识;

(5) 了解计算机的体系结构和主要部件的基础知识。

2、 通过本级水平考试的合格人员能按照软件设计说明书编制程序,具有相当于助理工程师

的实际工作能力和业务水平。

3、 本级水平考试范围包括两个模块:模块1——程序编制能力(考试时间为150分钟);模

块2——基础知识(程序员级)考试时间为120分钟)。题型为:单项选择题十多项选择题。

二、 考试范围

模块1:程序编制能力

11按照软件设计说明书,能熟练使用下列程序语言编制程序

111C(美国标准)

12理解给定程序的功能,能发现程序中的错误并加以纠正

13具有良好的程序编制风格

14基本算法

141查找、更新、排序、合并及字符处理

142迭代、插值、数值积分、矩阵计算、议程求解和搜索求解

15程序编制方法

151分支、循环、子程序(过程和函数)、递归

152输入输出和文件的处理

模块2:基础知识(程序员级)

21软件基础知识

211数据结构基础

数组、记录、列表(list)、队列、栈(stack)、堆(heap)、树和二叉树的定义、存储和 *** 作

212程序语言基础知识

·汇编、编译、解释系统的基础知识

·程序语言的数据类型

·程序语言的控制结构

213 *** 作系统基础知识

· *** 作系统的类型和功能

· *** 作系统的层次结构和进程概念

·作业、处理机、存储、文件和设备等管理的基础知识

214软件工程基础知识

·软件生命周期各阶段的任务

·结构化分析和设计方法

·面向对象基本概念

·软件开发工具与环境基础知识

215数据库基础知识

·数据库模型

·数据库系统的结构

·SQL的使用初步

·常用数据库管理系统的知识

216多媒体基础知识

·多媒体基本概念

·常用图象文件

·简单图形(线段和圆)的计算机图示

22硬件基础知识

221数制及其转换

·二进制、十进制和十六进制等常用数制及其相互转换

222机内代码

·原码、补码、反码、移码

·定点数与浮点数的机内表示

·ASCII码及汉字编码等常用的编码

·奇偶校验码、海明码、循环冗余码(CRC)等常用校验方法

223算术运算和逻辑运算

·计算机中的二进制数运算方法

·逻辑代数的基本运算和逻辑表达式的化简

224计算机的体系结构和主要部件

·中央处理器CPU、存储器和输入/输出设备

·总线结构、指令流和数据流

225指令系统

·常用的寻址方式

·指令的格式、分类及功能

·指令的执行过程

23网络基础知识

231网络的功能、分类与组成

232网络协议与标准

233网络结构与通信

234网络的安全性

235Client-Server结构

236Internet和Intranet初步

一、程序员的分类

程序员从事的人群很多,分工也不相同,从大的方面可以分为以下几类:asp程序员、delphi程序员、php程序员、powerbuilder程序员、C程序员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、ABAP程序员、android程序员、iOS程序员。

二、所学的知识与必备技能

1、熟练开发软件

做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。

2、熟悉数据库

很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库 *** 作方法。

3、了解 *** 作系统

要想成为一个真正的编程高手,需要深入了解 *** 作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。要懂得网络协议TCP/IP。网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/>

三、薪资待遇

程序员的薪资待遇分档次,大致情况是这样的:

初级软件工程师(0-3年开发经验),平均月薪(3000-8000)

中级软件工程师(3-5年开发经验),平均月薪(5000-12000)

高级软件工程师(5年+开发加2+管理),平均月薪(10000-90000)

一般只有刚毕业的初级工程师说的是月薪,中高级基本是年薪。 

也有刚毕业就签的年薪的。这个是大致范围就这样,也有少部分低于3000或高于90000的 具体差别要看自己的,毕业院校,专业学历,专业能力,外语能力,职称等级,综合能力,以及所在城市还有自己的选择等。但最主要的是看专业能力的。

什么是程序员?

程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。

前端和后端是从开发者的角度来讲的

前端就是用户可见部分的优化、交互功能开发,随着软件WEB化,Html5前端开发技术的发展,前端的技术方向越来越多,可开发解决的功能很多。

web前端有广阔的发展空间,app、小程序、移动端、pc端等都是需要前端技术的开发支持才能够完成,技术门槛相对较低、需求量较大,薪资待遇良好。只要是互联网端的客户界面,就需要前端来制作完成,前端开发的编程量不大,但是需要部分编程,入门简单,但是要学的深入需要一个过程。

Web前端招聘岗位

• 前端开发工程师、Web开发工程师、网页开发工程师、HTML开发工程师

• H5开发工程师、移动应用开发工程师、App开发工程师、小程序开发工程师

• JS开发工程师、Vuejs开发工程师、Nodejs开发工程师、前端架构师

• 小游戏开发工程师、数据可视化开发工程师、WebGL开发工程师、WebVR开 发工程师、Web安全工程师

在互联网行业,前端有WEB前端、HTML前端等,随着互联网技术发展,就业方向也有很多。web前端的就业方向有web架构师、web前端工程师、HTML前端开发工程师、网页设计师等等。

HTML前端开发

与Web前端开发不同的是,使用HTML5不仅仅可以开发前端,还有网页游戏,手机APP,使用浏览器进行3D渲染等一系列建立在HTML5标准与搭载其标准浏览器上的开发,而未来可能会有更多的功能分支并入HTML5标准。web前端工程师

这个方向是目前从事Web前端开发的主要就业方向

Web架构师

薪资普遍比较高,技术要求高,掌握多种技能,包括:后端技术、DBA、Platform等等,甚至包括网站优化SEO技术。

数据方向

数据研发这个是在Web开发的基础上用数据附能,懂可视化的一定是有前端能力的,懂hadoop的一定java要熟悉,属于Web开发的拓展方向。

大前端方向

比如阿里,在大量实践rn和weex;由于公司内部安卓/ios式微,一定程度上,前端把ios和安卓收编了,统称大前端。

图形学方向

前端自然是与图形学有千丝万缕的联系,除了上面提到了可视化,还有相关3d引擎的开发工作。做这一行要求也非常高了,图形学相关的算法,3d引擎的开发,这都需要图形学相关知识。

在人们的印象中,程序员这份工作吃的就是“青春饭”……年轻时意气风发,人到中年就无人问津了。

事实上,上述情况确实是存在的……在程序员这个行业当中,年纪大的程序员确实更容易失业。

之所以程序员越老越容易失业,是因为以下几方面原因:

1,程序员这份工作需要最新的知识结构。

程序员,就是从事电脑软件编程,以及与计算机相关的系统开发、维护相关工作的人。

因为与计算机这个技术进步非常快的专业相关联,因此程序员需要具备最新的知识结构才能胜任本职工作。

这样一来,年轻人因为刚刚毕业,从而拥有得天独厚的优势。

而年纪大的程序员则会因为知识结构相对老化而处于劣势。

2,做程序员需要充沛精力。

程序员这份工作非常辛苦,对体力和精力的要求非常高。

年轻人精力充沛,能够适应更辛苦的工作,因此在程序员这个领域更具优势。

而年纪大的程序员体力下降,精力也相对不足,在这个行业工作就力不从心了。

3,程序员需要创新意识。

程序员工作的最重要内容之一,就是开发新系统。

这就需要程序员具备更强的创新能力。

年轻人思维活跃,更具创新意识,因此在程序员这个领域更具优势。

而年纪大的程序员因为思维相对固化,创新能力下降,因此在程序员这个领域就处于解劣势了。

以上几方面原因,就是程序员越老越容易失业的根本原因。

以上就是关于程序员需要学什么全部的内容,包括:程序员需要学什么、程序员纯靠技术能一直生存下去吗、软考程序员上午考什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9278644.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存