相信很多朋友都想开发一款属于自己的应用,不管是学习还是工作中用,但是对于如何学习并开发完成这过程还存在迷茫点,活到老学到老!
我也通过学习别人总结的,再总结一条适合自己的学习路线,供大家参考,共同进步!
前端开发路线:
1、互联网基础知识,知道域名解析、服务器,浏览器,如何工作展示页面内容
2、html、css、JAVAScript 静态、框架以及动态交互,基础知识要扎实
3、版本控制系统(git基本使用)、仓库托管服务(github、gitee、gitlab...)
4、web安全知识:https安全传输协议、内容安全策略csp、跨域资源cors、owasp安全漏洞排行榜
5、包管理工具:npm、yarn,差别不大,都可以一试
6、CSS框架:框架千百种,但是目的都是为了简化前端开发,提升工作效率,了解下BEM也可以(Bootstrap优先框架,默认不包含JavaScript组件)
7、构建工具: 任务执行器(npm scripts...)模块打包工具(webpack...)Lint工具与格式化工具(eslint)
8、选择一个框架:React.js、Angular、Vue.js
9、测试:单元测试、集成测试、功能测试(Jest、Cypres...)
10、GraphQL:apollo 、Relay Modem 接口返回信息自定义
11、移动应用程序:Flutter、Reacct Native 桌面应用程序:Electron
12、持续学习.....
后端开发路线:
1、互联网基础知识(同上)
2、前端基础知识(HTML、CSS、JavScrript)
3、操作系统基础原理知识:终端基础使用(cd、ls、grep、awk、lsof、curl、wget、tail、head、less、find、ssh、ps、kill等等)、任务管理、线程与并发、内存管理、进程间通信、I/O管理、输入输出基础、基本网络知识
4、学习一门语言,了解其特点:C、C++、C#、Java、Python/ target=_blank class=infotextkey>Python、Go等等
5、版本控制系统、仓库托管服务(同上)
6、数据库基础增删改查:关系型数据库:pgsql、MySQL、mariad、oracle 非关系:mongodb、rethinkdb
7、数据库知识:复制、分片、事务、索引
8、API知识:REST、JSON APIs、SOAP 、授权认证
9、缓存:CDN、客户端、服务端(redis、Memcached)
10、web安全:同前端
11、测试:同前端
12、设计与开发原则:SOLID、KISS、YAGNI、DRY
13、架构模式:单体应用、微服务、SOA、Serverless
14、搜索引擎:Elasticsearch、Solr
15、消息队列:rabbitmq、kafka
16、容器虚拟化: Docker
17、GraphQL:Apollo
18、图数据库:Neo4j
19、WebSockets:通信
21、CI/CD;可持续集成部署
22、持续学习。。。。
DevOps 学习路线
1、掌握一门编程语言(同上),自动化使用时方便快捷
2、操作系统的理解要比上面更进一步:启动管理、IO管理、虚拟化、内存存储、文件系统、任务管理器、线程与并发、套接字、POSIX基础、网络概念、服务管理
3、操作系统:linux(redhat、centos、ubuntu、fedora)、unix(freeBSD、openBSD.NETBSD)、windows
4、在终端中生活:bash脚本、vim、powershell 、源码编译、系统性能检测(nmon、IOStat、vmstat、sar)、文本操作(awk、sed、grep、sort、ubiq、cat、cut、egrep、fgrep、wc)、进程监控(ps、top、htop、atop、lsof)、网络(nmap、tcpdump、ping、trceroute、iptables、netstat)
5、网络安全协议:HTTP、HTTPS、FTP、SSL、SSH、端口转发、SMTP
6、安装配置:正反向代理、缓存服务器、负载均衡器、防火墙、web服务器
7、基础设置管理:容器:docker、containerd、配置管理:Ansible、SaltStack、puppet、容器编排:k8s、messos
8、持续集成部署工具:gitlab CI、jenkins、xxxCI
9、监控:基础监控:prometheus、zabbix、grafana 应用监控:jaeger
10、日志:elk、elfk、loki、graylog
11、云服务商:bath、huawei、google、aws
12、设计模式:高可用、数据管理、监控告警
13、持续学习。。。
我想成为一个合格的web工程师,一定是不断学习,持续学习,持续时间的过程,绝不是一蹴而就的!相信在不断努力之下,我们都能成为一个合格的web开发工程师!