Como posso salvar meu estágio? [fechadas]

65

Atualmente, estou trabalhando como estagiário em uma empresa de desenvolvimento não-software muito grande. A posição para a qual me inscrevi não era especificamente uma posição de desenvolvimento, mas a equipe que me contratou queria um diploma de CS para ajudar a tentar desenvolver alguns projetos internos para eles. Estou aqui há quatro semanas e a confusão inicial está começando a desaparecer. No entanto, sou o único especialista em CS em todo o escritório - ninguém na minha equipe, no prédio ou mesmo nos locais vizinhos tem experiência em desenvolvimento de software. O melhor que tenho é um gerente de banco de dados, e o departamento deles está muito ocupado para me apoiar em meus projetos. Meus colegas de equipe estão me ajudando a aprender como eles fazem seu trabalho (o que é importante para mim), mas não há ninguém para me ajudar a fazer meu trabalho, ou seja, o desenvolvimento.

Os projetos que eles me deram têm um escopo maior do que qualquer coisa que eu fiz na escola. Isso, combinado com o fato de estar trabalhando sozinho, tentando desenvolver aplicativos do zero, sem nenhuma forma de orientação ou mesmo metas claramente definidas, me preocupa muito com minha capacidade de obter sucesso. Mal sei por onde devo começar e agora tenho provavelmente menos de dois meses.

Sinto que deveria estar aprendendo o processo de desenvolvimento de software, mas agora é como se estivesse me sentindo no escuro. Isso é especialmente preocupante para mim, pois não estou muito confiante com minhas habilidades de desenvolvimento. Eu estive pesquisando e ensinando a mim mesmo, mas só estou conseguindo pedaços. Eles têm grandes expectativas de mim, mas não tenho certeza da minha capacidade de cumprir. Obviamente, preciso sentar e conversar com meus gerentes sobre a posição em que estou, e pretendo fazer isso o mais rápido possível (eles geralmente estão viajando e saindo do escritório).

Como devo lidar com isso? Este estágio terminará antes que eu perceba e não quero sair sem nada para mostrar o meu tempo aqui. Eles também não querem isso e estão sempre disponíveis para me ajudar, mas sem o conhecimento de programação, há muito o que podem fazer. Tenho medo de dizer a eles que sou incapaz de produzir o que eles querem. Como devo relacionar isso com eles? Vejo os estagiários de engenharia recebendo ajuda de outros engenheiros, aprendendo a fazer o trabalho deles, e sinto que estou sentado aqui esperando meu tempo. Qualquer conselho sobre como corrigir minha situação seria muito apreciado.

Atualizar

Agradeço todo o feedback útil de todos, ajudou a acalmar minha mente. A primeira coisa que fiz foi encontrar-me com meus gerentes e supervisores. Discutimos o que era esperado do meu tempo aqui. Eles entendem que eu não tenho tanto tempo como estagiário, e isso ajudou a colocar um escopo no tipo de estrutura que queremos realizar, o que permitirá que futuros estagiários ou funcionários esperançosamente aproveitem o que eu deixo. Também resolvi minhas preocupações com relação às minhas capacidades com o tempo previsto, que elas entendiam e esperavam.

Recebi uma ligação do administrador do banco de dados em outro local - meu gerente conversou com o supervisor e eles vão apoiar o meu projeto, que agora me dará um recurso para usar, para que eu não fique sentado sem ter ideia do que estou fazendo. ' estou fazendo. Isso é apenas metade embora. De todos os projetos possíveis, reduzimos para os dois mais importantes em que trabalhar. Quanto ao meu outro projeto, como alguém mencionou, sou essencialmente o principal arquiteto de software, uma situação única para um estagiário. Se as coisas correrem pelo menos sem sucesso, acho que adquirirei uma grande quantidade de conhecimento e experiência que podem me ajudar com futuros empregadores. Por enquanto, acho que tenho bases sólidas para começar a pesquisar e desenvolver meus projetos. Mais uma vez obrigado pelas respostas de todos!

