在这近两个月里的时间里,耗费了几乎所有周末的时间来做项目开发。现在项目开发已经完成,我所得到的一些感想在这与大家一同分享。

  在项目开发伊始,我们就确定了总体的设计框架。本以为这样事情就完成了大半,以为有了大概的框架,我们往里面添加东西就行了,事实证明确实是我想多了。比如,在GUI交互这一块,要怎么实现GUI之间的通信,要怎么添加网络接口给GUI,客户端要怎么与GUI实现交互,客户端要怎么实现消息的同步发送等。一个整体的框架根本解决不了所有问题,其中的细节问题多到让我们难以想象。当然,最后我们还是解决了这其中的大部分,只是花费的时间超出了我们的预期。由这不得不想到,软件工程学的重要性。假想我们一开始就直接编码,期望在编码的过程中实现我们期望的过程,那么这么多细节要考虑,前前后后要进行的调试的次数可想而知。相反,如果采用软件工程的思想——先仔细设计再实现,来进行项目开发,那么很多问题可以提升到整体的层面来考虑,对于诸多的细节问题在设计阶段就想好恰当的解决方案,不至于在编码过程中顾此失彼,还得反过头来重新设计,使得项目开发时间大大延长。

  这次项目开发也看到了自己的很多不足。我是大二转专业到计算机系的,由于正在补修《离散数学》、《数据结构》这两门课,整体的学习情况有点难以兼顾。而且,在真正参与项目开发之后,我才明白离散数学和数据结构这两门课的重要性。这两门课重要在不是它们能够提供多少实用的公式应用在我们的工程中,而是这两门课能够培养我们将现实世界的实体转化成计算机可计算的逻辑实体的能力,同时能够站在计算机科学的角度,为工程的实现提供可靠的解决方案。比如在服务器用户消息转发功能中,采用的数据结构为图。图的键为对方用户的ID,值为对应客户端的socker实例,格式化的消息传入服务器,可通过头部的ID查找对方用户的socket,进而实现消息的转发过程,这样的例子还有很多。这就是计算机科学美的地方,那些数据结构外表看起来复杂、晦涩,但是这几乎是现实世界各种实体、数据最简洁的逻辑表达,它给予了我们在逻辑层面的视角,将问题的来龙去脉看得清清楚楚,现实问题由繁化简,为我们设计解决方案提供了极大的帮助。虽然软件工程这门专业强调的是计算机技术的应用,但是我觉得这种编程的思想,简单来说就是分析问题、解决问题的能力,对于所有计算机行业的从业人员来说都极其可贵,这也是真正的软件工程师与IT民工的区分标识。所以对我来说,这次项目开发结束之后,我不再想去钻研web开发、数据库等等,而是应该好好静下心来,重新回到计算机科学最开始的地方,从离散数学、数据结构重新开始,扎扎实实地打好自己的基础,重新迈入计算机科学的大门。

  以上。

转载于:https://www.cnblogs.com/yanfuhai/p/5426696.html

