可能是受我的影响吧,我的一些同学想学编程,他们都问我当时是怎么样学编程的,所以决定把我学编程这三年的经历和大家分享一下。
小学我家里没电脑,也非常羡慕家里有电脑的孩纸,当时唯一能接触电脑的机会就是在寒假和暑假时到我亲戚的办公室去耍一下。当时看到的电脑是一个很神奇的东西,可以上网,打字,看图,听歌,也很想知道这是怎么做到的,当时听说程序是一种很酷的东西,大概是从电视中看到的。
图是Google来的,发现第一行打错了hello,哈哈。
后来到了初一,听说学校有一个信息技术奥赛班(NOIP比赛的),教编程的,进去要考试,当时一点也不懂程序,凭着自己的一点奥数知识希里糊涂地考进去了,开始了我的编程学习生涯。
这个班教的是Pascal语言,记得我写的第一个程序是这样的
class="code">program hello; begin writeln(‘hello’); end.
当时也以学程序为理由,死缠烂打,终于搞到我的第一台电脑,那是亲戚家淘汰下来的一台TCL K10笔记本,我在这上面开始学编程。
不得不说,Pascal语言挺好理解的,这代码只要懂英语就能看个八九不离十。 后来,跟着老师学习,我懂得了常量变量,运算符,表达试,函数、文件,可以说,我已经基本入门了。
学了一学期,我不甘心只能写那些黑框框的Console Application,于是四处寻找写GUI程序的方法,偶然一次,我在学校电脑室里发现一个叫Visual Basic 6.0的东西,通过简单的鼠标拖拽,可以创建出GUI程序,当时就对VB产生了兴趣,后来干脆不去那个班上Pascal的课了,自己学VB。
还记得当时,我亲戚单位搞什么公务员在线学习考试,但这考试计分机制有漏洞,我便用VB帮她写了个自动填题器(哈哈,干点小坏事),这算是把学的用上了
当时也就觉得VB好玩,没去深究编程里面的东西,也就玩玩UI设计。
在学VB6时,我买了一本书,配了一张光盘,里面不但有VB的视频教程,还送了30个VB.NET的视频教程,当时觉得VB.NET是一个很厉害的东西,发现在VB6里面要写很多代码的东西在VB.NET里面几行代码搞定,其实当时也不知道什么叫.NET,什么是WinForm,只是把VB.NET当VB6来用,不过觉得他比VB6方便多了。
从VB6到VS2010,感觉IDE好使多了,还很漂亮,用起来那个爽。
到了初二上学期,很不幸,我的第一台电脑光荣牺牲,由于怕影响学习,家人没给我下一台电脑,我回到了没电脑的日子,当时很不爽,一到周末,就去书店泡,专看电脑书,听说C语言是一种很强大的语言,就想着学学看,于是,我买了一本《C语言程序设计》。
在学校,下课看,在家,没事就看,有了想法就拿一个本子,一支笔写程序,因为有了之前的编程基础,一学期下来,我基本学会了C语言的语法和使用方法。但从没上机练过
初二寒假,2012年春节,我得到了我的第二台电脑,也可以把我一个学期以来的想法付诸实现了,当时听说.NET和C#是好基友,我想,我这搞VB的也太不专业了,学下C#吧。
凭着我那点C基础,我很快上手了C#。同时,我也开始学习一些面向对象的知识,试着自己写类,在初二第二学期后半,我写了一个多线程下载文件的类,当时学校有6根光纤,我把的下载程序拿到学校测试,开50下载线程,速度达到34MB/s,这算是我写的第一个成功的类库吧。
还是初二的那个寒假,我泡在书店看书,看到一个叫WPF的东西,被他那种灵活的设计方式吸引(同时我也得知我之前用的东西叫WinForm),我决定学WPF,于是,我开始了解XAML,个人觉得XAML是一种偏向编程语言的标记语言吧。
刚开始学WPF时,我也像用WinForm一样去用WPF,放几个控件,加几个Event Handler。后来,我发现,WPF不只有这些,有模版,样式,Data Binding,继续了解,还学会了MVVM设计模式。
学编程就避免不了上网找资料,在一个地方,我总能找到让我满意的答案,那个地方叫博客园。
我是初三上学期开始看博客园的,那是一个高手云集在地方(当然也有像我这样的菜鸟),我从这个地方学到了很多,我看了一学期的博客园,在放假之前,我决定加入博客园这个大家庭。于是,在考完第三次月考的那天晚上,我在博客园开通了自己的博客,发布了我的第一篇文章。
偶然一次机会,在我一篇文章的评论下面,我认识了Allen Lee,认识他以来,我学到了很多,不仅仅是技术,还有为人处世。
不得不说,博客园是个好地方。
回想学习过程,觉得自己跳得太太,忽略了一些基础部分,比如算法,数据结构这些都没有深入学习,一定要找个时间补回来,要想走得远,脚步必须要稳。
回忆到此结束,下面是对想学编程朋友的一些建议
为什么这么说呢?刚接触编程,要搞懂很多概念,而这些概念彼此之间是有关联的,这很容易造成一个“死循环”,举个例子,刚开始学C#时,在讲变量那一节,会说到访问修饰符,有private public protected internal 等等,然而,在这个地方真正要讲到的只有private和public(书上的代码也只用到这两个), 但我见到一些人会在纠结,protected 和internal 是什么,其实现在不必去理会这些。
对于读者,只要搞懂代码里面有的就行了,在心里默念:“这些剩下的我在后面肯定会学会的”,到了后面,有了应用情景,很容易就学会。
对于作者,建议先不要把这些访问修饰符全列出来,protected 可以到讲类的继承时再出现,internal 可以到讲程序集时再出现。
总之一句话,只要你能找到break语句,跳出这个“死循环”,你就入门了。