成为一名专业的程序员,无需上大学?[关闭]


16

最近,我被以前接受我的一所大学拒绝了,原因是我在外国读了一年高中,而该大学对承认在另一个国家接受的教育不感兴趣。因此,非常慷慨的奖学金已经枯竭,并且为教育提供资金是令人怀疑的。我也很犹豫要成为已经证明我认为是公然的仇外心理的系统的一部分。

我想做的是说“螺丝学院”,独自出击,做点神奇的事,让所有人赞叹,成为一个自制的百万富翁。现实情况是,我高中毕业了两周,我拥有相当于编程入门课程的自学经验(尽管我有学习和提高的欲望),但我仍然需要支付账单,我暗中怀疑任何雇主都会很难认真对待我。

据我了解,这是一个相当普遍的信念,即您可以不用学位就可以做到,但是像我这样的人是怎么做到的呢?如果我走进他们的办公室并说“我没有受过正规的教育,也没有最低的技能,但是我想工作并且想学习,请给我一份工作。”有人会认真对待我吗?


3
您为什么不上社区大学,然后转大学。这是获得学位的最便宜的途径。
davidk01 2011年

1
您可以在自己的国家/地区重做那一年的高中,然后为您打开所有常规途径吗?如果您第二次感到无聊,可以随时开始对那些怀疑会让您成为百万富翁的项目进行编程。但是在当今时代,亿万富翁更好。
约翰·K

2
您一定不能拒绝大学官员的拒绝,就好像拒绝了教授一样。教授通常只参与选拔研究生。如果我是您,我会礼貌地进行反击,与大学联系并询问他们,您将如何证明自己的能力9并实现目标。高中教育是由纳税人资助的,所以我会按照某人的建议再做一年。我也会考虑像别人说的那样去社区大学学习几年。问题是:您是否更珍惜时间或金钱?祝您好运!
Job

Answers:


27

我和你一直处于同一位置,我选择了你所说的“螺旋大学”之路。我热爱软件开发,除了基本的HS编程课程之外,还拥有C ++的爱好,并且梦想着。现在,我是专业的开发人员,所以我会给您我的经验。

上大学一年(我获得了技术剧院的全额奖学金)后,我发现我更喜欢软件而不是固定建筑。

1年级-我开始了自己的“自己的事”,其中包括支付租金和开发的桌面支持。为任何想要的人开发价格低廉的东西。回顾过去,我可能花了$ 1,000申请了$ 20,000。靠自己开始确实很糟糕,因为即使您确实有经验知道它是一个价值2万美元的应用程序,您也没有信誉要求它。最糟糕的是,我不知道我不知道什么,周围也没有其他开发人员。我创建的应用程序是维护方面的噩梦。我没有架构或设计模式方面的技能,所以我基本上完成了一些工作,并做了网络支持来支付账单。很多Taco Bell,以及“嗯,至少我不为这个男人工作”。我梦想着可以编写应用程序并走向世界,

第二年 -通过学习不要做的事情以及看着事情在我的脸上冒出来成为更好的开发人员。勉强获得桌面支持,学习服务器并制作网站。对于男人来说,这一定比做这件事容易,但是我没有真正的投资组合,所以,继续。

3年级-开始明白这一点。当我点击文件>新建项目时,我对要去的地方以及如何构建东西有一些模糊的想法。仍然选择错误的体系结构,Web服务似乎很酷,那么为什么不使用它们构建一切呢?需要计算器桌面应用程序吗?我将建立一个Web服务!开始招募一些客户,并一路成为IT专家和一些软件项目。我所做的一件事是使用Web服务创建了“异地备份”服务,因此我的梦想是当每个人还在交换磁带时成为“ Mozy”。宽带正变得司空见惯,所以我处于领先地位,这将成为我百万美元的想法。但是服务出现了问题(由于我缺乏架构技能),

四年级 -最终,客户相信我的长期项目。我做到了而又不会搞砸。该代码不是很好,但可以。开始涉足账单后,我开始与其他一些开发人员合作(伪造直到您成功,对吧?),甚至回答了一些Experts Exchange问​​题。哦耶。

5年级 -如果您现在还没有注意到,那么1年级的那些梦想仍然没有实现,因此开始有些沮丧。我有一些不错的东西,我已经成功地编写了一些东西,并取得了不错的发展动力,并且拥有可观的客户群。仍然不真正知道我不知道的东西,并达到收支平衡。

