您的位置:首页 > 其它

关于自学软件开发的一些思想碰撞

2017-12-03 14:35 274 查看
1、C 语言适合初学者用来理解数据结构和算法等低层次的概念,而不能让初学者理解真实的应用软件,不能对程序开发有一个全局的认识。

2、对于新手来说,学习的过程就是自己给自己挖坑会主动寻找问题,跳的坑越多将来越不容易被坑。像这样自己找到需要学习的东西,而不是让别人给自己列一个清单,类似数据结构、算法、某某库、某某框架。清单式学习,对于初学者有时如同盲人摸象。

3、以上是我的经验,可能并不适合你,请自己斟酌,适合自己的方法才是最好的。记住,不要怕遇到问题,遇到一个解决一个这就是进步。

4、什么是编程:同样对于时代的需求,从从前的科学计算,到现在的各个行业各个角落的各种应用实现,已经不是一个同样的行为范畴了。这个领域的知识是什么样的?从面向对象开始,互联网时代兴起,到现在的移动互联网时代,编程绝大部分的目的是在于创造软件,而创造软件也由于世界上最聪明的人群告诉集中涌入,以及时代的需求压力,已经形成一整套工程学,也就是软件工程了。

现在编程被集中在软件工程的需求中,产生一个结果就是工程化。而工程化就是整个生产体系开始逐步分化以及逐步专业化,从而出现了这个领域中的各种针对性专业,比如前端工程师、测试工程师、算法分析师、.NET软件工程师。

学习编程的重要一点,知道当前开发需求,也就是当前领域的知识是怎么组织的。

有句名言,是布鲁克斯(Frederick P.Brooks)说过,

最好的程序员和最差的产出差n倍。为何?计算机科学基本上是由 数学和机械类学科衍生而来的,最大的特征就是能不能做出来、这个方法(算法或设计)效率有多高。

一个学习的误区与结果。一开始 都设定好要做的目标,然后弄清楚这个范围需要的知识点,然后都从某点开始,全部学透,就能完成了。————这就犯了软件工程一个极端化的错误,在学习上也同样适用,因为每次开发基本上都是一个学习的过程。整个项目本身就是不存的,没人知道开发过程中会发生什么,怎么可能有详细的计划。

怎么解决这个问题呢?敏捷开发(Agile Development),每个项目或多或少都能用到。通俗的几点理解就是:将大计划切分为短周期,并且每个周期后调整计划,使得最近的一个计划可执行并且有效;计划中,将每次的产出进行具体化量化,每个周期都发布(生产出)有效的可用的产品,这个产品是在上一个产品的基础上的改进或者增加;在原有的产出已经难以再升级时,将原来的产品重构(重新设计、重新生产)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: