Codificação bootcamp vs grau de ciência da computação

Meus pensamentos sobre isso são um tanto incomuns, porque parte do objetivo do Codesmith é preencher a lacuna entre um diploma de CS e um campo de inicialização de codificação. Você pode fazer isso trazendo as partes mais impactantes de um diploma de CS para o formato bootcamp - especialmente a qualidade da pedagogia e a profundidade do conhecimento desenvolvido em um diploma - e ainda tem todos os benefícios das tecnologias contemporâneas, suporte de carreira e comunidade.

Portanto, essa análise é um pouco diferente - mas espero que isso se aplique em diferentes graus a muitas escolas de codificação mais tradicionais também.

-

Vi quatro objetivos diferentes para as pessoas que decidem se inscrever no Codesmith e no curso de Ciência da Computação

  1. Aprofundar-se na disciplina de ciência da computação, com foco em pesquisa científica
  2. Faça parte de uma comunidade empreendedora de construtores e criadores
  3. O crescimento cultural e emocional de quatro anos com todos da sua idade na faculdade
  4. Prepare-se para um trabalho como engenheiro de software

Aqui estão meus pensamentos sobre como os bootcamps e os graus CS se comparam a cada um desses objetivos

1. Ciência da computação como disciplina de pesquisa

Uma das partes mais gratificantes da faculdade é deixar sua curiosidade intelectual levá-lo aos limites de uma disciplina. Embora as escolas de codificação avançadas ensinem ciência da computação, seu foco não está na construção de conhecimentos em aspectos inovadores da ciência da computação

Veredicto: Licenciatura em Ciência da Computação

Embora observe: eu realmente acredito que é uma parte poderosa de ser um grande engenheiro de software se tornar especialista em uma área de programação ou ciência da computação - especialmente se você está tentando conseguir um emprego de desenvolvedor intermediário / sênior com experiência prévia limitada (que é a situação em que a maioria dos graduados de Codesmith está)

As empresas adoram contratar desenvolvedores em forma de "t" - alguém que tenha experiência em algum aspecto da programação (a raiz do "T" é a experiência). Ele fornece evidências de que você (a) pode se tornar um especialista e (b) você é um ótimo complemento para uma equipe quando pode ser o especialista residente em alguma coisa.

Como você pode ser em forma de t? Para se tornar um especialista, você provavelmente precisa pressionar os limites de um campo. Esse é o objetivo do

Projeto de Produção

na codesmith (mas você pode fazer isso de forma independente) - crie algo para outros desenvolvedores que resolvem um problema original nesse campo - por exemplo, orquestração do AWS Lambda, introspecção do Apache Kafka ou teste de desempenho do Node. Há um

monte de exemplos aqui

. Enquanto eles não abrem novos caminhos na ciência da computação, eles abrem novos caminhos na programação.

É uma das razões pelas quais eu não amo o termo 'bootcamp' e não costumamos usá-lo no Codemsith, porque indica um programa rápido e intenso que prepara as pessoas para trabalhos iniciantes / de desenvolvimento júnior, em oposição a esse entendimento mais profundo que prepara graduados para empregos de nível médio / sênior.

2. Faça parte de uma comunidade empreendedora de construtores e criadores

Fui juiz em vários hackathons de faculdades ao longo dos anos e adoro a grandeza de alguns dos hackathons (a PennApps tem um orçamento de mais de US $ 200.000)

O desafio dos hackers nas faculdades é que as tecnologias ensinadas nos cursos de ciência da computação geralmente não são aquelas usadas na construção de produtos reais. Os projetos Codesmith e o hackathon são projetados para criar a cultura empresarial da faculdade de 'aprender' construindo e criando - mas com as ferramentas que realmente permitem que você faça isso de verdade.

E então, com toda a emoção de conseguir tração. Alguns dos produtos lançados no Codesmith: WebDSP foram apresentados no Google I / O no palco principal (conferência anual de desenvolvedores do Google), a Swell, que era uma tendência no ProductHunt e no Reactide, recebeu 7000 estrelas do GitHub

Veredicto: Escola de Codificação / Bootcamp

3. Crescimento cultural e emocional de 4 anos na faculdade

O crescimento cultural emocional na faculdade é uma parte subvalorizada, mas especial da experiência. Você é exposto a pessoas de todo o mundo, passando por uma experiência e missão compartilhadas em um estágio semelhante da vida.