bhamlin
fonte
80
A maioria dos lugares espera que os estagiários sejam pessoas que não sabem o que estão fazendo, mas que estão dispostas a aprender e ganhar a experiência que puderem. Um estágio sem um mentor parece que eles realmente queriam um desenvolvedor barato ou gratuito, e não deveriam esperar que você produzisse um produto acabado. Aprenda o máximo que puder sobre toda a experiência e, quando o estágio terminar, siga em frente. Idealmente para um lugar onde você pode estagiário com desenvolvedores de software reais :)
Rachel
9
Este não parece ser específico para a engenharia de software, de modo que poderia ser mais adequada sobre a Workplace.SE
Bart van Ingen Schenau
53
"tentando desenvolver aplicativos do zero, sem nenhuma forma de orientação ou mesmo objetivos claramente definidos" - treinamento perfeito para o desenvolvimento de software no mundo real!
Alan B
7
Bem-vindo ao lado "coisas que você não aprende nos livros" da sua educação. Este é apenas um dos muitos ambientes em que você pode se encontrar quando terminar sua educação. Eu me encontrei exatamente na sua posição, exceto que terminei minha graduação e estava na MIS.
Chad Harrison
3
@BartvanIngenSchenau Há um ângulo de desenvolvimento de software na questão: o OP é um desenvolvedor solitário na empresa. Isso cria alguns desafios únicos, e acho que alguns deles podem se beneficiar das soluções de desenvolvimento de software. Talvez a pergunta seja mais adequada para o local de trabalho, mas se não estiver 100% fora do tópico aqui, acho que não devemos migrá-la. Se a comunidade decidir que a questão está fora de tópico aqui (fechando-a como tal), migrarei com prazer.
yannis

Respostas:

124

Tenho más notícias para você bhamlin:

Você não é estagiário. Em vez disso, você é um funcionário não remunerado / barato.

Um estágio é uma posição não remunerada ou mal remunerada, onde você pode praticar suas habilidades adquiridas recentemente em um ambiente seguro (geralmente) relaxado e ter a chance de observar profissionais 'reais' em seu campo realizando um trabalho 'real', obtendo feedback. nas peças que eles permitem que você modifique (geralmente sob supervisão e / ou aprovação).

O que sua empresa queria não era, de fato, um estagiário, mas uma fonte gratuita / barata de desenvolvimento de software. Isso é bastante comum , na minha opinião. Eu moro em uma cidade universitária e, no meu último local de trabalho, os gerentes eram ouvidos com frequência dizendo: "Ei, o departamento de TI está muito ocupado para fazer o Projeto X, vamos ver se conseguimos alguns estagiários da Universidade para escrevê-lo para grátis / barato! " Nós resmungamos, gememos e rangemos os dentes até o céu, mas essa era a realidade do lugar, e eu pude entender por que os gerentes sugeriam uma coisa dessas. Infelizmente, os resultados não foram ótimos: o software entregue pelos estagiários nunca foi coeso / escalável / limpo / etc (mas, para ser sincero, o material que o departamento de TI não divulgou ...)

Cabe a você o que você faz. Meu conselho é apenas desenvolver o que puder (às vezes a pressão é um grande motivador), mas você também deve planejar um estágio 'real' em outro lugar quando este terminar, se possível.

Portanto, não se culpe, mas o que você encontrou NÃO foi um estágio real.

Graham
fonte
18
@Ampt Para mim, a maioria dos estágios pagos está basicamente dizendo "Nós pagaremos para você aprender conosco e, no final deste período, se tudo correr bem, gostaríamos de contratá-lo" . Dá às partes um longo período de tempo para avaliar uma à outra e, se tudo correr bem, elas também contratam um funcionário que é instruído em seu sistema e que eles sabem que é uma boa opção para a empresa. Se eles obtiverem um novo software barato no processo, isso é um bônus adicional, mas não uma expectativa.
Rachel
7
Os estágios geralmente não são remunerados? Isso é novidade para mim ...
M. Dudley
3
Esse é um bom ponto @Ampt. Editei minha resposta para dizer "não pago / barato" agora. No geral, acho que a resposta ainda permanece; esse lugar realmente não queria um estagiário, apenas não queria pagar o preço total pelos serviços de TI.
Graham
7
@bhamlin A maioria das pessoas sem formação em software literalmente não tem idéia de quanto tempo ou esforço os projetos de software levarão para desenvolver. Nenhuma pista. Infelizmente é assim que é.
enderland
10
Se um estágio não é remunerado (ou abaixo de algum salário, talvez mínimo, se a memória servir), ele deve demonstrar um benefício considerável para o estagiário, caso contrário, a empresa está de fato violando as leis trabalhistas. Essa é uma distinção muito importante: se esse cara não estiver sendo pago, ele poderá processar a empresa estúpida. (Ou pelo menos assim dizem as leis dos EUA, não pode falar com outros países)
Jimmy Hoffa
28

