大一下学期理想规划

促成这篇文章的原因是最近的一次数据结构课作业及《构建之法:现代软件工程》的前几页阅读。

开学两周了,每天花在学习编程或者软件工程上的时间几乎没有。把精力都用在数学及英语上了,也因控制不住诱惑而浪费了不少时间。

这次作业有两道题目难住了我:

A.      重型卡车穿越1000km的沙漠,汽车耗油为1升/公里,卡车总载油量为500升,显然卡车一次过不了沙漠,因此司机必须在沿途设立一些储油点,则司机应该如何建立储油点、储多少油才能使汽车以最少的汽油代价通过沙漠,请分析写出算法、通过程序计算出每个储油点的安排情况。

B.      一个N*N的方阵,N为奇数,请将1到N2的整数填入这个方阵,使得方阵的每行、每列、对角线各个数字的和相等。请用程序实现填写过程,并显示输出方阵填写后的结果。


题目A的算法想不出来,上网搜索别人的见解,发现理解不了,直到询问隔壁的数学大神,在他给出一条方程后才恍然大悟。这条方程不难列出来,可我却没想到能够列出来。解决了方程问题后,花了很长时间却实现不出来,直到看了一下别人的代码,也试着用数组保存数据才能写出来。而且感觉写得很糟糕,优化得不算好。

题目B的算法老师课堂上讲过,要做的只是实现。一开始因为“数组是从0开始”这个概念而浪费了很多时间,在一些地方记得这个,在另外一些地方却忘了,接着又在数学方面困扰了很久。

总结:1、最为基础的程序设计语言方面不过关,生疏了。

    2、数学逻辑思维弱。

    3、因不专注而浪费大量时间。


接着是关于《构建之法:现代软件工程》的读书笔记及感想。

首先,这是一本关于软件工程的书,不是讲语言,不是讲算法。作者在前言中指出如今这门课的落后,在很多大学生严重都是空洞乏味的,一个学期下来没学到是有用的知识,接着提出自己的见解及指导建议。这本书可作为教科书使用,也的确有学校如此。

虽然这门课要求先修课程:算法、程序设计语言、数据库等,但看了前十来页依然给我不小冲击,其提供的指导思想个人认为是十分有用的。

1、不断写代码,做实验,找需求,修bug。 这门课的理论及实践是紧密联系的。

2、读牛人博客,自己也写。可以每周写一次,先每天把自己零碎的感悟(理论、技术、教训)记下来,每周总结一次。书写是为了更好的思考  为什么你应该(从现在开始)写博客

3、两人项目:两个人合作完成一个比较难的作业,锻炼交流合作能力。练习软件工程中的“结对编程”、接口设计、代码复审、简单的界面设计,并让学生有机会学到不同的编程语言、不同的框架设计、不同的变现层的实现。 虽然这里很多词都看不懂,但是在程序设计语言学到一定程度后(我的设想是每天学一个小时甚至更多,先试着做简单的个人项目)可能在数周后开始两人项目,为以后的团队合作做准备。

4、美国加州大学伯克利分校的两位教授在教材中总结了美国一流软件企业对软件工程教学的要求,优先级最高的几项一次是:

a. How to enhance sparsely-documented legacy code(怎样改进缺少文档的老代码) 也许在GitHub上能找到不少好的源代码

b. Making testing a first-class citizen(测试与开发并重) 何为测试?这说的是那种什么快捷编程,边开发边接受用户反馈?还是指测试程序有没有错误?

c. Working with non-technical customers(怎么跟不懂技术的客户交流) 以后开发出程序后可以向非相关专业的朋友索求反馈

d. Working in teams(在团队内有效率地工作) 我很庆幸附近就有个靠谱的队友

你可能感兴趣的:(大一下学期理想规划)