O crescimento emocional e cultural acontece melhor quando você está enfrentando desafios com os outros. Essa é uma das coisas mais interessantes sobre os programas de codificação - a oportunidade de trabalhar com pessoas de todas as origens (sentado em um grupo, haverá um PhD em Stanford Physics ao lado de um ex-músico, ao lado de um pai que volta para a força de trabalho depois de criar seus filhos)

Temos um jantar de formatura no final do programa, onde cada graduado faz um discurso. Ver dois graduados recentes, ambos de 18 anos, com os pais de ambos os lados, levantar-se e descrever a jornada de passar pelo Codesmith e o crescimento que tiveram como indivíduos foi extraordinário - ambos receberam ofertas de uma empresa a 5 minutos da High School em Los Angeles ( ambos em torno do resultado médio da pós-graduação Codesmith)

Veredicto: Igual

4. Consiga um emprego como engenheiro de software

Isso pode parecer óbvio a favor da escola de codificação, mas não é tão simples quanto “as faculdades ensinam as ferramentas erradas”.

Há uma grande vantagem do diploma de faculdade e ciência da computação aqui. As empresas de tecnologia desejam contratar constantemente mudanças, mas o que permanece consistente é a demanda por solução de problemas, a capacidade de aprender novas tecnologias, a capacidade de se comunicar e os princípios subjacentes à programação e à ciência da computação.

As faculdades e os graus de excelência se destacam no desenvolvimento de, o que chamo de 'capacidades' - e as capacidades nunca ficam desatualizadas.

Dito isto, você não pode desenvolver a capacidade de alguém na solução de problemas e na comunicação técnica (mais sobre isso

aqui

) no vácuo - você faz isso enquanto aprende linguagens / estruturas / ferramentas de programação. Portanto, esses podem ser o valor mais contemporâneo e alto (o Codesmith ensina Node, React / Redux, AWS, TravisCI, Docker, SQL, etc.). As faculdades não fazem isso e isso resulta em resultados - o salário médio dos graus de Ciência da Computação no sistema da Universidade da Califórnia é de ~ $ 85k. O salário médio para

Os formandos da Codesmith em LA são US $ 106k e NY $ 112k

Também se trata de obsessão pelo desenvolvimento de carreira. Lidero workshops ao vivo na Codesmith, onde vivemos, edito uma mensagem de inscrição, assino pessoalmente sempre que recomeço, faço entrevistas simuladas ao vivo para apresentar suas narrativas técnicas. Adorei o apoio de professores de Oxford e Harvard, mas sempre me perguntei por que o melhor conselho era em fóruns on-line e ex-alunos e não em consultores de carreira. É esse problema que o programa de suporte à contratação da Codesmith (e também acredito que outros programas) está tentando resolver.

Como observação lateral, a Codesmith é seletiva - e é por isso que existem vários workshops gratuitos, incluindo

'Como ser contratado'

, para ajudar pessoas que não participam do programa.

Veredicto: Código de bootcamp

Conclusão

Se seu objetivo é trabalhar como engenheiro de software e fazer parte de uma comunidade motivada, mas solidária, um campo de inicialização de codificação parece ter vencido. Mas lembre-se de que muitas dessas peças podem ser obtidas na comunidade mais ampla de desenvolvedores ou de reuniões (sem uma escola de programação!). Qualquer que seja o caminho a seguir, concentre-se em desenvolver capacidades de resolução de problemas e comunicação técnica e não apenas em aprender 'estruturas' e observar as

Vídeo "Como ser contratado"

:)

Tudo isso dito, se seu maior objetivo é a pesquisa acadêmica - a faculdade é de longe a melhor opção (mas provavelmente esse não é seu objetivo)

Esta é uma pergunta que eu estava me perguntando há um ano atrás. Eu era especialista em ciência da computação, mas não estava aprendendo habilidades que pudesse aplicar a coisas do mundo real. Então, decidi tirar um ano de folga da escola e frequentar a Starter School, um programa de nove meses em Chicago que ensina programação, design e desenvolvimento de produtos.

Em retrospecto, não me arrependo de deixar a escola. Aqui estão algumas razões do porquê:

1. Os programas de CS ensinam principalmente teoria, o que é realmente interessante, mas não aplicável à maioria das coisas que você construirá em sua carreira.

