前些日子,有几个同学过来问问软件开发岗有哪些实用技术是值得学习的,因为学校教的东西要么太理论,要么完全没用。也因为现在也到了大二下了,要开始考虑实习的事了。我便在我目前的知识范围内,蜻蜓点水地给出一些概述。希望可以帮到想要进入这一行业的大一/大二学生。
【注:我也只是想要进入这一行的大二本科生,并非行内人士,所以仅作参考。未来真的进入这一行后这篇文章或许还会更新吧。】
一、介绍技术栈前的一些闲话
方法论 > 技术栈,虽然说下面的内容会简要介绍一些常用技术栈(并非都要学,我或许列出来了但是我一次没用过哈哈哈),但是在开发过程中,合理的工程化思路比浅学一堆技术路线更重要。技术栈不在多,在精。框架只是工具,只是用来解决问题的技术路线,核心是思路与设计。或许有一些同学喜欢在自己的项目中堆砌大量技术栈,如果出于学习目的的项目,倒无伤大雅。如果是需要实际投入生产环境的项目,这种行为一方面加大团队的学习成本和沟通成本,另一方面可能会出现自己设计了一堆不存在的需求加大系统复杂度,然后投产后发现根本没有这么大的需求。
如果是真萌新,可能下文中很多东西看不懂,最好的方案是去搜搜这些都是啥。下面给出两张图,是某一平台的系统架构图和软件工程流程图。估计可以帮你串起来软件工程化的思路和组件(而非期末大作业那种东西)。

软件开发流程图

