大道至简读后感

  随着大一学期对c++语言学习的结束,我对程序设计有了更加深入的理解,在读完《大道至简》后,我更是体会到了软件开发的难度。

  书中提到,软件好比一座大山,而开发软件就像是在移山,由于山阻塞了道路所以需要移山,由于有这样的需求所以需要我们开发这样的软件。而在“移山”的这个项目中,有需要通过一个个简单的编程来实现。对一门语言的掌握让我们了解到,好的程序等于算法加结构,对于一个程序首先应该考虑用什么算法去实现,例如最基础的二分,搜索;其次考虑要不要用一些特殊的数据结构,例如vector,栈,队列等等。这样程序就已经定型了,接下来的便是劳力活了。

  我曾经在编程的时候总是苦于想不出来算法而无从下手,有时候对于一道编程题连暴力都不知道怎么去暴力,更何况暴力的方法会让程序运行得很慢。这正如书上所讲“人的精力终归是有极限的,提出新的“方法”,解决的将是影响做事成效的根本问题。”提高效率需要我们更多的去学习算法掌握结构,这样才能成为一个优秀的程序员。而在自己足够强大之后便要考虑团队问题了。团队编程总是不同于个人编程的,而一个团队需要的东西却有很多,这也是我在读完本书后的又一感触。

  总所周知,团队合作在一个企业的作用是至关重要的,团队合作在很大程度上培养了人与人之间的沟通和理解能力,有些人技术相当好,但是却不能很好地与人沟通,然而团队中,只有通过频繁地相互交流,个别人在研发过程中遇到的困难才能最快、最有效地得到解决。这么看来团队开发最重要的就是如何管理好一个团队了?其实不然,在本书中作者便提出了,开发团队不需要管理的观点——既然不是开发者你只需要紧紧跟着开发者便好,你可以发现问题并提出来但是你不能去打扰到他们。管理者的职责便是明确分工而不是参与开发。

  最后我想讲一下开发软件对于客户对于需求分析的重要性。诚然,开发软件不是我们想怎么开发就怎么开发的,我需要分析需求然后再开发软件。那么有了需求就直接开始开发吗?也不对。需求很重要,客户也很重要,了解到这款软件开发出来是面对什么样的人群很重要。而这便意味着我们要学会与客户进行沟通,去调查他们的对于软件的期望的面貌。这就需要我们了解客户的方方面面,了解该客户的公司,经营理念,组织结构以及工作模式等等这些都需要我们去了解。书上总结出来大致分两类,客户在公司层面的外在表现,客户在项目中的明确要求。做到这些我想一个优秀的软件开发便已经成形了,多多磨砺才能真正提高自己的开发能力。

原文地址:https://www.cnblogs.com/125418a/p/11275734.html