5至8年级 -我将把它们结合起来,因为它更多的是“做一个项目,在每个项目上学到一点,然后将经验带到下一个项目”。今天是八年级的中旬,直到过去的一两年,我才成为一名优秀的开发人员。第一年的那些梦想已经被其他人多次发明。万一您没有猜到,我也没有创造Mozy。

一路走来,我有了新的梦想和新的想法,有的很好,有的很恐怖。我现在拥有使它们实现的技能,其中有些正在发生,这令人兴奋。但是,我有一种感觉,如果我可以做一些不同的事情,我可以大大缩短这段旅程。

我不能说大学改变了这一旅程。我将其留给这个线程中的其他人。但是我会给出以下建议:

  1. 您需要与其他开发人员合作。我不知道这有多重要。您只有先看别人的代码或得到可怕的代码审查,才能知道不知道的内容。
  2. 在承担主要责任之前失败。如果您真的想独自出门,请在结婚,支付房租,孩子等之前尝试做。您会失败,并且会失败很多次。习惯并珍惜它,因为它是有史以来最好的体验。但是,当您花了所有时间和金钱在其中的杀手级应用程序没有一个客户时,仅您一个人就容易恢复。
  3. 自举绝对没有错。如果您具有网络技能,请在网络运营中心或服务台(在IT领域内)进行工作,并致力于在下班时间和周末成为更好的开发人员。与从事实际工作的人建立联系。稍后您将需要它们。
  4. 确保有125%的人喜欢软件开发。对软件的热情来自“百万富翁”部分,而不是相反。如果您对此没有热情,或者在打“新项目”时内心跳动不快,那就做些别的事情,并将其作为爱好。

我敢肯定我会继续,但是有趣的是,我在做这些梦之一时看到了这个问题,不得不回答这个问题。:) 祝好运。


6
作为一名自学成才的Web开发人员,我可以同意“您不知道自己不知道的内容”这一点特别有效。
本·斯蒂芬森

5
为“在承担主要责任之前失败” +1。我自学成才,并花了多年的时间在晚上从事自由项目,然后才担任专职职位。回顾过去,我不会改变任何事情,但是如果在某种程度上改变命运,我在过程中较早地遇到了我的太太,我知道我几个月不会结婚,那么80-100小时的工作周就不会太好关系。
DBlackborough

16

毫无疑问,上大学。

就我个人而言,我没有上大学就做到了(不是说我是百万富翁,但我在一家我热爱的公司里做得很好),但这是一条艰难的道路。最初,您在所有方面都处于落后状态。数学,算法,操作系统,你一个正规教育过程中得到的所有东西(和其中的一些,如微积分,是非常难学你的,即使访问之类的东西math.SE)。

高中刚毕业时,您也许可以进入质量保证部门,开始全力以赴。从QA到开发人员或工程师的道路可能是一个粗略的路线,因为对(通常是很差的)来自QA的人员试图进入开发道路的概括。

毫无学位地去做可行的,但是却非常困难,需要的运气和人脉与纯技巧一样多。

即使我热爱自己的工作并为自己的个人成就感到自豪,但我绝不会将其推荐给任何有能力并有能力通过学位课程学习的人。


+1我本人并没有上大学,也不早退学,当我在没有所需证书的情况下作为软件开发人员开始工作时,必须克服许多问题。但是,那条路让我像今天一样,也喜欢今天。我非常喜欢学习,即将开始大学学习(在另一个领域)!

3
我不同意。我专职从事没有学位的专业软件开发,我认为这完全取决于个人。我讨厌正规的,有条理的教育,并且更喜欢在完成工作的同时学习。我知道我从来没有能够通过大学做到这一点(尽管我的成绩已经达到了一个体面的水平),只是因为它是如此理论化,而且毫无意义。因此,如果您不是那种喜欢大学结构的人,并且您是一个自信的自谋职业(老实说,您应该是一名开发人员),那么大学就没有必要了。
本H

正规教育是一个球拍。正如Ben所说,除非您以学术身份工作,否则理论是毫无意义的。我真的无法理解人们对正规教育的迷恋,并花了4年的时间在其他30名学生中进行授课,而不是花那4年的时间应用您所学的知识。我们不是边做边学吗?不仅如此,为什么我要花4年学位,继承一笔沉重的债务,然后继续职业并为退休储蓄?为什么我不只是建立自己的公司?自己赚钱?使用我想使用的工具?就业的概念是可笑的。
Damien Roche

4

使用当前的简历,您将不会获得开发人员的工作,因此也不必担心。

