Tornando-se um programador profissional, sem ir para a faculdade? [fechadas]

16

Recentemente, fui rejeitado por uma faculdade que havia me aceito anteriormente, alegando que eu havia passado um ano no ensino médio em um país estrangeiro e a faculdade não estava interessada em reconhecer a educação recebida em outra nação. Por causa disso, uma bolsa de estudos muito generosa secou e o financiamento de uma educação é duvidoso. Também hesito em fazer parte de um sistema que demonstrou o que considero uma xenofobia flagrante.

O que eu quero fazer é dizer "Screw college", atacar por conta própria e fazer algo incrível, impressionar a todos e tornar-se um milionário. A realidade da situação é que, após duas semanas do ensino médio, tenho o equivalente a um curso de Introdução à programação que vale a pena de experiência autodidata (embora eu seja motivada a aprender e melhorar), ainda preciso pagar contas, e tenho uma suspeita furtiva de que qualquer empregador terá dificuldade em me levar a sério.

Pelo que entendi, é uma crença bastante popular que você pode fazer isso sem um diploma, mas como alguém como eu faz isso? Alguém me levaria a sério se eu entrasse no escritório deles e dissesse "Não tenho educação formal e um mínimo de habilidades, mas quero trabalhar e quero aprender. Por favor, me dê um emprego".

Kenis Regan
fonte
3
Por que você não estuda na faculdade comunitária e depois se transfere para uma universidade? É a rota mais barata para obter um diploma.
Davidk01 29/05
1
Você pode refazer o ano do ensino médio em seu próprio país e ter todas as vias regulares abertas para você? Se você está entediado pela segunda vez, sempre pode começar a programar os projetos que você suspeita que o tornarão um milionário. No entanto, nos dias de hoje e idade, melhor ir bilionário.
John K
2
você não deve ser rejeitado por um funcionário burocrático da faculdade, como se fosse de um professor. Os professores geralmente estão envolvidos apenas na escolha dos alunos de pós-graduação. Se eu fosse você, reagiria educadamente, entrando em contato com a faculdade e perguntando o que seria necessário para você demonstrar sua capacidade e depois entregar). O ensino médio é financiado pelos contribuintes, então eu faria outro ano como alguém sugeriu. eu também consideraria ir para a faculdade comunitária por alguns anos, como alguém disse. A questão é: você valoriza mais tempo ou dinheiro? Boa sorte para você!
Job

Respostas:

27

Eu estive na mesma posição que você, e escolhi o caminho da 'faculdade de parafuso' de que você fala. Eu adorava o desenvolvimento de software, um hobby em C ++ em cima de um curso básico de programação em HS e sonhos. Agora eu sou um desenvolvedor profissional, então vou lhe contar minha experiência.

Depois de estudar na faculdade por 1 ano (eu tinha uma bolsa de estudos completa para teatro técnico), percebi que gostava mais de software do que de construção de cenários.

Ano 1- Comecei minha própria coisa, que consistia em suporte de desktop para pagar aluguel e desenvolvimento. Desenvolver qualquer coisa que eu pudesse fazer, para quem quisesse, por uma fração do preço. Olhando para trás, eu provavelmente estava solicitando US $ 20.000 por US $ 1.000. Começar por conta própria é realmente péssimo, porque mesmo se você teve a experiência de saber que é um aplicativo de US $ 20 mil, não tem credibilidade para solicitá-lo. E o pior de tudo, não tenho idéia do que não sei, e nenhum outro desenvolvedor ao meu redor. Criei aplicativos que eram pesadelos de manutenção. Eu não tinha habilidade em arquitetura ou padrões de design, então basicamente criei coisas que explodiram e fiz o suporte da rede para pagar contas. Muitos Taco Bell, misturados com "bem, pelo menos não estou trabalhando para o homem". Eu tenho alguns sonhos de aplicativos para escrever e sair para o mundo,