2. Bootcamps são eficientes. Eles precisam levá-lo para fora da porta em três, ou no caso da Starter School, em nove meses. Eles cortam toda a porcaria e ensinam as habilidades difíceis do desenvolvimento de software.

3. No bootcamp, você não é motivado por notas ou diploma, mas pelas habilidades que aprende. Um diploma significa que você tem um certo nível de competência e ética no trabalho, mas nada mais.

4. Custo. Obter um diploma de CS de quatro anos pode custar cerca de 200.000 dólares. Os bootcamps variam de 10.000 a 36.000.

Durante os nove meses que passei na Starter School, aprendi não apenas as habilidades básicas necessárias para começar a trabalhar como freelancer ou para conseguir um emprego de desenvolvedor, mas como pensar em problemas e ser pragmático. Também aprendi como apresentar uma ideia de negócio, como comercializar um produto de software, por que uma empresa deveria obter capital de risco ou por que não. A lista continua. Aprender essas habilidades foi muito mais valioso para mim do que o que estava fazendo na escola. Além disso, existem muitas fontes online para aprender sobre ciência da computação. Você pode essencialmente criar um diploma de CS de quatro anos com cursos on-line. Aprender coisas que você aprende em bootcamps, acredito, é melhor aprendido pessoalmente.

Dito isto, a faculdade pode ser uma ótima opção. Se você quer ser um cientista da computação ou um engenheiro de kernel do Linux, deve obter um diploma em CS. Se você deseja iniciar sua própria consultoria de desenvolvimento / design, um bootcamp provavelmente seria um bom ajuste. Se você escolhe a faculdade ou um acampamento, você obtém o que quer.

Nenhuma resposta nova foi adicionada a isso há mais de um ano, portanto, no interesse de manter essa relevância, acrescentarei a minha.

Primeiro, eu estou no Reino Unido, então o mercado de trabalho e o sistema educacional são diferentes aqui, então minha resposta provavelmente será diferente das outras nos EUA.

Segundo, sim, eu corro o curso do tipo bootcamp. No entanto, também trabalho como desenvolvedor sênior e estou envolvido no recrutamento de uma empresa de tecnologia (Mayden). Nossa Academia não é uma máquina com fins lucrativos, mas um meio para atingir um fim, produzir desenvolvedores qualificados para nós e para as empresas locais com as quais trabalhamos.

Então, para a questão em questão. Cerca de três anos atrás, a Mayden estava lutando para recrutar desenvolvedores. Isso não se limitou a Mayden, mas é um problema nacional no Reino Unido no momento. Pesquisamos o problema, inclusive conversando com outras empresas, e descobrimos o motivo. A universidade é muito cara e longa para produzir os números de que o Reino Unido precisa. Não há apenas poucos graduados, mas o conteúdo do diploma está 10 a 15 anos desatualizado. Portanto, as empresas estavam tendo que investir em esquemas de treinamento de seis meses para acelerar seus graduados, o que obviamente estava afetando negativamente seus desenvolvedores atuais. Isso ainda está acontecendo em todo o Reino Unido.

Decidimos que já bastava, o sistema de ensino universitário não estava fazendo o que estava lá, por isso faríamos. Passamos quase um ano, trabalhando com outras empresas para desenvolver um currículo que todos precisávamos. Tentamos conversar com os unuversities para mostrar a eles suas falhas, mas foram recebidos apenas com hostilidade acadêmica.

Em 2015, a Mayden Academy foi iniciada para uma avaliação. Treinamos apenas 6 desenvolvedores para atender nossa necessidade imediata. Claro que nunca o fizemos antes, mas um curso ministrado por desenvolvedores reais tinha que ser melhor do que as coisas que a unis estava fazendo, quanto ensino real realmente acontece lá de qualquer maneira, a maior parte é auto-didata. Com certeza, nossos graduados estavam muito além do de qualquer graduado da universidade, nenhum treinamento adicional requer, imediatamente um membro útil da nossa equipe.

Então, fizemos novamente, com mais 6 vagas preenchidas com algumas das empresas com as quais estávamos trabalhando. Isso despertou o interesse de mais empresas que queriam que fizéssemos o mesmo e assim nasceu a Mayden Academy.

Você perguntou se um diploma ou um bootcamp é a melhor maneira de programar. Bem, não posso falar em nenhum outro curso, mas tenho certeza de que a história acima responde à sua pergunta. Pelo menos no Reino Unido.

