时光飞逝,岁月如梭,学习完《linux系统编程》和《linux网络编程》,再加上“即时通讯系统的项目完成”,到现在为止,在上嵌度过了70天有余了。
和学习《linux基础编程》、《C语言高级编程》不一样,学习《linux系统编程》更加注重自己使用系统提供的帮助工具:“man”帮助自己去学习函数,而不是每个函数都去学习并且基础,《linux系统编程》只是通过这样一个课程,介绍一部分常用/很有用的函数,并且教会我们怎么去学习那些系统中存在的函数,使得我们在以后的学习中沿用这种学习方法。
而学习《linux网路编程》这更加的直接,就是教会你怎么去连接网络,知道怎么去连接网络,网络通讯中的网络构成和网络实现,使得我们对怎么通过网络连接到目的地的过程有一定的了解。
在进行完《linux系统编程》和《linux网络编程》之后,是实现“即时通讯系统”,在这次的项目实现过程中,暴露了许多的问题:
先入为主的思想吧,之前受到1407班做项目的情况影响,以为这次做这个项目会很难,而且会很难去做好,所以在学习完网络套接字的知识点之后,就想去开始做这个项目,而在课堂上老师展示了如何去通过tcp网络协议后的聊天实现之后,自己就迫不及待地去开始编写这个项目了。从这时候起,自己就已经走上了一条歪路,注定这次项目自己不能做到很好。
由于害怕项目不能好好完成,在老师教学中展示了如何通过tcp进行两个客户端直接的通讯之后,就把上课时候的程序直接沿用,不去思考是否有必要。所以造成项目一开始就造成了许多的重复工作。然后在后续的软件实现中,尽管遇到了这样的一个问题:按照现有思路很难进行之后的工作开展。这个问题遇见了,只想着怎么去克服这样的问题,而不是思考之前的框架是否合理。所以当这样的问题一个个地重复出现时,自己才去思考,那时候意识到开始走的路不对,但是时间已经来不及进行大范围的修改程序了。
最后的结果是:基本功能自己实现了,但是软件的架构很不合理,非常的累赘,功能拓展会非常的困难。总的来说是一个失败的项目。
回看这个项目,自己得到的感悟是:
一、 认清思路很重要,思路不清晰而盲目地作业,很可能就把自己绕进去,越陷越深了;
二、 当思路不清晰时,应该去想一想是不是这个思路,不妨抱着怀疑的态度去审视自己之前的工作,如果发现错误,应该尽早纠正过来;
三、 系统编程中学习到的函数知道在拿了会有作用,但是实际应用中怎么去安排其实现时的布局也很重要,所以在学习某个函数/知识点之后,还要学习怎么去使用该知识点和怎么去编排这个知识点。
在这个项目中还是有可取的地方,值得自己坚持的:就是自己去整合之前的知识,把部分能重用的功能提取出来整合成一个库,方便自己以后的编程。
多思考,善于思考。希望自己在以后的学习/工作中能提高思考的能力,多多思考,直到自己善于思考。
和学习《linux基础编程》、《C语言高级编程》不一样,学习《linux系统编程》更加注重自己使用系统提供的帮助工具:“man”帮助自己去学习函数,而不是每个函数都去学习并且基础,《linux系统编程》只是通过这样一个课程,介绍一部分常用/很有用的函数,并且教会我们怎么去学习那些系统中存在的函数,使得我们在以后的学习中沿用这种学习方法。
而学习《linux网路编程》这更加的直接,就是教会你怎么去连接网络,知道怎么去连接网络,网络通讯中的网络构成和网络实现,使得我们对怎么通过网络连接到目的地的过程有一定的了解。
在进行完《linux系统编程》和《linux网络编程》之后,是实现“即时通讯系统”,在这次的项目实现过程中,暴露了许多的问题:
先入为主的思想吧,之前受到1407班做项目的情况影响,以为这次做这个项目会很难,而且会很难去做好,所以在学习完网络套接字的知识点之后,就想去开始做这个项目,而在课堂上老师展示了如何去通过tcp网络协议后的聊天实现之后,自己就迫不及待地去开始编写这个项目了。从这时候起,自己就已经走上了一条歪路,注定这次项目自己不能做到很好。
由于害怕项目不能好好完成,在老师教学中展示了如何通过tcp进行两个客户端直接的通讯之后,就把上课时候的程序直接沿用,不去思考是否有必要。所以造成项目一开始就造成了许多的重复工作。然后在后续的软件实现中,尽管遇到了这样的一个问题:按照现有思路很难进行之后的工作开展。这个问题遇见了,只想着怎么去克服这样的问题,而不是思考之前的框架是否合理。所以当这样的问题一个个地重复出现时,自己才去思考,那时候意识到开始走的路不对,但是时间已经来不及进行大范围的修改程序了。
最后的结果是:基本功能自己实现了,但是软件的架构很不合理,非常的累赘,功能拓展会非常的困难。总的来说是一个失败的项目。
回看这个项目,自己得到的感悟是:
一、 认清思路很重要,思路不清晰而盲目地作业,很可能就把自己绕进去,越陷越深了;
二、 当思路不清晰时,应该去想一想是不是这个思路,不妨抱着怀疑的态度去审视自己之前的工作,如果发现错误,应该尽早纠正过来;
三、 系统编程中学习到的函数知道在拿了会有作用,但是实际应用中怎么去安排其实现时的布局也很重要,所以在学习某个函数/知识点之后,还要学习怎么去使用该知识点和怎么去编排这个知识点。
在这个项目中还是有可取的地方,值得自己坚持的:就是自己去整合之前的知识,把部分能重用的功能提取出来整合成一个库,方便自己以后的编程。
多思考,善于思考。希望自己在以后的学习/工作中能提高思考的能力,多多思考,直到自己善于思考。