昨天现学现卖,给组里同事培训了软件开发的基本知识。培训时间比较紧张,而且准备也不够充分,有些地方没讲清楚。再多叨扰一下。写着写着就多了,索性扩大传播范围吧。
1.昨天有提到研发使用的编程语言主要是c++和c#. 后来又补充了matlab.严格来讲,matlab属于开发工具,底层代码还是c语言. 不过matlab中封装了很多函数,而且自带GUI控件。对于做一些涉及矩阵运算,曲线绘制的小工具开发很适用。
2.目前接触到的主要软件开发工具visio studio, 支持很多不同的编程语言,比如C/C++/C#/VB/F#等等。可以完成整个软件开发生命周期,编程,调试(昨天没讲,这应该是码农花费最多时间的),编译,测试等。
所用到的工具是这其中的一个功能模块,添加相应的tfs服务器即可使用。可以管理需求,传递文档。此外,测试的童鞋还会使用到MTM工具编写测试用例。
现在vs的功能愈发强大,可以与GitHub连接,进行编译和发布。
3.c++是大家都熟悉的面向对象编程语言。而大多数人都学过的c语言则是面向过程的。这两者区别是啥呢?
面向对象的编程方式主要构成模块是对象(不是lover),也就是类。可以给类定义属性或者方法。这种编程的过程中不关心最终实现了什么结果,而是关心每一个对象有哪些操作。比如要建造一个房子,进行布局和平面设计的时候就类似面向对象编程。哪里有厨房,那里是客厅,分别是什么装修风格。
而面向过程的编程主要构成模块是算法,通过函数实现算法。关心的是实现某个步骤的每一步和前后顺序。比如设计好房子后,开始建造和装修。打地基,建造,封顶,贴瓷砖,装水电,刷墙,贴瓷砖,进家具等等步骤。
再举一个简单粗暴的例子。把大象装进冰箱需要几步(开门,放大象,关门)就是典型的面向过程。而定义大象(钻进冰箱,呆在原地),冰箱(开门,关门)就是面向对象。
经过以上比较,我们基本可以看出,前端开发童鞋主要是进行面向对象编程,因为不同界面不同控件都有自己的一些特性,响应方式。没有严格的先后顺序。而算法童鞋则主要是面向过程,因为有明确的输入输出和运行顺序。
4.对于初学者和自学者,比较推荐python.主要是因为真的相对简单,非常接近自然语言。很多产品工程师自己上手开发都从python入手。对于数据挖掘,爬取也比较适用。python支持面向对象或面向过程。
但是编程简单对学习者有利,但是带来的不好之处就是人看了好懂,计算机就该挠头了,鸡同鸭讲。所以python运行时需要有解释器先把它翻译成编译语言,然后计算机再继续编译。而c++等则没有此过程。因此,python写代码容易,运行效率低。而c++则相反。
好了,如果你也想学习的话,可以就从身边做起。如果想直接从C++入手,此处应该有硬广,哈哈哈~~~