一、个人情况介绍
(一)经历
本人本科专业为非计算机相关专业,有过计算机基础理论(如微机原理)和编程语言(如C语言程序设计)的相关课程学习经历,没有软件开发方面的工作经历。曾经做过最复杂的软件作业是“学生成绩管理系统”。
(二)认识
因为计算机是我喜欢的领域,所以选择了跨专业(本科专业为测控技术与仪器)报考。由于缺乏相关课程的学习和实践,计算机并不是我擅长的领域,甚至显得基础薄弱。
(三)规划
本人为非全日制研究生,目前在单位从事的工作与计算机操作有关,与软件开发无关,未来很长一段时间很可能都要从事当前的工作。技术道路方面,计划打牢基础,熟练掌握两种编程语言;职业道路方面,计划长期在BuDui工作,把手头的工作专研得更深入、更透彻;社会道路方面,没有具体的规划。
(四)目标
学习软件工程这门课是为了给开发软件提供技术上的解决方法。通过学习这门课,我期望能够熟练运用某种编程语言,并具初步备独立开发初级软件的能力。一周里,如果工作上没有加班,除了正常的上班时间(周一至周五0600至1800)和适当的休息时间(周五和周六的晚上),其余时间我都愿意用在这门课上。如果精力和时间够用,在不影响工作和个人健康的情况下,我愿意为了感兴趣的项目、或为了得到实战锻炼而付出更多的时间和精力。
二、理论学习
(一)完成内容
详见工作记录表
(二)《人月神话》读后感(前三章)
”焦油坑”:编写出真正有用的产品,是大多数软件开发的目标,但是编程所付出的成本和心血却出奇的高。编程可以带来创造新事物的快乐,也会被随时出现的各种错误所折磨,甚至有时在付出大量辛苦劳动之后发现产品显得过时。
“人月神话”:人月之所以是神话,是因为人月作为衡量一项工作的规模是危险的和带有欺骗性的。增加人员未必会减少开发时间,人员的加入会增加更多的沟通工作量。沟通包括培训和相互交流,恶劣情况下,增加的沟通负担会超过任务分解产生的作用。假设所有的编程人员都是乐观主义者,那么缺乏合理的进度安排是是项目滞后的主要原因。
“外科手术团队”:编程人员的水平相差很大,人员增加沟通又会增加工作量,出于效率和概念的完整性考虑,最好有小而精干的队伍设计和开发。但是对于大型系统团队,“外科医生-副手”团队架构从效率、概念的完整性和开发周期而言,才是可取的。
三、实践学习
(一)完成内容
详见工作记录表
(二)第1章作业题
参考博文链接:https://blog.csdn.net/weixin_43796223/article/details/85112041
#Calculator of Python def calculator(): formula00 = input('请输入算式:') formula01 = '' for i in formula00: if i.isspace(): pass else: formula01 += i num01 = '' num_list = [] symbol = [] count = 0 for i in str(formula01): if count > 1: print('输入有误,请重新输入!') break elif i.isdigit() or i == '.': num01 += i count = 0 elif i == '*' or i == '/' or i == '+' or i == '-': num_list.append(float(num01)) num01 = '' symbol.append(i) count += 1 else: print('输入有误,请重新输入!') break num_list.append(float(num01)) while symbol: while "*" in symbol or "/" in symbol: for i in symbol: if i == "*": j = symbol.index("*") result = num_list[j] * num_list[j+1] del num_list[j:j+2] num_list.insert(j,result) symbol.remove("*") break if i == "/": j = symbol.index("/") result = num_list[j] / num_list[j + 1] del num_list[j:j + 2] num_list.insert(j, result) symbol.remove("/") break while "+" in symbol or "-" in symbol: for i in symbol: if i == "+": j = symbol.index("+") result = num_list[j] + num_list[j+1] del num_list[j:j + 2] num_list.insert(j, result) symbol.remove("+") break if i == "-": j = symbol.index("-") result = num_list[j] - num_list[j + 1] del num_list[j:j + 2] num_list.insert(j, result) symbol.remove("-") break return num_list print(' '. join('%s' %id for id in calculator()))
四、工作记录
学习时段 | 学习内容 | 主要收获 | 存在问题 |
2.18 1900~2100 |
理论学习 慕课《软件工程》 (清华大学 刘强) 1.1~1.6、第1章测验题、第1章讨论题 |
对软件工程这门课有了一个初步的认识。 | 无 |
2.19 1900~2100 |
理论学习 慕课《软件工程》 (清华大学 刘强) 2.1~2.5 |
对于如何编写高质量的代码有了初步的了解 。 | 对于具体的编程规范还比较陌生。 |
2.20 1900~2100 |
理论学习 慕课《软件工程》 (清华大学 刘强) 2.6~2.7、2.7讨论、第2章测验题 |
对于如何编写高质量的代码的方法和过程有了初步的了解 。 | 测验题错误较多,基础知识掌握不牢固。 |
2.22 0830~1100 |
理论学习 慕课《Python语言程序设计》 (北京理工大学 嵩天) 【第1周】Python基本语法元素 |
熟悉了Python的基本语法、 编写方法、开发环境等。 | 初学Python语言,缺乏实践。 |
2.22 1500~1700 |
实践学习 配置Python编程环境, 在码云建立代码仓库。 |
了解了代码仓库的pull、push、fork等关键操作。 | 运行Pycharm时,出现“fail to load jvm dll”的错误,后通过添加环境变量java_home得以解决。 |
2.23 0830~1030 |
理论学习 慕课《数据结构》 (浙江大学 陈越) 第一讲基本概念 |
熟悉了数据结构和算法的基本定义。 | 无 |
2.23 1500~1630 |
理论学习 书籍《人月神话》 第1章焦油坑、第2章人月神话、第3章外科手术队伍 |
学到了一些软件开发的方法论和观点。 | 对于某些句子的理解还有些模棱两可。 |
2.23 1800~2000 |
实践学习 慕课《软件工程》 (清华大学 刘强) 第1章作业题 |
采用参考的形式, 一边看一边学,一边学一边写,提升了对Python语言的理解和编写能力。 | 对Python语言运用的熟悉程度还需加强。 |
五、评价
本周在本课程的学习投入约为16小时,由于本人基础较差,其中大多数的时间都用于打基础、补短板。由于是本学期开的第一门课,学习状态不是很好,学习效率有待提高。计划在今后的学习中,一边学Python语言(因为慕课使用Python教学)和相关基础课程,一边推进本课程由浅入深的学习。争取在本课程学完后,编程水平有一个质的飞跃。
附录(相关截图):
第1章学习完成截图
第2章学习完成截图
本地代码上传截图
多次提交记录截图