这个作业属于哪个课程 | 2022年福大-软件工程、实践-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践寒假作业 |
这个作业的目标 | 学习使用markdown、gitcode、写博客、写未来规划 |
其他参考文献 | 无 |
准备工作
仓库地址
回首过去
当初你为什么选择软件工程这个专业?
感觉和计算机差不多,了解之后感觉软工的代码实践机会比较多,不想接触太底层的计算机原理,所以选择了软件工程。
当初对软件工程这个专业的期待和想象是什么?
原本以为可以轻松地开发一款商业软件,然后过上衣食无忧的生活,后来发现只能当一个普通的码农。原本以为从好的211学校毕业就可以进入大厂,后来发现不卷连敲门砖都看不见。原本以为开发只要掌握语言就行,后来发现还需要深入了解框架、组件、架构、优化、设计模式。
当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
当初觉得只要进入好的大学,跟着老师的步子走,一定可以实现人生的梦想。高三暑假也曾自学算法和数据结构,相信未来的某天一定能用到。立过好多flag:游戏开发程序员、移动应用程序员、后端程序员,都了解一点点后发现程序员的世界真的好广。
立足当下
个人简介
沈某 / Qiuqiu Shen
个人资料 / BasicInfo
电话:13888888888
兴趣爱好:吃饭、睡觉、敲代码、打游戏、web实践、听歌、看电影
特长:腿专业技能 / Professional Skills
掌握的编程语言:Java、C、C++、C#、Kotlin、Python、php、UEC++
技术框架
- 前端
- Bootstrap3、4,Vue2、3,ES6,AdminLte、echart、jquery.flot
- 安卓移动开发(Kotlin)
- Coroutine、MaterialDesign、Spring、Paging3、Flow、Navigation、Room、Retrofit2、LiveData、ViewModel、DataBinding、Glide、Dagger-hilt
- 后端(Java)
- Spring、SpringMVC、Springboot、SpringSecurity、Netty、OAuth2、MybatisPlus、Swagger、Redis、RabbitMQ、ElasticSearch、部分SpringCloudAlibaba组件:nacos、gateway、loadbalancer、openfeign、sentinel、ribbon、seata、skywalking
- 机器学习
- scikit-learn、tensorflow、pytorch
开发软件
- 开发相关
- Idea、vscode、git、navicat、postman
- 运维相关
- VMware、Xshell、Xftp、ngrok、skywalking、jconsole、druid
- 测试相关
- junit、jmeter、arthas
- 产经相关
- Axure9、processon
累计代码量:几十万?
项目经历 / Project Experience
仿淘宝电商系统(全栈开发)
本项目采用前后端分离,分为前台和后台两个应用。基于github高星开源项目mall进行开发
前台为用户使用,可进行商品浏览,查询,下单,支付等等,支付操作使用支付宝沙箱。
后台为管理员使用,可以进行商品上架,商品sku、spu设置、订单管理、促销管理、营销管理、商品分类管理、角色权限管理,定时任务,流量控制等,支持OAuth2协议登录,可改用分布式版本。
第三方服务:ngrock提供内网穿透服务,阿里云oss提供文件存储服务、百度webuploader提供断点续传服务。无名App(kotlin安卓开发)
后端是别人写的,服务器目前好像已经下线了,具体细节可以自己看仓库。
简历管理系统(java后端开发)
本项目前后端分离,前端页面为一个简历投递网站(他人编写),游客可以向该网站投递简历文件或在线编辑简历信息,支持简历携带附件,同时支持管理员登录,普通管理员可以审核投递的简历,并且有超级管理员,超级管理员可以设置角色、权限、以及创建管理员账号等权限操作,部署在阿里云服务器上,目前已下线。
展望未来
阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考?
问题一
显然从学生到职业程序员,并不是更加没完没了地写程序——花在写代码的时间反而少了很多——原作者
我的看法:
我认为学生相比于职业程序员,可能有着更多的好奇心,不喜欢停留在过去的技术,而是更喜欢钻研前沿的新技术,因此有如机器学习,计算机视觉等前沿领域,更多的是学生和学术界在研究。但是职业程序员有着比学生更多的代码经验,在系统的架构层面和对设计模式的理解更加深刻,因为职业程序员需要处理的业务能力比学生会遇到的更复杂,遇到的现实问题也更多,对于优秀的架构和设计模式的需求更加强烈,同时在多部门协作方面,职业程序员也会比学生更强,所以写代码的时间显然会少了很多。
问题二
3.1 对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢
我的看法:
我认为在学习时,工程师应该更“广”一点,正所谓技多不压身,越广的知识面,可以在遇到实际问题时拥有更多的解决方案,也可以在多种可选方案中找出最高效的解决方案。但是对于项目的深度扩展,工程师更需要“专”一点,因为越复杂的项目,会遇到的底层问题也会越来越多,如果不深入底层专业的地方,遇到问题则无法快速得到解决。
问题三
5.3 在团队项目中,个人应该如何选择或者接受团队的工作分配?
我的看法:
首先个人应该了解项目的大体结构,同时要了解各工作分配的模块结构,大致了解各模块需要的技术栈,并与自身已学技术相比较,如果大多符合,则可纳入自身选择的候选项中。在自身能力足够完成多个模块的内容,要依据各模块所需技术栈中自己所缺的部分,尽量选择需要学习新技术的模块,以增强自己的硬实力,但模块的所缺技能不可过多,以免拖慢团队项目的工作进度。
问题四
我的看法:
可以使用git版本控制系统。
问题五
我的看法:
我认为在刚刚入门的时候,可以先使用工具进行解决,但一定要清楚低层次的问题发生的原因,不可完全依赖于工具,否则在多人协同开发时,工具的学习和使用也需要花费时间成本。
你未来的职业规划是什么?
未来打算在从事后端开发工作的同时学习前沿技术,比如人工智能,k8s相关技术等。
对于软件工程实践课程,你有什么理解和期望?
我希望可以学会软件工程的相关知识以及大型团队项目的开发流程,还有多人项目的设计和管理。