zoukankan      html  css  js  c++  java
  • 构建之法阅读笔记01

    第一章:概论

      身为一个已经学了一年半计算机的软件工程专业的学生,从大一的C++课开始,老师就教导我们,程序=数据结构+算法。这个名言被一遍一遍地提到,以至于让我们产生一种错觉,好像我们只要搞懂数据结构和算法,所有程序就都不在话下了。但是,当我们看到我们前辈出现的一些疑问时,却让我们起了疑心:数据结构中常用的指针,在Java和其他的一些语言中似乎并没有;所有算法早就被你的前辈们写好了,你所要做的就是维护和调用,等等。

      这都是我们就业后所要面临的问题,因此,软件工程概论这门课就显得尤为重要了,它可以帮助我们了解软件工程整体结构,了解其中的各个流程,使我们能够了解到我们今后将会遇到的问题,提前让我们熟悉这个行业,意识到自身所学真正的作用。

      软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。它包含多个领域,和多个学科相关。软件又有许多特性:复杂性、不可见性、易变性、服从性、非连续性。之后又给我们讲解了软件工程和计算机科学的不同之处。一个是偏理论,一个偏实践,两者并非水火不容,而是互相促进,共同发展的。而软件工程最主要的目标便是让我们学着去创造足够好的软件——用户满意度高,可靠性好,流程质量高,可维护性好。如果能知道了解这些,我们算是大体上认识了软件工程。

    第二章:个人技术和流程

      为了更好地开发软件,我们需要了解PSP(个人软件开发流程)。首先就是单元测试,软件是有多人合作完成的,我们写的模块不是仅仅为我们所用的,而是需要被其他人调用的。所以,在此过程中便容易会出现一些误解,进而产生一些错误。这时,为了保证模块的质量,单元测试就显得极为重要了。单元测试存在一系列标准:能测试一些最基本的功能和参数,测试应该交给熟悉了解此程序的人来完成,速度快,产生可重复一致的结果,独立,能覆盖所有的代码路径,可以进行保存和维护。还要记录自己的开发流程,以用来为以后提供经验和借鉴,并可以审视自己是否有所进步。

    第三章:软件工程师的成长

      软件开发流程不光是仅仅指团队整体,还包括个人开发。因为尽管软件是由团体整体完成的,但是软体总归是由个人组成,在团队的大流程中,其分成细节就是团队中每一个成员做开发、测试、用户界面设计、管理、交流等。把个人的工作有序组织起来就是团队的流程。

      软件工程师有高级初级之分,而初级软件工程师不是一时半会儿就可以成长起来的,需要经过多方面的训练:相关知识的积累、提升技术技能、对开发平台的掌握、经验、对用用的软件设计思想和软件工程思想的理解、提升职业技能(自我管理、表达和交流、与人合作的能力、执行力)、还有实际成果。之后就需要衡量自身开发软件的工作量和质量,主要通过①代码行数②时间③质量④是否按时交付 这四个方面来评价。软件工程师的职业发展有许多方面,例如计算机的考级,职业成长级别,可以胜任更高异能的职位,影响力扩大,同时还需要自我的评估,

    个人感受

      原来只是普普通通的来把每次作业仅仅当做写作业,只是为了写而写,为了完成这项任务而已。在读了这几章之后,我认识到了写代码,并不仅仅是写代码这么简单,如果这样下去,我每一次的作业仅仅是流于形式,不会有一点点的收获,有的只是说,哦,这次作业好难啊,别的也就没什么了。我们所要做的,在这个过程中还需要做一些别的东西,总结每一次编程,看看自己在哪些地方会出现错误,在哪些地方不够用心,在哪些地方还有欠缺,多做记录,记录下每次编程中遇到的各种亮点和错误,还可以从网上查找更多的算法,来开阔自己的眼界,意识到还能有什么更好的方法来优化自己的程序。通过这一点点的积累,我们的经验才会增加,我们才会有一些收获,得到一些进步。

  • 相关阅读:
    deeplearning.ai 卷积神经网络 Week 1 卷积神经网络
    deeplearning.ai 构建机器学习项目 Week 2 机器学习策略 II
    deeplearning.ai 构建机器学习项目 Week 1 机器学习策略 I
    deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架
    deeplearning.ai 改善深层神经网络 week2 优化算法
    deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面
    cs231n spring 2017 lecture8 Deep Learning Networks
    cs231n spring 2017 lecture7 Training Neural Networks II
    cs231n spring 2017 lecture6 Training Neural Networks I
    cs231n spring 2017 Python/Numpy基础
  • 原文地址:https://www.cnblogs.com/Daddy/p/5330895.html
Copyright © 2011-2022 走看看