大家首次接触编程的时机我想很多人全将在那些Q群啊之类的地方持续的问,怎么学习编程,要看些那些书。甚至在百度,谷歌里搜索如何学习编程。
这篇文章,我会从我自己学习编程的角度去描述,如何学习,也许不是最好的学习方法,但是我想对于一部分朋友总会有帮助的,由于方法是源自你个人。我在这里说一下我的格言:别去想别人怎么做,首先应当想自己怎么做。别去想别人怎么帮助你。首先想自己帮助自己。
想想我自己学习编程也有好多年啦。初三开始小打小闹的用C语言写个无聊的printf()到用HTML写几个个人网站。尽管没啥技术含量然而均为自己的劳动,那时候真的很激动,当下回想起来,其实那时候很幼稚。然而也造就了我的意向吧!好了闲话就少说了,我们入正题。
在学习以前,请允许自己先问下自己:我为何要解决如此的事。对于编程,我会先问一下,你为何要学习编程?你会怎么回答?
A:兴趣;
B:读书需要;
C:传闻是高薪职业;
D:容易就业;
E:被迫的;
F:无聊学学;
这个你会怎么选择;什么样的目的,得到什么样的结果。假使你选择(A)我会开心,兴趣就是活力,就算没有人教,你也会鼓足勇气去学习,就我个人来看,我是那种屁股坐不稳的人,你叫我坐在那里什么都不做半个小时,我会全身都不舒服的。但是一说到计算机,编程我可以一坐就是7,8个小时自己还没感觉。兴趣第一,很好,你以这个为目的我相信你一定能学好。相信你也有自己的一套学习方式。
假使你选择的是B:那么你也有适当的成功概率,首先你若是一个会读书的人,可以说读书就是你的意向,那么你也可以学好。诚然假使导致随潮流大家都读所以我也要读,那么你只能学不好了。
假使你选择的是C:那么你依旧早点放弃吧,那些拥有高薪的均为十分牛的人,其实的广大程序员依旧挣扎在生活的水准线上。混饭吃而已,所以假使你抱着高薪去学习编程,你一定肯痛苦。这类也是最能有成就的一类,编程是技术需要的是一份执着,但是你的执着导致金钱。技术当下并没有等于金钱……
假使你选择的是D:我依旧劝你早点放弃,当下的就业也不乐观啊,失业大军里计算机就占据很大的一部分比重,你随时都或许是其中的一分子。
假使你选择的是E:很好,你也有机会学好,前提是逼你的人能一直强逼你下去,让你进步,一句非常经典的话:“人均为被迫出来的……”。你出生的时机的确是被迫出来的,被你妈妈逼出来,呵呵!
假使你选择的是F:也不错,起码你无聊的时机想到的居然是编程,证明编程还能给你导致乐趣。
既然你已经知道为何学习编程,那么我们要解决的就是怎么去学习了。当下的编程语言很多,上百个语言,但是无论什么语言,全将有共同性的。所以你要学习编程那就要先学习编程的思想,这个编程的思想你也只能看一下而已。了解一下计算机如何去读这些编程语言这个很重要。不了解过个你学习任何编程语言都很难做到灵活运用。
你明白了计算机是如何读编程语言是的这个时候你就可以开始选择你学习的语言了。起码这些编程语言均为我能看懂的,可以说是自己学过的。也会解析一下学习这些语言的一部分特点。
A: c#.NET
B: Java
C:C/C++
D: PHP
E: JavaScript
F: lua
我只列出了五种,其实仍有许多的语言,有兴趣可以自己去找下这些语言的特色。其实我了出的这些都有一个特色。均为跟C语言有适当的类似的。
A: C#这个语言是微软推出的,当前多部分应用均为应用在WIN平台上,尽管LINUX也能用,但支持还不是太好。编程风格上我认为是最优美。起码看上去很舒适,强大的智能感知。编程的学习难度分级是:初学偏易,一般编程中等,高级编程难。梯度不算陡峭。尽管是面向对象,但是当下多部分的人都很用到面向对象起码我在国内反编译很多的应用系统的时机很多都没有用到编程思想的,虽多就是把类用来达到脚本编程闭包功能而已。真正运用到面向对象的继承多态的并没有多。诚然也有很多是运用了面向对象思想的,所以我认为初学C#的时机完全可以放弃对象的继承,多态这类比较复杂的东西。专心学习他的语法糖,仍有封装好的美国石油协会,其实C#这个语言已经有个很完善的美国石油协会差不多的应用都可以直接运用美国石油协会来达到,而且从算法构造上也不算复杂。再加之IDE的智能感知,新手只需要了解各个命名空间的作用就可以了,智能感知会帮助我们完成美国石油协会的调用(起码你要知道那些方法在那个空间,怎么用)。所以初学我把它定义在上手“易”。当下的学习其实并不是一定要从记事本开始。学会让用IDE学习其实也是一项技能。编程很重要的一块。就是你动了多少手,你就收获了多少,无论你看了多少别人的代码,假使你不自己动手去写一下,你永远没办法感承受内涵,以前我有部分同学,他们跟我说,当下网上大把代码,那里需要自己敲得那么辛苦干嘛上网COPY一下就什么都有了,傻瓜才自己手写。好吧我承认我傻瓜。但是自少我当下的水准我敢说,,你只需要给我2样东西我一样能写出你上网找的那些代码。一样是VS,另一样是帮助文档。说起这个事又令我想起近期公司聘用求职的一部分趣事。近期公司面试了靠近80个人吧,由于我们公司的上机考试是不允许上网的。呵呵!你们可以想象一下,不能上网后只有30个能勉强敲的出代码的。能作出题目的更是少得可怜。忽然我就想,这些人见底有没基础的,一个简单的登录功能和发布文件功能不能上网就不会写,我真是狂汗……一部分号称三年五年工作经验的,居然还写不出一个简单的交叉表查询。(其实就10句代码……)。所以啊过分依靠网络怎么或许有自己的技术积攒呢,这些人在我眼里三年五年也成不了构架师……或许十年也去不足构架师的水准。
B:JAVA 跟C#相似,传闻微软推出C#也是为了对抗JAVA而搞出来的。这两种语言有很多类似的地方什么是命名的方式上都有很多类似的地方,JAVA也是从C语言里发展起来的。然而我认为在学习曲线上,初学要比C#难,中国人广泛英语不太好。而且在IDE上微软的VS要比JAVA的各种编辑器要优胜,首要是在智能感知上,仍有一部分辅助上。或许很多JAVA的铁杆FANS会给我丢西瓜,丢鸡蛋了。但我敢说,我说的是事实,JAVA位置一个环境都很辛苦,起码我学习的时机是如此。免费啊,JAVA很多东西均为免费的,微软要收费的,收费肯定好了……我会偷偷的笑……你丫就不用盗版?有了光荣的盗版。收费困难根本就不是困难,再说从学习的角度……盗版这些东西根本就无关痛痒的……反而更容易召集热度……
C: C语言可以说是非常牛逼的语言,长期位居第一。但是需要投入的精力也不少啊,智能感知一直进步不大,或许是由于万恶的宏定义呵呵(这个万恶可不是我说的。)诚然学习C语言假使你不懂运用宏定义那么你肯定没学过C语言,C语言的宏定义尽管一直在C语言的书本上很少描述但是事实应用却是不可缺少的,我看过 IDSOFT的DOOM的源代码里简直就是神一般。但是看上去也真是辛苦。题外话,其实上面很多语言均为依据C语言衍生出来的,什么很多特性均为参照了C 语言。用很玄幻的说话。C语言是远古时代遗留的强大魔法。既然是远古学习曲线自然就陡峭得可以,我个人感觉我的C语言水平其实都导致菜鸟而已。C++一样是菜鸟。C++和C其实我认为是2个语言根本不能混为一谈的,但是很多聘用求职之的都把C/C++归为一类,所以我也把它归为一类,很多人想问学C++是不是要先学C.而且C++的分支多得吓人。内涵也丰富得吓人……C语言个人技术化,我个人认为C/C++起码要4年才算出师,JAVA是2年,C#均为2 年。而且仍需要一连串的计算机基础,算法基础等一部分东西。而JAVA和C#都把这些东西封装了成标准的美国石油协会了,我们只需要运用。但是C/C++这些东西都没有一个确定的标准比如界面库,有人用QT有人用MFC.这些均为不一样的所以选择的路也多,学的东西自然也许多了。但从编程上,并不是就是C++的就比用C#的牛。C++导致拥有深厚的历史,有自己独特的文明。是由于它的文明而牛。
D:PHP 接触不深,但是我认为它是一个制作网页的好语言,其余领域我并没有怎么看好他,我认为PHP在开发网页上有很大的优势,但是开发B/S级系统应用就现得比较力不从心了。所以假使你定位自己作为一个网页开发人士的话,你就应当学习该种语言。假使是B/S级的应用的话,就应当运用C#或者JAVA,或者其余的语言。
E:JavaScript,非常有名的脚本语言,假使你想从事B/S的开发,网页开发,你就一定要学这个,是一个务必掌握的技能。学习曲线相对比较平坦,而且内容也不算多,但是应用却十分灵活的语言。强烈推荐初学者先学习这个语言,来寻求感觉,由于这个语言完全不存在编程环境的困难,你只需要有浏览器,记事本,两样任何系统都有的软件就可以编撰它。所以我认为首先学习它将对你理解编程思想有一定帮助。
F:LUA这个也是一个脚本语言,成就这个语言的名声是来自一个叫“魔兽世界”的游戏,当前我了解LUA应用的领域比较多均为作为一种嵌入语言,嵌入到C 或者C++中去运用,在国内很多游戏公司全将有LUA程序员,部分会由C语言程序员去兼任。由于LUA在语法上和C有很类似的地方,基本对旧的C语言程序员学习LUA是无难度的。诚然也有它的局限性,作为脚本语言它自身就存在不足,而且这个语言自身就是作为C语言的扩展来用的所以,学习这个语言的话,建议先学习C语言。或者成就更高(或者而已!)
我个人是选择C#作为长期发展的语言的。我认为这个语言比较适合我该种英语不算好,但是又喜欢编程的人。
PS:真心想学编程的务必要学习适当的英语能力,由于很多编程的先进思想均为英文的。所以英语好,对形成大神起很大作用的。
知道为何学习编程,又选择了目标语言,接下去就是基础学习了。
这个基础学习,我认为首先要对一部分语法糖熟悉,第二件事情就是要多编,多看,或许你买的书都附带着实例代码的,我认为对于初学者,首先你把书上的程序都照着编一次,在这阶段,你一定会遇到无数的错误,但是这些错误将令是重复显现的,这个时候你就学会了如何排错,有人说过编程不是一口气写出来的,是修改出来的。所以学习排错是编程的第一步,尽管随书光盘有很多代码,但是这些代码都不属于你的。没有入你脑,唯一让这些代码属于你的办法就是多抄(打)几次。当你把一本编程的基础书都看透了……起码别人问你这本书的知识你能答得上口,那就是你度过了第一期间了。你可以进入一搬阶段了。
一般的阶段,这个阶段我把它定义为是把这些语法组织成句子,组织成文章的期间。我想问下,大家都上过语文课吧,我们来回想一下,我们学习语文的过程
字=》词=》句=》文章;
而编程的学习则是如此的;
变量=》函数=》类=》架构
所以我们在初学阶段做的均为学那些字,那些词(其实就是语法糖)然后我们就会学造句,造句的时机就会涉及到把什么词语组合起来会得到优美的句子,而合理的句子,加之合理的逻辑就会变成一篇优美的文章。但是一篇优美的文章并不是那么简单的。也就是一个程序架构的优美一样没那么简单一样,需要很多很多学识。