热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

web全栈该怎么自学

自学web全栈过程中,你需要会的知识包括:服务管理运维、云、后端、数据库、前端、设计、日志系统、移动端。你要知道自学web全栈,不是一件简单的事情,需要你有足够的毅力去坚持,也需要你有高效学习的能力。
互联网行业现今一直都很火热,相信未来也会是一直保持火热的状态。所以有很多朋友都开启了学习互联网学习的计划,有人选择培训,有人选择自学。但是对于学习互联网技术,应该有很多朋友都会感到迷茫吧。前几天,就有朋友问想自学web全栈应该怎么去做。下面我将和大家一起谈谈如何自学web全栈。

首先,你要了解什么是web全栈,以及知道web全栈需要学习哪些知识。

其次,你要知道自学web全栈,不是一件简单的事情,需要你有足够的毅力去坚持,也需要你有高效学习的能力,才能在尽量短的时间内学好它。

一个Web开发过程有三层架构:

表示层:表示层也被称为网站的前端部分。它处理网站的用户界面相关问题。

业务逻辑层:业务逻辑层也被称为网站的后端层,负责数据验证和动态处理。

数据库层:最后是数据访问层,利用API为网站提供数据。

以上三层共同称为全栈web开发。

作为web全栈工程师你需要知道以下知识:

1、服务管理/运维

一个开发者必须了解基础的服务器管理知识。包括当不限于以下知识:

通过终端或其他没有用户界面的环境来远程连接服务器

会写基本的shell脚本

服务器上的用户和群组管理

管理像Apache和Nginx这样的服务器程序来提供应用

防火墙管理和权限管理

安装和更新软件

除了这些基础技能,开发者必须懂得怎样去创建一个好的、健康的、分离的开发环境,在 Docker 或者像 Vagrant 这样的虚拟机环境中。如果上面所有的技术你都不熟悉,那我必须给你推荐一本超棒的书,点这里购买。

开发者必须对版本控制系统非常熟练,为了让开发有靠谱的生产备份和可分享、可协同的代码库,这些代码库能够根据时间来跟踪代码变化。现在已经没有开发者的工作流是完全离开版本控制的了。我们有一个非常棒的关于版本控制的视频教程,点这里购买。

2、云

和实际管理或者虚拟服务器不同,一个开发者也许要知道云主机平台,比如Heroku, Google Cloud, Azure, AWS等等。

有一点必须说明的是,平台和工具更多的是为了炒作而不是其实用性。尽管有很多平台和工具的实用性并不如宣传的那么好,但是了解这些大家都在谈论的服务,从长远来看会很有用――客户可能会随时要求更换服务提供商。幸运的是,我们拥有这些云主机部署权威指南。

3、后端

在后端,除了要懂选择什么语言以外,比如 PHP 和众多的框架 and CMSes,一个全栈开发者必须熟悉:

Web服务器,比如Nginx和Apache,和运维紧密相关

不幸的是,NodeJS 已经可以将 JS、CSS 和其他资源文件编译成静态可以方便缓存的文件了。幸运的是,也有办法避免学习 NodeJS,用PHP也是可以的

像Composer这样的PHP(http://www.ujiuye.com/zt/php/)包管理工具在现代化的开发环境中已经离不开了

好的API 设计,自从大部分新型网页都基于 API 而且仅仅为前端服务(下面会详细描述)

ElasticSearch (introduction here)这样的搜索引擎对于网站性能的提高是非常重要的

cronjobs 和后端的工作,使用Gearman 或者 Crunz 这类的库

了解缓存,Varnish, Redis 等牛B的工具可以分片存储数据,这样可以将一个项目部署的多个主机上

4、数据库

数据库是一个单独的部分,因为除了很好地掌握我们基本上不会有结构变化的关系数据库(MySQL或者PostgreSQL)的数据模式之外,一个全栈工程师应该对非关系型数据库有所了解,如MongoDB, Redis,或Cassandra ,更不用说像Neo4j这样的图形数据库了。

不幸的是,这些都是服务器上的东西,都在全栈工程师的控制下。也有几个类似 Mong 的远程解决方案,像RestDB或者Google-owned Firebase等。

5、前端

想知道一个正常的前端知识图谱是怎么样的,可以在Javascript 版块看这篇绝世好文。但是作为一个全栈工程师,你需要了解

NodeJS and NPM

Yarn

预处理器和编译器(如Babel),用来编译 Typescript, ES6, LESS, SCSS, SaSS

构建工具,如 Grunt 和 Gulp

框架,如 VueJS、React、Angular

模块打包工具,如 Webpack、Browserify、Rollup

6、设计

在设计方面,全栈开发者需要了解怎样在一个产品变成真正可用的 HTML 、CSS 代码之前,画一个原型图。然后就可以去用 JS 写交互、后端也可以用假数据来模拟生产环境。只有这个关键的原型图完成,用户体验设计和接口设计就绪,真正的开发才能开始。这本身就是一项艰巨的任务,需要一套特殊的工具:

Photoshop和Illustrator 或者一些开源的工具比如Gimp/Inkscape。访问Design channel来了解更多这样的工具。

一个牛的、快速的编辑器,比如Atom或Sublime Text(这儿有十种好用的sublime插件)

像Subtlepatterns的背景选择器和颜色选择器能够搭配一些颜色

CSS的栅格系统

上面所说的前端所需要了解的所有知识和 JS 数据模拟

将原型图发表到网上供大家浏览并给于反馈,Ngrok就非常好用

7、日志系统

为了高效监控应用的健康度,全栈开发者必须能够追踪错误,找到错误日志然后从中提取出有用的信息。全栈开发者也需要从日志中预测一些趋势,比如 CPU 或者 I/O 占用率的上涨,以防应用不知道什么时候就挂了。这部分和运维也有一些关系,但是需要一些特别的技能:

推荐一篇非常棒的ELK stack的文章,这会帮助你了解做日志系统所需要的知识。里面包括了查找日志的ElasticSearch ,收集日志的Logstash,把日志用非常棒的图表展现出来的的Kibana,甚至还有提供解决方案的Logz.io。

8、移动端

最后,我们该说说移动端了。随着iOS和安卓上的的webview变得越来越高效,还有 PWA(渐进式web应用)的到来,native 应用正在变得黯淡,因为他们开发起来实在是太复杂了。所以一个全栈工程师必须了解 PWA 或者 React Native,或者像NativeScript, Tabris, Cordova, Phonegap或者其他webview来让客户端应用调用 API跑起来。

以上就是web全栈该怎么自学的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • 关于mysql原理与web系统开发的信息
    本文目录一览:1、在做web开发的时候,MySQL主要功能是什么? ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  •     系统采用jeeplus框架(ssm+redis+shiro+mongodb+redis),默认是做了JSP未做前后端分离,由于业务需要已经多终端使用的需求(H5、小程序等) ... [详细]
  • 数据库基本介绍
    1、数据库基本知识概念:数据库:database(DB),是一种存储数据的仓库数据库是根据数据结构组织、存储和 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
author-avatar
大傻vv_528
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有