Ano 2 - Tornando-se um desenvolvedor um pouco melhor, aprendendo o que não fazer e vendo as coisas explodirem na minha cara. Mal conseguindo suporte no desktop, aprendendo servidores e criando sites. Deve ser mais fácil do que isso funcionar para o homem, mas eu não tenho um portfólio real, então continue.

Ano 3- Começando a entender isso. Quando clico em Arquivo> Novo projeto, tenho uma vaga idéia de onde quero ir e como construir as coisas. Ainda escolhendo as arquiteturas erradas, os serviços da Web parecem legais, então por que não criar TUDO com eles? Precisa de um aplicativo de calculadora para desktop? Eu vou construir um serviço web! Começando a captar alguns clientes e sendo o cara de TI e alguns projetos de software ao longo do caminho. Uma coisa que fiz foi criar um serviço de backup externo usando os serviços da Web, então meu sonho era ser um 'Mozy' enquanto todo mundo ainda trocava fitas. A banda larga estava se tornando comum, então eu estava à frente da curva, e essa seria minha ideia de um milhão de dólares. Mas o serviço teve problemas (devido à minha falta de habilidades de arquitetura),

Ano 4 - Finalmente, um cliente acredita em mim para um projeto de longo prazo. Consigo fazer isso sem estragar tudo; o código não é ótimo, mas funciona. Começando a ficar em dia com as contas, começo a trabalhar com alguns outros desenvolvedores (fingir até você conseguir, certo?) E até mesmo a responder algumas perguntas de especialistas em troca. Oh sim.

Ano 5 - Se você não tinha notado até agora, esses sonhos no Ano 1 ainda não estão escritos, então isso está começando a ficar um pouco deprimente. Eu tenho um portfólio decente de coisas que escrevi com sucesso, tive um momento decente e uma base de clientes respeitável. Ainda não sei o que eu não sei e estou empolgado.

Anos 5 - 8 - Vou combiná-los, já que é mais o mesmo de "fazer um projeto, aprender um pouco sobre cada um, levar essa experiência para a próxima". Hoje é no meio do ano 8 e é apenas nos últimos dois anos que me tornei um bom desenvolvedor. Esses sonhos no primeiro ano já foram inventados muitas vezes por outra pessoa. Caso você não tenha adivinhado, eu não criei o Mozy.

Ao longo do caminho, tive novos sonhos e novas idéias, e algumas foram boas, outras foram horríveis. Agora tenho as habilidades necessárias para fazê-las acontecer, e algumas delas estão acontecendo, e é emocionante. No entanto, tenho a sensação de que, se tivesse feito as coisas de maneira diferente, poderia ter encurtado bastante essa jornada.

Não posso falar de quão diferente a faculdade muda essa jornada; Vou deixar isso para outras pessoas neste tópico. Mas os conselhos que darei:

  1. Você precisa trabalhar com outros desenvolvedores. Não percebi o quanto isso era importante. Você não sabe o que não sabe até olhar o código de outra pessoa ou obter uma horrível revisão de código.
  2. Falhe antes de ter grandes responsabilidades. Se você realmente quer sair por conta própria, tente fazê-lo antes de se casar, ter um pagamento em casa, filhos, etc. Você falhará e falhará muitas vezes. Acostume-se e valorize, pois é a melhor experiência de todos os tempos. Mas quando seu aplicativo matador em que você gastou todo o seu tempo e dinheiro não tem um único cliente, é muito mais fácil recuperar quando é apenas você.
  3. Não há absolutamente nada de errado com o bootstrapping. Se você possui habilidades em rede, trabalhe em um Centro de Operações de Rede ou em um suporte técnico (algo dentro da área de TI) e trabalhe para se tornar um desenvolvedor melhor fora do horário comercial e nos fins de semana. Faça conexões com pessoas em empregos reais. Você precisará deles mais tarde.
  4. Tenha 125% de certeza de que você ama o desenvolvimento de software. A paixão pelo software vem antes da parte 'milionária', e não o contrário. Se você não tem paixão por isso, ou seu coração não começa a bater mais rápido quando você bate no New Project, faça outra coisa e mantenha isso como um hobby.