Por que alguém gastaria entre 50 e 60 mil libras em três anos de educação fora do prazo de validade, quando pode gastar 8 mil e conseguir um emprego em quatro meses.

Nota lateral: uma das outras respostas fala sobre graduados em computação que entendem melhor as tecnologias subjacentes. Isto é absolutamente verdade. Mas se você tem um desenvolvedor que pode ser imediatamente colocado em funcionamento, desde que supervisionado por um desenvolvedor sênior (o que qualquer júnior deve ser), isso não será um problema. As poucas vezes em que precisam de apoio não superam os 2,5 anos de trabalho que você obtém deles, em vez de estarem unidos.

Essa é uma pergunta antiga, mas estou respondendo porque me sinto muito bem com isso.

Se a oportunidade estiver disponível, eu selecionaria 100%, sem falhas, o grau de Ciência da Computação.

  • Acreditação. As universidades são obrigadas a aderir a rigorosos requisitos locais, regionais e nacionais, que são meticulosamente estabelecidos por conselhos de alguns dos melhores engenheiros de software e cientistas da computação do país. Seu currículo é baseado em pessoas que são especialistas absolutamente importantes, geralmente com fortes laços com a indústria (dependendo do seu estado, é claro), que estão trabalhando rotineiramente com entidades corporativas sobre como preparar melhor seus alunos para a força de trabalho. O credenciamento mais importante para o CS é chamado ABET Accreditation - é uma organização que existe desde 1932. A esmagadora maioria dos bootcamps não possui um padrão nacional ao qual seja forçada a aderir sob jurisdição e regulamentação federal - as universidades possuem. ESTE É UM NEGÓCIO INCRÍVEL. Isso me diz se o que você aprendeu vale a pena ou não.
  • Os Bootcamps de codificação são 100% destinados a obter um lucro máximo em tempo recorde. Obviamente, isso não significa que todos os campos de treinamento de codificação estão tentando fazer circular as pessoas e tirá-las de lá. Se eles não pudessem produzir desenvolvedores capazes de codificar e serem contratados, as pessoas não contratariam os desenvolvedores, certo? A diferença é uma questão de tempo e reputação. Se Princeton começa a produzir engenheiros de lixo, eles têm centenas de legados que estão arruinando. As universidades apostam toda a sua reputação na competência de seus ex-alunos. Isso é incrivelmente importante. Se a codificação do Bootcamp X, Y, Z falhar, eles declararão falência, serão executados e você nunca será mais sábio. Não estou dizendo que todas as faculdades se importam, mas os relacionamentos que você constrói com seus professores e a universidade têm uma probabilidade muito maior de durar a vida do que um cara que você paga de 10 a 20 mil por seis semanas.
  • Relacionamentos. Eu não estou brincando. Esta é provavelmente a razão mais importante pela qual as pessoas vão para a faculdade, apesar do tremendo valor de ter seu diploma. Na faculdade, você sofre com um grupo de pessoas que percebe que deseja ajudar mais tarde na vida. Esse sofrimento mútuo é uma experiência de união. Você não ganhará o mesmo relacionamento com as pessoas que conheceu por seis meses, como sofreria com um programa de engenharia credenciado e coeso que se estende por cinco anos (oops).
  • Codificando Bootcamps ensina como codificar no sentido prático, mas eles não fazem de você um engenheiro. Isso é importante porque se tornar um engenheiro de software é mais do que escrever código. Com um diploma em CS, você estará cursando Cálculo 1/2/3, Álgebra Linear ou Combinatória Enumerativa, Sistemas Operacionais, Compiladores e Sistemas e Arquitetura de Computadores. Esses são todos os tópicos * crucialmente * importantes no design do software para entender como o software * realmente funciona * e a relação do software em muitos domínios. É difícil entender a injeção de dependência e a importância dos gráficos acíclicos direcionados sem entender como um compilador funciona para começar. Quando você não sabe como um assembler, vinculador e carregador funcionam, provavelmente não terá idéia de como corrigir um bug nativo do compilador que está usando. Isso é raro? Absolutamente. Isso aconteceu comigo? Eu queria arrancar meu cabelo. Não consigo imaginar tentar depurar algo assim sem saber como fazê-lo.
  • Alguns recrutadores o passarão por hábito. É difícil, mas é verdade. Isso não significa que todos os codificadores de bootcamp são ruins. Isso significa que a maioria dos codificadores de treinamento não são cientistas da computação nem engenheiros - e esse é um componente crítico para muitas empresas. Portanto, a menos que o campo de codificação seja extremamente conhecido na área, você provavelmente não está obtendo muita tração. Mas o que acontece se você for demitido por algum motivo de BS e o próximo grupo de empresas a que você se candidatar não souber sobre esse campo de inicialização também? Você acha que eles vão dar um salto de fé no destaque da avaliação de CTO ou Crunchbase de um bootcamp? A resposta é provavelmente não. A maioria dos Bootcamps não tem o relacionamento, ou eu odeio colocar dessa maneira, “influência” para garantir empregos em qualquer lugar, exceto em lugares em que seus * fundadores * têm relações comerciais. E uma empresa que não está na bolha? Essas empresas definitivamente apostariam em Stanford. Eu teria extrema cautela ao escolher qual organização atestará sua competência. Não parece grande coisa - idealmente, você pode mostrar seu talento na entrevista. O problema é que, se eu não souber quem é essa organização, você provavelmente não receberá a entrevista, a menos que tenha alguns projetos fenomenais para me mostrar.
  • Você provavelmente terá promoção bloqueada. Uma amiga minha foi para Schlumberger depois de se formar em arte. Eles pagaram 95k. Ela saiu três anos depois para obter seu mestrado, porque sentia que havia uma tonelada de fundamentos que lhe faltavam e que estava sendo repassada em promoções por causa disso.
  • As pessoas que ensinam os Bootcamps provavelmente se formaram. Este é um ponto muito mais fraco - mas isso não é um pouco estranho? Parece que a única maneira que eles teriam as qualificações para decidir qual material você pode pular para ser um codificador mínimo básico provavelmente exigiria um diploma para determinar qual é o mínimo básico. O que quero dizer é que o item de bilhete de maior valor é o seu diploma. Existe uma pilha fundamental de conhecimento especializado que impede que você seja a pessoa que dirige o campo de treinamento em vez de ser um produto do campo de treinamento. Isso não significa que * ninguém * de um campo de treinamento jamais será aprovado em alguém com um diploma. Talvez você nem se importe com esse tipo de trajetória ou ambição - tudo bem. Só estou dizendo que isso acontece * com muito menos frequência * e você está no caminho menos do que um campo de jogo do que um campo de treinamento lhe dirá.
  • O caminho mais fácil nem sempre é o melhor. Esta é provavelmente a parte mais importante desta resposta. Passei cinco anos cansativos em minha graduação e me formei com um GPA abismal. Eu legitimamente pensei que era estúpido. Mas isso me preparou para o fato de que nunca me senti tão envergonhado como quando fui para a graduação e acabei não tendo meu diploma no tubo na graduação. Acontece que eu havia falhado em um curso de Computação Gráfica (literalmente a turma mais difícil da minha vida) e acabei tendo um quinto ano. Mas você sabe o que isso fez? Isso me tornou responsável e, a partir daquele dia, nunca me senti tão imponente quanto quando estava tentando me formar. As empresas nos primeiros anos (e em algumas empresas, todos os anos) são uma piada em comparação com a graduação - não consigo imaginar como é fácil comparar com a pós-graduação. Existem ferramentas que fazem todo o trabalho para você, depuradores que diagnosticam quase tudo e equipes e suítes inteiras dedicadas a resolver seus problemas quando você não sabe o que está fazendo. As pessoas abordam “aprender a usar ferramentas” como uma grande vantagem para o Bootcamps - isso é uma piada, se eu já ouvi uma. Sim, leva tempo para aprender a usar o VCS 2019, o Jira, o Trello, o Git, o Webhooks, o Tortoise SVN, o Asana e literalmente qualquer outra ferramenta Enterprise, mas, comparados ao seu curso de graduação, são piadas absolutas.