如果您不能或不会去上大学,则必须自己获得一些经验。这是很难的方法,但是可以做到。移动应用程序是入门的好方法,因为您可以轻松地将产品展示在真实用户面前。为开源项目做贡献可能是另一种选择。或者只是写一些自己使用的东西。起初,您将不会因此而赚钱,至少不足以谋生-因此您可能还需要一份固定工作。密切注意获得廉价教育的机会;一些大学允许您不修学分而只支付常规学费的一小部分课程。

这样做几年,然后您就可以开始发送简历了。假设您仍然想以此为生。

祝好运。


3

嗯...这很难。我认为这确实取决于您作为一个人的天性。

如果您真的知道大约6或8本书中的内容,那么您将是一个非常扎实的开发人员(比大多数CS程序所生产的内容要严重多年)。认真对待基本原则;非常认真-就像认真对待宗教一样(KR可能是您的圣经)。

做小项目的想法很好。始终尝试提高自己的能力-选择几个生态系统并充分学习它们(1-在Linux上使用mysql和2表示ROR或Django; iOS / Objective C; 2.5。-放入jQuery / HTML)。

编辑---从我的头顶上方,我建议下面的列表(按〜顺序);我有9本,但一本是数学书,一本是脚本/ Java书,最后一本我认为是可选的。《 Joel on Software》中将涵盖几个主题。我认为这将使您成为一个非常强大的开发人员-我敢肯定其他人会不同意。

  1. C编程语言-Kerrigan和Ritchie-其他大多数书籍都是本文所提出问题的充实内容
  2. 用您选择的语言(Ruby,Python,PHP)或Java编写的一本好的脚本书
  3. 计算机系统-程序员的观点-这本书一直在奉献
  4. 离散数学及其应用-Epps(?)
  5. UNIX环境中的高级编程
  6. 机器学习/ AI书籍可能是模式识别和机器学习,也可以是专用网络书籍,例如TCP / IP,第1卷
  7. 设计模式或J2EE设计模式
  8. 算法设计-Kleinberg
  9. 了解Linux内核-可选

什么是KR?这是本书吗?
Ominus

2
@Ominus我相信他是指“C程序设计语言” - en.wikipedia.org/wiki/The_C_Programming_Language

@Glenn +1谢谢!@timpone当您说6或8本书时,您是否有一些想法或只是一般而言?如果您特别想些特定的书,我希望可以看到清单。谢谢。
Ominus

@Ominus就我个人而言,我想说的是与您使用的编程语言相关的任何书籍以及该问题的书籍(programmers.stackexchange.com/questions/870/…)。

1
@timpone:啊,错过了#7 :)是的,我们显然只是不同意而已(一些最佳的对话源于分歧:))
Demian Brecht

2

我最初是那些大学学院的开发人员之一。如今,即使我作为开发人员有一份不错的,高薪的工作,我也要完成大学学业。

我大约9岁时就开始玩计算机编程。在90年代,我为朋友创造了一些赚钱的网站,这为我提供了早期网络的第一手经验(我玩javascript,当CSS出现时我非常困惑,等等)。

在我十几岁的时候,我认为是时候真正地深入学习计算机编程了,所以我在互联网上搜索了每个程序员都应该知道的主题,然后我将所拥有的一切都花在了书本上。我买了一本关于离散数学的书,一本OS书籍和一本关于UNIX环境下C编程的书。

然后,我开始学习使用C ++进行面向对象的编程,并沿途学习了Python和Java,这使我获得了第一份工作(虽然薪水不高,但是我很快会离开这份工作,获得更好的工作)。

当我上大学时,我发现自己对此感到非常沮丧。除微积分,统计和形式语言等课程外;我几乎已经知道该课程涵盖的所有主题以及如何平衡大学,而且我的工作每天都在增加。

大学让我感到沮丧,以至于我退学了,决定学习自己需要的一切。因此,我再次购买了更多书籍,参加了开源项目,并不断调换工作,以便继续强迫自己学习新事物。

去年,我决定重返大学(尽管这仍然让我感到沮丧)。我决定完成大学的原因是我现在必须有机会,而且我不想后悔没有上大学。