Tenho certeza de que poderia continuar, mas o engraçado é que vi essa pergunta enquanto trabalhava em um desses sonhos e tive que responder a esse. :) Boa sorte.

Brandon
fonte
6
Como desenvolvedor web autodidata, posso concordar que o ponto "Você não sabe o que não sabe" é particularmente válido.
Ben Stephenson
5
+1 em "Falha antes de ter grandes responsabilidades". Sou autodidata e passei anos trabalhando em projetos freelancers à noite antes de conseguir um cargo em período integral. Olhando para trás, eu não mudaria nada, mas se, por alguma reviravolta do destino, eu conheci minha senhora no início do processo, eu sei que não iria me casar em alguns meses, semanas de 80 a 100 horas não funcionam muito bem com um relacionamento.
DBlackborough
16

Sem dúvida, vá para a faculdade.

Pessoalmente, fiz isso sem faculdade (sem dizer que sou milionário, mas tenho um bom trabalho com uma empresa para a qual amo trabalhar), mas é um caminho difícil . Inicialmente, você está atrasado em tudo . Matemática, algoritmos, sistemas operacionais, tudo o que você obtém durante uma educação formal (e algumas das quais, por exemplo, Cálculo, são muito difíceis de aprender, mesmo com acesso a coisas como math.SE).

Depois de terminar o colegial, você poderá entrar em um departamento de controle de qualidade e começar a absorver tudo o que puder. O caminho do controle de qualidade para o desenvolvedor ou engenheiro pode ser difícil, já que existe uma generalização (às vezes ruim) feita sobre as pessoas que vêm do controle de qualidade tentando entrar no caminho do desenvolvedor.

Ir sem diploma é factível, mas tremendamente difícil e requer tanta sorte e trabalho em rede quanto pura habilidade.

Mesmo que eu amo o que faço e estou orgulhoso de minhas realizações pessoais, eu não recomendo a qualquer um que tem a capacidade e está em uma boa posição para passar por um programa de graduação.

Demian Brecht
fonte
+1 Eu não fui para a faculdade, abandonei a escola cedo e tive que superar muitos problemas quando comecei como desenvolvedor de software sem as credenciais necessárias. No entanto, esse caminho me fez como estou hoje, e gosto de como estou hoje! Gosto muito de aprender que estou prestes a começar os estudos universitários (em outro campo)!
3
Discordo. Entrei em desenvolvimento de software profissional em tempo integral, sem um diploma, e acho que tudo depende do indivíduo. Eu odeio educação formal e estruturada e prefiro aprender enquanto faço as coisas. Eu sei que nunca teria conseguido fazer a faculdade (mesmo tendo as notas para obter uma nota decente), simplesmente porque é tudo muito teórico e, bem, inútil. Portanto, se você não é o tipo de pessoa que vai gostar da estrutura da faculdade e é um autodidata confiante (que você deve ser um desenvolvedor para ser honesto), a faculdade não é necessária.
Ben H.
A educação formal é uma raquete. A teoria, como Ben disse, não faz sentido, a menos que você esteja trabalhando em uma capacidade acadêmica. Eu realmente não consigo entender a obsessão das pessoas com a educação formal e passar quatro anos sendo lecionado entre outros 30 estudantes, em vez de passar esses quatro anos aplicando o que você está aprendendo. Não aprendemos fazendo? Não é só isso, por que eu passaria 4 anos em um diploma, herdaria uma dívida esmagadora, para seguir uma carreira e economizar para a aposentadoria? Por que eu não apenas construí minha própria empresa? Ganhar meu próprio dinheiro? Use as ferramentas que eu quero usar? O conceito de emprego é risível.
Damien Roche
4

Com seu currículo atual, você não conseguirá um emprego como desenvolvedor, portanto, nem se preocupe.

