相信很多朋友都想開發一款屬于自己的應用,不管是學習還是工作中用,但是對于如何學習并開發完成這過程還存在迷茫點,活到老學到老!
我也通過學習別人總結的,再總結一條適合自己的學習路線,供大家參考,共同進步!
前端開發路線:
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:通信
20、web服務器:Nginx、Apache。。。
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開發工程師!