~阿弥陀佛~

人生能有多少天是按照自己的想法去活着

行业介绍与分析

先谈谈IT这个行业所涉及到的职位和技能。分类非常复杂且多变。每一个分类都可能牵扯更多的更严谨的分支。

1. 产品经理不用多说,相信大家在看段子的时候也应当有所了解。在开发眼里产品经理什么都不懂,蠢的不行;在产品经理看来开发无所不能。那啥,小王你给我开发个五彩斑斓的黑出来……诸如此类,往往到了最后留下的都是血泪和笑话。

但是,产品经理真的有那么蠢吗,下面几句话来诠释该职位的重要性和普通人的可望而不可即。

产品经理通常被赋予管理及营销特定的产品线,品牌和服务的责任,在某些情况下,产品经理也可能被冠以品牌经理、行业经理、顾客细分经理等名称   –《产品经理的第一本书》

A  successful  product  manager  can  not  only  help  direct  the  path  of  the  product, but can also  direct  the path of the company 一个成功的产品经理不但能引导产品的发展,而且能引导公司的发展。     –AIPMM

一个产品经理要接触很多的知识,对待这些知识,他们要像顶级象棋大师一样学会忘谱。因为现实生活中没有人按棋谱来,不是你下一步当头炮,他下一步卧槽马。忘谱是一个非常痛苦而又非常重要的整合资源的过程,你要把那些形式都忘掉,剩下的只有规则,知其然知其所以然   —–《卓越产品经理的六种变身》

 2. UI/UE设计师行业内被冠以美工之美名,目前行业内最为抢手的人才之一,贫僧片面的总结抢手之重要两点:“美”和“女”,即美观别样而精致,现在社会追求什么而又缺什么,理所当然。

UI设计师三大技能,非常适合有天赋和心细的女孩子去做。一是图形设计即对软件产品的外形设计。二是交互设计,主要在于设计软件的操作流程、树状结构、操作规范等,一个软件产品在编码之前需要做的就是交互设计,并且确立交互模型,交互规范。三是用户测试研究,这里所谓的测试其目标在于测试交互设计的合理性以及图形设计的美观性,主要通过以用户调查问卷的形式来衡量UI设计的合理性。

UI主要技能当然是Photoshop、lllustrator、Flash等图形软件。但是现在的UI可不仅仅是画界面,还要懂得HTML、CSS甚至部分JAVA。程序员拿到html模板后,在上面添加业务代码即可。

 3. web前端工程师主要致力于浏览器端页面的用户体验,利用HTML,CSS,JavaScript,Flash等web技术进行客户端产品的开发。

这里要提一下,贫僧在搭建该站点进行页面布局的时候有用到前端的一点点技术,也稍作了些了解,比如CSS和HTML。

HTML(:HyperText Markup Language)超文本标记语言:超文本顾名思义便是非文本比如图片比如音乐比如程序等等,网页制作必备,可以说你看到的每一个网页本质就是HTML。优点,简易、可扩展、平台无关、通用等。缺点等你去发现。

CSS(Cascading Style Sheets)层叠样式表:一种用来表现HTML或XML等文本样式的计算机语言,不要问贫僧XML具体的是什么然后什么又是什么,自己百度去,很多东西如果一直不停的去探索,你会发现那简直就是个无底洞,累死你这辈子也探索不完。

贫僧简单总结这几个名词的关系,CSS为HTML而生,解决HTML发展到一定程度的杂乱问题为HTML提供一种样式表描述。而XML(Extensible Markup Language)可扩展标记语言是各种应用程序或者万维网(WWW)进行数据传输的最常用工具,XML不是用来替代HTML而是对HTML一种补充,它和超文本标记语言为不同的目的而设计。XML用来传输和存储数据其重点在于数据的内容而HTML用来显示数据重点在于数据的外观。这种逻辑有点像编译语言中面向过程和面向对象的逻辑但又有不同点。 

 4.编程工程师或者后端工程师后端程序员主要实现业务逻辑,提供接口给前端使用。

以下核心技术  C语言:面向过程的编译性语言。一说C语言,第一反应,额,就是高端大气上档次牛逼的不行,听说了没,那小子学过C语言,有用?所有的语言中无论编译还是脚本最没用的就是C语言,当然,这句话在计算机系喊一句真的会被打死,但打死也不可否认,学完C语言的人百分之九十九点九不知道能用它来干嘛。C语言在应用领域明显的不如其他语言。但是打死还是不可否认,它最没用却又是世界上最优秀的计算机语言之一。

关于C语言的故事,其实之所以命名为C语言,是因为它源自一个美国秀儿发明的B语言,而B语言源自BCPL语言。不要问贫僧BCPL语言是啥来自哪儿,贫僧也不知道,自己百度去,有一天秀儿闲的蛋疼想玩游戏,而且还要是自己编的,于是,背着老板找了个闲置的机器,奈何机器没有操作系统,那我们都知道游戏是需要使用操作系统的一些功能的,然后这货就搞出了UNIX。完了故事还没结束,这货的好基友好秀儿也想玩游戏,于是基于B语言搞出个C,到最后的最后,两个秀儿完全忘记了玩游戏的初衷。。。