Se você não pode ou não quer ir para a faculdade, terá que ter alguma experiência por conta própria. É uma maneira difícil de fazer isso, mas pode ser feito. Aplicativos móveis são uma boa maneira de começar, pois você pode colocar seu produto na frente de usuários reais com muita facilidade. Contribuir para projetos de código aberto pode ser outra opção. Ou apenas escreva algo para seu próprio uso. No começo, você não ganhará dinheiro com isso, pelo menos não o suficiente para ganhar a vida - então provavelmente precisará de um emprego regular. Fique de olho nas oportunidades de obter educação barata; algumas faculdades permitem que você faça cursos sem crédito por uma fração das mensalidades regulares.

Faça isso por alguns anos e, em seguida, você poderá começar a enviar currículos. Supondo que você ainda queira fazer essa merda para viver.

Boa sorte.

Mike Baranczak
fonte
3

Hmm ... isso é difícil. Eu acho que realmente depende da sua natureza como pessoa.

Se você realmente conhecesse o conteúdo em cerca de 6 ou 8 livros, seria um desenvolvedor muito sólido (anos além do que está sendo produzido pela maioria dos programas de CS - sério). Leve os fundamentos a sério; muito a sério - como uma religião a sério (KR pode ser sua Bíblia).

A ideia de realizar pequenos projetos é boa. Sempre tente melhorar a si mesmo - escolha alguns ecossistemas e os aprenda bem (1 - diga ROR ou Django no linux com mysql e 2. iOS / Objective C; 2.5. - jogue em jQuery / HTML).

editar --- em cima da minha cabeça, eu sugeriria a lista abaixo (nesta ordem); Eu tenho 9, mas um é um livro de matemática, um é um livro de scripts / Java e o último que eu consideraria opcional. Há alguns tópicos além disso que seriam abordados no Joel on Software. Eu acho que isso faria de você um desenvolvedor muito forte - tenho certeza que outros discordariam.

  1. A linguagem de programação C - Kerrigan e Ritchie - a maioria dos outros livros é um aprofundamento das questões levantadas aqui
  2. um bom livro de scripts no idioma de sua escolha (Ruby, Python, PHP) ou livro Java
  3. Sistemas de computador - uma perspectiva dos programadores - este livro continua dando e dando
  4. Matemática Discreta Com Aplicações - Epps (?)
  5. Programação avançada no ambiente UNIX
  6. Um livro de aprendizado de máquina / AI talvez Reconhecimento de padrões e aprendizado de máquina OU um livro de rede dedicado, como o TCP / IP ilustrado vol # 1
  7. Padrões de Design ou Padrões de Design J2EE
  8. Projeto de algoritmo - Kleinberg
  9. Entendendo o kernel do Linux - opcional
timpone
fonte
O que é KR? Isso é um livro?
Ominus 29/05
2
@Ominus Eu acredito que ele está se referindo à "Linguagem de programação C" - en.wikipedia.org/wiki/The_C_Programming_Language
@Glenn +1 Obrigado! @timpone quando você diz 6 ou 8 livros, você tem alguns em mente ou, de um modo geral? Se você está pensando especificamente em livros específicos, eu adoraria ver a lista. Obrigado.
Ominus 29/05
@Ominus Pessoalmente, eu diria que todos os livros relacionados às suas linguagens de programação que você usa e os livros desta pergunta ( programmers.stackexchange.com/questions/870/… ) também são bons.
1
@timpone: Ah, perdeu # 7 :) E sim, nós, obviamente, apenas discordo que é bom (algumas das melhores conversas nascem de desacordos :))
Demian Brecht
2

Comecei como um desses desenvolvedores de faculdades. Atualmente estou terminando a faculdade, apesar de ter um trabalho bom e bem remunerado como desenvolvedor.

Comecei a brincar com programação de computadores quando tinha cerca de 9 anos de idade. Nos anos 90, ganhei dinheiro criando sites para amigos e isso me deu uma experiência em primeira mão com a web inicial (joguei com javascript, fiquei bastante confuso quando o CSS apareceu, etc.).

