第一阶段: 纯学习 和 入门
初学程序的大学,通常是在纸上写程序,然后去机房上机的时候,输入,运行。(调试基本不会。)
因为上机,机会是难得的,时间是宝贵的。那时候的策略:
1. 在纸上能写出正确到甚至完美的程序。
2. 尽快需要学会盲打,甚至买了一个键盘卡片来练手感,甚至有同学找来了小霸王学习机键盘。
总结,那时候应该是打下了良好的面向过程的编程基础。
今天看来,教材上的例子代码异常丑陋、风格垃圾、思路混乱,当时却视其为经典。不知道如今有无改善。
那时候书(教材和图书馆的)是唯一的学习入口。哪有机会可以时刻用PC?
第二阶段:进入状态
参加工作后,那时候公司网络时有限制,代码写了不少,一般程序都是现写现调,甚至于懒散到让编译器来检查输入的错误。
已经熟悉甚至依赖调试,不动脑子,凭本能去写逻辑和流程。主要的三大学习和日常借鉴入口:
开发工具的参考手册(MSDN)
codeProject/vckbase等少数的几个网站
公司前辈的遗留源码
这种状况,一直持续到现在。
那时候基本策略: 快速找到并熟悉某个API某个MFC类,从MSDN
快速找到codeproject某个功能的例子代码,并实现。扩展前辈的功能等等。
总结: 大部分代码都自己写,从常用的基础功能库,到业务逻辑,到整体框架。
累的半死,拖了很长的时间。尤其是在费劲的做了2个完全一手打理的产品之后。
却有一种程序员常有的那种虚假的造物主感觉。
第三阶段: 迷茫
在几个产品,开发严重落后于进度,质量严重低于预期,并出现困局。
并在局部功能的开发能力和整体架构方面遇到个人发展到瓶颈。
时常能找到的安慰借口是 个人产能有限,并且人月是个神话。
再牛的小聪明和土办法,在科学家的论文面前,不堪一击!
明明只是一种坐井观天!!!闭门造车,出门肯定是车毁人亡。
网络时代,最大的特点就是开放。其实我们这个时代已经不一样了,
如今实现功能,甚至于一个solution,只要有足够的耐心,总能找到开源的东西。
于是我们需要的仅仅是这3个能力:
1. 英语读写能力,把需求写成几个关键词去搜索,能把下载的源码的接口文档看懂,能把某个论文的算法思路搞清楚
2.搜索能力,目标,开源源码、论文、算法描述
3.整合能力,目前几乎大部分开源源码都是linux下,整合到工程中,还是需要以前的编程积累。
于是,你知道怎么写 或者说 怎么用 程序了吗?
原文转自:http://blog.csdn.net/hellowithsmile/article/details/9321987