写在前面

        我是一名专科学院软件开发专业的大二学生,在学习软件开发的过程中,发现程序开发其实不单单是对编程语言/开发工具的学习,数据结构和算法才是重中之重,它不仅是在面试时占了极大的比重,在程序开发中,也起着最基础的作用,所以我最近在理清思路,将学习的重心转移到学习数据结构和算法上来。
        学识尚浅,今天在这里聊聊我对程序开发的认识和一些想法,欢迎大家为我指出不足之处,共同进步!


程序开发——思维导图

[程序开发思维]个人对程序开发的认识和思想
       我将程序开发大致分为基础工具管理三部分,我认为这三者是不可分割的,甚至在工作流程中会形成一个闭环,推动着程序开发。
       先想象一下,“程序开发”——“目的地”“基础”——“怎么去开车/开哪一条路”“工具”——“车”


基础——程序开发中的重中之重

       数据结构——思路——开哪一条路

           数据结构在概念上和内容上都是一个非常难以理解的方面,所以我在这里将数据结构比喻成思路,那何又为思路呢?
           思路,故名思意,思考的道路或者方向。
           在程序开发中,我们通常会思考如何去实现某一个功能,如果将算法比喻“怎么去开车”,那么数据结构就是去选择“开哪一条路”。
           总结——“通过使用什么数据结构,能够来为实现这个功能确定一个方向?”

       算法——实现的方法——怎么去开车

           算法有的人都将它理解为数学,解决算法就是解决数学题,学好数学就可以学好算法。
           我认为算法,是实现一个功能或解决一个问题的方法,也就是“怎么去开车”。
           而为了到达目的地,不仅需要要能够开车,还需要知道开哪一条路,所以算法和数据结构应是一种相互依赖的关系。
           算法的学习和数据结构的学习是离不开的,在学习数据结构时,也可以了解和学习使用该数据结构时,一般使用了拿一些算法,需要哪一些算法,也就是“开车的路上会转过几个弯,会出现哪些问题,要怎么解决?
           一般的逻辑是先确定了开哪一条路再发车,所以总结——“算法是通过数据结构进而实现功能的基础之一”。


工具——实现工具——车

我将工具分为了三大类别:

  1. 编程语言
  2. 开发环境
  3. 开发工具/框架

                这三我就具体说明了,我要讲的只有一句话,也是我个人非常认同的一个观点——“编程重要的是思想和原理,不是语言,语言只是工具。


管理——学习的动力

管理,首先要知道为什么需要管理如何去管理,在这里我将管理的要点分为了三个方面:

  1. 性能调优
                    性能调优是“学习的动力”这一观点中最突出、最明显的一个方面。一个功能的实现不代表这个功能是完美的,俗话说条条大路通罗马,到达“目的的”的路也有很多条,也就是说实现这一功能的算法,往往的多样的、复杂的。
                    如何去找到比这条路更快,更稳的路,就是性能调优的过程,优化原先的算法,采用更好的算法或数据模型,使得程序的运行效率、资源消耗越少,这便是性能调优,也是性能调优的作用和需要性能调优的原因。
  2. 文件管理
                    在开发程序时,文件的位置、大小、分类等,都是有着规范性的。一个大型项目的开发人员肯定不止一个人,这时就需要通过规范这些文件管理的方法,来保证人员分配和工作的有序进行。优秀的文件管理规范不仅有利于源码排查,而且在维护的时候也起到了指明排查方向的作用,实现了点对面,面对点的管理方式。
                    就像在图书馆,成堆的书籍需要人们通过规范的分类和摆放,才能保证后期在管理图书时的效率。一个分类明显,整理整洁的书架,往往是比一个没有分类,杂乱无章的书架找书来得简单。
  3. 维护管理
                    维护管理不仅贯穿了整个程序开发的过程,在程序开发后,也起着相当重要的作用。诸如数据库管理,运行日志管理、程序/功能更新、功能策划等我认为都属于维护管理的范畴。
                    维护管理在整个程序中起着承上启下的作用。
                    “承上启下”指的是在程序运行过程中,通过维护管理,可以发现程序的不足或者缺点,或者发现程序还可以添加其他功能项,使程序拥有更好的内容,不断完善,实现富优化。

为什么说三者是一个闭环的过程?

         “三者是不可分割的,甚至在工作流程中会形成一个闭环,推动着程序开发。”
         这是我在文章开始不久便提到的一个观点。读到这里的人不难发现,管理其实就是作为一个闭环的起点之一,总体也有着承上启下的作用的。
         1. 当“管理”开始时,便会回到算法和数据结构的“基础”一环,来考虑如何优化数据结构和算法,或者思考用什么数据结构和算法来增添新的功能
         2. 再而便来到“工具”一环,考虑工具的选择、采用的框架、环境的搭建和使用等等
         3. 再回到“管理”一环,周而复始,从而推动了程序的完善,也就是推动了程序开发!


写在最后

第一次写博客,感觉自己的表达逻辑能力还是不够,任何有疑问的地方,或者有想讨论的问题,欢迎下方评论!
文章中有不足之处或者表达错误的地方,也请各位指出!
武汉加油!中国加油!

相关文章: