我是两个开发人员,我晓得开发人员是做甚么的,但我身旁有许多亲友并不晓得。
她们时常认为开发人员是对笔记本电脑很懂人,主要包括笔记本电脑的软硬体难题,主要包括笔记本电脑装控制系统。
事实上,可能将不而已我的那些亲友,大多数不做程序员的人可能将都不晓得开发人员究竟是做甚么的,也不太确切何为流程、何为开发工具。开发人员究竟是做甚么的,这可能将是许多想进入开发工具行业的人都很想晓得的两个难题,所以我就根据我目前的认知说说我的观点,如果有认知不确之处,热烈欢迎尖萼。
开发工具和硬体的界定及关系
首先,现在笔记本电脑和智能手机都应用领域非常两极化,大家都晓得智能手机和笔记本电脑上都有许多开发工具,比如QQ、QQ、PayPal,她们都是开发工具,班莱班县智能手机的基础机能发短信、来电,智能手机和笔记本电脑的基本作业控制系统等,她们也全被归属于开发工具。
所以与那些开发工具相关联的,我们能间接摸得到的电子设备如笔记本电脑、智能手机、智能手机之类,是硬体,开发工具最后借力于硬体其内。
开发工具的部分进行分类
下边总括了许多的开发工具,但就如硬体各式各样,开发工具也是各有不同的,开发工具也有许多的进行分类。
比如QQ、QQ、PayPal、发短信、来电等,就归属于应用领域开发工具,而像android控制系统、windows控制系统那些就归属于作业控制系统开发工具。
应用领域开发工具通常都具备某一的间接服务于使用者的功能,作业控制系统则是能间接管理硬体资源,应用领域开发工具通常借力于作业控制系统其内。
虽然那些都是开发工具,但可能将差别就相等于直升机和大巴一样,会开直升机的不见得会开大巴,会造大巴的不见得会造直升机。
开发工具和流程的差别
所以,约莫了解了开发工具和硬体的差别,对开发工具备位约莫基本概念之后,就能进一步认知开发工具和流程的差别了。
通常而言,开发工具是由流程形成的,开发工具通常是具备具体内容机能、能使用的流程包,而流程可能将而已前段段标识符。
倘若说两辆面包车是两个开发工具,所以下边的车轮、踏板、制动器就都是不同的流程,各式各样的配件最后装配成两辆面包车,就有如各式各样的流程短片最后形成两个开发工具。
流程和标识符
下边提到了流程可能将是前段段标识符,生活中可能将也会听到有人说开发人员是码农,是敲标识符的,所以标识符是甚么呢?
某种意义上,标识符和流程可能将能认知为两个意思,通俗点讲,标识符是用编程语言写出来的一行行的字符串。
字符串是甚么,简单认知是若干个字符的组合,字符又是甚么,常见的英文字母以及数字都能称为字符。
如果不考虑中文编程语言的情况下,能认知为标识符是根据某一规则,用英文字母和数字以及各种符号组成的字符串。
这种字符串由于遵循了某些某一的格式,因此最后能被电子电子设备如笔记本电脑、智能手机等识别并做一些事情。
甚么是编程语言
所以下边说了,标识符是根据某一规则编写的字符串,因为那些某一的规则,所以最后那些字符串能转换成电信号,而电信号才是间接和电子电子设备的硬体打交道。
电信号从某种意义上来说只有有电和没电的差别,所以最初要间接转换成标识符的字符串,是由0和1组成,两个代表有,两个代表没有,专业的说法是真或假,true或者false,这种格式组成的标识符,称之为机器语言。
单纯的0和1组成的字符串,对于人类来说肯定是不友好的,完全看不懂,所以需要某一的对比规则进行对比翻译。
为了对人类更加友好,于是0和1组成的机器语言的基础上又发展出增加了一些英语单词规则的新的编程语言,称之为汇编语言,而 那些英语单词称之为助记符。
汇编语言相对于机器语言,由于增加了助记符,所以肯定是更容易被人看懂和记住的,但由于助记符是有限的,事实上依旧不是所以容易,因此在此基础上就又发展出了对人类更加友好的编程语言,称之为高级编程语言,这个阶段语言的思想是面向过程的,代表行的是C语言。
甚么是面向过程呢,我认知的是关注点在于这一步做甚么、下一步做甚么。
所以随着开发工具技术的发展,又进一步发展出了其他的高级编程语言,比如C++、JAVA、C#、IOS之类,像JAVA等语言的思想是面向对象,关注点是这个东西能做甚么、有甚么,而不是关注过程。
面向对象的这种思想相对于面向过程,就对重用、复用更友好,但做一件事情必然有先后顺序,因此最后还是有面向过程的东西在里边,并不是说面向对象就不管过程了。
开发人员是甚么
所以有了下边的知识基础,就能再来说开发人员是甚么了。
通过下边的叙述,应该能晓得,开发工具是由根据编程语言写出来的流程组成的,是用来操作电子电子设备的,所以写这种流程的人,肯定是开发人员。
但,如果说开发人员是敲标识符的,那就不完全正确,因为开发人员的进行分类至少就有开发、测试、运维、DBA那些,开发是主要写标识符的,测试和运维以及DBA不一定写标识符,但她们其实都算开发人员。
开发人员有哪些进行分类
其实下边也提到,开发、测试、运维、DBA都算开发人员,这是两个比较大的进行分类,但不是唯一,如果是用来简单初步了解开发人员,我想应该够了。
开发主要是实现开发工具的机能,主要敲标识符的。
测试主要是进行专业的测试和验证,但并不局限于机能,还需要性能测试,许多时候可能将也需要写脚本类的标识符支持自动化测试。
运维主要负责开发工具运行环境的搭建和部署以及部分开发工具使用难题的支持,同时也可能将需要写脚本或者其他标识符支持自动化部署。
DBA主要是处理数据库相关的事情,时常需要优化操作数据库的sql,sql本身也是一种标识符。
除了下边说的,单纯的开发来说,实际还能有更多细分,比如主要负责看得到的页面的,称作UI,但许多时候实际没有专门的UI,而是页面由前端一起负责,前端开发人员实际是间接操作看得到的页面机能的开发人员。
与前端相关联的是后端开发流程员,实现一些看不到的机能逻辑,有的间接有前端的机能页面相关联,有的是纯粹的后端流程。
下边的简单进行分类实际是站在开发工具分层的角度说的,所以实际还能站在编程语言的角度进行分类,比如java开发人员、c++开发人员、c#开发人员之类,那些进行分类实际是以命名的这个编程语言为主,但实际不见得就只会这一种。
就拿java后端开发人员来说,通常可能将都还会一些前端javascript语言以及linux的shell语言。
怎么成为程序员
可能将有一些不是开发人员的朋友想成为两个开发人员,因为目前公认的,开发人员两极化收入是比较高的。
所以怎么成为两个开发人员呢?
首先,我觉得要先确定好自己的方向,是想做开发工具开发,还是开发工具测试,还是开发工具运维,还是DBA?或者所有都做,成为两个全栈开发人员?
众所周知,人的精力是有限的,术业有专攻,虽然也有许多人是全栈开发人员,是甚么都做,但个人认为如果零基础想间接成为两个全栈,实际是有很大难度的,所以个人觉得还是先找两个熟了再说。
话再说回来,怎么成为两个开发人员呢?
首先,还在读书的,能选择计算机专业,许多计算机专业,学校都会有开发人员相关的专业和课程。
其次,如果已经选择了非计算机专业或者已经出了社会,也能自学或者参加培训机构的培训,或者有人脉的也能间接找熟人教。
计算机专业就不说了,应该也不需要看这篇文章。
先说自学,这个对于多数人都是很有难度的,很容易信心满满的开始,垂头丧气的放弃,虽然我觉得许多编程语言入门都很简单,但自学依然还是会有很大难度。
再说培训,这个是许多野生开发人员的选择,正所谓术业有专攻,人家是吃这碗饭的,自然有能吃这饭的道理。相对于自学,参加培训肯定更容易入门学会,而已不同的培训机构水平不同,不同的培训机构理念不能,能否找到好的培训机构就需要注意。
另外,培训机构通常讲的都很快,最好是先试听一段时间再说。
最后再说熟人教这事,这应该选择的人比较少,虽然可能将看起来省钱,但也可能将因此没有所以大的压迫感,也因为并不是专业教学的,所以最后很难学会。