如何学习软件开发

  • 时间:
  • 浏览:2
  • 来源:成都大学教务系统_安徽工程大学教务系统_哈尔滨理工大学教务处
阅读模式

最近两年,计算机编程已经列入了小学课本,这就说明计算机编程并不是很复杂的东西,只要从最简单的程序开发语言学习开始,按照教程一步一步的练习,人人都能掌握。兴趣是最大的老师,如果要想精通软件开发、程序设计,首先要培养起学习的兴趣。

关于计算机语言学习,笔者的起步算是比较晚的了,高中的时候只接触过计算机一些最基本的东西,大学时才有了C/C++面向对象程序设计的课程。十多年过去,目前Python已经是应用开发领域最热的计算机程序开发语言,web、网络爬虫、人工智能、应用程序开发Python无所不能。Python语法简单也很适合作为初学者的入门首选, 以前初学编程的都从vb开始,vb虽然也简单,而且是图形化界面设计,虽然容易上手,但是以后的用处不大。

因为Python是开源的,随便搜索一下就有很多资源,首先按照教程内容安装集成开发环境,目前windows 7以上版本才可以安装,便可以开始编程学习了,首先要熟记基本的语法和函数的使用,更要理解。

熟练掌握了一门计算机语言之后,可以看一下算法与数据结构的方面的内容,程序就是算法和数据结构的总和。我们在对一件事情进行编程处理的时候,首先是抽象出一件事情的所具有的数据结构,定义变量,数据结构类型。然后就是思考用哪一种算法实现会有更高的效率。

掌握基本的语法、数据类型、数据结构之后,就可以进一步学习Python已有的一些程序功能包的使用,比如关于网络编程、图形界面、web爬虫、数据分析等方面程序包的使用。

掌握了计算机编程之后,以后在工作遇到的一些问题,就可以想一想是不是可以编一段程序来解决问题,这样的话学习的动力更强,带着解决问题的目的去学习,是不会感觉到枯燥的。现实生活中的一些事情,有些简单重复的工作是非常容易通过编程解决的,可以大大提高工作的效率。

除了Python以外,C/C++,JAVA也是主流的计算机程序设计语言,C/C++在界面设计方面的比较复杂,特别是visual studio 的windows界面库使用起来相当复杂,推荐学习qtcreator工具进行C/C++方面的界面开发,Java也是面向对象设计语言,跟C++类似,不过Java本身有几个版本针对不同的应用环境。

不要担心驾驭不了那些复杂的代码。有个很好的学习网站,github,上面有很多开放源代码的软件项目,如果自己要做的项目恰好跟上面某个项目相似,那就简单了,frok到自己账号下面,或者直接下载到本机上,打开项目直接添加修改,不用自己再造轮子了,软件开发发展到目前这个阶段,很多功能模块都由聪明智慧的前辈们做好了,拿来主义就行。

所以,在编程学习中,那些通用的标准库就是由伟大的前辈们贡献出来的常用的算法和数据结构、函数的集合,深入了解掌握他们,才会应用自如。

很早以前的软件工程师和程序员开发程序是很辛苦的,需要很深的硬件知识,需要使用机器码、汇编语言编写,深奥难懂,代码可读性很差,随着高级计算机程序设计语言的出现,编程已经是相当轻松和有趣的事情,只需要大概知道计算机工作原理就行,现在编写程序就像是搭积木一样需要什么功能模块一块一块的找出来使他们正常运行就行了。

笔者原本对软件开发的兴趣不大,现在也没有兴趣。笔者学习程序设计和软件开发是迫不得已。因为笔者十多年的交易生涯出现了发展瓶颈,笔者认为目前火热的人工智能可以解决笔者面临的问题,于是重新捡起十多年只是接触过的程序设计课程,开始了笔者的软件开发之旅。

笔者是研究交易的,所以开发的软件属于行业应用,具体分属金融交易工具类别吧。行业开发需要阅读相关方面提供的api说明和开发文档,就是应用程序开发接口,笔者这个项目就是对交易平台提供的交易接口编程。目前已经实现了完整的程序化交易模型,正在逐步深入人工智能方面。以下是笔者开发的软件的界面截图

该程序化自动交易软件通过实现上期技术的综合交易平台接口,采用C++面向对象程序设计技术,利用QT做为界面设计工具,这里不得不介绍一下qt,因为这个工具太好使了,如果是采用Windows的界面库,不知道要复杂好多倍,Windows的 mfc库我估计是世界上最难学的图形界面库了,因为其基于Windows的句柄消息机制,调用起来相当麻烦,笔者也就没有深入学习了。有qt这种图形界面化的简单易用的工具,干嘛要花时间去啃Windows这块硬骨头。

在确定要开发一个软件项目之前,首先确定开发的目标。然后再分析数据结构,确定采用哪些算法,使用什么工具库。笔者的这个项目,就是要开发一款用于计算机程序化自动交易的无人值守的交易系统,对于交易来说,系统设计的目标当然是追求稳定丰厚的交易利润,做到低回撤,高胜率,高盈亏比,经过几个月的测试运行,笔者感到还是很欣慰的,基本上达到了笔者当初的设计目标,后续的话会继续优化测试,是软件更智能化。

在软件开发的学习上,我还是强调学以致用,需要用什么就学什么,这样才会避免枯燥和无聊。

猜你喜欢