首页 > 其他分享 >“代码与成长:从迷茫到收获的一段旅程”

“代码与成长:从迷茫到收获的一段旅程”

时间:2024-12-27 22:40:59浏览次数:7  
标签:旅程 项目 迷茫 编程 作业 成长 收获 团队 我们

代码与成长:从迷茫到收获的一段旅程

目录


迷茫的开始:我的软件工程初体验

回想刚开始学习软件工程课程时,我对这门课的理解还停留在“学写代码”和“完成作业”上,觉得这不过是大学里另一门普通的专业课。然而,随着课程的推进,我逐渐感受到,这不仅仅是一门技术课程,它更多的是一段关于 协作、思维、管理和坚持的成长旅程

初次遇到的挑战

  • 从未接触过完整项目开发流程:面对需求分析和项目计划时,我感到无从下手。
  • 团队协作的生疏:第一次团队作业中,大家的分工不明确,沟通也不够顺畅,导致项目进展缓慢。
  • 新工具的高门槛:例如,Git的版本控制和React的组件化开发让我感到吃力。

这些挑战让我意识到,想要真正成长,就必须走出舒适区,面对陌生和不确定。


学习与实践:从失败中收获力量

随着课程的逐步推进,我开始慢慢适应这种高强度的学习节奏。从最开始的个人作业到团队合作,每一次任务都是一次新的探索,每一个问题的解决都让我离成长更近了一步。

个人编程:扎实基础

  • 第一次个人作业的任务是搭建一个 Github 个人主页,并在页面中介绍自己的兴趣爱好、专业知识与能力,以及未来的发展设想。我认为这次作业使我们对自身能力有了更加全面的认识,为以后软件工程的学习做准备。
  • 第二次个人作业的要求是编写一个类似“羊了个羊”风格的消除类小游戏,在这个过程中,我遇到了逻辑混乱的困境。通过重构代码和优化流程,我第一次体验到“优雅代码”的意义。

结对编程:倾听与合作

  • 在结对编程中,我和搭档共同完成了一个小型聊天系统的开发。通过结对合作,我们讨论并细化了客户需求,明确了设计目标。虽然在需求分析和原型构建上花费了比预期更多的时间,但通过这个过程,我更加深刻地理解了系统设计和开发的全流程,并意识到时间管理和任务划分的重要性。但真正的挑战在于如何高效沟通和彼此协作。
  • 一次争论让我印象深刻:关于数据格式的选择,我们各持己见。最终,通过分析各自方案的优劣,我们选择了一种更灵活的数据传输格式(JSON),不仅解决了当下的问题,还为后续扩展提供了便利。这次经历让我意识到 倾听和妥协是团队合作中不可或缺的能力

现场编程:与时间赛跑

  • 11月2日,我们进行了一次现场编程作业。任务旨在开发一个个人记账本,我们给它取了个名字--时光记账簿
  • 编写个人记账本程序就像搭建一个专属的财务小管家,从定义收支类别到数据存储与计算,每一步都是对编程逻辑与功能实现的有趣探索。

团队项目:从混乱到有序

团队项目无疑是整个课程中最具挑战性的部分。在最初阶段,我们面临着许多问题,这些问题既考验了我们的技术能力,也考验了我们的团队协作能力。回顾整个过程,可以说这是一段从混乱到有序的旅程。

初期遇到的挑战

  1. 需求模糊
    客户的需求往往是抽象和不明确的,尤其是在最初的需求分析阶段。这使得我们在项目初期的设计经常需要推翻和重做。每一次变动都会导致工作重复、进度滞后,让团队成员感到沮丧和迷茫。

  2. 任务分配不均
    在团队项目的初期,我们并未明确每个人的具体责任和工作量。这样导致了部分成员承担了过多的任务,而其他成员则陷入了等待和消极的状态。例如,在需求不明确的情况下,某些人只能等待明确的功能定义,而其他人则在不停地调整设计。这种不平衡的任务分配造成了团队内部的不满和拖延。

  3. 沟通效率低下
    团队成员之间的沟通也出现了问题。由于任务划分不清晰,很多信息重复传递或者没有及时沟通,导致了工作内容的偏差。团队会议经常过于冗长,但最终的决策效率却不高,很多问题没有得到及时解决。尤其是在项目初期,我们没有固定的会议流程,导致讨论散乱,容易造成误解。

面对挑战的调整与优化

为了应对这些问题,我们团队逐步进行了一系列的调整和改进,以保证项目能够顺利推进:

  1. 改进需求分析
    我们将需求拆解成具体的功能模块,并明确了每个模块的核心目标。为了确保每个人理解一致,我们在每次会议结束时,都会总结出清晰的需求文档并要求团队成员确认理解。通过这种方式,我们能够确保需求在开发过程中不会出现偏差。

  2. 明确分工与责任
    为了避免任务分配不均,我们将项目的每个阶段任务明确列出,并标明每个成员的具体责任。通过将任务细化为子任务,成员可以清晰地看到每个人的工作进度和待完成的事项。我们还设置了每个任务的截止日期,并通过周会进行汇报,确保任务的进展是可控的。

  3. 提升沟通效率
    我们决定优化团队内部的沟通方式,采用了 站立会议(Stand-up Meeting)的形式。每天早上,我们会进行一个简短的会议,每个成员简要汇报自己的工作进展、当前遇到的问题以及接下来的计划。站立会议有助于缩短会议时间,避免讨论的拖延,同时也能让团队成员了解彼此的工作状态,增强团队协作。

项目的最终成果与反思


项目完成后,我们的团队系统运行稳定,UI设计简洁美观,得到了老师和同学们的认可。回顾整个开发过程,我深刻体会到 团队合作和合理的项目管理对于项目成功至关重要。不仅仅是技术能力,更是沟通、协调和计划的重要性,才是项目顺利推进的关键。


技术与工具:助力成长的关键

在这门课程中,我接触并掌握了多种技术和工具,为我的项目开发提供了有力支持。

技术

  • 前端(React):通过组件化开发,我能够清晰地组织前端代码,提高了页面的可维护性。
  • 后端(Node.js、Django):掌握了 RESTful API 的设计与实现,并能够通过数据库与前端进行有效的数据交互。
  • 数据库(MySQL):学习了关系型数据库的基本操作,掌握了 SQL 查询和数据库设计的核心原则。
  • 测试(Jest、Mocha):学习了单元测试和集成测试的基本方法,确保了系统的可靠性。
  • 敏捷开发方法:通过Sprint迭代和每日Standup会议,我理解了如何在快速变化的环境中推进项目。

工具

  • Git/GitHub:学会了版本控制的高级操作,如分支管理和冲突解决,这显著提高了团队协作效率。
  • Postman:用于测试后端API,显著提高了前后端联调的效率。
  • CI/CD工具(GitHub Actions):实现了自动化部署,节省了大量时间。

这些技术和工具的掌握,不仅为本课程的完成提供了支持,也为我未来的职业发展奠定了基础。


收获与成长:从技术到思维的全面蜕变

技术上的提升

  1. 全栈开发能力:熟悉了前端框架(React)和后端开发(Node.js、Django),理解了前后端协作的核心逻辑。
  2. 测试与调试能力:掌握了单元测试和调试技巧,提高了代码质量。

思维与素质的提升

  1. 解决问题的能力:通过不断的探索与尝试,我学会了面对复杂问题时如何分解任务、逐步解决。
  2. 沟通与协作能力:在团队中,学会倾听他人的意见,也能够清晰地表达自己的想法。
  3. 抗压能力:Beta冲刺阶段的高强度开发让我学会了如何在压力中保持冷静并高效完成任务。

最难忘的瞬间:团队的力量

回忆起整个学期,我最难忘的瞬间是Beta阶段的答辩。在紧张的开发和测试后,我们站在讲台上自信地展示了我们的系统。老师的认可、同学们的掌声让我深刻体会到团队合作的力量,也让我明白,成功从来不是个人的孤军奋战,而是团队共同努力的结果


软工实践的各次作业花费时间

作业 花费时间
第一次个人作业 3h
第二次个人作业 9h
第一次结对作业 5h
第二次结对作业 8h
第一次团队作业 5h
第二次团队作业 15h
现场编程作业 4h
团队作业beta冲刺 35h

在软件工程课程上花费的时间

  • 累计时间:143h
  • 实际周均时间:11.9h
  • 预计周均时间:10h

致未来的自己与学弟学妹们

给未来的自己

这段旅程让我看到自己的成长,也让我意识到还有很多需要学习的地方。希望未来的自己能够更加从容地面对挑战,继续探索技术的深度和广度。

给学弟学妹的建议

  1. 不要害怕失败,每一次挫折都是成长的机会。
  2. 学会使用生产力工具,它们会让你的开发过程事半功倍。
  3. 珍惜团队合作的机会,你会发现每个队友都是你成长的导师。

致谢:那些一路同行的人

  • 我的团队:感谢每一位队友的付出,特别是我们的队长,他在最后阶段独自优化了后端接口性能,为项目成功做出了巨大贡献。
  • 结对编程的搭档:感谢你在代码审查中指出我的问题,也让我在合作中学到了更多。