Em suma:

Se você deseja aprender a codificar, precisa fazê-lo com um orçamento e deseja uma abordagem prática para aprender, os campos de treinamento são bons. Se você deseja uma compreensão intuitiva de software, sistemas de computador e a capacidade de desenvolver software, independentemente do domínio ou plataforma, você definitivamente deve ir para a universidade. Isso não quer dizer que você não possa fazer isso com um campo de treinamento de codificação, mas é incrivelmente improvável.

Estudei CS em uma universidade de primeira linha e agora corro

Reator de corte - o grau de CS para o século XXI

. Eu voto no bootcamp para todos os pragmáticos e para a maioria dos entusiastas do conhecimento. Aqui está o porquê:

  • Três meses, não quatro anos. $ 10-20k, não $ 50- $ 200k. O resultado que você deseja de um diploma de CS - uma base sólida para uma carreira em engenharia de software, uma capacidade de criar software incrível e que muda o mundo, um trabalho bem remunerado, um grupo de colegas cheio de pessoas brilhantes - está disponível em custo dramaticamente mais barato em termos de tempo / dólar.
  • Bootcamps são mais eficazes, por razões óbvias. Os programas de CS nas universidades adaptaram o formato tradicional da universidade para ensinar as pessoas a codificar. Palestras, tarefas domésticas, notas: funciona para a sociologia, certo? Aqui está o problema: durante a minha carreira de graduação, nunca escrevi código na mesma sala que um instrutor. Nunca aprendi a usar ferramentas padrão da indústria, como controle de versão e desenvolvimento orientado a testes, que são 1) habilidades críticas para o trabalho e 2) ferramentas educacionais fenomenais que promovem lições avançadas em engenharia de software. Nunca programei uma vez - um dos exercícios educacionais que sempre obtém as melhores notas dos graduados em RH em nossa página do Yelp. Não aprendi nada sobre a idade de ouro que está acontecendo em São Francisco. Não fiz uma única entrevista simulada (ou, de fato, tenho alguma idéia do que uma entrevista de engenharia de software possa consistir). Eu poderia continuar aqui, mas basta dizer que nenhum ser humano competente jamais projetou o currículo de CS: você não poderia chegar a esse ponto com um esforço consistente e inteligente de especialistas, mas apenas com a evolução acidental que partiu de um processo inadequado. modelo.
  • Quando você se formar na faculdade, você poderá estar ultrapassando os limites tecnológicos na vanguarda do seu campo. Os graduados do Hack Reactor já estão escrevendo livros, falando em conferências e ganhando prêmios de US $ 30 mil em hackathons com campos lotados. Iniciamos as operações há um ano e meio, o que significa que nossos primeiros graduados estariam no meio da graduação se tivessem escolhido esse caminho. Eu não acredito que eles estejam cheios de arrependimento.
  • Empiricamente, os especialistas em CS que fazem um bootcamp durante o verão optam por abandonar seu programa de CS em vez de voltar para a faculdade. Isso ocorre porque empresas incríveis oferecem empregos bem remunerados para ajudar a contribuir para o futuro. Por exemplo, um de nossos alunos recebeu uma bolsa de estudos integral em Yale, mas se recusou a retornar ao segundo ano de universidade porque teve a chance de ajudar a construir uma estrutura de JS em mudança do mundo (enquanto aprendia mais do que gostaria) na faculdade e receber seis dígitos). Só tivemos um aluno de CS voltando à faculdade depois de se formar.
  • Os Bootcamps não (precisam) pular conteúdo crítico. Apenas trinta por cento da minha graduação teve a ver com codificação (incluindo matemática relacionada à codificação), e não há necessidade de pular esse conteúdo durante um bootcamp. De fato, os bootcamps cobrem um conjunto de conteúdo parcialmente disjuntivo, porque há muito conteúdo crítico (engenharia de software, comunicação, web, cadeias de ferramentas modernas etc.) que os graus de CS não cobrem. Asterisk: enquanto o Hack Reactor não economiza no conteúdo de codificação que afeta o seu sucesso a longo prazo (estruturas de dados, complexidade algorítmica), alguns bootcamps o fazem. Faça sua pesquisa.
  • Quando você se formar na faculdade, você poderá comprar uma casa e mudar o mundo. No Hack Reactor, nossa média de graduados (nas últimas três turmas) faz uma média de US $ 105.000 e 98% deles são contratados dentro de três meses após a graduação. Se você é uma pessoa ambiciosa que escolheu um bootcamp em vez da faculdade, estará no meio do seu terceiro emprego quando se formar na faculdade e provavelmente terá $ 150k-300k guardados (supondo salário médio, um custo de vida de US $ 40.000 e economia de faculdade) enquanto é pago para aprender mais sobre código ajudando a criar uma ou mais startups.