一种语言的诞生,系统的诞生,到发展,调整再优化,直到ISO(国际标准组织)制定标准。这样一个过程。

优点 【 灵活,运算符丰富(比如括号,赋值,强制类型转换等等),数据类型丰富(整型。字符型,数组型,指针型等等),允许直接访问物理地址对硬件进行操作,可移植性强】

缺点 【C语言最主要缺点,安全性差,对语法控制和变量类型限制不严格,这也是C++诞生的原因之一,】

  JAVA语言:面向对象的半解释半编译性语言,首先来区分一下面向对象和面向过程,贫僧曾花了很久都没理解这个概念,后来浏览到一篇文章中一个很有趣的比喻下棋和做饭。下面是该文章的链接:https://blog.csdn.net/jerry11112/article/details/79027834 关于Java语言的故事,诞生是因为美国Sun公司的一个项目(该项目是因为单片式计算机系统的出现,大幅提升消费类电子产品如电话机顶盒等智能化程度),该项目为抢占市场研究开发电子产品的嵌入式应用,初始用C++编写开发遇见瓶颈,C++程序过于复杂庞大无法跨平台运行,于是诞生了Oak(java的前身),后因种种原因搁置数年,随着互联网发展,又重启Oak,因为该语言是基于嵌入式研发的, 非常精简适用于网络上的传输系统,之后注册Oak商标发现该商标被占用,巧然一杯JAVA咖啡而更名为JAVA。

之后的以后,96年SUN公司发布第一个JDK开发工具包意味着JAVA成为了一个独立的开发工具,同年发布第一个即时JIT编译器。然后一发不可收拾……直到06年SUN公司将JAVA源代码开源…..

这里要强调一下 JDK,JDK又称为JAVA开发包或者JAVA开发工具,是整个JAVA的核心,并且包含了JAVA的运行环境。面试时经常会有考官问到JRE是什么,与JDK有什么区别以及JAVA为何能够跨平台部署这些问题,那贫僧就在这里简单献丑一下,JDK是开发环境,写JAVA程序的时候会用到JDK, JRE是运行环境,顾名思义就是运行JAVA程序的时候会用到JRE, JDK与JRE是包含关系,JDK本身也包含运行环境,也就是说可以直接安装JDK即可一了百了,但是自来水不可少,纯净水会更好,JDK虽然包含运行环境,但是也有太多与运行不相关的内容,因此在运行一些普通的JAVA程序时用JRE会更好一些。至于为何JAVA可以跨平台运行,简单的来说是因为JAVA是半解释半编译,并且每个平台都有自己的JAVA虚拟机JVM,而JAVA程序是在虚拟机上运行的。 更详细的想要了解的人可以参考以下链接博文,非常不错。 https://blog.csdn.net/mylittleone/article/details/79651536  

PHP,Python,Shell: 脚本语言,当然不止这几种,这里仅做简单的了解,PHP(原始为“personal home page”编写,后更名为“PHP:Hypentext preprocessor” 即“超文本预处理器”),广泛用于web开发领域,适合中小型网站,该语言集合C、JAVA、perl以及自身语法为一体,可以比CGI或者perl更快速的执行动态网页,PHP是将程序嵌入到HTML中去执行,执行效率比完全生成HTML标记的CGI要高很多,PHP也可以执行编译后代码,编译可达到加密和优化代码运行,使代码运行更快。包括支持几乎所有的数据库和操作系统,这也是之后贫僧会提到的LAMP和LNMP环境都有PHP模块的原因之一。  python,计算机设计语言,是一一种动态的面向对象的语言,最初设计是用来编写自动化脚本,后来随着功能不断完善更新,多用于大型项目的开发。    shell,注意,这里说的是shell脚本,而不是shell(shell是计算机壳层,即命令解释器是为使用者提供操作界面的软件,类似于DOS下的command.com和后来的cmd.exe,接收用户命令调用相关程序),之所以加个脚本是为了方便区分,shell脚本与Windows DOS下的批处理相似,即将多个命令放在一个文件中去一次性执行,在某些方面,shell比其他编程程序编辑效率更高。这里详细说明下shell与shell脚本的区别,shell本身是一个命令解释器,是遵循一定的语法将输入的命令加以解释并传给系统,它为用户提供一个向Linux发送请求以便运行程序的接口系统级程序,而其本身是用C语言编写的一个Linux桥梁程序,同样也是一种程序设计语言即shell脚本(详细有关shell和Linux见下一篇科普文)

 5.云计算运维工程师和运维工程师(传统)这两者的概念,贫僧有时候也会搞糊涂,网络上的说法也不尽相同,这里就拿贫僧的理解来解释这两者的区别以及各自的智能,运维工程师负责维护服务的稳定高可用性,确保服务可以7*24小时不间断的为用户提供服务,同时不断优化系统架构提升部署效率,优化资源的利用率等等,运维面临的最大挑战是大规模集群的管理问题,如何管理好几十万台服务器上的服务并且同时保障设备服务的高可用性。