Como especialista em CS, você tem habilidades de resolução de problemas à sua disposição. Não está claro que tipo de projetos eles desejam desenvolver. Se eu tivesse que adivinhar, eles provavelmente querem que você ajude a automatizar alguns dos processos internos. Eu começaria tentando obter um diagrama geral dos processos existentes e das dependências entre os departamentos de cada um desses processos.

Em seguida, procuraria algumas frutas baixas que poderiam ser automatizadas ou, pelo menos, simplificadas.

Maneira infalível de documentar qualquer processo

Faça estas perguntas na seguinte ordem:

  1. Qual é a saída? (Obtenha uma resposta o mais específica possível)
  2. Quais são as entradas?
  3. Existem entradas suficientes para criar a saída?

Se a resposta para o número 3 for NÃO , então pegue as peças que faltam. Podem ser fórmulas ou regras de negócios ou qualquer outra coisa.

Se a saída da etapa um for muito complicada, divida-a em partes gerenciáveis ​​e ataque cada parte como um processo separado.

Documente o que você descobriu. Identifique um único ponto potencial de falha. Identifique pontos fracos ou dependências escassas.

Eu sei que parece esmagador, mas você tem o conjunto de habilidades. Basta transformá-lo em pedaços pequenos. Se você pode aprender a explicar "coisas nerds" usando "palavras que não sejam nerds", valerá seu peso em ouro.

Michael Riley - também conhecido por Gunny
fonte
11
Os membros da minha equipe têm me mostrado os processos, então eu tenho uma idéia das entradas e saídas e o que eles querem. Eu tenho uma idéia de como eu quero resolver os problemas, é apenas dividi-lo em pedaços e juntar tudo isso está me causando problemas (especialmente usando tecnologias nas quais eu não sou tão experiente, como bancos de dados). Felizmente, posso explicar muito bem "nerd" a "não nerd". Acho que, neste momento, devo começar a trazer meus problemas de codificação para o estouro da pilha para ver se minhas soluções são viáveis. Obrigado pela sua contribuição.
bhamlin
Quanto ao material do banco de dados, eu recomendo um livro chamado Database Design For Mere Mortals, de Michael Hernandez. Este livro é excelente.
Michael Riley - AKA Gunny
11
+1 na "Forma infalível de documentar qualquer processo". Eu gostaria de ter postado com destaque no meu cubo quando fui contratado pela primeira vez para um trabalho de análise de sistema.
dodgethesteamroller
11
@ bhamlin: sugiro que você faça o seu melhor para reduzir as expectativas para o que está prestes a entregar. Além disso, divida-o em problemas extremamente pequenos, algo que você acha que pode fazer em um dia (para que seja feito por uma semana;) e, de preferência, coisas úteis como são , não apenas módulos, que não funcionarão sem o testemunho. Dessa forma, se você falhar, seu trabalho ainda será útil. Além disso, na IMO, essa experiência provavelmente será muito útil e estimulante (embora não financeiramente), mas acabará gerando uma memória deprimente.
K.Steff
18

Aqui está minha opinião sobre toda essa situação: eles estão pedindo mais do que você pode razoavelmente realizar, sem fornecer nenhum feedback ou orientação, e geralmente tornando seu trabalho não tão agradável. Mas há um lado positivo para essa nuvem. Você está aprendendo alguma coisa.