Quando eu era adolescente, decidi que era hora de realmente aprender a programação de computadores em profundidade. Pesquisei na Internet os tópicos que todo programador deveria conhecer e depois gastei tudo o que tinha em livros. Comprei um livro sobre Matemática Discreta, um livro do SO e um livro sobre programação C em ambientes UNIX.

Em seguida, comecei a aprender programação orientada a objetos com C ++ e peguei Python e Java ao longo do caminho e isso me deu meu primeiro emprego (não pagou bem, mas logo deixaria esse trabalho por um muito melhor).

Quando cheguei à faculdade, fiquei realmente frustrado com isso. Exceto para aulas como Cálculo, Estatística e Linguagens Formais; Eu já conhecia todos os tópicos abordados no curso e equilibrava a faculdade e meu trabalho estava ficando cada dia mais difícil.

A faculdade me deixou tão frustrada que desisti e decidi aprender tudo o que precisava sozinha. Então, novamente, comprei mais livros, participei de projetos de código aberto e continuei trocando de trabalho, para continuar me forçando a aprender coisas novas.

No ano passado, decidi voltar para a faculdade (embora isso ainda me frustre). A razão pela qual decidi terminar a faculdade é que agora tenho oportunidade e não quero me arrepender de nunca ter ido à faculdade.

Portanto, sim, você pode trabalhar como desenvolvedor de software sem um diploma, mas terá que estudar muito, fazer alguns trabalhos ruins quando ainda é iniciante e mostrar a todos os empregadores em potencial que você tem conhecimento, experiência e é realmente inteligente ( Afinal, você precisa convencê-lo a contratar você e não o outro cara que tem esse diploma de CS). Apenas certifique-se de entender estruturas de dados, algoritmos e análise de algoritmos, padrões de design e alguns conceitos de SO.

Meu conselho final para você: se você puder, deve ir para a faculdade. Confie em mim, será muito mais fácil agora, enquanto você ainda está no colegial e não precisa se preocupar em pagar as contas. Ser desenvolvedor sem ir para a faculdade só funciona se você começar muito cedo. As pessoas vão contratá-lo se você tiver um diploma, mas ainda não conseguir codificar bem, agora, se você não tiver um diploma e ainda não puder codificar, você não será contratado.

Rafael
fonte
1

Se você pode entrar na universidade, será mais fácil para você, mas não é necessário.

A chave é ter coisas que você pode apontar e dizer: "Eu fiz isso". A única maneira de fazer isso é trabalhar de baixo para cima. Comece fazendo trabalhos estranhos para pessoas que "precisam apenas de um programador". Talvez confira lugares como o eLance .

Você também pode escrever seu próprio software e vendê-lo. Escolha um problema que ainda não tenha uma boa solução no mercado e escreva um programa que resolva esse problema. Você poderá vendê-lo. Então você terá alguma credibilidade. Honestamente, você provavelmente fará um trabalho de baixa qualidade se for o seu primeiro projeto real, mas aprenderá muito e ainda venderá cópias, se for útil. O código não precisa ser bonito. Os usuários veem apenas a interface do usuário.

Experiência é a chave. Felizmente, programar é uma daquelas profissões em que você quase não precisa de nenhuma sobrecarga para prosseguir. Apenas perceba que há uma longa curva de aprendizado pela frente.

Scott Whitlock
fonte
0

Os empregadores desejam pelo menos uma das duas coisas (ou ambas): educação ou experiência prática. Normalmente, obter uma educação é uma das maneiras mais fáceis de entrar no sistema, onde você finalmente começará a ganhar experiência prática. A obtenção de uma educação diz a um empregador que você se apegará a algo que é difícil (e que às vezes pode parecer inútil e que é uma perda de tempo). Isso é importante para eles, porque o trabalho, não importa o quanto você goste, nunca será fácil ou divertido o tempo todo. Eles querem saber que você vai ficar lá.

