非计算机专业朋友如何学习编程-以发展为中心学习

4912 人浏览 | 时间: 2015-06-26 21:50:48 | 作者: codexia

    计算机专业的学习编程,确实是有一定的挑战,在此,我也给大家讲讲如何去学习,能够少走弯路,达到高效学习。
    在文章《跨专业、高中学历、无学历学习计算机编程,学的好吗》中,我已经分析了非计算机专业朋友学习计算机编程与计算机专业同学的差别,在于计算机技术基本理论的差别,其他的都不是大问题。我们学习编程,不是奔学历而去的,所以,学历的差别根本不是考虑的因素。学编程重在提高自己的动手能力,用编程改变世界,而不是用学历改变世界。编程的好处是可以用切切实实的成果来改善生活,比如一个便民软件。你把软件分享到网上后,有很多人下载使用,这就是编程带来的快乐,因为你的成果可以方便很多人。当然,如果你的水平足够高了,所开发的软件,将会影响到更多的人,这时你也会觉得你的价值更加充分的被发挥出来。其实编程就是所做即所得的模型。至于做的好不好,全看自己用不用心,不要担心编程学了没用,如今的世界,没有软件,什么也做不了。没有编程,软件不可能自己冒出来。程序员是一个创造者,或者是一个工人,看你如何选择。如果只是略懂皮毛,就永远是工人,即码农。如果你水平高,基础扎实,进而形成创造力,不仅有创意,还有实现创意的能力,你就是一个创造者,而不是码农。我对于这些概念的定义,从来不是以金钱来定义的,而是以技术水准来定义的。这个世界,最容易改变世界的就是程序员,因为一个思想一个架构,或许给软件界带来福音,进而也因此改变了世界。而我所讲的学习计算机编程的,是放在改变世界的角度来的。
    这里不是说程序员有多牛,而是告诉你,学习方法不同,效果截然不同。你可能一个人学着就成为一名码农,也可能跟着一个人学习,结果成为一方精英。纵观网上很多课程,都是讲解一种技术的使用,至于为什么,一方面因为是太基础的东西,另一方面,短期看不到效果,还有,基础的理论这些东西对于实战开发,不是最为关键的。很多项目的开发,并不需要每一个都牛气哄哄,而是只要你听从安排,做一些小小的功能部分就可以了。这些就是需要基本的编程来实现。
    所以,各种培训机构针对这些进行培训,目的是送往各大公司干活。最终的结果是培养技术工人即码农。他们只要达到这个效果就可以了。很多人也只需要达到这个效果就行了。然而,在快速集体性的学习过程中,你只不过是芸芸众生的一个,出于各种原因,不得不赶进度,很多人必然有很多内容没有学会。不是老师没有教,而是他能力有限,接受不来。然而,这么多课程,学费数万,还是不错,可是学会的真正掌握的有多少呢?
    这是一种快餐式的教学,服务的中心不是人的发展,而是工作的需求。如果你不是为了工作,或者培训机构不是为了让你能够工作,你还愿意培训吗?当然不会。所以这也促成了这种模式。然而,我们都忽略了一点。我们去参加培训,是需求个人的发展,而不是为了工作。我们应该以人的发展为中心去学习,而不是为了工作去学习。我们需要一个长远的眼光去学习。学习的内容不是目前非常非常的流行的框架的使用之类的,而是最为基础的内容。踏踏实实学习最为基础的东西,才会让你在日新月异的技术中,站得稳。如果你是零基础,如果你是非计算机专业背景,甚至是有些计算机专业的背景,在实际的开发工作中,也不知如何发展。这些问题都是以人的发展为中心的问题。
    以上我是想你明白,审视你现有的学习方法,将你的发展作为学习的最终目的,而不是一种技术的使用等。所以,基础永远是你学习的东西。任何技术都是由基础搭建,有了基础,那些看似高大上的技术框架,实则不堪一击,很快被你攻破。如果你没有基础,穷尽一生,不见得能够参透。道理就在于此。如果你确实有哦这方面的学习难题,比如不知道如何学,不知道学哪些,不知道按什么顺序学,不知道自己以后想干什么,对于一些基础知识很难理解,往往一个小知识都要花好长时间才能理解,甚至一直都搞不明白。如果有这些问题,说明你的基础或者知识阅历不够,或者面不广底不深造成的。如果你在工作了,如果还想从事这方面的学习和长期的发展,不建议自己一个人瞎折腾,不是学不会,而是可能会花更多的时间,等你学会了,或许很多机会都错过了。这一句话,是当年辞退我的经理跟我说的,虽然当时我很不高兴,不过还是要感谢他。也正是如此的波折,才让我迅速的成长起来。即使有时候你得到一些顺序,如果没有基础,也是很有难度的。
    成就大师之路是每一个程序员所追求的,否则不够资格说自己是程序员,最多是为了工作的码农。要成就大师,要学的东西很多,对于一些基础性的东西,能省时间就能时间,但不是求快,而是在求质量的同时求速度,这就是高效学习。高效学习在竞争中占绝对优势。有时候,你花一个月两个月的工资,请一个人一对一辅导,能比数万元的培训费用学的效果好百倍,并且终身受用。而如果你或者完全自己一个人折腾,可能最后都没什么效果,很多人还因此放弃,因为觉得太难而放弃,留下的只是遗憾。
    而我们应该学的基础,包括计算机理论基础和编程基础。对于软件开发来说,计算机理论基础就是操作系统、计算机网络等,看你要从事的领域而定,但是这些基础中,操作系统是软件开发最为核心的计算机理论基础。你可以不学其他的理论课程,但是操作系统原理不能不学。而编程基础中,编程语言C/C++以及基本库如STL、操作系统API编程(不同的系统不一样)、具体的操作系统的运行机制。这些是编程中非常重要的基础。不要扯什么跨平台,你要懂得什么才是真正的跨平台,请看《跨平台技术和跨平台学习的深刻分析》。你要从事软件开发,至少要懂得一个平台(操作系统),否则终将被淘汰。有了这些扎实的基础,到哪都吃香。如果只是会一些工具的使用,处处受限制,如果别人不用这个工具开发,你怎么办?如果人家需求改变,这个工具做不了怎么办?你依赖工具,很快就会被淘汰。但是你强大的基础,再使用工具,不费吹灰之力。你比只会用工具的人用的还好,虽然你后用的。这是基础的力量,也是所谓的内功。
    在这些基础有所保证后,正式参加工作之前,你最好掌握你想从事的工作方面需要的开发工具比如Windows的MFC,或者QT,或者其他的。这样给自己降低进入的难度。有了基础,学很多工具库的使用也是再简单不过的事情。如果你会用会加分。
    在这些都能够胜任的情况下,再考虑进阶学习。非计算机专业,靠的是自身的能力,而不是学历。所以,基础扎实也才能让自己的能力突飞猛进。但是在零基础刚开始学时,最好找一个人带,出点学费可以让你快速的提升基础。你可以找你认识的周围的有实力的朋友和前辈(必须非常有经验,否则只是浪费时间),或者在网上找有能力的可靠的朋友。因为一对一辅导会耗费大量的精力和时间,所以交点学费完全应该的。当然,如果你觉得自己自学能力很强,也不仿可以自己自学。如果效果不错,可以继续,如果效果不行,那就得考虑找个老师带你学了。自学的学习顺序和书籍在前面已经给出了链接,也是可能让你省掉打把时间了。如果你确实自学有难度,周围也没有可以辅导的前辈,一下子网上也找不到靠谱的人,如果你信任我,可以找我。当然,我只是给你提供一个可选的方案。如果能在周围找到能带你的人,那是最好的。因为能够在现实中联系到,学习也更加方便,对你更有利。我是想帮助一下能帮助的人。我自己还要不停的提升能力。唯有这样才能帮助更多的人。
    以上是我长久以来一直在坚持做的事,引导解惑,帮助更多需要的人,看到本文,请不要放弃你的梦想,不要因为学习艰难而放弃。加油吧,如果你身边有这样困惑的,请将此文转发给他,希望能给身边的朋友切实的指导。
    因为,我自己也在坚持一个梦,成为编程大师的梦!我所能做的就是,在我的成长过程中,尽可能帮到更多志同道合,与我情形相似但是又难以前行的同志。

请微信扫码阅读
为防止恶意爬虫,
已开启反爬机制

相关阅读