前些日子,有几个同学过来问问软件开发岗有哪些实用技术是值得学习的,因为学校教的东西要么太理论,要么完全没用。也因为现在也到了大二下了,要开始考虑实习的事了。我便在我目前的知识范围内,蜻蜓点水地给出一些概述。希望可以帮到想要进入这一行业的大一/大二学生。
【注:我也只是想要进入这一行的大二本科生,并非行内人士,所以仅作参考。未来真的进入这一行后这篇文章或许还会更新吧。】
一、介绍技术栈前的一些闲话
方法论 > 技术栈,虽然说下面的内容会简要介绍一些常用技术栈(并非都要学,我或许列出来了但是我一次没用过哈哈哈),但是在开发过程中,合理的工程化思路比浅学一堆技术路线更重要。技术栈不在多,在精。框架只是工具,只是用来解决问题的技术路线,核心是思路与设计。或许有一些同学喜欢在自己的项目中堆砌大量技术栈,如果出于学习目的的项目,倒无伤大雅。如果是需要实际投入生产环境的项目,这种行为一方面加大团队的学习成本和沟通成本,另一方面可能会出现自己设计了一堆不存在的需求加大系统复杂度,然后投产后发现根本没有这么大的需求。
如果是真萌新,可能下文中很多东西看不懂,最好的方案是去搜搜这些都是啥。下面给出两张图,是某一平台的系统架构图和软件工程流程图。估计可以帮你串起来软件工程化的思路和组件(而非期末大作业那种东西)。
软件开发流程图
软件系统架构图
现在开发一定要会用AI工具辅助,不论是IDE内置还是去其他地方搜索,要知道怎么问。
入门这些知识时,一开始可能会去看教程,但做到后面一定是更经常去查文档/看开发社区(当然现在会问AI也很重要)。
如果有可以参加的项目,大胆加入。别怕不会写,先写,写的时候用才学得会。只看理论/教程而不实践,是没法真正学会的。
程序员的工作约等于复制粘贴,但是,你的工资的50%是你知道去哪复制,另外50%是你知道粘贴到哪。
学服务器(或Linux)最好的方式就是自己买一个来玩,比如试着搭建一个自己的博客网站(推荐用现成的博客应用框架搭建,当然你自己写也博客应用,可以当作一种练手,就是有亿点费时间)
推荐一个B站up主原子能,可以帮你构建软件工程的思路,写代码是工程,不是科研。他的让编程再次伟大系列讲的很好,从工程角度去设计思考,而不是无脑学新技术新框架。
要习惯用Git工具做版本管理和协同开发、用习惯Github(当然你未来的公司可能会用自己的Git仓库而非Github,如果你过于依赖于Github Desktop,到时候可能会遇到一些麻烦,属性Git命令是必要的)。
二、前端开发:用户界面的魔法师
1. 基础三剑客
HTML5/CSS3:页面结构与样式的基石
JavaScript/TypeScript:动态交互的核心(推荐优先掌握TS的类型系统)
实战要点:Flex/Grid布局、CSS动画、ES6+语法、模块化编程
2. 主流前端开发框架
3. 进阶方向
构建工具:Webpack(深度定制) vs Vite(闪电构建)
全栈延伸:Node.js + Express/NestJS
跨平台解决方案:Electron(桌面端)、React Native(移动端)
三、后端开发:业务逻辑的守护者
1. Java生态体系
数据库基础:
关系型数据库:MySQL、PostgreSQL;
非关系型数据库:MongoDB(处理类似JSON型数据)、Redis(处理键值对型数据,其实更常用于Redis缓存)
JavaWeb基础:
JDBC(Java数据库链接)
Maven(项目管理)
Servlet,JSP,AJAX,是已经有点过时的技术了,但是可以作为前置知识了解
核心技术栈(SSM):Spring + SpringMVC + MyBatis Plus 很重要很重要,核心中的核心,国内开发岗最多的(也是最卷的)
Spring Boot:流行的轻量级开发框架,基于 Spring 生态构建,通过「约定优于配置」的设计理念,极大简化了 Spring 应用的初始搭建和开发过程。
Spring Data JPA:学完MyBatis你会发现,这Mybatis不是用高级的方法写SQL吗?那么可以来体验一下Spring Data JPA,高度封装后的ORM框架。
微服务架构:Spring Cloud Alibaba
性能优化:JVM调优、分布式缓存(Redis Cluster)
2. Python轻量级开发
用Python做后端开发的,真的不多,基本上应用有AI或大数据背景才可能会用。
数据库的基础和Java部分类似,但是Python3对SQLite3支持挺好的,在Python应用中,SQLite3的应用场景挺多。
框架选型:
Django:自带ORM/Admin的全能框架
FastAPI:异步高性能API开发(通常搭配Pydantic)
Flask:轻量级Python后端框架
SQLAlchemy:Python的数据库链接和ORM框架
3. Go语言新势力
现在越来越多的Java后端开发有Go背景了,因为Go在多线程上的优势确实大,且有良好的原生支持。
核心优势:协程并发(goroutine)、内存效率、编译速度、通道(channel)
框架选型:
Gin:高性能HTTP框架(适合API开发)
Go-zero:微服务框架(内置服务治理)
Beego:重量级框架,内置ORM、路由、MVC和RESTful API支持
4. Node.js全栈方案
Node.js有一定的前后端大一统趋势,前面前端部分已经广泛使用Node.js了,同时,现在有些公司会用JS来做后端开发了。
技术框架:
Express:当前流行的Node.js后端开发框架之一
Koa:同理,比较常用的后端开发框架
应用场景:实时应用(Socket.IO)、Serverless函数
四、移动端开发:掌上世界的构建者
1. Android生态
语言演进:Java → Kotlin(空安全/协程支持)
现代架构:Jetpack Compose + MVVM + Room
性能优化:内存泄漏检测、ANR分析
我还没投入安卓开发领域,细节也不太了解,曾听说过前辈提到一本书《第一行代码 Android》,作为入门似乎挺不错。
2. 鸿蒙开发新机遇
技术特点:ArkTS语言 + Ability组件 + ArkUI框架
开发工具:DevEco Studio + 本地模拟器
生态现状:政府/国企项目优先适配,开发者红利期
我们专业的老师曾推荐过两本书,一本是Linux内核的,另外一本就是鸿蒙的,书咋样我不知道(还没太了解鸿蒙开发),名字叫《Harmony OS NEXT启程 零基础构建纯血鸿蒙应用》
五、服务端基石:系统稳定性的保障
1. 基础设施
Linux系统:很重要,用习惯命令行操作,Linux是服务器技术和软件运维的基础。
Linux运维:Shell脚本 + 权限管理 + 日志分析
容器化部署:Dockerfile最佳实践 → Kubernetes集群管理
Nginx:部署网络应用时相当常用,用来做反向代理(了解一下正向代理和反向代理分别是什么和差别)
2. 中间件
六、结语
软件开发本质是解决问题的艺术。对于新手来说:
考虑建立T型知识结构:1-2项深度专精 + 多领域认知
新手可以从垂直领域深度实践起步,逐步扩展到架构设计层面。
定期参与开源项目(建议从文档翻译/Issue修复起步)
不要纸上谈兵,学技术时多实践
技术选型没有银弹,适合业务场景的方案才是最优解。保持持续学习的热情,但更要培养工程化思维。