自学程序员90%以上都会掉进这些坑,避开这些误区可以提高N倍的学习效率,之后技能的提升基本靠自学。虽然部分学生选择了线上上课,但更多的还是自学。有的人自学很快,差不多一个月就能掌握一门技术,而有的人坚持到最后半途而废。很大的原因是他们在学习的时候陷入了一些误会,没能走出去。今天我们就来说说自学编程中常见的十大误区,避开这些误区,我们就能在自学的道路上前行!八千字的文章,心血写成,希望对你有所帮助。误区一:不注重基础,流行什么就学什么。我们经常会遇到一些热爱学习的朋友。他们热衷于学习各种新潮的技术,跳来跳去地学习,因为基础知识往往枯燥乏味,很有成就感。比较低,所以我就突飞猛进的学习,技术火热的就学什么。比如你的JavaSE基础不扎实,比如你连最基本的oop、网络操作系统、基本的数据结构和算法、常用的设计模式、多线程和最基本的概念都不懂高并发,那么你一味追求这些所谓的热门、时髦的技术,你可能会陷入迷茫。建议:我们并不反对学习新技术,但是在学习新技术之前,你应该把基础知识牢牢掌握。别急着吃热豆腐,最后烫到嘴巴。编程初学者一定要扎实老实。掌握基础知识。误区二:总是纠结于学习哪种编程语言最好编程语言本身没有好坏之分,只有什么语言适合什么应用场景。我举几个例子,比如说PHP,比较适合做外部开发,java,适合做Android,大数据,或者我们的javaEE,C,C++,比较适合做底层开发,比如作为游戏引擎,系统软件,可以说汇编语言适合做驱动开发,比如python更适合做人工智能,go语言是区块链的主要开发语言,适合做外部后台等等。那么从我上面说的,大家有没有发现,世上没有最好的编程语言。所以学什么编程语言主要看你的学习目标和兴趣。你学了这门编程语言之后,你想做什么,然后你决定我要学什么编程语言。如果你倒着看问题,你就会发现你的出发点是否正确。通往同一个目标的路径有很多,但如果你一开始选择起点(编程语言),你可能会错过一条更省时省力的路线。给大家提两点忠告:第一,编程语言其实在逻辑和语法上都非常相似。比如Java、C、C++或者其他编程语言,其实逻辑语法和结构都是类似的。你只需要学习或精通一门语言,就可以学习其他编程语言。可以说触类旁通更容易理解,学习成本也会大大降低,但前提是你必须先学会精通一个。第二点,如果你学编程是为了进入IT行业或者进入互联网,就是为了找工作。而且你不知道目前要学什么语言。如果这是吸引力,我建议你考虑Python。原因很简单。首先,Python易于学习。很多人在自学的时候就因为入门困难而半途而废。别想那么多,首先用编程思维呈现你想做什么;第二,Python的发展趋势非常迅猛,已经连续四年在所有编程语言中增长率排名第一,成为最流行的编程语言,未来很长。我们需要主动学习。误区三:爱看书不爱做,懂了不爱用。我喜欢读书,但不喜欢做。这几乎是大多数初学者的通病。依稀记得刚学编程的时候也是这样。学了很久,但是上手代码的时候,手足无措,感觉难以把控。理解和能够使用它是两件不同的事情。初学者在看书或听视频时很容易感觉到老师说的我听懂了。但是一旦让他做一个项目或者独立完成一个问题,他就立刻失去了理智,立刻一头雾水,看不懂结果。不知道大家有没有这种感觉。有同学说,“老师,我读书的时候不知道写什么”,所以我可以建议大家,看书或者看教程,把看过的项目案例打出来写出来向下。明白了,然后根据自己要做什么项目,实现什么功能,再具体写相应的代码。让我举一个例子。比如你想去这个健身中心练出迷人的肌肉或者腹肌,我想问大家一个问题,光看教练的健身视频,能不能练出强壮的肌肉?事实上,你无法种植它。光看怎么能长肌肉呢?你必须每天自己举哑铃或做运动。各种运动都是跟着教练要求的吧?你还需要注意你的饮食,才能长出有吸引力的肌肉。其实我们学习编程也是如此。你不能只看视频。仅仅因为你了解它并不意味着你可以使用它。忠告:编程是边做边学的学科,什么是中学?我是在做的过程中学习的,而不是说我已经知道了,我明白了,我还会再做,因为我们计算机科学是一门工程学科,特别强调动手能力。过程中出错不要紧,多做几次,多调试几次,不懂的可以查资料或者找人问问了解一下。纸上谈兵的成果总是肤浅的,我知道这件事必须要做。犯错并不可怕,犯错才是你进步的关键。误区四:学习时很少做笔记或思维导图。这基本上意味着我没有将所学的知识转化为自己的知识。许多自学者都会遇到这种情况。他们在学习编程的时候非常努力和勤奋,但是他们的技术提升其实很慢。你让他说说他今天学到了什么?他一脸茫然,他只知道我好像看了一些书,看了一些视频。那么为什么会这样呢?我给你分析一下。因为有的朋友在学技术的时候只是听,知识像流水一样从书本或者视频里流出来,然后知识就没有沉淀在他的脑子里,整个人就变成了知识的传递者。所以,当你合上这本书时,就好像你从来没有学过这个,没有任何印象,你会完全忘记这个。我们称之为无效学习。学习知识,不管是听视频还是看书,都必须明白一个道理。这些知识不是你的,而是作者的。那你该怎么办?当你学习了一个知识点或者一个技术之后,你应该用自己的话来概括,用自己的话描述你是如何理解这门技术的,这样你才能真正把这个知识点拿下来,这样就更好了能够学习一个知识体系。比如学习了java的面向对象,或者java的多线程之后,你最好画一张思维导图,把这些知识点的精髓浓缩出来,在你的大脑中建立起这个知识体系。自己总结建立知识体系的方法,自己学一年,比别人学两三年还要好。误区五:喜欢死记硬背而不是理解原理我们在学习编程的时候,确实有很多东西需要死记硬背,比如语法规则和规范,比如java变量的命名,还有这个程序的主要结构,包括它的语法的一些规范,如何使用它是一种高效的用法,你别无选择,只能记住它,因为它是一个规则,是规定好的。但是涉及到功能的实现、算法、设计模式、底层机制、优化效率等,不需要死记硬背,一定要理解。还有一点就是纠结编程的时候记不住代码。朋友们只需要掌握某个功能,用什么,怎么用,或者用代码实现就可以了。您需要知道在哪里可以找到它。只是一段代码。误区六:出错时选择退出程序。您不是主动调整错误,而是避免它。相信很多朋友,尤其是初学者都遇到过这种现象。恐慌。其实我告诉你,大可不必,因为一旦程序出了问题,就是我们提高技能的时候了。想一想,一个初学者,怎么可能写出一行代码不出错呢?不可能吧?例如,如果你在基本语法上犯了一些错误,或者字母大小写错误,这很容易发生。其实,这些错误本身并不难。只要把每一个错误都排除掉,其实这个时候你的能力会越来越强。正是因为你已经看到了很多这样的错误,所以你下次不会再犯了。慢慢的你会觉得编程其实还是挺幸福的,以后也会达到这样的境界。累了困了,不是喝红牛,而是写两段代码放松一下。能达到这个水平就不错了。借用电影《头文字D》里的一句话,“上帝其实也是人,但是做了人做不到的事情,所以成了神。”那么什么是编程高手和调试高手呢?就是因为他们犯的错误够多了,哪里还会犯错误,各种错误他都见过。在别人看来不对劲的事情,是不会出现在他手里的,或者出现了也好解决。这是上帝。如果你犯了一万个错误,你就会成为编程高手。误区七:单打独斗,闭门造车在程序员的道路上,总有一些人喜欢单打独斗,闭门造车,他们不愿意也不敢分享。包括一些学习了一两年甚至更长时间的人都会有这个问题。在学习编程的道路上,一定要给自己营造一个学习氛围,需要有同伴或者高手陪你一起成长。相反,如果脱离了交流,学习上的问题往往会堆积起来,最后可能会放弃。因为问题太多了,还没解决,就得慢慢放弃。单打独斗很容易让新手成为井底之蛙。当你迷茫的时候,我们都知道有时候朋友或专家的一句话、一个插件、一本书或一个提示,会让你觉得豁然开朗。你会说“咦,有这样的操作”,那么这可能会大大提高你的学习效率。忠告:编程初学者切不可单打独斗,闭门造车。他们必须勇敢地分享、总结和告诉别人他们所学到的东西。如果他们说错话怎么办?人家不会顺着网线打你;如果我说错了,别人会不会笑话我?其实只要是第一次作案,别人是不会笑话的。如果你提出来,别人会觉得你很努力,会更愿意帮助你。只是下次不要犯罪。误区八:学习很复杂,不精通一门语言。许多学生在互联网上搜索这些信息。我会学习任何流行的技术。不抓重点,没有目标。很容易迷失自我,什么都想学。什么都没学好,每天学各种技术累死了。到头来,整个知识体系都没有建立起来。比如有的孩子学了javaEE,但是javaEE的整个体系还没有建立起来;比如有的孩子学大数据,但是整个体系还没有建立起来,只是学了其中的一小部分。如果是这样的话,你会发现你在一份真正的工作中,别人问你擅长什么,你也答不上来。你的工资自然是肯定上不去的,因为你没有真正能吃饭的人,没有真正能卖的东西,也没有什么可以和别人竞争的。处于劣势。忠告不管你聪明还是迟钝,不管你勤奋还是懒惰,其实每个人的时间都是有限的,好钢要用在刀刃上,有效利用有限的时间,不要什么都学,没必要。建议小伙伴们专注于一门技术或者一门语言。例如,我们专注于Java或Python。没关系。你只专注于这门语言。精通这门语言后,再去学习其他编程语言或其他技术,你会发现一张平面图,学习成本大大降低,学期会很快。学习编程技术,应该有一个明确的方向和目标。无论你是学习java、Python、PHP、.net还是区块链,你都要有一个学习目标。比如为了工作,两个月内学什么内容,半年学什么水平,一年后开始找工作。我希望的薪水是多少?我需要达到什么技术水平?三年后,我的工资将达到几万……给自己一个清晰的规划,不要给自己马虎的眼光,这样才能看清自己的成长。如果自己做不出来,找人帮你参考一下也是可以的。误区九:专业错了,不适合编程?事实上,我经常遇到这种误解。很多朋友说:“龙叔,我以前学的是管理学、金融学、建筑学、化学,以后找工作会不会很苦?还是学不好编程?”我跟大家说,IT行业有太多程序员不是本专业的,来自各个行业,很多转行了,做的很成功,所以我说这跟专业无关,why?编程本身其实也是一种技能。和你以前的专业有什么关系?没关系,只要你的逻辑思维正常,再勤奋一点,那学编程也没问题,学一门技能就好,不要想的太复杂。而且我觉得跨专业进入程序员圈子有时候你是有优势的。你为什么这么说?比如公司给了你一个任务,要做一个关于金融的项目。如果你之前是金融相关专业,你肯定比以前更了解这个项目的业务逻辑和业务流程。快速通过财务。这也是为什么像用友这样的软件公司,每年都会招一批学生到财经大学做程序员。为什么?做业务逻辑。所以我们在写软件或者做项目的时候,不仅仅是技术本身,还有业务逻辑和业务流程,不用担心。如果您仍然担心怎么办?这也很简单。大不了就把大学里计算机专业的课本内容学一遍就可以了。有什么大不了的,没关系。误区十:数学不好,不适合编程?很多朋友不理解数学和编程的关系。他们经常把数学等同于编程。他们认为,如果我数学好,我就会学好编程,如果我数学不好,我就不会学好编程。如果是这样的话,那我们大学也没必要分两个专业,一个是数学,一个是计算机吧?数学专业和计算机专业是分开的,可见这两个学科肯定是不一样的。那么为什么会有这样的认知呢?因为有朋友认为我们在处理这个业务逻辑的时候可能会用到数学。确实如此,一些数学公式和数学推论可能会用到,这些可能会用到,但是对于我们大多数程序员来说,我们编程是在应用层面,换句话说,我们用一个别人学过的算法,然后去应用它到我们的业务模块之一来解决这个问题。我们很少让一个程序员,尤其是应用级的程序员,独立开发一个算法,解决一个问题。当然,话说回来,如果你是算法工程师或者高级数据分析师,对数学的要求会更高,往往要求这个人既懂计算机又懂数学。但是对于我们大部分程序员来说,数学上的要求其实并没有那么高,所以不要怕这个。
