• 学编程一定要上大学?美国一半码农都没有计算机学位


    学编程一定要上大学?美国一半码农都没有计算机学位


          美国的程序员问答网站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.持续练习

         无论是否有学位,多参与项目不仅对未来的职业生涯发展很重要,也是帮你积累更多经验的有效方式。

    如果你不打算拿到计算机科学学位,那么这一点尤为重要。这些项目将成为你的主要经历,可以展示你的能力。一种很好的起步方式是开发移动应用。这使你方便地展示最终成果,并从用户那里直接获得反馈。



      

         此外,你也可以使用Phonegap和Titanium等技术,开发运行在所有三大平台上的应用。这些技术基于HTML、开发的应用可以在各处运行。

         你还可以通过GitHub参与开源项目。

         5.找一个副业

         最开始从事编程时,你可能无法获得足够的收入去保障生活。即使你关于某款应用的想法价值2万美元,但由于你没有成功经历,因此很少有人会相信。换句话说,你需要找个副业去谋生,而这样的副业最好也能有助于你培养能力。

         根据编程水平的不同,你可以参与创业公司,从事质量保障工作,或是从事自由职业。

         创业公司通常愿意冒险,雇佣一些没有太多经验的人士。不过对于“足够好”的程序员,它们有自己的标准。尽管你不一定需要开发出复杂的、可维护的代码,但至少需要证明,你开发的东西能被用起来。

         如果你做不到这一点,那么可以从事质量保障的工作,这能帮你加强技术能力。质量保障的工作内容是找出产品中的问题,并建议如何修改。这也是程序员解决问题时的核心基础。从事这类工作将有助于增强你对技术能力的自信心,而大学学位对这类工作而言并非必需的。

         最后一个选择是自由职业,只要职业能满足你的生活需求。类似Upwork的网站列举了许多与技术相关的职位,包括网页开发、,以及设计和营销等。

  • 相关阅读:
    马云:员工的离职原因--转载
    zookeeper源码分析之五服务端(集群leader)处理请求流程
    技术高手如何炼成?--转自知乎
    一次上线事故经验
    zookeeper源码分析之四服务端(单机)处理请求流程
    AngularJS2.0 quick start——其和typescript结合需要额外依赖
    typescript 入门例子 Hello world——ts就是一个宿主机语言
    Kubernetes——自动扩展容器!假设你突然需要增加你的应用;你只需要告诉deployment一个新的 pod 副本总数即可
    Kubernetes——基于容器技术的分布式架构领先方案,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩
    华为FusionSphere概述——计算资源、存储资源、网络资源的虚拟化,同时对这些虚拟资源进行集中调度和管理
  • 原文地址:https://www.cnblogs.com/new0801/p/6146658.html
Copyright © 2020-2023  润新知