非计算机科班出身,如何成为一名技术牛人?

来源:互联网 发布:mac 照片所在文件夹 编辑:程序博客网 时间:2024/04/25 07:49

本文为翻译文章,原文地址:http://thenextweb.com/insider/2016/04/23/dont-need-go-college-anymore-programmer/



去年,程序员问答网站Stack Ovreflow对它所有的用户是否有计算机科学学位做了一个调查。

2015开发者调查结果出炉。26,086开发者中的近半数回应并没有计算机科学学位。

这是否意味着你不需要大学学位而成为一名程序员呢?简单的回答,是。但很显然的是在没有计算机科学学位的情况下,要成为一 名程序员的路要艰难多了。

John Reed,劳务中介公司Robert Half的高级行政主管说,许多科技公司将大学教育作为一个淘汰候选人的初始标准,这仍然是一 个行之有效的方法。

例如,谷歌不会将没有计算机学位的人士作为任何工程师职位的候选人。

如果是这样的话,为什么很多人没有大学学位。一个主要的外部因素就是高昂的大学学费。

例如,在美国最便宜的选择是公众两年大学费用,平均11438美元/年;最昂贵的选择,私人非营利性四年制大学,成本约43921美元/ 年,不包括生活费。

也有其他因素。一是在线课程和训练营的爆发,让你短期内把教义付诸实践,而不必等待数年毕业。

所以,如果你决定采取非传统路线而成为一名程序员,这里有一些建议给你。


1、不要独自工作

找到一个地方,你可以用其他程序员一起工作,无论你们是否从事同一项目。
最坏的情况就是当你独自编码的时候,当遇到你所问题的时会不知所措。但当你将自己的代码与别人的比较之后你就会发现你的代 码问题在哪里。

Barry Boehm作了一项电气电子工程师的调研,发现同其他人做代码审查,不管他们是否是结对工作,能够多发现高达60%的bug比起 独自工作的人。

协作办公区可能为您提供这种类型的好处,在那里你可以与志同道合的人一起工作。您可以使用协作办公空间目录来找到一个你所在 的地的协作办公区。


2、良好的人际关系比编程更重要

另一个独自工作的负面影响就是,在职业生涯中你将会付出更高的代价去建议人际关系。

当你和优秀的程序员建立良好的关系后,他们会对你的技能和你的搭档有一个评估,并帮助你提高编程技能。


3、弥补你因为没有计算机学位的缺失

Greg Neustaetter, 一个文件云共享公司的主管承认,在一个拥有计算机学位的人,不太可能在知识上面有太大的差距。

阅读的经验法则是,如果你掌握了六到八本书的基础知识,你将是一个坚实的开发人员。

一些推荐的书,从离散数学与应用程序,设计模式或J2EE设计模式,算法设计等。

在线课程或训练营,建议你采取循序渐进的方法,除非你有一定的编程经验或对自然科学技术的突出天赋。

而自顶向下的方法是将学习者“扔在一个应用程序或框架,并鼓励他们把知识的碎片在一起”,自底向上的方法”从基础知识开始,随着时间的推移慢慢地构建知识。”

自底向上的方法是适合初学者,因为它最大限度地减少概念不清,对于那些理所当然的使用自顶向下方法学习者来说。

其中一个不清楚的概念,例如,在Ruby on Rails从书中。它开始第一章的讲概念模型-视图-控制器设计,但并没有解释它的基础-面向对象编程。


4、保持创造

有计算机学位与否,项目不仅对你未来的职业生涯很重要,而且能帮助你学到更多知识和获得更多经验。

如果你并没有计划获得一个计算机学位,这一点将更加重要来作为你的技能展示。开始你自己的项目的一个好方法是通过创建移动应用程序。这是因为你可以轻松的将你的产品呈现给终端用户,作为回报,直接从用户接收反馈。

如果你计划做你的第一款移动应用,我建议你学习Swift或者Object C做iOSga v ,Java做Android开发,C#、VB或者Javascript做Windows Phone开发。

另一个替代方法是使用 Phonegap或Titanium等技术来创建一个应用程序可以运行在所有三个主要平台。这些技术允许您编写使用HTML、CSS和Javascript,在本地运行您的应用程序。


你也可以在Github上贡献你的开源代码,或者仅仅为了学到知识,建议自己有用的库。


5、拥有一个科技方面的兼职

不用说,首次建立你自己的程序不会有人为你买单。甚至应用程序的想法如果你有20000美元,你不能要求这个价格,因为你没有足够的可信度。


换句话说,你需要一个兼职,来增加你的收入,最好还可以改善你的编程技能。


根据你的编程技能高低,你可以选择去创业,从事质量保证(QA),或者自由职业者。

创业公司通常更愿意承担风险和雇佣很少或根本没有实践经验的人。然而,他们也有一个边界,来确定是否是他们认为的一个“足够好”的程序员。


虽然你不需要构建坚实的和可维护的代码,您需要至少证明你可以构建工作的东西。例如,创建某个特征的模型,用你的潜在力量。

如果你无法做到这些,一份QA的工作也可以帮你提高技能。


在QA工作需要识别产品的问题和升级与修复,这也是解决编程问题的一个核心基础(分解问题和系统的调试)。


在QA工作的好处是只要你对你的技术技能有信心,一个正式的大学学位不是必需的。


最后的选择是自由职业,任何工作,只要它可以提升你的收入。以Upwork这样的网站为例,列出了各种各样的科技工作,从Web和移动开发到设计和营销。

1 0