第1章 入门
一、全栈组介绍1.1 全栈工程师是什么?1.2 AutoLeaders 中的全栈组AutoLeaders 2022 届【IKnowISee智能AR眼镜】项目案例AutoLeaders 2023 届【蚁屋房固】项目案例
1.3 AutoLeaders 2024全栈组 学习路线规划(1)入门学习阶段(一个月左右)【前端开发基础】
附录【未来可能学习的技术栈】HTML + CSS前端框架 VueTypeScriptPython基础后端框架 FlaskJava基础与Java Spring BootNode.js前后端交互 AJAXLinux基础 (基于Ubuntu)Docker计算机网络数据库 MySQLJava Spring BootUnity快速开发WebGL移动端开发Serverless 架构JWT (JSON Web Token)CI/CD (持续集成与持续交付)
一、全栈组介绍
1.1 全栈工程师是什么?
在现代的软件开发中,项目的复杂性要求技术人员掌握多种技能,以降低沟通成本、应对人手不足、资源紧张等挑战。这种背景下,全栈工程师 应运而生。
全栈工程师(Full-Stack Engineer) 具备 构建与维护 整个应用系统的能力,以工程能力为导向。特点是技术全面,既能独立完成项目开发,也能在团队中担任多角色任务,是软件开发领域中的多面手。
全栈中的“栈”是指 “技术栈”,可以理解为用于解决问题的技术组合。例如,一名全栈工程师开发了一个校园管理系统,他使用了HTML + CSS + JavaScript + jQuery、Spring + Linux + MySQL
完成开发,这样成组完成某功能模块开发的技术组合就是技术栈。没有一种技术可以解决所有问题,因此,能够灵活运用多种技术解决问题成为了全栈工程师的核心能力。
简而言之,全栈工程师=前端+后端。前端是项目的“外表”,展示给用户的精美页面;后端是网站或应用的大脑,处理用户数据、业务逻辑和算法。
1.2 AutoLeaders 中的全栈组
介绍看完,你可能对全栈组还一头雾水,下面将会介绍在AL中的全栈组工作成果展示。
AutoLeaders 2022 届【IKnowISee智能AR眼镜】项目案例
控制组成员:搭建 AR 眼镜的硬件结构,对主控设备(如树莓派)进行开发,控制棱镜屏幕、摄像头等设备的工作。算法组成员:编写或调用机器视觉算法,实现人脸识别功能;开发语言识别算法,实现 AR 眼镜的语音控制。全栈组成员:开发在棱镜屏幕上投影的页面;开发与眼镜配套使用的手机端 App;将项目部署到云服务器进行数据处理.
AutoLeaders 2023 届【蚁屋房固】项目案例
控制组成员:防治小车与作业机械臂设计制造;电控系统设计与硬件开发
算法组成员:YOLO-SRC视觉定位;SLAM视觉导航算法…
全栈组成员:基于Android MVVM (Model-View-ViewModel)框架的APP开发;Tornado框架后端搭建与;防治巡检搭建…
1.3 AutoLeaders 2024全栈组 学习路线规划
思维导图与学习资源:2024 全栈组学习路线规划 <=Go!
整个学习路线规划分为:入门学习阶段(一个月左右)【具备前端基本开发能力与基本工程师素养】基础学习阶段(二~三个月)【能完成一个Web界面:掌握一个前端、后端框架、数据库搭建与网络部署、快速开发工具】进阶课程包(选择感兴趣方向给自己堆栈)【如:VR/AR等高性能图形渲染网页WebGL、后端JavaSpring Boot框架、安全与性能优化、移动端开发…】
(1)入门学习阶段(一个月左右)【前端开发基础】
全栈组长寄语:
【2024届】
小白一个月内完成三门语言学习? emm…也许这会让其它工程师发出土拨鼠尖叫:“这能学到什么?杂而不精!
”但事实上,一个优秀的全栈工程师不一定精通面向对象式编程,但他一定精通面向项目编程,更直接的说是“面向钞票式编程”。
即使是在AI工具未兴的时代,全栈工程师也是以 快速学习能力与问题解决能力作为核心竞争力,Node.js浪潮、智能合约开发浪潮…全栈的技术栈就是解决五花八门开发问题的武器库,每次新技术的涌现都会被优秀的全栈工程师纳入自己的技术栈用以解决项目开发的现实问题。
不少全栈工程师在终身学习的理念与快速学习能力下,积累开阔的眼界与深厚的技术实力后转型系统架构师等技术岗管理层与顾问角色。现在AI工具让独立快速开发大型项目成为可能,希望大家能 活用AI工具,在理解原理后,将精力聚焦在实际问题解决上。不需要对技术内容倒背如流,理解它这项技术的特性、遇到问题时能想起它、搜索它并用来解决问题即可。 【工程师:使用工具,解决问题】
【2023届】
…
附录【未来可能学习的技术栈】
HTML + CSS
在入门阶段,我们将学习三种关键语言来奠定前端开发的基础。两种是“标记语言”,相对简单,它们分别是 HTML 和 CSS。HTML(HyperText Markup Language)用于定义网页的结构和内容,而CSS(Cascading Style Sheets)用于美化网页,使其更具视觉吸引力。
我们还将学习一种稍有难度但非常强大的网页脚本语言——JavaScript。它与HTML和CSS一起被称为“前端三剑客”。JavaScript赋予网页交互能力,使得网页不仅仅是静态的展示页面,而是具备了交互功能。当你熟练掌握H5(HTML5)C3(CSS3)和JavaScript之后,你将能够创建出一个精美且功能齐全的静态网页。
前端框架 Vue
在掌握了基础前端技术后,我们将深入学习 Vue.js,一个专注于视图层的渐进式前端框架。Vue的设计理念是由浅入深,它非常适合初学者,尤其是由于其拥有详细的官方中文文档。
TypeScript
TypeScript 是JavaScript的超集,它为JavaScript添加了静态类型检查,使代码更易于维护和扩展。使用TypeScript可以避免许多常见的JavaScript错误,并提供更好的IDE支持。
Python基础
在后端开发的世界中,语言的选择十分丰富,例如Java、PHP、Python、C#等。在这些语言中,Python 因其简洁易用的语法和强大的功能而备受推崇。我们将在这里学习Python的基本语法,并掌握一些简单的算法,这将为后续的后端框架Flask的学习打下坚实的编程基础。
后端框架 Flask
Flask 是一个轻量级且高度可扩展的Python后端框架。它的核心功能设计得非常简单,但同时又提供了大量实用的扩展包,许多后端功能都通过扩展实现。由于Flask的轻量级特点,它非常适合新手学习。通过学习Flask,你将了解如何构建一个基本的后端应用,使你的网页能够处理复杂的业务逻辑。
Java基础与Java Spring Boot
Spring Boot 是一个基于Java的框架,用于构建强大且复杂的后端应用。它简化了配置和部署过程,使得Java开发者可以更快地启动一个项目。本课程将介绍Spring Boot的基本概念、配置方法以及如何使用它快速构建企业级应用程序。
Node.js
Node.js 是一个基于V8引擎的JavaScript运行环境,使得JavaScript可以用于服务器端编程。Node.js具有异步非阻塞的特点,特别适合I/O密集型应用。通过Node.js,你可以用JavaScript一套语言完成前后端开发。
前后端交互 AJAX
在前后端开发中,交互是关键。AJAX 是当前最常用的前后端交互方式之一。它可以实现异步请求和局部刷新,使得网页在不重新加载整个页面的情况下更新部分内容。无论你是前端工程师还是后端工程师,熟练掌握AJAX都是必不可少的技能。
Linux基础 (基于Ubuntu)
在后端开发中,Linux 是非常重要的一项技术栈。它是世界上最流行的服务器操作系统,几乎所有的大型后端项目都部署在Linux系统上。我们将使用 Ubuntu 这个广受欢迎的Linux发行版来进行学习。Ubuntu在国内拥有良好的社区支持,非常适合入门学习。
Docker
Docker 是一项革命性的技术,使得应用的打包、部署和管理变得更加简单和高效。通过Docker,开发者可以将应用及其所有依赖项打包成一个轻量级的容器,确保在不同环境中的一致性。本课程将介绍Docker的基本概念及其使用方法,帮助你掌握容器化技术。
计算机网络
在学习编程和开发的同时,理解 计算机网络 的基础也是非常重要的。我们将介绍网络的基本概念,包括TCP/IP协议、HTTP协议、DNS解析等,帮助你理解应用是如何在网络上传输数据的。这将为你在开发网络应用时提供必要的理论支持。
数据库 MySQL
数据库是后端系统的重要组成部分,几乎所有的用户信息都存储在服务器的数据库中,并在需要时由后端程序调取,然后发送到前端展示。主流的数据库种类繁多,而 MySQL 是其中应用最广泛、覆盖范围最广的一个。在本系列课程中,我们将学习MySQL的基本操作,并了解如何在项目中使用它来管理和操作数据。
Java Spring Boot
Spring Boot 是一个基于Java的框架,用于构建强大且复杂的后端应用。它简化了配置和部署过程,使得Java开发者可以更快地启动一个项目。本课程将介绍Spring Boot的基本概念、配置方法以及如何使用它快速构建企业级应用程序。
Unity快速开发WebGL
在这个部分,我们将学习如何使用 Unity 进行 WebGL 开发。Unity是一款强大的游戏引擎,但它也能用于开发交互性强的Web应用。通过学习Unity WebGL,你将能够将Unity项目发布到网络上,实现高效的三维内容展示和交互。
移动端开发
随着移动互联网的普及,移动端开发已成为必备技能。本课程将介绍移动端开发的基础,包括如何使用 React Native 或 Flutter 进行跨平台移动应用开发,帮助你快速构建Android和iOS应用。
Serverless 架构
Serverless 架构是一种无需管理服务器的架构模式,允许开发者直接运行代码。使用 AWS Lambda 或 Google Cloud Functions 等服务,你可以构建高度可扩展且无需管理服务器的应用程序。
JWT (JSON Web Token)
JWT 是一种用于在网络应用之间安全传输信息的紧凑令牌格式,广泛应用于用户身份验证。学习JWT将帮助你实现更加安全、灵活的认证系统。
CI/CD (持续集成与持续交付)
持续集成(CI)和持续交付(CD)是现代软件开发中的重要实践,帮助开发团队快速迭代和发布产品。工具如 Jenkins、GitLab CI 和 CircleCI 可以自动化测试、构建、部署流程,提高开发效率和代码质量。