全栈开发工程师之路

全栈开发工程师之路

经常有人产生疑问:

1、没有基础可以学IT吗?

2、小学毕业可以学计算机吗?

3、学计算机要先学什么?

4、JAVA前景好么?

5、哪种开发语言最好学?

6、有没有推荐的IT培训机构?

......

针对以上问题,本人以一个开发者的视角,介绍开发一套软件需要掌握哪些知识,以及这些知识在软件中所起的作用。本文试图以一个项目的形式来拆解基本要素,如果你不知道到底要学什么,很简单,只要学到其中一个基本单元并且精通,就可以在该领域崭露头角并拿到一份不错的薪水。当然,如果你对所有的基本单元都有涉猎,并且精通其中一项或几项,那你离CTO就不远了。

下面开始正文,全程高能,可先收藏再浏览,避免日后找不到!


大纲概要:


全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。

通俗来说,就是你一个人完成一个项目,举例来说:给你资金,你给我建一栋房子。

可能有人会说,建房子需要泥工,水电工,油漆工,木工,搬运工等等。抱歉,全栈的话,是需要你充当所有这些角色,所有的事你一个人干。有人会惊讶,这怎么可能啊!天啊,这岂不是要累成狗,至少得累掉半条命!

你还别说,开发一个项目或软件,全栈工程师还真能干这样的事。


下面将一个软件拆分成基本单元,介绍完成这套软件需要哪些技能,就以头条为例吧!

这是创作者管理界面

这是用户浏览新闻的页面

以上两个页面,大家都应该熟悉吧,没有做头条号的至少应该熟悉新闻浏览的页面吧。

就单纯这些信息的展示,就需要学习HTML语言,来看一段代码:

看到了吧,就是上面这玩意,就能展示你看的新闻出来,来一段HTML的解释:

HTML称为 超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的 Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明 文字, 图形、 动画、 声音、 表格、 链接等。

英文翻译为:Hyper Text Markup Language

后续说到的语言自行百度吧。

这还不够啊,浏览新闻不能光看页面吧,你得点击进去啊,这些点击动作,又涉及到另外的语言:JavaScript,简称JS。

不知道你在浏览网页时候,鼠标点击的时候,是否看到页面上弹出一个窗口,那就是用js实现的效果,神奇么!

你看,js就是这么神奇。

然后,你看网页上那些字体,是不是有的粗,有的细,有的五颜六色的,不是单纯的白景黑字吧,这就是css了。

说白了,CSS就是给网页化妆用的,不然黑白相间的页面看起来很吓人的。

上图中基本都是HTML、JS、CSS这三种语言混合的代码。

说了这么多,HTML、JS、CSS已经三种语言了是吧,这还只是基础哦!

但是你要单纯的用JS、CSS去做交互,那么太复杂了,程序猿哥哥要累死几次了,这就要用到以下两种技术了。

jQuery

jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

Ajax

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式、快速动态 网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

看到了吧,代码的世界是不是很神奇,掌握以上知识后,你才能成为一个合格的web工发工程师,或者叫做前端开发工程师。

话说,看到这里,不点赞的就不是好同志了吧!

看完上面的内容,你可以在网页上浏览,点击,仅此而已!但是你做不了下面的动作:

是的,你没看错,你还需要登录吧,但是上面的语言明显不能满足要求,这就需要后台开发语言:Java或PHP。

Java:跨平台语言,适合做大型后台,也可以做前端,全球安装量超过50亿台

PHP:后台专用语言,轻量级,应用广泛

这里以Java举例来说明前端到后台数据处理的流程

首先,你在页面输入用户名、密码后,输入的内容需要获取并传到后台去,后台接收后需要保存这组数据并从数据库查询这组数据是否存在,

不知道以上过程我说清楚没有,哎,听着好乱的样子,这其中用到哪些语言呢?

Java,处理后台逻辑

XML,一种用于标记电子文件使其具有结构性的 标记语言,项目中用到的配置文件一般为XML格式,比如你用户省、市、区三级联动列表,这个是固定不变的,可以放到XML文件中保存在项目中,以便读取

Servlet,动态脚本语言,生成动态 Web内容

JSP,可以理解成HTML代码中嵌入Java代码

EJB,企业级的JavaBean,可自行搜索用途

当然,写代码少不了用框架之类的,所以,著名的三大框架SSH要登场了:

有了它,写Java逻辑再也不用操心了,幸福来得也太突然了。

