Trabalho atual: trabalhando como analista de negócios líder de uma empresa Big 4, liderando uma equipe de desenvolvedores e testadores que trabalham em um projeto de reformulação em larga escala (4 desenvolvedores onshore, 4 desenvolvedores offshore, vários testadores onshore / offshore). Também trabalhe com capacidade semelhante em outros projetos de menor escala.
Extensão da minha função: Reunir / redigir requisitos, criar especificações funcionais, projetar a interface do usuário (basicamente mapear todos os aspectos de front-end do sistema), trabalhar em estreita colaboração com os desenvolvedores para comunicar / esclarecer requisitos e apresentar soluções quando atingimos obstáculos. , escrevendo casos de teste (e realizando grande parte dos testes), trabalhando com a gerência sênior e as principais partes interessadas, gerenciando beta testers, criando guias do usuário e liderando sessões de treinamento, fornecendo suporte técnico essencial.
Também escrevo algumas macros no Excel usando VBA (várias das minhas macros agora são usadas em toda a empresa, então talvez haja cerca de 1000 pessoas) e uso o SQL diariamente, tanto nos arquivos compactos do SQL do programa conta com nossos dados do SQL Server e quaisquer bancos de dados do Access que eu criar. Os desenvolvedores acham que sou muito bom nessa função porque entendo muito sobre programação, limitações inerentes ao sistema, estrutura dos bancos de dados, etc., portanto, é mais fácil para mim comunicar idéias e apresentar sugestões quando enfrentamos problemas.
O que realmente me interessa é o desenvolvimento de software. Eu faço uma boa quantidade de programação no VBA e estou querendo aprender C # há algum tempo (a equipe de desenvolvimento usa C # - reviso o código ocasionalmente por minha conta, mas não tive nenhuma experiência prática em usá-lo). Estou interessado não apenas no processo de negócios, mas também no lado técnico das coisas, de modo que o papel tradicional de bacharel em verdade não desperta meu apetite pelo tipo de coisa que quero fazer. No momento, tenho alguns pequenos projetos que os gerentes me deram e estou encontrando novas maneiras de realizá-los (como a criação de aplicativos personalizados do Access), então há um pouco aqui e ali para me manter interessado.
Minha pergunta é a seguinte: o que eu gostaria de fazer é criar aplicativos Excel ou Access personalizados para pequenas empresas como uma empresa freelancer (trabalhando como uma loja individual; talvez tendo um contratado ocasional, dependendo da complexidade de um projeto). Obviamente, isso começaria como um empreendimento de meio período enquanto eu tivesse um emprego diário, mas acabaria se tornando um emprego de período integral. Estou me iludindo ao pensar que posso passar do programador BA / VBA em tempo parcial para fazer um negócio freelancer em período integral (onde eu começaria apenas escrevendo aplicativos personalizados do Excel / Access no VBA)? Ou esse tipo de coisa geralmente não é tentado até que alguém obtenha anos de experiência em programação em tempo integral? E existe mesmo um mercado para esses tipos de aplicativos entre pequenas empresas (e talvez médias)?
fonte
Respostas:
Não, você não está se iludindo, isso pode ser feito! Um dos caras aqui fez isso, embora eu não saiba os detalhes de como, mas acho que ele começou como subscritor, tornou-se bacharel em subscrição de desenvolvimento de software intermediário e, de alguma forma, passou para o desenvolvimento em tempo integral. Eu acho que ele já tinha uma formação técnica, como você.
Pode funcionar melhor se você tentar fazê-lo primeiro com seu empregador atual do que trabalhar sozinho. Você teria muito mais apoio e ajuda. Talvez converse com seu gerente e pergunte como você pode fazer a transição para uma função de desenvolvimento dentro da organização, provavelmente na mesma equipe para começar. Dessa forma, você já conhece todos e eles conhecem você e o que você já é capaz e pode ajudar a treiná-lo ainda mais. Se você é realmente realmente realmente sorte, sua empresa terá um orçamento para enviá-lo em cursos de apanhar ainda mais rápido.
fonte
VBA e Access é a parte inferior da escada de programação. Se eu fosse você, dispararia mais alto, já que você tem habilidades em SQL. Considere aprender o SQL Server Reporting Services e criar relatórios ou SSIS e executar o processamento ETL. Essas são habilidades com demanda bastante alta no momento e você está bem posicionado para fazê-las, pois pode ser relativamente fácil entrar em um ambiente corporativo, especialmente se você não tem mais ninguém cuidando dessas funções na sua empresa. Eu consideraria a experiência do analista de negócios uma enorme vantagem para um redator de relatórios.
fonte
Pode ser feito. Não será fácil, especialmente se você quiser melhorar, já que o desenvolvimento de software é uma disciplina de engenharia com problemas e armadilhas não óbvias que você precisará aprender a reconhecer e evitar. Isso levará alguns anos de estudo e prática sérios, mas se você puder entender os conceitos, poderá se tornar um programador, mesmo que seu histórico seja diferente.
fonte
Se isso vai levar anos ou anos, depende muito de você, sua programação, mas o mais importante, seu nível de interesse, que tende a estar atrelado à aptidão. Se você mora ou trabalha em uma cidade e tem a opção de deslocamento em massa, use-o e use esse tempo interno para ler livros de tecnologia. Qualquer coisa que lhe interessa.
Tanto quanto a audácia de pensar que você pode, não se preocupe. Decidir que você provavelmente poderia lidar com isso <inserir pilha desconhecida de complexidade aqui> é o que os desenvolvedores fazem. Isso não é arrogância, é apenas o primeiro passo.
Arrogante no país dos desenvolvedores está se chamando um desenvolvedor profissional quando você tem uma solução para tudo e não aprende nada de novo desde a faculdade. Esse é o problema do desenvolvimento. Quando você para de aprender, sua carreira começa a decair, então o interesse é fundamental. Parece que você tem isso.
Então vá em frente.
Você tem seu alvo à vista. O resto está dividindo os grandes problemas assustadores em pequenos e não tão assustadores. Repita o anúncio nauseum e você será um desenvolvedor de tempo integral pago que deseja que haja mais problemas maiores / mais assustadores do que costumava ser antes, do que você imagina.
fonte
Eu diria (se você quiser começar o jogo) vá com o SICP - Estrutura e Interpretação de Programas de Computador. Eu deveria ligar para ele, mas é mais do que apenas um livro; Hoje em dia, você também pode encontrar outras pessoas para estudar o curso on-line. É um livro muito difícil - concluir todos os exercícios é algo que a maioria dos desenvolvedores não pode fazer (infelizmente), mas é o melhor livro disponível. O MIT OCW também é bom, mas IMHO é uma versão diluída do SICP para programação. O Python foi projetado para ocultar a complexidade, em vez de fazer com que você se divirta de maneira doentia (como o SICP).
Além disso, você precisa distinguir entre programar como profissão e programar como uma habilidade. Um requer dedicação a coisas como código bonito, limpo e extensível, enquanto o outro requer nada além de habilidades algorítmicas (o que é bastante, na verdade). O 'ditador benevolente' do Python, Guido van Rossum, argumenta que a programação será uma habilidade essencial nos próximos anos, mas as habilidades de desenvolvimento de software não serão, em nenhum caso. A maioria dos não desenvolvedores escreve código para jogá-lo fora (os desenvolvedores também fazem isso com frequência). A questão de programar como carreira inclui muito mais coisas do que programar e é importante definir suas prioridades.
O mais importante: não deixe de amar a programação, não apenas como ela. É mais do que um trabalho das 9 às 5, é abraçar a filosofia de aprendizado constante : a maioria dos engenheiros é treinada durante o BS ou o MSc e não vê mudanças significativas em seu campo de especialização. Uma carreira ao longo da vida em programação fará com que você veja pelo menos 10 mudanças de paradigma (não apenas linguagens, mas ferramentas, bancos de dados, etc.), então é melhor você estar pronto (e disposto) a aceitar isso.
fonte
Eu acho que você está em uma boa posição para fazer isso.
Na maior parte da minha carreira, tenho estado profundamente enraizado no lado técnico das coisas; no entanto, ao longo de anos observando muitos projetos serem bem-sucedidos ou fracassados, cheguei à conclusão: -
Se você não entender seus usuários de negócios e seus requisitos, seu projeto falhará.
Eu nunca vi uma exceção a essa regra e nenhuma quantia de dinheiro, hardware ou gênio de programação parece fazer alguma diferença. Projetos verdadeiros com um bom entendimento dos requisitos podem falhar por causa de hardware, software, software, falta de orçamento ou falta de habilidades mal escolhidos - mas, na maioria das vezes, esses projetos podem ou podem ter sido resgatados.
Portanto, sua boa base em BA e seus requisitos fornecerão uma perspectiva de que algumas de suas faculdades de tecnologia mais talentosas podem faltar, o resto você pode aprender.
fonte