【第八周】回到起点,从头再来相关推荐

  1. 不过是从头再来(下)

    休学回来后,我便想转专业到计算机.奈何虽然转专业的成绩够了,但是申请时间已经过了(我们学校是大一下学期提交申请),无缘转专业.当时经过学长介绍,我花了一万块钱报了一个编程班,想系统的学习编程. 机缘巧 ...

  2. 从头再来博客_免费课程:从头开始构建博客吗?

    从头再来博客 by ZAYDEK 由ZAYDEK 瓷砖... (TIL-) 免费课程:从头开始构建博客吗? (Free Course: Build A Blog From Scratch ?‍?) 可 ...

  3. XJTU_ 西安交通大学2020大学计算机作业-第八周

    XJTU_ 西安交通大学2020大学计算机作业-第八周 XJTU_ 西安交通大学2020大学计算机作业-第八周 注:所有题所有用例均已通过. 文章没上传到github,反正没人点星星:https:// ...

  4. 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程

    第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...

  5. 我的2021年终总结:初为人父,从头再来

    [年终总结]| 作者/Edison 最近公司开始一股年终总结浪潮,看着同事们写大作文式的"内卷"总结,我不禁在想我这一年做了什么,那么也就有了这篇总结推文,当然它也是我每年的习惯. ...

  6. 2017-2018-2 20179205 《网络攻防技术与实践》第八周作业

    <网络攻防技术与实践>第八周学习总结 教材第八章<Linux操作系统安全攻防>学习总结 本章通过介绍Linux的结构和安全机制,引出了对Linux系统的攻击过程,包括首先从远程 ...

  7. 不再年轻,仍从头再来

    近日我的两个宝贝相继过生日,给我很多感触,被生命和生活所感动,被各种爱和各种细节所激动,我是一个可怕可恨的工科男,有时敏感,有时性情,有时忧郁,有时愤青,有时假装文艺,有时也很装,这些五花八门乱七八糟 ...

  8. 2023华为机考刷题指南:八周机考速通车

    2023.1.13更新: 拿到了华子offer,看到这个贴子一直有人收藏,最近有空完善一下,主要是把深搜的几道题的题号添上. 华子的机考不算简单,挺难的,还是得好好准备一下,而且技术面必撕题,所以刷题 ...

  9. 20155305乔磊2016-2017-2《Java程序设计》第八周学习总结

    20155305乔磊2016-2017-2<Java程序设计>第八周学习总结 教材学习内容总结 通用API 日志API 1.java.util.logging包提供了日志功能相关类与接口, ...

  10. rust sabrina 滑雪板_「Rust」夺冠 Valve Index连续十八周TOP10

    日前,Valve公布了上周(2021年1月4日-1月10日)Steam平台销量排行榜,由Facepunch Studios开发的第一人称末日生存联机游戏「Rust(腐蚀)」拿下冠军,「V社VR套件(V ...

最新文章

  1. 将tflearn的模型保存为pb,给TensorFlow使用
  2. 通过SQL存储过程删除过期的数据库Bak备份文件
  3. 百度文档搜索与Google文档搜索的简单比较
  4. 开发SQLite数据库常用的管理工具
  5. c++删除数组中重复元素_PG13中的功能—B树索引中的重复数据删除
  6. 前端圈小可爱 Vue 的自白:我年少成名,却又屡陷 React、Angular 混战
  7. 黄东旭:When TiDB Meets Kubernetes
  8. CentOS安装及注意事项
  9. Linux-进程间通信(三): 共享内存
  10. python安装TA_Lib遇到问题
  11. Duang!Markdown
  12. 微信公众号编辑器图片上传后有白色背景
  13. 最强大脑魔方墙模拟程序(工具)
  14. DL/T645-2007电表协议 数据域DATA注意事项
  15. FIO测试硬盘IOPS
  16. 马小妹的Android之旅——Android四大基本组件之Activity
  17. 一刀工具箱- 在线AI智能写诗工具
  18. Python进阶系列 - 20讲 with ... as:
  19. 专访高级架构师:京东双11背后的NoSQL数据库与分布式存储内幕
  20. matplotlib显示opencv图像有色差

热门文章

  1. 如何在 iPhone、iPad 和 Mac 上通过 iMessage 共享照片和视频?
  2. 如何在Mac的内置词典中添加和删除单词
  3. 基于django的视频点播网站开发-step9-后台视频管理功能
  4. 选择编程语言前需要知道的事
  5. 怎么取消百度右侧栏的搜索热点
  6. ASP.NET:返回按钮的解决方案摸索
  7. JavaScript中的[]和{}
  8. Chapter 4. 聚合函数、字符串函数、类型转换函数、时间日期函数
  9. onItemLongClick+onCreateContextMenu实现长按ListItem弹出不同菜单
  10. 解决 sql server 2005 2000 导出 script 脚本 附近有语法错误