Particularmente, você está aprendendo o tipo de ambiente em que NÃO deseja trabalhar quando se formar. Você também está aprendendo a lidar com um projeto que é muito grande para ser realizado de maneira viável. Ambos são importantes conhecimentos a serem mantidos, pois ninguém lhe dará um emprego que eles acham que está abaixo da sua capacidade. Eles sempre pedirão mais do que você pode dar, e é seu trabalho trabalhar com eles para gerenciar as expectativas e entregar o que eles desejam.

Sobre o que você pode fazer aqui e agora. Eu começaria mantendo um diário de tudo o que você faz todos os dias. Isso lhe dá responsabilidade. Mesmo um simples final de dia "foi nisso que trabalhei hoje" lhe dará algo para recorrer quando eles não conseguirem o que querem e procurarem respostas.

Eu também conversaria com seu superior imediato e veria se há alguma maneira de quebrar um desses projetos maiores . Se você não se sentir à vontade para fazer a coisa toda, talvez eles apenas façam a pesquisa e a arquitetura do projeto, e talvez outro estagiário o implemente mais tarde. Apenas fique claro o que você acha que pode razoavelmente realizar no tempo que resta no estágio e faça desse seu objetivo. Dessa forma, você ainda estará entregando algo relevante ao seu empregador no final do dia.

Por fim, veja se você pode ingressar nos estagiários de engenharia . Vou assumir que esses estagiários também estão desenvolvendo software e não vejo razão para que o que você esteja fazendo e o que eles estejam fazendo estejam tão distantes que você não possa aprender um com o outro. Eu trabalho com engenheiros elétricos, engenheiros de software, engenheiros de computação e cientistas da computação em meus projetos, e cada pessoa traz suas próprias forças para a equipe. Identifique onde estão seus pontos fortes no desenvolvimento e tente argumentar por que essas habilidades se prestariam bem à equipe de engenharia.

Ampt
fonte
6
Meus pais me disseram que eu deveria aceitar uma oferta se eu receber uma no final do verão, mas tentei explicar a eles que esse trabalho pode não ajudar a avançar minha carreira como desenvolvedor de software. Eles não querem me ouvir e acham que qualquer trabalho que recebo é uma bênção, mas sinto que tenho o direito de recusar, especialmente se esse não for um bom ambiente de trabalho para mim. Porém, eu gosto da ideia de manter um diário, carrego um caderno todos os dias, então vou começar a documentar o que estou fazendo, para que não pareça que não estou fazendo nada. Eu aprecio sua ajuda.
bhamlin
11
Não há problema bhamlin. Quando comecei este estágio, senti como se estivesse na mesma posição. Meu gerente adota uma abordagem muito prática para a equipe de engenharia, deixando-nos estruturar nosso dia como desejamos (também seguimos o modelo de desenvolvimento ágil que suporta isso) e vindo de classes nas quais eu tinha requisitos quase diários para projetos, era muito diferente . Eu descobri que manter um registro me mantinha responsável, além de fornecer a documentação de que eu estava pelo menos fazendo ALGO. Também me ajuda a manter a dinâmica do dia a dia e semana a semana.
Ampt
7
@ MLowry Eu acho que isso é um mau conselho. Ficar em um local de trabalho que você odeia irá desgastá-lo, física e principalmente psicologicamente. Você entrará em depressão, odiará cada momento e se arrependerá dessa decisão todos os dias. Por que passar por isso? Faria sentido fazê-lo por 6 meses se o lado financeiro fosse extraordinário. Mas provavelmente não é, já que ele está no início absoluto de sua carreira.
Radu Murzea
2
+1 em "Você está aprendendo alguma coisa". Infelizmente, esse ambiente de trabalho não é uma anomalia. Muitas empresas que não estão especificamente no ramo de TI lutam com o que fazer com os recursos de TI, portanto, as lições que você aprenderá aqui (requisitos vagos, prazos ruins) serão valiosas posteriormente ao tentar identificar ambientes problemáticos.
Graham
2
+1 para "manter um diário". Adquira esse hábito pelo resto de sua carreira! Quando um projeto está indo bem, ninguém faz perguntas. Quando fica ruim, eles querem escolher cada coisa que você faz / faz. Um diário cobre muito bem a sua pele. (melhor que um relatório de status).
TimG
13