Dito isto, se você tentar a rota descrita, precisará obter alguma experiência prática. Pessoalmente, eu recomendaria olhar para startups (elas geralmente correm um pouco mais de risco em alguém com pouca ou nenhuma experiência). Outra coisa a considerar é conseguir um emprego de qualquer tipo (para pagar as contas) e, em seguida, dedicar algum tempo a desenvolver projetos de algum tipo que você possa usar como um currículo. Depois de ter um pequeno arsenal de projetos, você estaria em uma posição muito melhor para abordar os empregadores e dizer "Eis o que eu posso fazer ...".

Minha recomendação pessoal seria ir à escola. Não importa muito qual deles, e com subsídios e bolsas de estudo amplamente disponíveis e subutilizados, existem muitas maneiras de financiar uma educação. No final, você provavelmente ficará muito agradecido por ter permanecido na escola se terminar e se formar.

Kenneth
fonte
0

Estou no ensino médio há cerca de 2 anos. Eu já tenho um emprego em programação e levei apenas cerca de 20 ou 24 horas de faculdade. Eu não tinha dinheiro ou tempo suficiente para fazê-lo depois dos dois primeiros semestres.

Como consegui meu emprego em programação? Sorte, basicamente. Mas você pode aumentar suas chances de ser notado com sorte. A razão pela qual fui notado foi por causa de alguns pequenos programas paralelos que fiz e mostrei aos meus amigos. Isso e eu era conhecido como "O cara do computador", com mais professores me perguntando como consertar o computador do que o cara do suporte técnico. Bem, o pai de um amigo tinha uma pequena empresa de software ...

O conselho que darei é que não pare de fazer as coisas. Aprenda e faça. Faça qualquer projeto que alguém queira. Qualquer coisa interessante para você, ou qualquer coisa que alguém lhe pagaria um centavo. Contribua para projetos de código aberto também. Um ambiente de equipe é bom.

Além disso, seja conhecido em um site como o StackOverflow. Recebi minha segunda oferta de emprego em uma consulta do Stack Exchange no StackOverflow que basicamente mostrava a todos em Oklahoma .. e eu era a pessoa com a melhor classificação em reputação.

Earlz
fonte
0

Ótimas, ótimas respostas aqui. Vou jogar minha própria experiência também.

Eu tenho programado de uma forma ou de outra desde os 5 ou 6 anos (TI BASIC, alguém?) Em 1995, mais ou menos, entrei no Linux e comecei a me ensinar C e Perl. Eu nunca fiz um curso de programação no ensino médio, porque naquele momento eles estavam ensinando Visual Basic e Visual C ++, e eu também não tinha interesse.

Fui para a faculdade. O CS 101 foi "Introdução à programação (Visual Basic)". Tornou-se um major de Filosofia.

Abandonou a faculdade. Trabalhou na CompUSA, começou a fazer desenvolvimento web freelancer.

Trabalhei em cafeterias ou empregos do tipo suporte técnico, continuei codificando por conta própria ... fazendo programação freelancer e de código aberto.

Meu primeiro trabalho de codificação "real" (com "programador" no título) veio do nepotismo. Um amigo estava deixando uma posição e eles pediram para ele encontrar o substituto.

Agora, recebo ofertas regularmente, minha carreira parece boa, não estou me preocupando com esse diploma. Mas voltarei a participar de alguns desses cursos de CS ... Embora a ciência da computação! = Programação no mundo real, você aprenda algoritmos e (espero) padrões de design que o impedirão de fazer coisas estúpidas e reinventar a roda. Portanto, a escola não é necessária ... mas ajuda.

Principalmente, eu diria que, mesmo que você tenha que frequentar uma escola estadual ou mesmo uma faculdade comunitária, vá e aprenda o máximo que puder. Continue hackeando projetos de código aberto no seu tempo livre (o GitHub é o novo currículo, como eles dizem), e se algo mais atraente aparecer ... você não precisa terminar. Você não precisa se formar para colocar uma contagem de crédito e GPA em seu currículo, FWIW.

De qualquer forma, boa sorte. Se você realmente tem paixão por escrever um bom código, essa é a chave. Mas a faculdade é uma espécie de 'dependência de sistema legado' para a maioria das empresas.

Jason Lewis
fonte