Aqui está o porquê de você querer um diploma de quatro anos:

  • Crescimento social. Um diploma de quatro anos pode ser um curso prolongado para se tornar adulto, ou umas férias muito longas com muita bebida. É ótimo! Eu realmente gostei do meu tempo na universidade. Eu recomendo festas de espuma.
  • Amplas oportunidades de aprendizado. Eu auditei pessoalmente mais de 70 créditos de aulas de jazz, física, neurociência, lingüística etc., além da carga de aulas em tempo integral nas quais eu estava oficialmente matriculado. Também estudei no exterior duas vezes. Nada disso (obviamente) se traduziu em resultados do mundo real, mas eu valorizo ​​a educação pelo bem da educação. A faculdade é um mundo emocionante.
  • Você é extremamente autodidata. Se você é o tipo de pessoa que aprende com extrema eficácia por conta própria, no seu quarto - mais do que quando seu trabalho em tempo integral é aprender mais sobre codificação, resolvendo problemas difíceis em uma empresa (como seria depois de se formar) de um bootcamp) - você pode achar que o tempo livre e a falta de responsabilidade na faculdade são um verdadeiro benefício.
  • Foco acadêmico. Existem algumas disciplinas da ciência da computação nas quais o trabalho mais avançado é realizado na academia. (Isso não inclui áreas como desenvolvimento web ou móvel, mas inclui enfoques como visão computacional e inteligência artificial.) Os estudantes com interesse exclusivo nessas áreas podem se beneficiar com o curso de graduação. (Por outro lado, um bootcamp + dois anos na indústria, seguido por um mestrado / doutorado, pode ser melhor - a sua escolha.)