Fale com o seu orientador de estágio

Todas as respostas que eu vi até agora parecem focar no empregador, o que é importante.

No entanto, você deve ter sido estabelecido com este estágio através de um programa ou escritório em sua escola. Não consigo imaginar que você seria o primeiro aluno que teve que se deparar com esse tipo de situação. Eles devem ser capazes de guiá-lo em uma determinada direção.

Mesmo que eles não possam ajudá-lo agora (o que acho difícil de acreditar), você estará ajudando o próximo aluno que se encontrar nessa situação, algo que não pode ser subestimado.

Wonko, o são
fonte
+1 porque essa deve ser a primeira coisa que um estagiário deve fazer quando encontrar dificuldades aparentemente intransponíveis.
verybadalloc
10

Eu tive dois estágios como esse e gostei imensamente deles. Existem aspectos positivos significativos que você parece estar perdendo:

  • Neste momento, você está desfrutando do tipo de liberdade criativa com a qual os programadores que trabalham em grandes equipes de programadores só podem sonhar. Tudo, desde a escolha do idioma, o controle da fonte, os editores e a arquitetura do software, depende inteiramente de você. Confie em mim, você sente falta disso quando se foi.
  • Trabalhar com pessoas que não sabem muito sobre software é uma parte significativa do processo de desenvolvimento de software. A escola o condiciona a esperar tarefas bem definidas de pessoas com muita experiência no ensino de desenvolvimento de software. Mesmo em equipes de programadores, suas tarefas nunca são tão claras. Aprender a lidar com isso agora lhe dará uma vantagem.
  • Adquirir conhecimento de domínio sem o benefício de mentores é uma parte significativa do processo de desenvolvimento de software. Uma vez a cada ano ou dois, recebo uma tarefa como "Torne-se nosso especialista no assunto em tecnologia X". Alguém tem que ser o primeiro de uma empresa a aprender uma nova tecnologia. Você receberá tarefas mais interessantes se puder mostrar que essa pessoa pode ser você.
  • Do seu ponto de vista, parece muita pressão, mas você deve saber que as expectativas deles em relação a você são realmente muito baixas. Eles sabem que é mais difícil para você sem um mentor adequado. Apenas faça o seu melhor e você ficará bem.

Dito isto, enfrentar o seu primeiro grande projeto pode ser esmagador. O seguinte pode ajudar:

  • Tente não pensar em todo o projeto de uma só vez. Pense no que você precisa fazer agora.
  • Obtenha uma lista de recursos que precisam ser concluídos e faça com que eles sejam colocados em ordem de prioridade. Dessa forma, se você não concluir o aplicativo inteiro, os recursos mais importantes ainda estarão lá.
  • Divida o primeiro recurso em tarefas cada vez menores, até chegar às tarefas que você pode concluir em um dia ou dois. Não tenha medo de fazê-los parecer estupidamente simples. Minha primeira tarefa em novos projetos é sempre fazer com que o olá mundo funcione e verifique o controle de origem. Especialmente se for um novo idioma, ou um que eu não uso há algum tempo, que me diz que meu ambiente de construção e ferramentas estão configuradas corretamente.
  • Revise seu progresso com frequência. Não tente despejar um produto acabado com eles no final do verão. Mostre a eles pelo menos uma vez por semana o que você tem até agora.
  • Gaste algum esforço antecipadamente para tentar encontrar projetos e componentes existentes que possam atender às suas necessidades. É muito mais fácil personalizar um sistema existente do que fazer um do zero. Muitas empresas precisam de tipos semelhantes de aplicativos internos. Este é o que eu gostaria de saber por mim mesmo. Um dos meus projetos de estágio basicamente reinventou (mal) um CRM .

Então, relaxe, faça o seu melhor e aprenda o máximo que puder, seja sobre software ou não.

Karl Bielefeldt
fonte
6

