共计 5281 个字符,预计需要花费 14 分钟才能阅读完成。
前言
简直每一个程序员都会走上那么一段自学的路线,尤其是在校生或进入工作岗位之后,技术的晋升根本都靠自学,有的尽管是网上报班学习,但更多时候还是本人在学习,徒弟引进门,修行靠集体。
有的人自学很快,简直一个多月就能把握一门技术,而有的人苦苦保持,最初还是大功告成,很大的起因就在于在学习的时候掉进了一些误区没能走进去。
明天咱们就来讲讲自学编程常见的十大误区,避开这些误区咱们定能在自学之路上裹足不前!
醉生梦死所写 8000 字文章,心愿对你们有所帮忙。
误区一:不重根底,什么火我就学什么
咱们常常碰到一些爱学习的小伙伴,他们热衷于学习各种潮流技术,而且是跳着过来学的,因为基础知识往往是比拟枯燥无味且成就感比拟低的,于是就跳跃式性学习,什么技术火就去学习什么技术。
比方你的 java se 根底不牢,比如说你连最根本的 oop、网络操作系统、根本的数据结构和算法,还有罕用的设计模式,最根本的多线程高并发这些概念都没有搞懂,那么你就一味的去谋求这些所谓的火的、时尚的技术,你可能会陷入一个迷茫。
倡议:咱们不拥护学习新技术,但在学习新技术之前,应该先把基础知识牢牢把握,切勿心急吃热豆腐最初烫嘴,初学编程的小伙伴儿肯定要扎扎实实、老老实实地把基础知识弄懂。
误区二:总纠结于学最好的编程语言
编程语言自身没有好与坏之分,只有什么语言适宜什么样的利用场景。
我举几个例子,比如说 PHP 这个语言,它比拟适宜做内部开发,java 它适宜做安卓、大数据,或者是咱们的 java EE,C 和 C ++ 它比拟适宜做底层开发,比如说像游戏引擎、系统软件,你再比如说汇编语言适宜做驱动开发,比方 python 它比拟适宜做人工智能,go 语言它是区块链的主力开发语言,适宜做也能够适宜做内部后盾等等。
所以说从下面我所讲的,你有没有发现就没有最好的编程语言这种说法。
那么你到底学什么样的编程语言,次要是要根据你学习的指标和趣味。你学完这个编程语言你想干什么,而后你再决定我学什么编程语言,用倒推法来看问题你就会发现你的出发点是否正确,同一个指标,路能够有很多条,但如果你一来就开始选定出发点(编程语言),你能够能就错过了一条更省时省力的路线。
忠告大家两点:
第一点,编程语言它从逻辑语法上其实都是十分类似的。你比如说 java、C、C++ 或者其余编程语言,其实逻辑语法和构造其实都大同小异。你只有学会了或者精通了一门语言,你再去学别的编程语言,能够这么说,举一反三,比拟轻松,而且学习老本会大大降低,但前提是你要先学精通一门。
第二点,如果你学编程就是为了进入到 IT 行业或者进入到互联网,就是为了找一份工作。而你们本人目前并不知道学什么语言,如果是这种诉求的话,我倡议能够思考 Python, 起因特地简略,一是 Python 容易上手,很多人自学的时候因为入门艰难就大功告成了,别想那么多,先把你本人想做的货色用编程思维出现进去;二是 Python 的发展趋势很迅猛,曾经间断四年在所有编程语言中增长率第一,成为最受欢迎的编程语言,将来很长,咱们要有前瞻性地进行学习。
误区三:喜爱看不喜爱入手,听懂了但不会用
喜爱看但不喜爱入手,这简直是绝大多数初学者的通病,我依稀记得我初学编程的时候也是这样,学着学着也学了蛮久的,可一上手代码就手足无措,感觉很难驾驭。
听懂和能应用是两码事,初学者看书或者听视频,他很容易感觉这个老师讲的我听懂了。然而一旦独立让他去做一个我的项目或者去实现一道题,他立马就没有思路了,马上蒙圈,后果都不明确了,我不晓得大家有没有这种感触。
有的同学就说“老师我在学的时候我就不晓得写什么”,那么我能够倡议大家,你就把你看的书或者是教程什么的,你把看过的我的项目案例给我敲一遍并且了解了,而后你依据你想做什么我的项目,实现一个什么性能,再具体地去写相应的代码。
我举个例子,比方你想去这个健身,练一身迷人的肌肉或腹肌,我问大家一个问题,如果你只是看教练健身的视频,你是否长出强壮的肌肉?其实你是长不进去的,你光看怎么可能长肌肉呢?你必须要本人去天天这个举哑铃或者是静止,各种静止依照教练的要求,对不对?你的饮食上还要留神,能力长出迷人的肌肉。
其实咱们学编程也是一样的情理,你光看视频是不行的,你听懂了并不代表你会用。
忠告:
编程它是一门做中学的学科,什么叫做中学?是在做的过程中学会的,而不是说我曾经晓得了我了解了我再去做,因为咱们的计算机学科它是一门工科性质的,特别强调是入手能力。过程出错不要紧,多做几遍,多调试几遍,再不懂就去查资料或者找人问问,一点点地死记硬背。
纸上得来终觉浅,绝知此事要躬行。呈现谬误不可怕,呈现谬误就是你进步的关键点了。
误区四:学习时很少做笔记或思维导图
这根本等于说没有将学到的常识转成本人的常识 。很多自学者都呈现这种状况,学编程时十分致力和怠惰,然而 技术晋升其实很慢 。你让他说明天学了什么货色?他一脸茫然,他只晓得我如同看了一些书、看一些视频。
那么为什么会呈现这个状况?我给大家剖析一下。因为有些小伙伴儿他在学技术的时候只是听,常识就像流水一样,从书本或者视频流进去,而后常识并没有积淀在他的大脑,整个人就变成了一个常识的一个传输器。
因而当把这个书本一合上,就跟没有学过这个一样,毫无印象,全副忘了这个咱们把它称之为 有效学习。
学常识不论你是听视频还是看书,肯定要明确一个情理,这些常识不是你的,是作者的,那么你应该怎么办呢?你最好是学完一个常识或者学完一个技术当前,你要用本人的语言把它总结下来,用本人的语言形容一下你是怎么了解这个技术的,这样你能力真正地把这个知识点拿下来,甚至最好可能学完一个常识体系的。
比如说把 java 的面向对象学完了,或者把 java 的多线程学完了,你最好画一个思维导图,把这些知识点精髓稀释一下,把这个常识体系建设在你的大脑外面。
本人总结和建设常识体系的办法,你学一年,甚至比他人学两年、三年成果都好。
误区五:喜爱死记硬背而不是了解原理
咱们在学编程的时候,确实有很多货色是须要死记硬背的,比如说语法规定和标准,比如说像 java 变量的命名,还有这个程序的主体构造,包含它语法的一些标准,怎么用才是一个高效的用法,而这些呢你没有方法,你只能把它背一背,因为是规定,这是规定好的。
然而波及到性能的实现、算法、设计模式、底层机制、优化效率等等,你就不要死记硬背了,肯定要去了解了。
还有一点就是 不要去纠结编程的时候我记不住代码,小伙伴们只须要把握某一个性能,用什么、用怎么一个形式或者应用代码去实现就能够了,你要晓得在哪儿去找这段代码就行。
误区六:出错时抉择回避
程序出错了,没有踊跃的去调错,而是回避,这个景象我置信很多小伙伴,尤其是初学者都遇到过,新手写代码的时候只有看到报错信念就发慌了。
其实通知大家,大可不必,因为程序一旦出错了,正是咱们进步本人技术的时候。你想一想,对一个初学者他怎么可能写代码一行都不出错呢?这是不可能的,对吧?你比如说一些根本语法出错了,或者是字母大小写写错了,这是很容易呈现的。
其实这些谬误它自身并不难,你只有把每一个谬误都排除了,其实这个时候你的能力就越来越强。正是因为这些谬误你看得多了,你下次就不会犯,缓缓你就感觉到编程其实挺高兴的,当前你就会达到这样一个程度。累了困了不是喝红牛,而是写两段代码放松放松,达到这个程度就很好了。
借用电影《头文字 D》外面的一句话“神其实也是人,只是他做了人做不到的事件,所以成为了神。”
那么什么是编程大神、调试大神?就是因为他们犯了足够多的谬误,什么中央会犯错,什么谬误他都见过了,他人看起来是谬误的货色,在他手里就不会呈现,或者呈现了解决起来也是轻而易举,这就是大神了。
你如果犯了一万个谬误,你也会成为编程大神。
误区七:孤军奋战,闭门造车
在程序员这条路上总有那么一些人喜爱孤军奋战、闭门造车,不违心,也不敢分享。包含有些曾经学过一两年甚至更久的人都会呈现这个问题。
在学习编程的路线上,你肯定要给本人营造一个学习的气氛,你须要伙伴或者是高手跟你一起成长。反之,如果你脱离了交换,往往会让学习的问题越积越多,最初你可能就放弃了。
因为问题太多了嘛,你又没解决,那必定缓缓就放弃了,孤军奋战很容易让老手成为井底之蛙。在迷茫的时候,大家晓得有时候一个敌人或者一个高手的一句话、一个插件、一本书或者一个提醒,它就会让你有一种恍然大悟的感觉。你会说“诶原来还有这样的一种操作”,那么这就可能让你的学习效率大大晋升。
忠告:
初学编程的小友千万不要孤军奋战、闭门造车,要敢于分享,敢于去总结,敢于把本人所学到的货色给他人说进去,说错了又能咋滴?人家又不会顺着网线来打你;说错了他人会不会笑我?其实你只有是第一次犯,他人不会笑话,如果你提出来,他人反而会感觉你很怠惰,反而更违心帮忙你,你下次不要犯就好了。
误区八:学的很杂,不精通一门语言
很多小友在网上去搜这个材料,什么技术火,我就学什么技术,不分重点,也没有指标,很容易迷失本人,什么都想学,什么都没学精通,天天疲于奔命学各种技术,最初整个常识体系没有建设起来。
比方有些小友学 java EE,但 javaEE 的整个体系没有建设起来; 比方有些小友学大数据,整个体系也没有建设进去,它只是学了其中某一小块。如果这样的话,你会发现你在真正的工作中,当他人问你精通什么的时候,你答不上来。
那天然你的薪资必定上不去,因为你没有没有真正可能吃饭的家伙,没有真正能拿得出手的货色,没有什么货色能够去跟他人竞争,所以说西瓜、芝麻什么都捡,必定是要吃亏的。
忠告
不论你是聪慧还是机灵,不论你是怠惰还是懈怠,每个人的工夫其实都是无限的,好钢要用在刀刃上,把本人无限的工夫高效地利用起来,千万不要什么都去学,没有必要。
我倡议小友们专一于一门技术或者语言,比如说咱们就专一于 Java 或者专一于 Python,那都无所谓,你就专一于这一门语言,你精通这一门语言当前,你再去学别的编程语言或者别的技术,你会发现层峦叠嶂,学习老本大大降低,举一反三,学期会会十分的快。
学习编程技术的时候应该有一个明确的方向和指标。不论你是学 java、Python、PHP、.net 还是区块链,你要有一个学习指标。
比如说如果是为了工作,那么我 2 个月内要学完什么内容,半年后学到什么程度,一年后我要开始找工作,我心愿我的薪资是多少,一年到两年后我要达到什么技术水平,三年后我的薪资要达到几万 …… 给本人制订一个清晰的布局,不要本人给本人打马虎眼,你才会看清本人的成长。如果你本人无奈制订,那么能够找一些人帮你参考,这都能够。
误区九:业余不对口,不适宜编程?
这个误区其实我也常常遇到过,很多小友说:“龙叔,我以前是学治理的、学金融的、学修建的、学化学的,我当前找工作是不是会吃亏呀?或者说我是不是就学不好编程了?”
我通知大家,IT 行业外面的程序员是非科班出身的人太多太多,各个行业的都有,太多都转行了,而且做得很胜利,所以说这跟学业余也没有关系,为什么呢?
编程自身其实就是一个技能,跟你以前的业余有什么关系呢?没关系,你只有你的逻辑思维失常,而后你比拟怠惰,那这个学编程就没问题,就是学一个技能而已,别想得太简单。
而且 我认为有些时候你跨专业进入到这个程序员这个圈,在某些时候还是有劣势的。为什么这么说?
举个例子,公司给了你一个工作,让你去做一个我的项目是对于财务的一个我的项目,如果你以前是金融相干业余的,那你了解这个我的项目的业务逻辑和业务流程必定要比以前没有学过金融的要快。这就是为什么像用友这样的软件公司每一年都会在什么财经大学外面招一帮学生去做程序员,为什么?做业务逻辑的。
所以咱们写软件或者做我的项目不单是技术自身,还有业务逻辑、业务流程在里边,所以不必放心这个事儿。如果你的确还放心,那怎么办?也很简略,你大不了就把大学计算机专业的课本内容学一遍嘛,这有什么大不了的,它是 ok 的。
误区十:数学不好,不适宜编程?
很多小伙伴没有搞清楚数学和编程之间的关系,他们往往把数学和编程化等号,他们认为我数学好,我编程就学得好,我数学不好那么我编程就学不好。
如果真的是这样子的话,那咱们大学外面就不须要再分两个业余了,一个是数学业余,一个是计算机专业,对吧?数学业余和计算机专业是离开的,这阐明这两个学科它必定是不一样的。
那么为什么会造成这样一个意识?因为有些小伙伴认为咱们在解决这个业务逻辑的时候,可能会去用到数学。这个是不假的,可能会用到一些对于数学的公式、数学的推断,这些可能会用到,然而 对于咱们绝大部分的程序员来讲,咱们是站在利用层面来编程的 ,换言之,咱们是用他人曾经学好的一个算法,而后利用到咱们的一个业务模块外面去解决这个问题。 咱们很少让一个程序员,尤其是利用层面的程序员去本人独立开发一个算法、解决一个问题。
当然话也说回来了,如果你从事的这个岗位是算法工程师或者是高级数据分析师,那么对数学会要求高一些,往往要求这个人既懂计算机又是数学业余的。但对咱们绝大部分的程序员来说,数学要求其实没有那么高,所以大家不要去恐怖这个事件。