然而,在编码中,少不了要用到一些设计模式、代理、Iterator、Strategy、正则表达式,这些会使你的代码效率更高。

掌握以上内容,后台逻辑基本上就差不多搞定了,如果你想对局部代码进行单元测试,JUnit4是必须要掌握的。

如果你的项目涉及到工作流,那就还需要学习JBPM了,这里就不多赘述了。

刚才说过,接收到数据后,需要到数据库中查询是否存在,这里又要用到数据库了,所以数据库又得学吧。

MySql:应用广泛,轻量级,通俗易懂

SQL Server:中型数据库,一般用于中型项目开发

Oracle:大型数据库,在超大型项目中应用很常见,是很牛逼的一套软件技术

有多牛呢,这么说吧,前面的Java是SUN公司开发的,Oracle收购了SUN公司,自行脑补去吧!

如果数据量太大了,像微信这种量级的应用,就要用到大数据Hadoop了。

不过一般的项目用不到Hadoop,你可以选择不学。但是如今数据每天在海量生产,大数据也是今后的趋势,有时间学更好。

哎,写到这里,我感觉做程序猿真他么累,苦逼,关键上面说的只有一半,请容我先吐点血!

你在本地写完以上代码,设计好数据库,但是这些东西放在哪里呢,总不能放在开发者电脑中吧。就像建房子,你买了材料、水泥、沙子这些东西,你得找块地皮让这些东西组合起来,聚沙成塔吧。所以,你还要搞服务器。开发者的电脑也可以作为服务器,但是电脑作服务器,显然达不到要求,而且电脑要24小时开机,这种要求都达不到。

像这种在科技电影中看过吧,不过一般的小公司用不到实际的机房,购买云服务器就行了,像大公司才需要建这种机房。

当你有了服务器后,需要在服务器安装环境,这就需要用到另外一种技术:Linux

通俗点说,就是你需要在远程服务器上用代码指令配置环境,全代码,无操作界面,可想而知有多痛苦,估计很多人看了都晕吐了。

然后,当你有了逻辑代码,服务器也准备好了,那代码怎么跑到服务器上呢,不会自己飞过去吧,哈哈~

git:管理代码的仓库,将本地代码推送到服务器端

到此,一套完全的软件流程就出来了,让我们来梳理一下好不好,不然我脑子有点乱:

前端网页用HTML呈现,JS做交互,CSS化妆,JAVA做后台,然后JAVA的一帮小弟配合,XML,SSH,JSP,EJB,Servlet齐上阵,MySql存储数据,Linux做后勤保障,git连接后台与服务器。这样,前后端就连接起来了,流程就走完了。

可是,全栈开发工程师就这样结束了吗?NO,NO,NO!

上面只是说了PC端啊,现在是移动的天下,用户不会天天抱着电脑看头条新闻吧,别人都是在手机上看的好不好,Android与IOS要压轴出场了,大家鼓掌欢迎!

前面说到的JAVA,就是安卓开发的主流语言,不过现在用Kotlin开发,两者熟练一种就好!

IOS主流的开发语言是Object-C,Swift,两者取其一就行。

是吧,移动端你又要学这两种语言,而且内容也不少~

当然,如果你的软件中涉及到音频、视频、直播、游戏之类的,这又涉及到很多框架与引擎了。

当你学完了以上内容,那么恭喜你,全栈开发工程师顺利毕业!但是好多人都没毕业!

写到这里,我头脑有点供能不足,容我下楼去吃点西瓜解解闷,缓解一下,毕竟夏天太热了!

Java:后台开发,JavaWeb开发,安卓开发,游戏开发,网站开发,Java EE开发

JavaScript:Web开发,网站开发,小程序开发,微信公众号开发

PHP:后台开发,微信开发,服务器开发

Oracle:数据库开发,服务务器开发,大数据开发

Android:安卓手机软件开发

IOS:苹果手机软件开发

以上只列举了部分,具体可以去招聘网站查看岗位需求,只要技术过硬,岗位排队任你挑!

全局性思维

现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。

Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。

所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。

沟通成本

项目越大,沟通成本越高,做过项目管理的都知道,项目中的人力是1+1<2的,人越多效率越低。因为沟通是需要成本的,不同技术的人各说各话,前端和后端是一定会掐架的。每个人都会为自己的利益而战,毫不为己的人是不存在的。

