程序员一般要学多久?
一般至少需要半年到一年左右,具体的学习时间根据大家的基础情况、学习方式和发展目标而定。例如作为0基础的小白,想要进入程序员行列,选择自学的方式学习编程,可能至少需要一年左右,才能达到就业的水平。如果通过靠谱的IT培训机构,大概需要5-6个月的时间便可以达到初级程序员的技术水平。
基础情况
从基础情况来看,学员分为0基础和有基础两种情况。对于0基础学员来说,想要成为一名合格的IT程序员,并且实现就业的目标,至少得5-6个月的时间;如果是有一定基础的学员,或许时间会短一些,最快3个月。
学习方式
想要进入程序员行业,大家可以选择自学或者培训机构进行学习。其中通过自学的方式学习编程,最快的话至少需要8个月甚至一年的时间。如果选培训机构的话,可以大大缩短学习时间,一般情况下在5-6个月左右。
发展目标
有一小部分同学之所以学习编程,是因为兴趣,想要了解一些编程知识,拓宽自己的见识。如果是这种情况,学习时间会短一些,只需要学习一些基本的知识便可。但是相信大部分同学之所以选择学习编程,是为了更好的就业或者获得高薪,作为这部分人群,就需要首先确定编程方向,然后了解和学习该语言的基础知识、再进行深化学习、项目实践等。想要达到顺利就业的效果,至少需要5-6个月的实践。
由于IT行业发展迅速,想要进入该行业,就需要做好终身学习的准备。因此如果你确定了努力的方向,那么就开始行动吧!
“自学一门编程语言,我认为需要 10 年”
【CSDN 编者按】学习编程真的可以“速成”吗?本文作者认为:想要真正掌握一门编程语言,至少需要 10 年。
原文链接:https://norvig.com/21-days.html#bh
作者 | Peter Norvig翻译 | 郑丽媛出品 | CSDN(ID:CSDNnews)我不理解,为什么现在每个人看起来都这么着急?
随便走进一家书店,你都能看到“如何在 24 小时内自学 Java”、“教你 X 天/小时学会 C/SQL/Ruby/算法”等内容的各种书籍;打开亚马逊网站,高级搜索“自学、小时、2000 年以后”,发现了 512 本相关书籍,前 10 名中有 9 本是编程书籍,如果把“自学”换成“学习”,或把“小时”换成“天”,得到的还是类似结果。
我得到的结论是:要么人们急于学习编程,要么编程比其他任何东西都要简单。Felleisen 等人在《如何设计程序》一书中对这个说法给予了肯定:“糟糕的编程很好学,傻瓜也能在 21 天内学会。”
让我们来试着分析一下,如果有本书叫做《24 小时内自学 C++》,这可能意味着什么:
自学:在 24 小时内,你没时间编写一些重要程序,更别提从成功和失败中吸取经验教训;你也没时间与经验丰富的程序员一起工作,真正了解在 C++ 开发中的感受……总之,你根本没有时间学到太多东西。因此,这本书只能让你肤浅地熟悉 C++,而不是深刻的理解。可正如 Alexander Pope 所说,只有少量知识是很危险的。
C++:如果你已掌握另一门编程语言,那在 24 小时内你也许可以学会一些 C++ 语法,但不可能学会用 C++ 语法编写 Basic 风格的程序,也无法了解 C++ 究竟有什么用。那么,这有什么意义呢?第一届图灵奖得主 Alan Jay Perlis 曾经说过,一个编程语言如果不能影响你的思维方式,就不值得去学习它。有一种可能情况是,因为你需要与现有工具对接来完成特定任务,所以你必须学习一点 C++。但这样你就不是在学习如何编程,而是在学习如何完成这项任务。
24 小时内:不好意思,这个时间根本不够。
耗时十年自学编程
有研究表明,不论是下棋、音乐创作、电报操作、绘画、钢琴演奏、游泳、网球以及神经心理学和拓扑学研究等任一领域,都需要大约十年的时间来发展专业知识。其中的关键,在于深思熟虑的练习:不是一而再、再而三地做,而是用一项超出你现有能力的任务来挑战自己,尝试完成它并在过程中分析自己的表现,从而纠正所有错误——然后重复、再重复,没有任何真正的捷径。即使是 4 岁就成为音乐神童的莫扎特,也是花了 13 年才开始创作出世界级的音乐作品。在另一种音乐流派中,披头士乐队看似在 1964 年凭借一连串排名第一的热门歌曲一举成名,但实际上他们早在 1957 年就开始在小型俱乐部演出,且他们第一首获得巨大成功的专辑 Sgt. Pepper 也是在 1967 年发行的。
提出“10000 个小时成功定律”的美国作家 Malcolm Gladwell 显然也赞同这一观点,只是他认为学习的单位是 10000 小时,而不是 10 年。著名摄影师 Henri Cartier-Bresson 也有类似看法:“你的前 10000 张照片是你最差的作品(只是他没有预料到,有了数码相机后,有些人一周就能达到这个标准)。”英国作家 Samuel Johnson 也说过,“任何领域的杰出成就都需要付出毕生努力才能获得,想以更低代价来获得它是不可能的。”Chaucer 也感叹到:“生命如此短暂,要学的东西却如此多。”此外,医学之父 Hippocrates 也有个经典语录:“生命短暂,艺术苦长,机会稍纵即逝,经验难以信赖,判断更是难上加难。”
当然,没有一个数字可以作为最终答案:假设所有技能(如编程、下棋、跳棋和音乐演奏)都需要完全相同的时间才能掌握,或者假设所有人都需要完全相同的时间,这似乎并不合理。正如 K. Anders Ericsson 教授所说:“在大多数领域,即使是最有天赋的人,要达到最高水平也需要大量时间。10000 小时这个数字只是给你一种感觉,实际上我们说的是每周花费 10-20 个小时的几年时间。有些人认为,那些天生最有才华的人也仍需要这些时间才能达到最高水平。”
你想成为一名程序员
如果你想要成为一名程序员,以下是我的编程成功秘诀:
(1)对编程感兴趣,并试着从兴趣出发去做些什么,来确保它一直充满乐趣,这样你才会愿意投入十年/一万小时的时间。
(2)编程。最好的学习就是在实践中学习,引用《实践中认知:日常生活中的思想、数学与文化》中更专业的说法:“个人在某一领域的最高表现水平并不会随着经验的积累而自动达到,但即使是经验丰富的人,也可以通过有意识的努力来提高表现水平”,“最有效的学习需要一个明确任务,对特定的个人有适当的难度水平,信息反馈,以及重复和纠正错误的机会。”
(3)与其他程序员交流。阅读其他程序,这比任何书籍或培训课程都重要。
(4)如果你愿意,可以在大学(或研究生院)学习四年,这将让你有机会从事一些需要证书的工作,也会让你对该领域有更深入的了解。但如果你不喜欢上学,你也可以靠自己或在工作中获得类似经验。无论如何,光靠书本知识是不够的。正如著名开发者 Eric Raymond 所说,计算机科学教育不能使任何人成为专业程序员,就像研究画笔和颜料不能使人成为专业画家一样。我曾聘用过一位最优秀的程序员,他只有高中学历,但开发了很多优秀的软件,拥有自己的新闻组,甚至在股票期权赚的钱都足够买下一家娱乐会所了。
(5)与其他程序员一起完成项目。在某些项目中,做最好的程序员;在另一些项目中,做最差的程序员。当你是最好的程序员时,你可以检验自己领导项目的能力,并用自己的丰富经验激励他人。当你是最差的程序员时,你可以学习大佬的工作,也可以了解到他们不喜欢做的事情(因为他们会让你帮着做)。
(6)跟着其他程序员一起完成项目。理解别人编写的程序,看看当原来的程序员不在时,如何理解和修复它。由此思考如何设计你的程序,让那些在你之后维护这些程序的人更轻松。
(7)至少学习六种编程语言,包括一种强调类抽象的语言(如 Java 或 C++)、、一种强调函数抽象的语言(如 Lisp 或 ML 或 Haskell)、一种支持语法抽象的语言(如 Lisp)、一种支持声明式规范的语言(如 Prolog 或 C++ 模板),以及一种强调并行性的语言(如 Clojure 或 Go)。
(8)请记住,“计算机科学”中有一个“计算机”。了解计算机执行一条指令、从内存中获取一个字(有缓存缺失和无缓存缺失)、从磁盘中读取连续的字以及在磁盘上查找新位置需要多长时间。
(9)参与一个语言的标准制定工作。这可以是 ANSI C++ 委员会的工作,也可以是仅决定你的代码是用 2 个还是 4 个空格作为缩进。无论哪种方式,你都能了解到其他人喜欢什么语言,他们对这种语言有多喜欢,或许还能知道一点他们为什么会喜欢这门语言。
(10)要有尽快停止语言标准化工作的良好意识。
考虑到这一切,仅靠书本知识能走多远显然是个问题。在我第一个孩子出生前,我读了所有的育儿书籍,但仍然觉得自己是个毫无头绪的新手。等 30 个月后,当我的第二个孩子要出生时,我又翻回以前的书本复习了吗?没有,我依靠的是自己的亲身经历。事实证明,这些经验比专家写的数千页书更有用,也更让我放心。
Fred Brooks 在他的文章《No Silver Bullet》中提出了一个寻找优秀软件设计师的三部分计划:
尽早发现有潜力的顶尖设计师。
指派一名职业导师负责其发展方向,并仔细保存职业档案。
为还在成长中的设计师提供机会,让他们进行互动并相互激励。
这样做的前提是,有些人已经具备了成为一名优秀设计师的必要素质,我们的工作就是适当的督促他们往前走。Alan Perlis 说得更简洁:“每个人都可以学会雕刻,但米开朗基罗必须学会不去雕刻。伟大的程序员也是如此。”这句话的意思是,伟大的程序员具有某种超越训练的内在品质。这种品质从何而来?是与生俱来的,还是他们通过勤奋培养出来的?我认为将自己生命中的大部分时间投入到深思熟虑的实践中,或许是一种方式。
所以,如果你要去买 Java/Ruby/Javascript/PHP 的书,你可能会从中得到一些好处,但你不可能因此在 24 小时或 21 天内改变你的生活,这也不会改变你作为一名程序员的真正全面的专业知识。但如果你计划在 24 个月的时间里都不断努力提高自己,那么从现在开始,你就开始有所收获了......
相关问答
学编程一般要几年?
[最佳回答]学编程一般需要一段时间的积累和不断学习,通常需要2-3年时间。因为编程需要掌握很多基础知识,如计算机基础、算法、数据结构等,这些知识需要不断加深和扩展,...
程序员要学多久?
[最佳回答]一般至少需要半年到一年左右,具体的学习时间根据大家的基础情况、学习方式和发展目标而定。例如作为0基础的小白,想要进入程序员行列,选择自学的方式学习编程...
对编程没接触过~0基础~要想学会编程要多长时间?-ZOL问答
但是要用一门语言做程序起码要2-3年的学习才可以,这期间不仅要学语言,还要学软件工程,算法,数据结构,重构,数据库,等等许多东西,等到能开发程序后,就要想编程的...
学成编程高手需要几年啊-ZOL问答
3条回答:【推荐答案】如果你要找一般的工作,一年多就可以,我就是学了一年多,参加了工作,工资靠你的技术,不是说学出来就是有好工资的。
编程学好要几年?
[最佳回答]如果是对于零基础的人来讲,编程要想学好的话,可能至少需要一到两年的时间。如果学习能力强的,学好编程预计需要七八个月的时间。
学一般编程需要多久?
[最佳回答]以专业培训的方式学习:在明确的课程安排下,一般需要6-8个月,想就业可以选择这种方式,更高效便捷;以自学的方式学习:由于各方面因素的影响,一般需要一年甚...
学编程要学几年?
[最佳回答]学习编程需要4个月左右,时间太短是学不会的,如果想学得深一点的话,需要学习2年左右。在进行学习的时候,必须要先把握最基础的知识,不然的话后期工作起来会...
编程从0开始学最少要几年?
[最佳回答]一般来说,掌握编程需要的时间至少需要几个月到几年不等。对于零基础的学习者,建议首先学习编程的基础知识,例如编程语言的语法、数据类型、变量、数组、函数...
编程需要学多久?
[最佳回答]如果你每天都拿出大把的时间来学习,那么两三个月就可以学会C或C++语言,不到半年时间就可以编写出一些软件。零基础。起码学习计算机相关知识1周、编程语言基...
学了几年编程可以应聘?
[最佳回答]主要看你是自学还是参加培训了,自学的话1年、2年都是可能的,参加培训的话,一般5/6个月就可以就业。主要还是看你的学习能力、每天投入的时间、解决问题的能力...