Uma nota final importante: esta decisão não é de curto prazo versus valor de longo prazo. Como qualquer desenvolvedor praticante lhe dirá, a chave para o amplo conjunto de habilidades que mantém os desenvolvedores empregados e relevantes ao longo de décadas é a experiência que eles obtiveram ao trabalhar com outros desenvolvedores brilhantes no trabalho, e não nas aulas que eles tiveram quando eram iniciantes. É possível estragar uma carreira em software - aceitar um trabalho de baixa qualidade e fazer um trabalho insatisfatório por um salário sólido, ignorar as oportunidades de crescimento de cursos / reuniões / conferências que o cercam e estagnar - mas não fazendo um bootcamp em vez de um programa de CS.

As pessoas que estão respondendo a essa pergunta consistem principalmente de instrutores de bootcamps ou de pessoas que participaram de bootcamps. No entanto, pretendo responder sua pergunta do ponto de vista de um empregador. (Sou co-fundador e ex-CTO da FiscalNote, uma empresa de IA que lida com análises governamentais)

Quando estou procurando contratar um novo engenheiro, estou procurando alguém que tenha pelo menos ou equivalente a um diploma em ciência da computação. (o bootcamp de codificação não conta como um grau de CS).

Aqui estão as minhas razões pelas quais eu NÃO consideraria um desenvolvedor de bootcamp:

  1. Alguém com um diploma em ciência da computação entende os fundamentos da ciência da computação. Algoritmos, simultaneidade, alocação eficiente de memória, pilha / heap, grande complexidade de tempo / hora, estruturas de dados avançadas etc ... Essas habilidades são extremamente importantes quando você vai além da estrutura (trilhos, nó, etc.) que esses bootcamps te ensinam. Vou dar um exemplo simples, mas plausível. Digamos que você tenha um bilhão de objetos de usuário, cada um com uma idade (tipo inteiro positivo). Agora imagine que você teve que classificar essa lista por idade com bastante frequência em seu aplicativo. (suponha que você esteja classificando no nível do aplicativo (não no nível do banco de dados) também presuma que você tenha uma boa quantidade de RAM, portanto a memória não é um problema). Alguém com background de bootcamp do Rails chamaria apenas o método ruby.sort (porque é isso que eles ensinam). Agora não é uma má escolha, o método ruby.sort usa a classificação rápida, que é um algoritmo O (nlogn) no caso médio. No entanto, estamos classificando 1 bilhão de usuários e está crescendo rapidamente! Precisamos de um algoritmo melhor. Alguém com formação em CS entenderia isso e escreveria sua própria solução. Nesse caso, como a idade tem um limite superior (suponha que as pessoas não possam viver além dos 150 anos), você tem uma restrição em que a idade é um número inteiro entre 0 e 150. Conhecendo essas informações extras, podemos projetar um algoritmo que seja O (n) tempo, como classificação de contagem, classificação de balde ou classificação de raiz. Esses algoritmos são muito mais eficientes em termos de velocidade. Agora, e se a memória também for uma restrição? O que você faz? Tenho certeza de que não posso confiar em alguém sem formação em CS para tentar resolver esse problema ou até perceber que é um problema!
  2. Bootcamps não ensinam a base do CS, eles ensinam como usar estruturas e o que é popular no momento. Isso é perigoso se você tiver uma empresa de tecnologia em rápido crescimento. Imagine que você começa a usar o Ruby on Rails e contrata desenvolvedores de bootcamp ruby ​​on rails. Três anos depois, o Rails decide encerrar sua vida útil, interromper o desenvolvimento ativo e interromper a manutenção (basicamente é encerrada, embora altamente improvável). Ou, imagine, você decide que precisa alternar tecnologias ao longo do caminho por causa do motivo X ou Y (aconteceu com a minha empresa FiscalNote, começamos com o Rails e estamos mudando para o Node.js). Você precisa ter engenheiros que entendam como as coisas funcionam no contexto de estruturas e linguagens de programação para fazer uma transição suave. Os engenheiros precisam ser maleáveis ​​quando se trata de tecnologia. A tecnologia muda rapidamente e, se seus engenheiros não puderem mudar com ela, sua empresa não sobreviverá por muito tempo.
  3. Dependendo do tipo de empresa que você é, talvez você não se importe ou saiba a diferença entre um engenheiro com experiência em CS e um engenheiro com apenas experiência em desenvolvimento de bootcamp. Portanto, há uma enorme diferença no calibre de engenharia entre a empresa que precisa de uma equipe técnica e uma empresa de engenharia / tecnologia. Provavelmente, os desenvolvedores de bootcamp de desenvolvimento têm uma chance muito pequena de obter posições de engenharia no Google / Facebook / Microsoft ou em startups de rápido crescimento como Slack, Stripe e Uber. É provável que essas empresas não contratem desenvolvedores de bootcamp, mas os melhores dos melhores estudantes de CS. As empresas que contratam pessoal de bootcamp geralmente não são empresas de tecnologia, mas empresas locais ou empresas que realmente não conhecem tecnologia. Por exemplo, talvez um restaurante mexicano local queira que um aplicativo seja construído. Eles não se importam se o programador não possui um diploma em CS, apenas se preocupam se o aplicativo foi desenvolvido e está funcionando para que eles possam vender suas tacos on-line. No entanto, existem algumas exceções em que eles trabalham em empresas de tecnologia.
  4. A depuração é difícil e, na maioria das vezes, a depuração exige um conhecimento mais profundo das linguagens de programação e CS, bem como talvez de coisas no nível do sistema operacional. A depuração é muito mais fácil quando você entende esses conceitos principais do CS. A depuração é um inferno se você apenas sabe como usar a estrutura, mas não entende por que as coisas estão sendo feitas pela estrutura.
  5. Estou começando a ver uma tendência em que uma boa quantidade de startups de tecnologia, quando se deparam com um desenvolvedor de um bootcamp, apenas reviram os olhos, suspiram e passam o candidato. Lamento os bootcampers que estão lendo esta resposta, mas esta é a triste verdade. Nós, startups de tecnologia, gostamos de conversar sobre práticas e estratégias de contratação e esse foi um tópico comum que surgiu.

Eu não estou tentando bash desenvolvedores de bootcamp de qualquer maneira, estou apenas afirmando que eles podem não ser os melhores contratados para uma empresa pesada de tecnologia / engenharia. Encorajo as pessoas a mudarem para o campo técnico porque quero que mais pessoas tenham carreiras técnicas. Mas, do meu ponto de vista, gastar muito dinheiro para seguir o caminho mais fácil (digo fácil, porque você pula aquelas horríveis aulas de algoritmo na faculdade) do dev bootcamp não é bom. Você perde as partes mais importantes do CS. Sim, você pode ir ao bootcamp e aprender a ser prático imediatamente. Mas isso não é diferente de aprender o MS Excel e não entender a programação e os algoritmos por trás dele.

O que eu recomendo é que talvez participe de algumas aulas de CS na universidade perto de você (a maioria das universidades permite sentar) ou faça algumas aulas on-line gratuitas em Stanford etc. Não acho que você deva gastar seu esforço dinheiro (US $ 10.000 - US $ 15.000) em um bootcamp de desenvolvedor.