因此,是的,您可以没有学位就可以担任软件开发人员,但是当您还是初学者时,您将必须学习很多知识,从事一些糟糕的工作,并向每位潜在的雇主展示您的知识,经验和真正的聪明才智(毕竟,您需要说服他雇用您,而不是其他拥有该CS学位的人。只要确保您了解数据结构,算法和算法分析,设计模式以及某些OS概念即可。

我对您的最终建议是:如果您负担得起,就应该上大学。相信我,现在您还不上高中就可以轻松得多,不必担心付账单。如果您不是很早就开始做开发人员,而不必上大学就行。如果您拥有学位但还不能很好地编码,那么人们会雇用您。现在,如果您没有学位但仍然不能很好地编码,那么您就不会被雇用。


1

如果您能上大学,它将为您带来更多便利,但这不是必需的。

关键是您可以指向并说“我做到了”。做到这一点的唯一方法是使自己从头开始。首先为“只需要程序员”的人做零工。也许看看eLance之类的地方。

您也可以编写和销售自己的软件。选择一些尚未在市场上找到好的解决方案的问题,然后编写一个解决该问题的程序。您将可以出售它。然后,您将具有一定的信誉。老实说,如果这是您的第一个实际项目,您可能会做得很糟糕,但是您会学到很多,如果有用的话,您仍然会出售副本。代码不必很漂亮。用户仅看到UI。

经验是关键。幸运的是,编程是您几乎不需要任何开销就可以开始的那些职业之一。只是要意识到前方还有很长的学习曲线。


0

雇主希望至少有两件事之一(或两者兼有):教育或实践经验。通常,获得教育是进入系统的最简单方法之一,您最终将开始获得实践经验。接受教育对雇主说,您会坚持一些困难的事情(有时可能看起来毫无用处,浪费时间)。这对他们来说很重要,因为无论您多么喜欢工作,工作永远不会变得轻松或有趣。他们想知道您会坚持在那里。

话虽如此,如果您要尝试概述的路线,则需要获得一些实践经验。我个人会建议您去创业(他们通常会对没有经验或没有经验的人承担风险)。要考虑的另一件事是找到一份任何工作(支付账单),然后花时间开发某种可以用作简历的项目。一旦有了少量的项目库,您就可以更好地与雇主打交道,并说“这就是我能做的……”。

我个人的建议是去上学。哪一个都没有关系,有了广泛可用且未使用的助学金和奖学金,有很多方法可以资助教育。最后,如果您要完成学业并获得学位,您可能会非常感激您坚持学习。


0

我已经高中毕业大约两年了。我已经从事过编程工作,只上了20或24个小时的大学。前两个学期后,我没有足够的金钱或时间去做。

我是怎么得到编程工作的?运气,基本上。但是,您可以增加幸运地被注意的几率。我被注意到的原因是因为我制作了一些小程序并向我的朋友展示了。.那就是我,被称为“计算机专家”,与实际的技术支持人员相比,更多的老师问我如何修理计算机。好吧,我朋友的父亲之一拥有一家小型软件公司...

我给你的建议是不要停止做事。学习和制作。进行任何人想要的项目。您感兴趣的任何事情,或者有人甚至付给您一角钱的事情。也为开源项目做出贡献。团队合作的环境很好。

另外,在StackOverflow等网站上广为人知。我从StackOverflow上的Stack Exchange查询中获得了第二份工作机会,该查询基本上显示了俄克拉荷马州的每个人..我是名誉最高的人。


0

很好,很好的答案。我也会介绍自己的经验。

从5岁或6岁(TI BASIC,有人吗?)开始,我就一直以某种形式进行编程。1995年左右,我进入Linux并开始自学C和Perl。我什至从未在高中上过编程课程,因为那时他们正在教Visual Basic和Visual C ++,而我对这两种语言都没有兴趣。

上大学了。CS 101是“编程简介(Visual Basic)”。成为哲学专业。

辍学了。在CompUSA工作,开始做自由网页开发。

在咖啡店或技术支持类工作中工作,自己编写代码...从事自由职业者和开源编程。

我的第一个“真正的”编码工作(标题中带有“程序员”)来自裙带关系。一个朋友要离开一个职位,他们要他找到他的替补。

现在我可以定期获得录取通知,我的职业生涯看起来不错,我不必担心这个程度。但是我要回过头来学习一些CS课程……即使计算机科学==现实世界编程,您也将学习算法和(希望)设计模式,这些算法和设计模式将使您不必做一些愚蠢的事情并重新发明轮子。因此上学不是必需的……但有帮助。

我主要要说的是,即使您必须上公立学校甚至社区大学,也要尽可能多地学习。在业余时间继续黑客攻击开源项目(正如他们所说,GitHub是新的履历表),而且如果有更吸引人的事情出现,您不必完成。您不必毕业就可以在您的简历FWIW上记入信用计数和GPA。

无论如何,祝您好运。如果您真的有编写好的代码的热情,那就是关键。但是,对于大多数公司而言,大学有点像“遗留系统依赖”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.