如何提高软件技术专业师生的技术水平?当然办法有很多,比如参加大赛、承接企业的项目、参与企业的项目实践、参加技术培训等等。但是这些方法都需要一些条件,比如企业的参与、费用、时间限制等等。利用开源项目,完全不受这些条件限制,只要有兴趣和自由时间就行。
网上比如 github 上面有很多开源项目,包括了很多产品的社区版。源代码都是可以下载的。通过研究、学习这些源代码,既可以提升编程、设计能力,也可以让自己用的工具与企业接轨。因为很多开源项目都是一些大公司的技术人员在推动,代码和技术水平还是很高的。
一般开源项目都有示例代码。可以从示例代码入手,学习项目产品的用法。如果有能力和精力,再去看项目产品的实现代码。很多公司开发产品,都不是从零开始,都是基于已有的开源项目,这样可以大幅降低开发成本,加快开发进度。开源的好处是免费,但是学习成本比较高。和商业软件比起来,文档、技术支持都显得有些漫不经心,因为看这些的都是专业人员,代码就是最好的文档了。
所以,老师学生一起学习开源项目,将开源项目转变成课程资源,推广应用这些项目,既可以为开源社区做贡献,又可以提高自己的技术水平。
这学期,专业新开设《JavaEE 微服务架构》的课程。我下载了阿里巴巴的 SpringCloud项目代码,从里面选了7个示范案例项目,作为课程的内容。通过做课程,看项目代码,感觉学到了很多东西。涉及的知识点很多,是现在学校教材里没有的。除了微服务本身的内容,还学到了很多相关的内容,比如IDEA中项目的组织、maven的用法、AsciiDoc写文档、Markdown文件格式、gitbash、curl工具、actuator程序监控模块、各种http客户端如RestTemplate、FeignClient等、函数式编程、响应式编程等。
在这个学习的过程中,文心一言、chatGPT等的帮助也很大,减少了自己查阅资料的时间,遇到问题都能给出相对系统的提示信息和解决问题的思路线索。
学习软件的幸福就在于对外部条件依赖比较低,不需要服务器,不需要大数据集,有台笔记本电脑,能上网,再有时间就够了。这也是打发时间的很好的方式,一个问题往往就需要半天一天的时间。比纯玩感觉要好很多,怎么说都算提高自己的生存能力吧。