结语

软件工程这门课程不仅让我掌握了技术,更让我明白了团队协作的重要性和项目管理的复杂性。从迷茫到收获,这段旅程是一次充满挑战与成长的体验,也将成为我大学生活中最宝贵的回忆。


标签:旅程,项目,迷茫,编程,作业,成长,收获,团队,我们
From: https://www.cnblogs.com/chijiayi/p/18591544

相关文章

  • 中考阅读理解深入逻辑分析-006 A Stream's Journey to the Sea 一条小溪通往大海的旅
    文章正文Alittlestreamrandownfromahighmountainfar,farawaythroughmanyvillagesandforests,untilitreachedadesert.Thestreamthenthought,“I’vebeenthroughcountlessdifficulties.Ishouldhavenoproblemcrossingthedesert!”Butasshes......
  • 79.尚庭公寓项目总结收获
    单体项目技术来自尚硅谷:https://www.bilibili.com/video/BV1At421K7gP/?spm_id_from=333.337.search-card.all.click&vd_source=eb2341710c995d8261ecc99fdd066ba71.Typora的使用用的其实就跟博客园写记一样的markdown形式但我是习惯于win自带的记事本或是直接博客园但是......
  • [计算机网络]ARP协议的故事:小明找小红的奇妙旅程
    1.ARP小故事在一个繁忙的网络世界中,每个设备都有自己的身份标识——MAC地址,就像每个人的身份证号码一样。在这个故事里,我们的主角小明(主机)需要找到小红(目标主机)的MAC地址,才能给她发送一条重要的消息。第一幕:小明准备出发小明住在局域网(LAN)中,他知道小红也在同一个局域网里。......
  • 你有看过哪些框架或者类库的源码吗?通过看源码可以收获什么?
    我看过不少前端框架和类库的源码,主要集中在一些比较流行和核心的库,例如:React:重点关注过ReactDOM.render、useState、useEffect、fiber架构、reconciliation算法等部分的实现。Vue:研究过响应式系统reactive、ref、computed的实现,模板编译原理,以及v-dom的diff算法。Redux:......
  • 【唐叔学算法】第12天:回溯算法-探索所有可能的旅程
    在算法的世界中,回溯算法是一种通过试错来解决问题的方法。它尝试分步解决一个问题,如果在某个步骤中发现之前的选择并不会导致一个有效的解决方案,它将取消上一步甚至是上几步的选择,回退到之前的状态,再尝试另一种可能的解决方案。作为一名Java技术博主,我将带你深入了解回溯算......
  • 拿到小米 Offer,却迷茫了。。
    大家好,我是程序员鱼皮,12月了,很多小伙伴也拿到了秋招的Offer(没拿到也不要灰心),但即使拿到Offer,可能还会有一些其他的顾虑。今天分享我们编程导航一位鱼友的提问,给大家作为学习成长的参考。提问-选大厂安卓开发or继续找后端目前签了小米的安卓开发岗,平常可能做一些SDK的开......
  • MCA架构师学员在北京,秋招收获京东物流offer,26.5k*16薪
    MCA架构师学员在北京,秋招收获京东物流offer,26.5k*16薪!马士兵教育2024最新版MCA互联网高级架构师课程,Java进阶从0到年薪百万机会在等你!_哔哩哔哩_bilibili......
  • SAP MM 获取在规定时间内发生过收获的采购订单信息
    采购订单EKKO EKPO 采购凭证历史:EKBE发生过收获:移动类型101Z99  161 业务逻辑第一步:获取对应的采购订单第二步:检查采购订单是否发生过收货  且是直接参考采购订单收获如果是进入下一步业务逻辑如果不是则抛弃此条数据那我直接获取对应发生过参考采购订单收......
  • 《AI大模型开发之路》读后感:一次深入的技术旅程
    最近,我阅读了《AI大模型开发之路》这本书,感触颇深。这本书犹如一座技术的灯塔,指引着我在AI大模型的海洋中航行。一开始,作者从AI大模型的基础讲起,涵盖了自然语言处理的简史和AI大模型的概述。这让我对整个领域有了宏观的认识,仿佛站在巨人的肩膀上,俯瞰技术的发展历程。接下来,书中......
  • 反思我的旅程:构建初学者房地产列表全栈应用程序
    当我第一次开始学习python时,我不知道这段旅程会带我走向何方。我记得深入研究python教程,努力学习循环、函数和面向对象编程等基本概念。快进到今天,我使用flask后端和react前端的组合构建了一个全栈房地产列表应用程序。这个项目不仅是一个挑战,也是一次令人难以置信的学习......