软件工程第一次个人作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243 |
这个作业的目标 | 熟悉GitHub和博客园的各种基础操作,向大家介绍自己的能力与今后的准备 |
学号 | 102202111 |
1.个人logo文生图任务
-
展示最终生成的Logo
-
设计的理念与过程
我希望在coding的过程中能够像机械一样冷静,并有条不紊地创造出很多高科技的东西。
-
请在作业中加入截图和描述生成Logo的步骤,最后总结你使用文生图AIGC工具的使用体验和感想
我本来对chatgpt描述这个城市的样貌,但是它生成的太复杂且不像logo,像一个电影里的场景
后面我又限制了条件,生成的图片让我比较满意
-
对文生图AIGC工具的使用体验和感想
chatgpt除了有一些时候会犯傻外,大部分时间由我们的指令所生成的回答是十分准确的,减少我们不必要的工作
2. Github个人主页搭建
在个人主页中添加以下内容:
介绍你自己。比如你的兴趣爱好,你认为值得向别人展示的记忆,可以使用照片丰富网页,并把个人资料截图放在作业博客中。
介绍自己的成就、成果,技能和专业相关经验经历,并进行自我评估。目前你已经具备了哪些专业知识和能力;你对哪类技术方向有兴趣;你最想学习哪些方面的知识。
规划自己未来三年的发展设想。考研?保研?工作?考公?你可以谈一谈自己未来三年的目标,并给出理由。
3. 博客园随笔:
自我评估
1.已具备的专业知识和能力
-
编程基础:我已经掌握了多门编程语言的基础,包括 Python、Java 和 C。能够编写中小型的应用程序,并对面向对象编程有一定理解。
-
数据结构与算法:我熟悉常见的数据结构如数组、链表、栈、队列、树和图,并且能够使用这些数据结构解决基础算法问题。
-
数据结构与算法:我对前端的JavaScript有一定的了解
2.兴趣方向
- 人工智能与机器学习:我对人工智能特别是机器学习有浓厚的兴趣,希望深入学习相关算法和模型,参与与深度学习有关的项目。
3.需要提升的能力
-
高级算法与复杂问题解决:我发现自己在面对复杂的算法问题时有时会感到困难,特别是在时间复杂度和空间复杂度的优化上,希望能够通过更多的练习和学习提高这一能力。
-
系统设计能力:我对系统设计的了解还比较表面,希望能够通过学习掌握更多设计模式、架构方案以及如何在实际项目中应用它们。
4.当前的代码量
目前,我的代码量大约在 5000 行左右,主要集中在小型项目和课程作业中。
5.课程目标
本学期结束后,我希望能够将代码量增加到 10000 行,通过实际项目和练习积累更多编程经验。同时,希望能显著提升自己的代码质量和编写效率。
6.课程期待
在这门课中,我最期待学习到的知识包括:
- 更深入的算法分析与应用,特别是复杂问题的解决策略。
- 团队协作开发的经验,通过小组项目了解如何在多人环境中高效工作。
- 系统设计与架构的基础,希望能够了解如何设计出高性能、可扩展的系统。
通过这门课的学习,我希望自己能在编程能力、项目管理和系统设计等方面都有所提升,为未来的职业发展打下更坚实的基础。
软件工程学习指南(chatgpt生成)
软件工程是一门结合了计算机科学、项目管理和设计模式的学科。它不仅涉及编写代码,还包括如何以系统化的方法构建、管理和维护软件项目。以下是一个全面的软件工程学习指南,帮助你从基础到进阶掌握这一领域。
一、基础知识
-
计算机科学基础
- 数据结构与算法:掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(排序、搜索、递归、动态规划等)。
- 编程语言:选择一门或多门主流编程语言深入学习,如 Python、Java、C++ 或 JavaScript。理解基本语法、控制结构、面向对象编程等。
-
操作系统与网络
- 操作系统:理解操作系统的基本概念,包括进程管理、线程、内存管理和文件系统。
- 计算机网络:学习网络基础知识,包括 TCP/IP 协议、HTTP、DNS、路由、交换等。
-
数据库管理
- 关系数据库:学习 SQL 语言,掌握数据库设计、查询优化、事务管理等。
- 非关系数据库:了解 NoSQL 数据库,如 MongoDB、Cassandra,掌握它们的适用场景。
二、软件工程核心概念
-
软件开发生命周期 (SDLC)
- 学习 SDLC 的各个阶段,包括需求分析、设计、编码、测试、部署和维护。理解敏捷开发、瀑布模型、迭代开发等开发模型。
-
版本控制
- 学习 Git 和 GitHub/GitLab 的使用。掌握代码提交、分支管理、合并冲突解决等。
-
设计模式
- 了解常见的设计模式,如单例模式、工厂模式、观察者模式、策略模式等,学习如何在实际项目中应用这些模式。
-
软件架构
- 学习常见的软件架构模式,如 MVC(Model-View-Controller)、微服务架构、分层架构等。
-
测试
- 掌握单元测试、集成测试、系统测试、验收测试的概念与实践。学习测试驱动开发(TDD)的方法。
三、实践与项目
-
个人项目
- 通过构建个人项目来巩固所学知识。项目可以包括开发一个简单的 Web 应用、移动应用或开源贡献等。
-
团队协作
- 参与开源项目或团队开发,学习如何进行代码审查、任务分配、团队沟通等。
-
DevOps
- 学习 DevOps 工具链,包括持续集成/持续部署(CI/CD)、Docker 容器化、Kubernetes 容器编排、自动化部署等。
四、进阶学习
-
系统设计
- 学习如何设计大规模系统,包括可扩展性、容错性、高可用性等。掌握负载均衡、缓存、数据库分片、CDN 等技术。
-
安全
- 学习 Web 应用安全知识,如 XSS、CSRF、SQL 注入、防火墙、加密等。理解如何在项目中实现安全措施。
-
云计算
- 学习云服务平台(如 AWS、Azure、Google Cloud)的基础知识,掌握虚拟机、存储、网络服务等。
-
人工智能与数据科学
- 如果对 AI 或数据科学感兴趣,可以进一步学习机器学习、深度学习、数据分析等内容。
五、学习资源
-
书籍
- 《代码大全》 by Steve McConnell
- 《设计模式》 by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- 《敏捷软件开发》 by Robert C. Martin
-
在线课程
- Coursera、Udemy、edX 上的相关课程
- MIT、Stanford、Harvard 提供的计算机科学公开课程
-
社区与论坛
- Stack Overflow、Reddit、GitHub 社区
- 加入当地或线上开发者社区,参与讨论和项目。
六、保持学习与成长
软件工程是一个不断发展的领域,保持学习新技术、工具和最佳实践至关重要。参加行业会议、阅读技术博客、与同行交流,都是保持成长的好方法。
通过持续学习和实践,你将能够在软件工程领域不断进步,最终成为一名优秀的软件工程师。
我认为这篇指南很详细,对我有很大的帮助