从学习编程到编写软件
2015-04-22
我的编程基础:大一暑假修过几星期的C;大三修C++。目前达成:写了一些App。
我可能是所有回答者中最low最小白的一个了。
上过的几门编程课期末都喜欢用大作业来考核,就是学生自己提交项目,写文档,在最后一周找老师答辩,拿分。
学C的时候,大家写的是命令行版的围棋打谱程序,24点求解器。学C++的时候,班上有同学做了选课系统,还有不少同学另外学了MFC或者OpenGL,做了贪吃蛇啊学习记录啊网络学堂啊等带界面的东西。
如果你觉得“带界面的贪吃蛇”是一个项目/软件的话,那这一步还是比较好完成的:
- 确定好项目需求后,查查是否需要自己目前还没学过的内容,如果有,就学,学好之后想好该怎么实现,之后往上面砌砖,检查即可。就像完成一连串的课后作业一样。
不得不说,以现在的网络发达程度之高,以及我们目前遇到的问题之低级,真的很难遇到解决不了的bug了。不过说实话,在做完上述大作业过程中所费的心力,真的是比刷完一本书的习题还要多。
呐,写完了这个,就会有种”啊其实我好像能做很多事情“的奇怪的成就感呢。
然后我就扔掉程序书愉快地玩别的去了。
后来有一天,我在做平板支撑的时候,非常非常希望有一个一键倒计时,字巨大,且结束后能叮一声的秒表。但是应用商店里没有人满足我这个傻爆了的需求。
于是我就重新安了个VS,申请了个开发者账号,写了个秒表,然后就自己用了。
好吧,详细过程其实是这样的:
-
查了查做界面需要什么语言;
-
然后学了怎么做文本块等我的秒表中用得到的东西,把界面做好了;
-
然后想想该怎么实现”摁了下去就开始变数字“的效果,查了查有哪些现成的计时的类/函数可用,又查了查怎么播放“叮”,就写完了。
从开始写,到写完,大概用了一个晚上。然后把这个事情告诉了室友及几个同学,就没了。
结果过了一星期竟然有好多不认识的人下载了这个App!惊呆了。
当有了一拨人告诉你”这个地方有问题“的时候,真的会产生出一种奇怪的责任感,督促着自己去改掉程序中不合理的地方,让你每天都会惦记着,要把代码变得比昨天更好一些。
再往后,越写,就越知道自己是多么欠缺,于是就开始有针对性地学习和训练自己。比如要学习如何调用传感器,就写了个小小的罗盘app;比如要学习json,就写了个色卡展示app……
我觉得目前这一步,和我“只会C++语法”的阶段,其实差不太远。真要说差些什么,都是些具体实现细节上的小trick而已:
-
在刚刚学完书本的时候,我遇到bug往往会去扒书;现在,我遇到bug会先看看报错信息想一想,想不出来就stackoverflow;
-
在刚刚学完书本的时候,我想用到新的函数/类的时候往往还是去扒书,必须看懂了好几页的讲解和例子之后才敢动手;现在,我会翻MSDN,对着描述试出来;
-
在刚刚学完书本的时候,我在想新做一件事情的时候会查需要学习哪些基础知识,然后借书把所有东西学到差不多为止;现在,我会在自己能力范围内先做一做,然后再去刷书,直到实现为止;
-
在刚刚学完书本的时候,我常常因为无意间改崩了代码并且还改不回去而心情沮丧;现在,我知道了用github来拯救生命,以及应对用户“加功能”的要求;
-
在刚刚学完书本的时候,我觉得学完了书就可以自豪地在简历上加一句“掌握C++”了;现在,我觉得其实掌握语法其实并不那么值得自豪,但是很重要:只掌握语法我好像什么都做不了,但掌握了语法,就是掌握了通往了这片天地的钥匙,它允许你在其中走路、奔跑、打滚,尝试着做非常酷的事情。
嘛,既然你已经进入了这片天地,不妨从走路开始,一点点地尝试着做更棒的事吧~