而作为一名合格的运维工程师需要掌握的技能可以大概分为三类:服务器,操作系统,数据库。

基础技能:基础命令,shell/python/perl语言至少精通1至2种,熟练数据结构及算法并灵活运用,熟悉网络基础知识,深入理解Linux操作系统,熟悉TCP/IP协议栈,HTTP等网络协议

加分技能:熟悉开源监控工具,比如zabbix,nagios,cacti,Ganglia等,熟悉分布式计算和存储系统比如Hadoop/Hbase/Storm等。熟悉Docker容器。熟悉Openstack……

知识面非常广阔,因此对运维工程师的要求也极为苛刻,运维需要针对不同的问题,不同的项目,去不断的补充和扩大自己的只是范畴。初级阶段,一个优秀的运维主要体现在强烈的主动性和责任心,面对陌生的业务会主动学习和拓展自己对业务的认识和技能,以能够独立的对业务进行维护。而在之后的运维进阶中,注重总结反省的初级运维会逐渐成长为高级,也有一部分运维工程师发掘出自己出色的项目规划和管理能力从而晋升为项目经理,若再往后发展,可以晋升为产品研发的咨询顾问甚至产品经理。

前景:由于运维所涉及的知识面,专业点非常广,对从业人员素质要求也非常高,因此在大型的互联网公司也越来越重要,随着互联网高速发展,网站规模越来越大,架构越来越复杂,对运维人员的需求也逐步增加,尤其是对有经验的运维工程师,越老越吃香。

既然开了这么诱惑人的前景,下面就给个开胃小菜,大家伙儿乐呵乐呵,下面的图是作为一个运维工程师需要掌握的部分技能:讲真,别说应用搭建优化了,让贫僧只把这些技能的英文背下来,都背不全,每每长叹凄凄惨惨戚戚。。。 

 云计算运维首先说说云计算是什么,网络上至少有100种解释,通俗点说,云计算就是虚拟化,只不过起了个比较中听的名字,而虚拟技术理论上可以拥有无限运算资源无线存储资源,而这种大的用网络连接起来的资源统称为云。云计算现在广为接收的市美国国家标准与技术研究院(NIST)的定义:云计算是一种按使用量付费的模式,这种模式提供可用的,便捷的,按需的网络访问,进入可配置的计算机资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入少量的管理工作,或与服务供应商进行很少的交互。

云运维管理和运维人员面向的是所有的云资源,要完成对不同资源的分配,调度和监控。同时,应能够向用户展示虚拟资源和物理资源的关系和拓扑结构,云运维管理的目标是适应上述的变化,改进运维的方式和流程来实现云资源的运行维护管理

国内外比较知名的云计算比如  亚马逊云,微软云,谷歌云,阿里云,腾讯云,新浪云等等。云计算的所有服务都是基于阿里云、AWS的服务来开发,而云服务已经把传统运维的监控以及系统维护等做的非常完善了,云计算运维需要做的市对云服务非常熟悉,能够为业务设计合理的云计算架构,又需要保证代码平稳测试部署集成工程师,因此云计算运维既要会写代码又要会算法,实际上就是DevOps,这里就牵扯到一个DevOps的概念。

DevOps因传统模式的运维之痛而生,目前Google,Facebook,Amazon,LinkedIn,Netflix,Airbnb等互联网巨头在于DevOps亲密接触,传统软件公司如Adobe,IBM,Microsoft,SAP等,并且IT业务非核心的苹果,沃尔玛,索尼影视娱乐,星巴克等都在采用DevOps,。那这里简单解释一下,DevOps(Development Operations):是一组过程,方法与系统的统称,用于促进开发,技术运营和质量保障部门之间的沟通协作与整合。

要求和前景,运维工程师能够对整个的云产品有宏观的把握和认识,包括软件整体架构,底层技术,性能优化等等,从而发展成架构师。云的要求是高可靠,高容错,高性能,可扩展等,国内外最牛逼的云拼到最后拼的就是运维,云计算运维的转型方向——技术总监——架构师。

 

 ——除以上一些大致的职位以外,还细分为人工智能、手机端码农、安全、测试、DBA、运营等等便不一一介绍了。需要学习的内容也大同小异。而以上这些行业分类的关系,贫僧在笔记上找到一张图,比较能阐述清这些职位之间的关系,整个产品就像是那辆四轮车,产品的外观和内置结构的美化舒适程度由UI/UE来负责,启动这辆车的发动机以及各线路构造则是由编程工程师来制作,而运维工程师所负责的部分就是最底层最核心的那条马路,没有这条马路,就无法保障这些车的稳定和高并发堵车情况等等,整个行业的前景也可以由此得到一哥大致的推论:显然,一辆车可能随时面临着更换发动机类型,更换车型外观,甚至整个淘汰掉,但是马路不可能一朝一夕拆除。而是在不断的扩充不断的改进。 

Next Post

Previous Post

© 2022 ~阿弥陀佛~

ICP备案号: 京ICP备19038630号

版权所有@ 王力翔

耗时 0.198 秒 | 查询 40 次 | 内存 22.49 MB