As outras respostas aqui são muito boas, leia-as várias vezes e tente realmente descobrir. Se você fizer isso, com um esforço acima da média, poderá sair "vivo" do outro lado do estágio. Dada a sua situação, será mais difícil do que o esperado, mas pode valer a pena.

Isso é crucial porque, quando você solicitar uma vaga para outra empresa 1 , uma das principais perguntas será:

Vejo aqui que você fez um estágio na empresa X. Como foi? Porque você saiu ?

Se você puder mostrar a eles que lidou com sua situação difícil de maneira profissional, isso contará MUITO , os empregadores geralmente ficam muito impressionados com algo assim.

Mesmo que seja meio chato, você pode torná-lo uma experiência valiosa, da qual você tem a oportunidade de aprender o que seus colegas nunca aprenderão ...

1 = Espero que sim, porque ficar lá será um suicídio na carreira (mais cedo ou mais tarde ... provavelmente mais cedo)

Radu Murzea
fonte
2
Esta é uma pergunta fácil de responder. "Gostei de trabalhar na X e aprendi muito durante meu estágio. No entanto, eles não são uma empresa de desenvolvimento de software. Portanto, não acho que aumentaria minhas habilidades de engenharia muito bem ficando lá. Preferiria trabalhar com outros desenvolvedores de software e têm projetos mais colaborativos ".
Selbie
5

Eu estava em uma posição semelhante no ano passado, onde tive que desenvolver tudo desde o início e não tinha mais ninguém com nenhuma experiência em desenvolvimento. Eu terminei o projeto que eles me deram, mas não o chamaria de aplicativo polido ou mesmo sustentável (já que a única pessoa que sabe como funciona sou eu e ninguém na empresa analisou o código).

Aqui estão algumas coisas que eu fiz e faria se estivesse nessa situação. Alguns deles já foram mencionados nas respostas anteriores

Descobrir:

  • O que eles querem que o produto faça (entradas e saídas, o mínimo )
  • Quais são as suas limitações? (ou seja, quais programas você pode ou não pode usar?)

Isso lhe dará uma imagem em sua cabeça sobre a aparência do produto. Desenhe isso em um pedaço de papel e mostre ao seu gerente / supervisor. Veja o que eles dizem sobre isso. Se eles não gostarem, pergunte o que eles querem mudar, mude e repita o processo. Se eles gostarem, faça a quantidade mínima de codificação e crie uma demonstração simples.

Mostre a demonstração para eles (pergunte se é isso que eles têm em mente), isso mostrará a eles seu progresso e ajudará você a entender o que eles querem.

Sempre que precisar de ajuda para codificação, leia manuais / tutoriais, pesquisa no Google e, finalmente, poste no estouro da pilha para obter ajuda.

Não se prenda a pequenos detalhes. Você vai perder muito tempo se fizer isso.

Código em pequenos pedaços , sendo cada um deles uma das principais funcionalidades do aplicativo.

Comente seu código. Se eles estão planejando passar isso para outro estagiário ou funcionário, será uma grande ajuda para eles.

Continue se comunicando com seu gerente / supervisor sobre o projeto e seu progresso.

E não se preocupe se não puder terminar o projeto, você é estagiário e fez o melhor que pode. Eles são os culpados por contratar alguém com pouca experiência para esse projeto.

TL; DR

  • Comunique-se com seu gerente a cada passo

  • Codifique a principal funcionalidade

  • Obtenha ajuda do Google e empilhe o Exchange

  • Não se preocupe se você não pode terminar

stackErr
fonte
1
  1. Procure esclarecimentos sobre as metas do estágio - por que você recebeu tantos projetos?
  2. Esclarecer à gerência que, dentro do prazo estipulado, você não pode concluir os projetos solicitados
  3. Prepare uma análise de como melhor usar seu tempo. Por exemplo, sugira trabalhar apenas em um projeto e abandonar os outros.

Seu tempo ajudaria melhor sua empresa se você trabalhasse apenas em um pequeno projeto. Certifique-se de mantê-lo bem documentado. Concentre-se na criação de documentação útil da arquitetura, objetivos do projeto, progresso do projeto e código fonte.

KyleM
fonte