软件开发的生活是非常精彩的,也许您还觉得有点酷,不过,真正深入学习软件开发的方方面面是非常辛苦的。如果有人告诉你软件开发很简单,可能的情况是他会写一些小程序、他是软件开发培训机构的、他对软件开发一无所知、……

在这里,我要告诉大家的是:虽然软件开发的学习和工作过程很辛苦,但是,只要有正确的态度和方法,就可以少走一些弯路,更多地停留在软件开发精彩的一面。

第一式,该吃就吃,该睡就睡。良好的生活习惯是保证身体健康的重要保证,相信我,软件开发不仅是脑力劳动,更是体力活儿。

第二式,该玩就玩。无论是说走就走的旅行、或者做一些感觉是在浪费时间的事情,这都无所谓,保持愉快的心情、乐观的态度才是最重要的,而灵感往往就是在不经意间突然出现的,有时还会吓我一跳。

第三式,明确目标。这也是我称之为“目标驱动法”的表现之一,也就是定下自己的学习和工作目标,并努力实现。关于这一点,有一个关键的问题就是,你的目标一定要是“小目标”,我们不需要 “虚”、“大”、 “空”的目标,这种目标往往不易或不可能实现,比如:我要做出Windows这样的系统,我要做出XX争霸这样的游戏、……,如果是这样,建议还是洗洗睡吧!我们要定一些力所能及,并且是在不太长的时间内可以实现的目标,比如:学习一门编程语言、做出一款自己和小伙伴们可以使用的小软件、……。

第四式,了解学习软件开发的一般性步骤。软件开发,大家最直接的感觉就是在写代码,是的,学习一种编程语言是软件开发的第一步,就像学习日语后去日本会更好的交流、学习英语后去美国和英国等地方会更好交流一样。当逐渐掌握某种编程语言后,就可以结合开发资源来实现一些软件功能,这样就可以开发一些真正有用的软件了。接下来就是提高阶段,可以根据实际的需要进一步学习相关的开发技术和方法,并从更高、更广的角度来了解软件开发的各个方面。

第五式,了解实现目标所需要的技术和方法。软件都有其开发和运行的特定环境,所以,了解不同平台的开发技术、方法和工具是开始学习软件开发的第一步。这里有几种典型的软件开发方向供大家参考。(1)Windows平台,大家可以学习如何在.NET Framework架构下开发单机应用软件或Web应用(网站类型的应用),此时,可以选择C#或Visual Basic.NET编程语言、.NET Framework类库开发资源、并了解一些基本的设计模式等。(2)Apple软件环境。无论是iOS、macOS等软件生态圈,首选的编程语言还是Objective-C,而Swift还远远达不到代替Objective-C的程度。此外,在iOS和macOS系统下,都有一些常用的开发资源,如Foundation、Sprite Kit等。(3)移动平台的开发。无可争议,iOS和Android双雄是移动平台的霸主,iOS平台的开发已包含在Apple平台的技术线路中,而Android应用的开发,更多地是在使用Java编程语言和大量的Android开发库,现在,大家可以使用Android Studio集成开发环境,这可比早期的Android开发者幸福多了。(4)跨平台的传说。广告中的跨平台是,编写一次代码,在所有(支持)的平台上,我们不妨先相信一下。很多技术都声称是跨平台的,如Java、PHP、MySQL及其衍生版本、Unity、Python等,甚至微软的ASP.NET Core也开始玩起了跨平台;不过,这些跨平台技术玩的效果如何,相信只有玩过的人才知道。(5)系统软件和嵌入式设备开发,包括操作系统、驱动程序、各类智能设备等,玩这类开发时,汇编语言、C、C++等编程语言是必不可少的,同时,开发者必须了解所支持硬件的特性,软、硬结合,是不是很有挑战性!(6)游戏开发,主要的游戏平台包括Windows、XBox、PlayStation、iOS、macOS、Android等,可以使用一些跨平台的工具进行开发工作,也可以使用特定平台的技术,如Windowxs中的DirectX、iOS和macOS中的Sprite Kit等。

第六式,超越写代码阶段。当可以写出一些实用的小软件后,大家可以发现,软件开发并只是写写代码这么简单的。比如,做一个网站时,需要大量美工方面的工作,在个人或小团队项目中,P个图这种事也得自己来做;对于数据驱动的应用(这都大数据时代了,是吧),熟练掌握一、两种数据库的应用也是开发者必不可少的技能。这样的可能还很多,相信大家在实践中会逐步了解到,软件开发者就是N项全能呀!不过,全能冠军可不好当!

第七式,做项目。纸上谈兵容易,但真的将多种软件开发技术和方法融汇贯通并不是一件容易的事。所以,建议大家做一个真正的项目试试手,专注于项目本身,包括业务操作、开发技术和方法,其它的都不是事儿!

第八式,理解软件的本质。如果说系统级软件在设备与设备之间、设备与用户之间搭起了友谊之桥,那么,应用软件就是用户工作的延伸,其最高境界就是用户在不知不觉之间就使用它愉快的完成工作。

第九式,无招胜有招。这是小说里的武学最高境界,但无招的前提是你已经熟练掌握足够多的招数,在对敌时,可以根据对手特点快、准、狠地使用最合适的招数。在软件开发过程中,开发者不应被技术限制了想像力,能够正确理解用户的工作本质,并通过合理的技术、方法和工具实现软件功能,这就是软件开发者的无招胜有招。

第十式,一定要玩的开心。如果不喜欢软件开发,一切都是在浪费时间,所以,在软件开发学习和工作过程中,一定要玩的开心!如果不开心,果断玩点别的,比如读一些书和文章!哈哈!这个主意不错!

软件开发十式,这是我的想法,那么,您是怎么想的呢?

CHY软件小屋原创作品,谢谢!