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:
- 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.
- 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ê.
- 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.
- 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.