程序员应该学习什么技能_程序员技能要求

程序员应该学习什么技能_程序员技能要求,第1张

程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。

作一个真正合格的程序员,应该具有的素质。

1:团队精神和协作能力

团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。

2:文档习惯

文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。

3:规范化的代码编写习惯

知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。

4:需求理解能力

程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。

5:模块化思维能力

作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。

6:测试习惯

测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。

7:学习和总结的能力

程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。

作为高级程序员,除了应该具备上述全部素质之外,还需要具备以下素质:

1、需求分析能力

2、整体框架能力

3、流程处理能力

4、模块分解能力

5、整体项目评估能力

6、团队组织管理能力

1,激情。

我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。激情是一个优秀程序员的重要指标。

2,自学好学

编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。

3,聪明

聪明包括很多因素,情绪和社会交际只是其中之一。好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。

4,隐性的经验

—好的程序员通。常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上(通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。

5,技术多样性

由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有“强烈”的个人意见/见解,喜好尝试新鲜技术。

6,资格证书

资格证书并不是识别真正程序员的方法,MCSE、SCJP、说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。

原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。但相信这些对大多数真正的程序员都适用。

总结而言,优秀的程序员通常有一下特点:

n对技术充满激情;

n将编程作为一种爱好

n如果你允许会滔滔不绝地跟你谈论技术

n有过个人的开发经历(与4意思相同)

n坚持认为某种技术最好

n如果让他用他认为不好的技术他会非常别扭

n聪明、健谈、兴趣广泛

n在大学和工作前就开始接触程序

程序员一枚,从周围同事的情况来看,程序员这行对专业的要求没有想象中那么高,但是也有迹可循。

一:软件工程 / 计算机科学与技术

这两个专业几乎是为程序员量身定做的,在大学时代就能接触到非常多如编程语言、计算机原理(计算机组成原理、 *** 作系统、计算机网络等)、数据结构算法等与编程密切相关的课程,而且大多为必修课。这些课程学好了以后,大多数同学都还是可以收获一份比较满意的程序员工作的。

                                 

二:网络工程 / 信息安全

这些专业也属于计算机大类目下,对比软件工程等会更侧重在网络安全上,当然编程语言、算法、计算机基础也都是这些专业比较重要的课程,对于应届生来说这些都是成功应聘程序员岗位重要的基础知识。

三:物联网 / 电子与计算机工程

这部分专业在大学期间学习的内容不局限在软件本身,除了常见的C汇编语言外,也有很多电子信息硬件等相关知识。在找工作时候,这些硬件知识对应的原理如果掌握的较好,也会起到一定帮助;当然,这也建议你在大学期间花费更多的经历去了解算法和数据结构等软件知识,能够起到不小帮助。

                                   

四:人工智能 / 区块链

这些都是新兴的专业,侧重在包括AI、区块链等新一代互联网技术上,除了上面提到的基础知识外,这些特定的技术在面对对口岗位(如策略算法工程师等)有非常大的竞争优势。

总结一下,对口程序员的专业主要集中在大类“0809计算机类”与“0807电子信息类”下,可以多关注这些专业内容。当然,我的同事中也不乏英语、物理、数学等专业毕业的,其实无论在大学选择了什么专业,只要能够定向的学习计算机语言,学些基础知识,都还是有机会成为一名合格的程序员的。

程序员:

程序员是从事程序开发、程序维护的专业人员。程序员一般需要会做:确认通过审查方案的目标,输入数据,分析师,监事,和客户的输出要求的项目要求。

通常情况下将程序员分为程序设计人员和程序编码人员,软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。

程序:

程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。以某些程序设计语言编写,运行于某种目标结构体系上。

程序就如同以英语(程序设计语言)写作的文章,要让一个懂得英语的人(编译器)同时也会阅读这篇文章的人(结构体系)来阅读、理解、标记这篇文章。

扩展资料:

程序员的日常工作:

1、确认通过审查方案的目标,输入数据,分析师,监事,和客户的输出要求的项目要求。

2、安排项目要求在编程序列分析要求;准备工作流程图和使用计算机知识的能力,题材,编程语言和逻辑图。

3、编码工作流程的信息转换成计算机语言的项目要求。

4、通过输入编码信息的计算机程序。

5、确认程序 *** 作进行测试,修改程序序列和/或代码。

6、准备写 *** 作指令供用户参考。

7、保持历史记录,通过记录方案的制定和修订。

参考链接:百度百科-程序员

百度百科-程序

游戏程序员学计算机科学与技术专业,游戏程序员是从事程序开发、程序维护的专业人员。计算机科学与技术专业是培养能胜任计算机科学研究、计算机系统设计、开发与应用等工作的高级专门人才的学科。游戏程序员的职责是:1、负责游戏项目的详细设计、编码和内部测试的组织实施;2、参与需求调研、项目可行性分析、技术可行性分析和需求分析;3、参与软件开发和维护过程中重大技术问题的解决;4、负责相关技术文档的拟订;5、负责对业务领域内的技术发展动态进行分析研究。

问题一:想学 网络运维工程师 需要什么要求 如何入门呢? 你是打算自学是吗?运维不仅仅是单机方面的知识哟,还涉及局域网,还有路由交换等等呢!你现在到底有什么样的基础,大家也不是很清楚哈。要不你说说自己的情况吧。

问题二:我想做运维工程师,应该学些什么 linux的各种服务器,还有就是各种路由交换的协议,以及会脚本的制作,网络结构规划,等等。

问题三:运维工程师需要什么技能? 最好的方法就是去看一些招聘网站的招聘简介了 已经很全了

岗位职责:

1、负责公司网络总体系统及子系统的维护;

2、负责网络整体架构规划、实施、优化、安全;

3、负责整体网络的 *** 作规范文档编写,整合系激资源;

4、负责整体网络的风险评估与备份系统实现;

5、研究主流的互联网应用技术,并负责将此是现在公司业务系统测试及应用;

6、公司整体网络架构规划,实施及维护;

7、主动发现问题,提出合理化建设,积极提出优化手段和建议。

任职资格:

1、大专学历,3年以上工作经验;

2、能够承受一定的工作压力,具备良好的沟通协调能力及突发事件单独处理能力;

3、熟悉unix/linux *** 作系统;

4、熟悉Linux下不同数据库的安装和调试,熟练使用shell脚步语言;

5、精通LAMP架构,对LAMP架构的部署、搭建、优化、排错等方面有丰富的经验。对高负载、大访问量 情况下的LAMP架构有运维经验者优先。

6、熟悉Linux下不同的存储解决方案,同时管理超过50太以上的linux服务器组,有整体管理经验者优先;

7、利用syslong收集各个关键出口设备情况,充分利用snmp协议,规划并架设一整套网络监控系统;

8、具备独立的工作能力,良好的沟通能力和团队精神,高度的责任心,工作积极主动

问题四:运维工程师需要学习哪些课程 *** 作系统概述、文件系统管理、unix作业管理、网络模型、UDP协议、网络层协议、各类局域网。

Linux基础知识、Vim使用、Shell编程、软件包管理、常用Server、容量分析、性能优化等。

AIX系统管理概述、系统管理工具、软件安装与维护、备份与恢复、网络管理基础、故障诊断、案例分析等。

powerHA概念和实施规划、VIO搭建和部署、日常检查、Oracle体系结构、客户机连接SQL语句、OracleRAC搭建等。

问题五:运维工程师必须掌握的基础技能有哪些 技能:

1 Linux基础

包括对Linux整体的理解/使用和基本命令:

了解Linux FHS : Filesystem Hierarchy Standard,国人写的这本书不错 Linux系统架构与目录解析 (豆瓣)

入门Linux:鸟哥的Linux私房菜基础学习篇(第三版) (豆瓣) 个人认为鸟哥的这本书是一本非常好的入门书

基本 *** 作命令:Google,如Linux mand cheat sheet

熟悉至少一个内置编辑器: vi, nano

至少熟悉一个发行版(或系列),建议作为服务器常用的如Centos, Debian, Ubuntu,可以了解多个常用发行版

2 运维的命令:

运维相关的工具(命令),了解它能解决很多问题。

前几天刚回答了一个问题:如何才能更深入的学习linux?

里面的图在这里也可以用到:

可以对着图对学习了解这些命令。

另外我个人也会对平时用到的这些工具做一个整理和记录,总结到我的个人维基上:Wiki ・ Tanky Woo

3 基础服务:

LAMP或LNMP :Apache/Nginx,MySQL,PHP/Python/Perl LAMP (software bundle)

FTP

DNS

SAMBA

EMAIL

NTP

DHCP

可以本地搭建练练手

这里推荐鸟哥另外一本书 服务器架设篇: 鸟哥的Linux私房菜 (豆瓣)

4 运维平台工具:

也在这个问题 如何才能更深入的学习linux? 里提到了:

Nagios

Puppet

Zabbix

Cacti

SaltStack

可以选择性的折腾下,因为这个涉及到业务,没有实际环境,很难去理解他们的功能和特点。

5 脚本:

必备:Shell

额外:Python,Perl

6 底层:

Linux C,内核

7 网络:

网络是非常重要的一块

把《TCP/IP协议详解》多看几遍,理解。

熟练使用tcpdump等抓包工具

8 安全:

防火墙配置,如 iptables

9 硬件:

接口类型

查看硬件信息

知道各类型服务器,如塔式、机架式、刀片式

10 其它:

了解更多特定技能要求的方式:

Google搜Linux运维工程师 招聘,看看他们的需求。

最后推荐一本书:Unix/Linux系统管理技术手册 UNIX/Linux 系统管理技术手册 (豆瓣)

后续想到再做补充

素养/处理方式:

除了技能,我觉得素养(态度)也可以谈谈

这个正好看到右边相关问题:运维工程师需要具备哪些性格特质?

1 安全

运维人员的权限很大,所以一定要保证帐号/私钥的安全。

最好使用加密工具存储。比如truecrypt,1password

基于本地存储。切勿用网盘,也不建议用lastpass等

ssh私钥添加密码

以上任何一点都很重要,否则弄丢了,风险会非常大。

2 责任心

如上面那个帖子里 @山大 提到的 Owner 意识

遇到报警,第一时间处理,而不要等着他人去处理

如果无法处理,应该第一时间让同事协助帮忙,而不要禁止报警,让问题掩盖

3 细心

你的任何一个 *** 作,都可能造成系统的损坏、业务出问题。所以敲命令时一定要细心、再三确认。你敲的再快,也就节省那么一点时间,出了问题才是大事。

4 推进/改善

如果代码有问题,导致系统开销很大,比如负载,io等。应该第一时间和开发部门确认,要求优化代码。

5 进取心/不断学习

运维的知识范围很广>>

问题六:运维工程师必须掌握的基础技能有哪些 1,网络工程师的工作

你至少要能配置CISCO 6509以下的设备,熟悉各种网络协议,否则网络出问题的时候你会傻掉。

2,系统工程师的工作

你至少要理解各种系统服务,在出问题的情况下要迅速解决问题,而不是等系统工程师来解决。

3,安全工程师的工作

我不要求你一定要会各种网络编程,但是在服务器收攻击的情况下,没有防火墙的情况下,做一些简单的处理工作。

4,存储工程师的工作

至少要熟悉各个厂商的设备,各种备份和还原的办法

5,测试工程师的工作

在新版本上线之前,你至少要协同测试工程师做测试工作,因为你是运维人员,不了解程序架构导致无法解决故障,你也有一份责任。

6,研发人员的工作

运维工具都需要自已开发,熟悉开发语言,需要有过实际开发经验,否则工作会非常痛苦,我深有体会。

7,英语

不想说了,我的最大痛苦就在这里

8,好的沟通者

不出问题时候你可以打游戏睡觉,出问题的时候要能和项目人员沟通,快速解决问题,而不是推;我知道有很多人能推责任,你可以做替死鬼,但是离开这个工作你还能找到更好的;把责任推到别人身上的人,下次出问题的时候,绝对没人帮你。你要能和各个兄弟部门关系非常的密切,出了问题有兄弟帮你担责任;也要能非常扯皮,没事在会议上把别人都搞定。

9,库房管理员

数万台服务器让你来管理,任何丢失或者损坏都是不负责任和失职的表现。

问题七:it运维工程师需要了解哪些知识点 推荐看一些该职位的招聘信息。

另外百度百科有介绍如下:

baikebaidu/view/3118292

问题八:初学运维工程师需要学习那些重点 linux基础-->基础服务器-->mysql数据库-->shell脚本-->负载均衡-->高可用-->监控等

问题九:服务器运维工程师应该掌握哪些知识 运维工程师 熟悉tcpip系列协议,熟练配置思科和华为网络 能参考手册配置其他厂商设备 包括安全设备

熟悉服务器硬件系统配置 *** 作系统 unix linux windows等安装配置 检测其运行等

熟悉常见的应用如web ftp 邮件等服务搭建 及排查

熟悉常见的系统安全设置,以及整个安全体系架构

会安装及配置维护常见数据库oracle mysql sql-server等

有一定的存储方面的知识

郸 。。。。。。。

要熟悉你服务器的环境相关的东西 特别是网络相关

熟悉服务器的硬件配置 熟悉服务器上的 *** 作系统及各种常见的应用系统

熟悉发生故障的时候处理流程等

不强求你精通内核调优等 但是你知识要全面 而且有一两手是拿手的

问题十:IT运维工程师主要是什么的啊? 负责机房IT系统核心设备的日常巡检与维护工作,能按要求对其进行配置,保障系统的正常、安全运行;

2、负责服务器系统的安全管理,做好数据安全和病毒的防范工作;

3、负责现场的技术支持,及时解决出现的各类技术故障;

4、负责数据库管理,及相关系统测试;

5、负责制定各服务器的数据备份计划,并且确保备份数据可用性;

6、必要时,协助Helpdesk做一些桌面技术支持工作;

7、负责与相关部门的的交流,及时反馈用户使用信息;

8、运维文档的撰写与归档工作。

以上就是关于程序员应该学习什么技能_程序员技能要求全部的内容,包括:程序员应该学习什么技能_程序员技能要求、想当程序员,大学应该学什么专业、想学程序,做一个程序员入门该做什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10105997.html

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

发表评论

登录后才能评论

评论列表(0条)

保存