目录
友情提醒:不要把技术手段当成目标,而要从问题入手,我们的科技发展才会有希望。
这篇文章是写给同学们的。暑假了,是动动手做些作品的时候了。今年经济不好,找实习不是很容易,那么不如从自己身边开始,找到一些自己想解决的问题,然后利用自己所学的理论知识、关键技术、开源的工具和平台,完整地完成一个作品吧。
图片来源:https://www.vippng.com/preview/JxJwoh_developer-cartoon-programmer/
1 达到什么目标?
-
完成软件开发的完整过程:寻找问题、定义问题、设计解决方案、实现解决方案、测试解决方案、优化解决方案、上线实施
-
用软件开发的方法解决一个自己想解决的问题
-
理解一个软件产品所运用到的理论知识:如软件工程的知识、计算机系统架构的知识、程序语言的知识
-
理解软件和硬件开发的技术:如网站、App、物联网开发技术
-
熟练使用软件开发的平台和工具:如github、git、IntelliJ IDEA
-
学会与他人协作
2 做什么呢?
最近遇到哪些问题需要用计算作品来解决呢?用什么形式来解决呢?
小小提示如下:
做个小网站?
做个小游戏?
做个物联网的小应用?
3.怎么做呢?
3.0 特别注意:解决问题,设计先行
-
提示:不要一开始就把精力放在了项目程序和代码上,记住不拘泥于技术本身,要先做好问题定义和设计工作
3.1 识别和定义计算问题
-
锻炼识别应用计算的适当和有价值的机会的能力。
-
思考:这个问题可以或者必须用计算问题解决吗?
-
-
创建与社区及其他人个人相关或有益的计算工件。不能做有伦理问题的作品。
-
为现实中的真实需要、个人表达或解决社会问题创建计算工件
-
使用计算方法解决问题需要定义问题,将其分解为部分,并评估每个部分以确定计算解决方案是否合适。
-
思考:用什么方案合适?网站、App?
-
3.2 开发和使用模型
如何将问题转化为功能设计?又如何将功能设计转化为技术架构?如何开发通用模块,以便易于构建系统?
提示:通过识别模式并从特定示例中提取共同特征来创建概括,从而形成抽象。通过管理复杂性、使用通用解决方案和为广泛重用而设计的解决方案的部分来简化开发过程。评估现有技术功能并将其纳入新设计。创建模块并开发可应用于多种情况并降低复杂性的互动焦点。
3.3 计划和执行调查
如何让作品得到更多人的认同,如何确认产品确实解决了问题?
-
做原型,找用户对象测试。
-
提示:可以看这里的视频【实战技能】如何做产品原型测试?
3.4 分析和解释数据
-
如何搜集数据,如何设计数据,如何存储数据?
-
提示:定义对象、抽象模型、设计数据库
-
3.5 使用数学和计算思维
-
设计方法 :抽象、模块化、分解
-
提示:设计系统架构、类、方法
-
3.6 设计解决方案
完整过程:定义作品、设计系统、开发软件、测试和部署系统
开发计算工件的过程包括创造性表达和思想探索,以便创建原型和解决计算问题。可以通过组合和修改现有工件或通过开发新工件来创建计算工件。
-
如何选择开发形式、开发语言与开发工具、协作平台?
-
可以基于开源项目做二次开发,也可以基于成熟的平台自己设计开发。
-
如果做网站,可以用 react或者vue + springboot + maria
-
为了完整了解开源平台的设计思想和设计方法,以便更好应用,强烈建议:
不要使用封装太强的工具:比如微信小程序
图片来源:https://www.pinterest.com/pin/523262050425860051/
3.7 参与论证
如何验证作品达到了既有的效果,如何进一步优化?
提示:修改现有工件以改进或定制它,利用开源平台的作品,当然要注意开源协议的要求
图片来源:https://programmingpalace.wordpress.com/2012/04/08/software-developer-under-pressure-funny-pic/
3.8 获取、评估和交流信息
特别提示:多看英文资料,可用bing国际版搜索,因为要做好计算领域的工作,英语是最基础的工具。
https://github.com/bettermorn/ACMWDevHubPPT/wiki/%E5%88%9B%E6%96%B0%E5%B7%A5%E7%A8%8B%E5%AE%9E%E8%B7%B5%E8%AF%BE%E7%A8%8B%E5%89%8D%E6%9C%9F%E5%87%86%E5%A4%87
-
如何开始这个项目?提示:学习和参考开源项目,与小伙伴讨论
-
到哪里去找资料?
-
提示:参考各大平台的官网,例如Spring、React、Vue、Python的官网;到github上寻找参考项目,使用web development study 关键词搜索,也可以找Oracle网站上的Java 相关学习内容,还可参考以下链接提供的资料
-
-
如何判断资料可用?提示:参考业界良好实践的文章 Best Practices 解释工具平台技术的能力指标
4 参考资料
欢迎访问我在github上的链接 基于Java的Web程序开发指南
https://github.com/bettermorn/ACMWDevHubPPT/wiki/%E5%9F%BA%E4%BA%8EJava%E7%9A%84Web%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97
任何问题,欢迎在issue上提出
https://github.com/bettermorn/ACMWDevHubPPT/issues
欢迎收听以下音频,了解实践的完整过程