而全栈工程师的沟通成本几乎为零,因为各种技术都懂,胸有成竹,自己就全做了。即使是在团队协作中,与不同技术人员的沟通也会容易得多,让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。

创业公司

对于创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全栈工程师是省钱的一妙招。虽然说全栈工程师工资会比一般的工程师高很多,但综合下来,成本会低很多。

偷偷告诉你,全栈工程师离架构师仅一步之遥,几乎唾手可得!

1、市场需求大

目前软件工程专业毕业生主要在各大软件公司,企事业单位,高等学校,各大研究所,国防等重要部门从事软件设计开发,应用于研究工作。有数据表明,我国软件出口规模达到215亿元,软件从业人员达到72万人。

软件类人才的需求到底有多大?按教育部和商业部的规划,近5年内需要培养120万名软件与外包人才,其中需新增培养100万名软件领域大学生,巨大的软件人才市场需求需要优质软件人才培养的跨越式发展。“中国软件产业人才培养战略研讨会”公布的统计数据是:我国现在缺少软件开发人员30万到40万左右,在未来5到10年中将缺少更大数量的软件开发人才。

而其中软件工程师目前已经成为今年最紧缺的人才,北京,上海的需求量分别占33%和29%,从企业分布来看,民营企市业需求量最大,占到19%,外商独资的欧美企业占15%。市场上对软件技术人才的需求骤增,造成了人才极度抢手的局面。

下图为2018年各专业人才需求分布:

2、就业范围广

现在各行各业,略有规模的大中型企业,基本都会有自己的IT部门或者各类应用管理软件,其中消费电子和通信设备行业,对于软件开发人才的需求尤为旺盛。

3、薪资收入高

软件在IT产业里是利润最高的部分,而最大的成本就是工资成本,所以软件开发人才的薪资也相对较高,同比高出其他行业50%左右。据前程无忧的调查数据显示,2016年IT软件技术研发类岗位的平均调薪幅度为11.1%,薪资上涨幅度也远远超过其他行业。

4、职位晋升快

软件开发人才需要的是技术和实际操作,一个熟练的软件开发工程师,特别受用人单位的欢迎,升职加薪非常快。

5、岗位性质重要

软件是电子载体的灵魂,软件开发人才的关键性不言而喻。

因此,对于一些有软件梦想的人来说,现在无疑是一个好时机,特别是对于那些刚毕业找不到理想工作的同学来说,选择学习软件开发技术是找工作、拿高薪的好途径。

所以,不要再怀疑 IT的市场前景了,认准了,干就完了!


问答环节:

1、没有基础可以学IT吗?

当然可以了,谁当初学IT有基础了,不都是从0学起的么

2、小学毕业可以学计算机吗?

少儿编程了解下,别人可是连小学都没有毕业呢~

3、学计算机要先学什么?

基本的电脑操作,最好会点英文基础,这么没办法,毕竟软件架构都是老外设计的

4、JAVA前景好么?

看一下上面的前景分析,再看看它的安装量,不好能这么受欢迎么

5、哪种开发语言最好学?

Java,通俗易懂,应用广泛,跨平台,涵盖范围广

6、有没有推荐的IT培训机构?

最好的培训机构就是自学,可以培养个人能力,进步快,性价比高。培训机构跟学校一样,唯一的区别是它针对性强,你想学它的技术,它想要你的钱,就这么简单!听说费用也不低。

附上一份全栈开发工程师线路图

如果还有什么不明白的,可以看上面图片找我!

哎呦,码字不易,伤筋动骨的,一不小心又耗费几十亿脑细胞,我要加个鸡腿压压惊!

来都来了,点个赞呗~~~

代做工资流水公司哈尔滨签证工资流水代做衡阳公司银行流水图片台州代开企业对私流水泰安代开签证工资流水镇江查询消费贷流水鞍山代办公司流水成都在职证明公司合肥开房贷流水北京银行流水电子版莆田车贷工资流水 代开无锡收入证明代开咸阳工作收入证明查询上海打对公流水德阳车贷流水样本铜陵薪资银行流水打印开封公司流水打印宁波办车贷银行流水郑州背调工资流水打印上海消费贷流水费用嘉兴做入职流水宜昌银行流水电子版样本菏泽查询车贷银行流水西安流水样本沈阳银行流水修改制作无锡打印房贷流水盐城制作薪资银行流水大连办理日常消费流水泰安薪资流水公司孝感个人工资流水 样本惠州办背调银行流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化