学习编程要有一定的计算机基础知识吗?他们之间有关系吗?

学编程一定要上大学?美国一半码农都没有计算机学位
[摘要]其中一个重要原因是,速成的在线课程和培训班正在兴起。你可以在实践中学习,而不必等待几年时间才能毕业。
TNW中文站 4月24日报道去年,美国的程序员问答网站Stack Overflow曾向用户提问,他们是否有计算机专业的学位。在这项“2015年开发者调查”中,26086名程序员中有近一半回答称,他们没有计算机科学学位。这是否意味着,不需要大学学位就可以成为程序员?简而言之,答案是肯定的。不过,对非专业出身的人士来说,程序员之路要相对困难。人力资源机构Robert Half Technology高级总监约翰·里德(John Reed)表示,许多知名科技公司用大学学历作为门槛来过滤求职者简历。例如,()不会面试没有计算机科学学位的入门级工程师。如果情况如此,那么为何许多程序员没有计算机科学学位?一个重要的外部因素是大学学费正日益高涨。例如在美国,最便宜的公立两年制大学每年学费平均为11438美元,而最昂贵的选择,即私立的非盈利四年制大学每年学费平均为43921美元。这些费用中还没有包括生活费。其他因素也在造成影响。一方面,速成的在线课程和培训班正在兴起。你可以在实践中学习,而不必等待几年时间才能毕业。因此,如果你没有计算机学位,同时又决定成为程序员,那么以下是几点建议:1.不要闭门造车请找个地方,与其他程序员一同工作,而无论你们是否从事同一个项目。独自一人编程所面临的最严重挑战在于,关于你不清楚的细节,你将毫无头绪。只有将自己的代码与他人的代码进行比较,你才能知道哪里出了问题。IEEE的巴里·博姆(Barry Boehm)的一项研究显示,无论是否采用结对编程模式,与他人一同进行代码评审相对于独立工作将可以多发现60%的代码错误。众创空间或许可以给你提供这样的场所。在这里,你可以与有着类似追求的人一同工作。2.良好的关系网比优秀的编程能力更重要闭门造车还会带来一个坏处,这就是你无法在职业生涯初期建立自己的关系网。这样的关系网能在日后带来巨大帮助。通过这样的关系,其他程序员可以评估你的技能,帮你逐步提高自己的能力。3.自学大学计算机专业的内容云文件共享创业公司Egnyte高级产品总监格雷格·诺斯塔特(Greg Neustaetter)承认,如果没有大学计算机专业的背景,那么将会出现一些严重的知识缺失。这种学习的好处在于,如果你掌握了6到8本书的基本知识,那么就会成为一名基本功扎实的程序员。推荐的学科包括离散数学的应用、设计模式或J2EE设计模式,以及算法设计等。如果你参加在线课程或培训班,那么建议是从头开始学习,除非你有过一定的编程经验,或是对技术有着天生的直觉。自顶向下的模式“将程序员置于应用或框架中,鼓励他们将自己的知识拼接在其中”。而自底向上的模式则是“从基础开始,逐步培养能力”。对入门者来说,自底向上的方式值得推荐。因为这将厘清许多概念。例如,关于Ruby on Rails的教程就存在不清晰的概念。这本书的第一章就提到了MVC模型,但却没有介绍一些基本概念,例如面向对象的编程。4.持续练习无论是否有学位,多参与项目不仅对未来的职业生涯发展很重要,也是帮你积累更多经验的有效方式。如果你不打算拿到计算机科学学位,那么这一点尤为重要。这些项目将成为你的主要经历,可以展示你的能力。一种很好的起步方式是开发移动应用。这使你方便地展示最终成果,并从用户那里直接获得反馈。如果你考虑开发移动应用,那么建议是学习iOS平台的Swift或Objective C,Android平台的Java,以及Windows Phone平台的C#、VB或JavaScript。此外,你也可以使用Phonegap和Titanium等技术,开发运行在所有三大平台上的应用。这些技术基于HTML、CSS和JavaScript,开发的应用可以在各处运行。你还可以通过GitHub参与开源项目。5.找一个副业最开始从事编程时,你可能无法获得足够的收入去保障生活。即使你关于某款应用的想法价值2万美元,但由于你没有成功经历,因此很少有人会相信。换句话说,你需要找个副业去谋生,而这样的副业最好也能有助于你培养能力。根据编程水平的不同,你可以参与创业公司,从事质量保障工作,或是从事自由职业。创业公司通常愿意冒险,雇佣一些没有太多经验的人士。不过对于“足够好”的程序员,它们有自己的标准。尽管你不一定需要开发出复杂的、可维护的代码,但至少需要证明,你开发的东西能被用起来。如果你做不到这一点,那么可以从事质量保障的工作,这能帮你加强技术能力。质量保障的工作内容是找出产品中的问题,并建议如何修改。这也是程序员解决问题时的核心基础。从事这类工作将有助于增强你对技术能力的自信心,而大学学位对这类工作而言并非必需的。最后一个选择是自由职业,只要职业能满足你的生活需求。类似Upwork的网站列举了许多与技术相关的职位,包括网页开发、移动开发,以及设计和营销等。(李玮)【美国The Next Web作品的中文相关权益归腾讯公司独家所有。未经授权,不得转载、摘编等。】
[责任编辑:honestsun]
您认为这篇文章与"新一网(08008.HK)"相关度高吗?
Copyright & 1998 - 2017 Tencent. All Rights Reserved
还能输入140字中国领先的IT技术网站
51CTO旗下网站
人人都要学编程?编程到底有没有前途?
这个问题第一次被提出来,是在20世纪80年代,那时,个人电脑方兴未艾。后来,软件产业的发展似乎已经给出了明确而否定的答案。然而现如今,它带着猛烈的势头再一次出现在人们面前。这一次,我们必须认真来对待它。
作者:来源:界面| 13:32
这个问题第一次被提出来,是在20世纪80年代,那时,个人电脑方兴未艾。后来,软件产业的发展似乎已经给出了明确而否定的答案。然而现如今,它带着猛烈的势头再一次出现在人们面前。这一次,我们必须认真来对待它。
采访对象:Serge Abiteboul (信息管理学者)
巴黎高科评论:计算机素养在今天越来越重要。对学生和社会而言,其中的利害关系如何?
Serge Abiteboul:很简单,信息技术是今天这个数字世界的核心。要理解这个世界,了解它的基本构造并参与其中,计算机技能至关重要。而且从经济竞争力角度来看,我们确实需要掌握计算机技术和科学,这就如同在19、20世纪掌握数学和物理学一样重要。
美国总统奥巴马亲自呼吁美国年轻人学习编程,包括几乎所有日常应用和机器程序。亲自编写程序和请别人替我们写这两条道路之间,从宏观角度来看,后者不是不可以,但意味着丧失了主动权,意味着在创新竞赛中弃权,因为创新和编写代码这两件事已日益变得密不可分。
从个人角度,不会写程序也会令你在程序面前非常被动,除了依据使用手册按部就班,毫无自主权可言。作为网站站长,如果有些功能不尽人意,除非你能搞明白实现这些功能那10行代码,并能写出两行代码来改变它们,否则,你就永远是一个技术的奴隶。
一个人想掌控技术,随心所欲,就必须了解诸如云和电子投票之类的知识,必须能独立编写小的手机app或网站代码。这与你从事什么职业毫无关系,而且任何人都可以掌握。计算机技能并不比写英文报告或设计物流系统更难。关键是真正参与到其中,扯下其神秘面纱。这是我们大家的挑战,而不是企业IT部门的专利。
人们总是把计算与数字化混淆,它们的区别和相互关系究竟是什么?
这是一个数字化的世界,在这个世界里,有计算机科学。人们阅读电子书而不是纸质书籍;课堂上使用的是数字显示屏而不是粉笔与黑板;人们的相机和汽车都已经数字化;孩子们刚学打字就知道如何使用拼写检查,刚学算术就可以使用Excel,这些都是数字化工具,但我们仍要学习有关书写和计数的知识。人们能够熟练使用谷歌或Facebook,但不知道谷歌搜索背后复杂的算法和Fackbook是如何保护隐私的。
计算机和编程是数字世界的核心。信息科学开发出软件来让整个世界数字化成为可能。它是一种教育、一门科学和一门艺术&&而不仅仅是赋予人们以工具和操作。人们一次又一次地将使用数字工具和编程相混淆,其实两者毫无关系。
所以,信息科学绝对有必要进入课堂,与物理、化学和数学平起平坐。但它又有很强的技术属性,你必须学会自己编程、使用计算机来解决问题。这是计算机科学必不可缺的一个方面。
我们应该设立一门独立的IT课,还是根据它跨学科的特点,将其结合在其他学科的学习当中?
注意不要造成混淆。学习数字化工具意味着不同的课程(建筑设计工具、数据库和搜索工具、科学计算工具等)。但计算机科学本身是一个独立领域。只有一种算法思维。不管是你编写程序来计算莎士比亚或普鲁斯特作品中某些词出现的频率,还是用来计算矩阵乘法,基本流程都是一样的(排序操作、测试、循环等)。只有通过这种科学的训练,人们才能根据不同领域和情况来选择不同的编程项目。
那么,教授内容都包括哪些呢?
计算机科学提供了一种全新的思维方式:算法思维,即如何用程序来解决问题。算法思维的概念已经存在了很长时间。当你进行加法、乘法或除法等计算,你就是在学习算法。但是对智能工具和应用的编程要复杂得多。你必须掌握更抽象的概念如loop&&允许特定任务的迭代。
然而,IT确实很实用。这门科学的美妙之处在于,你可以付诸实践,你刚刚学到的东西马上就可以用来编写小而简单的程序。即使在小学里,孩子们利用Scratch这样的编程语言就可以从小熟悉编程。问题的关键是了解计算思维这种帮助我们理解周边世界的基础性思维,并通过编写小的程序来不断发展它。
因此,人们可以在很小的时候就开始学习?
每个人都应该从小开始,因为儿童最容易接受新的想法。在&知某数,识某文&之外,我们还应该加上&写代码&。它必将进入到国家基础教育的核心层面。显然,IT不仅是编程,就像数学不仅仅是代数,文学不仅仅是写作。但编程仍然是计算机科学的基础,需要让人们从小学习。
学校是这种教育的最佳途径吗? 或者它需要通过社会来完成?
很多学校都开始教孩子们编程,学校外也有许多小组、俱乐部、协会等,组织很多又酷又好玩儿的活动。然而,即使这些校外活动很有用,我们必须认识到,要让所有儿童得到公平受教育的机会,还是需要尽快将这些课程整合进常规的学校教育。
那些已经离开学校但没有受过任何计算机教育的人呢?
他们可以在职学习相关知识技能,通过各种协会、在线培训,甚至用游戏来学习编程。工程人士必须现在就开始学习。此外,还必须对其他科目的老师进行培训。
通常情况下,我们可以设想三个重要的校内学习时段。首先要在小学阶段熟悉主要概念,学习算法和计算思维的基础知识,并通过游戏和Scratch这类编程语言,让人们动手体验;中学应真正成为每个公民学习计算机技术基础知识的地方,包括实际的算法编程、信息架构、硬件等。这不是完全式教育,但至少要将其提升到与中学物理、生物相同的地位。为学生以后的专业学习和接受更高级知识打好基础。
到了大学,我们可以为学生量身定做计算机课程。选择理工科的学生可能会对计算的数学应用更感兴趣,而走上人文道路的学生可将更多精力放在文本索引、语言学等方面。今天职业学校里的年轻人已经开始将更多的时间分配在学习计算机上。事实上正是在这些学校,你会意识到学习计算机的重要性和必要性。
具体来说,不发达国家能够从全球的计算机文化蓬勃发展中得到什么启示?
一些国家已经解决了迎面而来的挑战。总体而言,发达国家在这方面非常先进。英国已决定将计算机考试加入高中毕业考试来推广计算机教育。在德国,地方政府掌握着这方面的权力和责任,巴伐利亚州就很积极,并因此受益,它们甚至在将计算机科学纳入课程体系之前,就开始大规模聘用拥有IT技能的教师。一些新兴国家如以色列和韩国已在这方面展开竞赛。今天,计算机课程正在全球遍地开花,而且受教育者年龄也越来越小。【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条外电头条外电头条
24H热文一周话题本月最赞
讲师:1人学习过
讲师:25人学习过
讲师:0人学习过
精选博文论坛热帖下载排行
本书着重介绍标准C++语言,即1998年由ISO正式推出的关于C++的国际性标准版本。
本书从最基础的编程语言概念讲起,共分6篇24章。前4篇完整...
订阅51CTO邮刊一个没有任何计算机基础的小白如何学习编程?
老办法先搜索在提问 老办法先搜索在提问 发布于
2 条评论分享收藏 赞同 19 反对 vczh,专业造轮子
老办法先搜索在提问老办法先搜索在提问
vczh,专业造轮子
搜索相关文章:
(责任编辑:51自学网)
------分隔线----------------------------
中国投资咨询网版权及免责声明 1、凡本网注明"来源:***(非中国投资咨询网)"的作品,...
在本周开盘首日,纸黄金价格就开始就走了下探回升的路线,美盘则再去测试237上周高点...
日liningning111 内容为广告/垃圾,我要举报! 特聘专家具有协助内容审核...
日小摔哥 内容为广告/垃圾,我要举报! 特聘专家具有协助内容审核的特权 ...
日后街琳琳 内容为广告/垃圾,我要举报! 特聘专家具有协助内容审核的特...
日★LL破浪☆ 内容为广告/垃圾,我要举报! 特聘专家具有协助内容审核...

我要回帖

 

随机推荐