软件系统架构图
现在开发一定要会用AI工具辅助,不论是IDE内置还是去其他地方搜索,要知道怎么问。
入门这些知识时,一开始可能会去看教程,但做到后面一定是更经常去查文档/看开发社区(当然现在会问AI也很重要)。
如果有可以参加的项目,大胆加入。别怕不会写,先写,写的时候用才学得会。只看理论/教程而不实践,是没法真正学会的。
程序员的工作约等于复制粘贴,但是,你的工资的50%是你知道去哪复制,另外50%是你知道粘贴到哪。
学服务器(或Linux)最好的方式就是自己买一个来玩,比如试着搭建一个自己的博客网站(推荐用现成的博客应用框架搭建,当然你自己写也博客应用,可以当作一种练手,就是有亿点费时间)
要习惯用Git工具做版本管理和协同开发、用习惯Github(当然你未来的公司可能会用自己的Git仓库而非Github,如果你过于依赖于Github Desktop,到时候可能会遇到一些麻烦,属性Git命令是必要的)。
二、前端开发:用户界面的魔法师
1. 基础三剑客
HTML5/CSS3:页面结构与样式的基石
核心能力:语义化标签(header/footer/section)、Flex/Grid 布局系统、CSS 变量与计算属性、媒体查询响应式设计
现代实践:CSS Modules 解决样式冲突、CSS-in-JS 方案(Styled Components)、CSS 预处理器(Sass/LESS)
JavaScript/TypeScript:动态交互的核心
JS 核心:异步编程模型(Promise/async-await)、闭包与作用域、原型链与继承、ES6 + 特性(解构 / 扩展运算符 / 类)
TS 优势:静态类型检查、接口定义、泛型编程、类型推断,大幅提升大型项目可维护性
2. 主流前端开发框架
3. 进阶方向
工程化体系:模块化规范(ES Module/CommonJS)、构建工具(Webpack/Vite/Rollup)、CI/CD 流程
性能优化:代码分割、Tree-shaking、图片优化(WebP/AVIF)、首屏加载优化、Core Web Vitals 指标优化
跨端方案:
桌面端:Electron(VSCode 同技术栈)、Tauri(轻量替代方案)
移动端:React Native(原生渲染)、Flutter(Dart 跨平台)、小程序开发(Taro/Uniapp)
三、后端开发:业务逻辑的守护者
1. Java生态体系
数据库技术
关系型:MySQL(InnoDB 引擎原理、事务隔离级别)、PostgreSQL(JSON 支持、复杂查询优化)
非关系型:MongoDB(文档模型、索引优化)、Redis(数据结构实战、持久化机制、集群方案、缓存方案)
存储进阶:分库分表(ShardingSphere)、读写分离、数据同步(Canal)
核心框架体系
基础层:Spring Core(IOC 容器、AOP 编程)、Spring Context(资源管理)
Web 层:Spring MVC(请求处理流程、拦截器机制)、Spring WebFlux(响应式编程)
数据层:MyBatis(SQL 优化、插件开发)、MyBatis-Plus(CRUD 增强)、Spring Data JPA(ORM 映射)
快捷开发框架:Spring Boot(自动配置、starter 机制、Actuator 监控)
微服务架构
服务治理:Spring Cloud Alibaba(Nacos 注册配置、Sentinel 限流熔断、Seata 分布式事务)
服务通信:OpenFeign(声明式调用)、Dubbo(RPC 框架)、Gateway(API 网关)
架构实践:服务拆分原则、API 版本管理
性能与安全
JVM 调优:内存模型、垃圾回收机制(G1/ZGC)、性能监控(Arthas)
安全防护:OAuth2.0 认证授权、JWT 令牌机制、接口加密......
2. Python轻量级开发
用Python做后端开发的,真的不多,基本上应用有AI或大数据背景才可能会用。
数据库的基础和Java部分类似,但是Python3对SQLite3支持挺好的,在Python应用中,SQLite3的应用场景挺多。
Web 框架对比
Django:"电池包含" 哲学,内置 Admin 后台、ORM 系统、认证模块,适合快速开发完整应用
FastAPI:基于 Pydantic 的类型提示,异步性能优异,自动生成 OpenAPI 文档,适合 API 服务开发
Flask:微框架设计,高度灵活,需自行组合扩展(Flask-SQLAlchemy/Flask-RESTful)
数据处理:SQLAlchemy(ORM)、Pandas(数据分析集成)
典型场景:数据分析接口、AI 模型服务化、轻量级管理系统、爬虫后端
3. Go语言新势力
现在越来越多的Java后端开发有Go背景了,因为Go在多线程上的优势确实大,且有良好的原生支持。
核心优势:goroutine 并发模型(百万级并发支持)、channel 通信机制、内存安全、静态编译
Web 框架:
Gin:高性能 HTTP 框架,路由分组、中间件机制,适合 API 服务
Echo:轻量级高性能,支持 HTTP/2,适合微服务开发
Go-zero:集成配置中心、服务发现、限流熔断的微服务全栈框架
生态工具:GORM(ORM 框架)、Viper(配置管理)、Go-micro(微服务组件)
应用领域:云原生开发(K8s 相关工具)、高并发服务、中间件开发、区块链应用
4. Node.js全栈方案
Node.js有一定的前后端大一统趋势,前面前端部分已经广泛使用Node.js了,同时,现在有些公司会用JS来做后端开发了。
核心框架:
Express:轻量灵活,中间件生态丰富,适合快速搭建 API
Koa:基于 async/await 的现代框架,洋葱模型中间件,更优雅的异步处理
NestJS:企业级框架,依赖注入、模块化架构,TypeScript 友好
数据库交互:Sequelize(ORM)、Mongoose(MongoDB ODM)、Prisma(现代数据库工具)
实时应用:Socket.IO(实时通信)、GraphQL(高效数据查询)
部署模式:PM2 进程管理、Docker 容器化、Serverless 函数(Vercel/AWS Lambda)
典型场景:BFF 层(Backend For Frontend)、实时协作工具、API 网关、全栈 JS 应用
四、移动端开发:掌上世界的构建者
1. Android生态
技术栈演进:
语言:Java → Kotlin(官方推荐,空安全、协程、扩展函数)
UI 开发:XML 布局 → Jetpack Compose(声明式 UI,更简洁的代码)
架构模式:MVVM(ViewModel + LiveData/Flow)、Clean Architecture
核心组件:Activity 生命周期、Fragment 管理、Service 后台任务、BroadcastReceiver
数据存储:Room(SQLite 封装)、DataStore(替代 SharedPreferences)
性能优化:内存泄漏检测(LeakCanary)、UI 渲染优化(过度绘制检查)、启动速度优化
2. 鸿蒙开发新机遇
技术体系:
语言:ArkTS(TypeScript 扩展,声明式语法)
UI 框架:ArkUI(跨设备 UI 适配)
应用模型:Stage 模型(现代应用架构)、FA 模型(兼容旧版)
核心特性:分布式能力(多设备协同)、跨端迁移工具、低代码开发支持
开发工具:DevEco Studio(调试、性能分析、模拟器)
生态现状:政府 / 国企项目优先适配、开发者扶持计划、逐步完善的第三方库
我们专业的老师曾推荐过两本书,一本是Linux内核的,另外一本就是鸿蒙的,书咋样我不知道(还没太了解鸿蒙开发),名字叫《Harmony OS NEXT启程 零基础构建纯血鸿蒙应用》
五、服务端运维:系统稳定性的保障
1. 基础设施
Linux 系统:核心命令(awk/sed/grep)、Shell 脚本编程、系统调优(ulimit / 内核参数)
容器化技术:
Docker:镜像构建最佳实践、多阶段构建、容器网络
Kubernetes:Pod 管理、Service/Ingress 配置、ConfigMap/Secret、StatefulSet 有状态服务
Web 服务器:Nginx(反向代理、负载均衡、动静分离、SSL 配置)、Apache
CI/CD 流水线:Jenkins、GitHub Actions,自动化测试与部署
2. 中间件
消息队列:
Kafka:高吞吐量设计、分区策略、日志压缩、Stream 流处理
RabbitMQ:交换机类型(Direct/Topic/Fanout)、死信队列、消息确认机制
应用场景:异步通信解耦、峰值流量削峰、日志采集、事件驱动架构
缓存系统:
Redis:数据结构(String/Hash/List/ZSet)、持久化(RDB/AOF)、集群模式(主从 / 哨兵 / Cluster)
缓存策略:Cache-Aside、Write-Through、过期淘汰机制、缓存穿透 / 击穿 / 雪崩解决方案
搜索引擎:
Elasticsearch:索引设计、分词器配置、聚合查询、集群部署
应用场景:日志分析(ELK Stack)、商品搜索、全文检索服务
六、结语
软件开发本质是解决问题的艺术。对于新手来说,最重要的就是不要纸上谈兵,学技术时多实践。Talk is cheap. Show me the code。技术选型没有银弹,适合业务场景的方案才是最优解。保持持续学习的热情,但更要培养工程化思维。