O que um programador iniciante deve saber

Pessoal, como estou começando, tenho algumas dificuldades em questão de começar algum software, tomar a iniciativa de “vamos começar por aqui, por causa disso disso e daquilo”. Gostaria de que esse tópico também sirva de ajuda para quem esta começando. Por favor sem comentarios do tipo. Hibernate, Spring, UML, OO. Disso creio que quem ja esta um pouco mais avançado ja sabe onde se especializar. Quero dizer sobre dicas que só os veteranos tem e seria legal passar para nós. hehehehehe

um dica importante, tente identificar (antecipadamente) onde serão seus “gargalos”, trabelhe neles equanto os prazos ainda não estão apertados… por que desses malditos “gargalos” vem as piores gambiarras e problemas.

obs: Só para que na haja erros de interpretaçao “gargalo”, seria aonde o sistema afunila… ou seja… “isso tem q estar funcionando” para viabilizar os passos seguntes.

obs2: não faça software, estude medicina ou alguma outra profissão que te permita ter uma vida.

Boa obseração a 2. Não que seja inteiramente verdade, mas considere o fato de trabalhar várias noites e finais de semana, somado as vezes com pouco reconhecimento.

Mas isso vai de cada um. E de cada empresa também. Não acho que compensa voce se sacrificar por uma empresa a tal ponto de voce se prejudicar. Acho que voce sim deve correr atras e se especializar, subir na empresa, adicionar tudo oque voce tem de conhecimento e de força de vontade. Mas a partir de que a empresa prejudica a sua vida acho que é a empresa que nao esta te adicionando algo.
Da mesma forma que voce trabalha por dinheiro, experiencia e oportunidade. A empresa também quer por te pagar e te dar oportunidades e experiencia… resultado.

Vide http://www.guj.com.br/java/269122-nuvem-negra-se-aproximando-/ . Em especial, os comentários do ViniGodoy.

[]'s

Primeiro, tenha noções de INFORMÁTICA, e não de uma linguagem, a linguagem é uma ferramenta que pode ser trocada a qualquer momento.

Outra coisa, siga pelos padrões, no caso do java isso funciona MUITO bem.

Seja um profissional com diversas noções, mas FOCADO em algo.

Para isso, estude Engenharia de Software. Cabe aqui conceitos como levantamento de requisitos, ou seja, definir o que o cliente precisa (geralmente, ao custo de muitas explicações e reuniões entre você, o cliente e quem mais estiver envolvido). Tendo isso em mãos, é válido (e julgo extremamente importante) discutir esses pontos com seus colegas, para identificar justamente o que os colegas mencionaram: os gargalos, ou seja, as partes cruciais do sistema.

Tenho minhas dúvidas se medicina lhe permitirá “ter uma vida”. O tempo de estudo até ter uma especialização é grande o ritmo de trabalho, salvo alguns casos, não é dos mais tranquilos, além da imensa responsabilidade envolvida. Tudo é uma questão de gosto. Não vejo TI como uma área tão ruim a ponto de qualquer outra área valer mais a pena, independente do contexto.

Abraços.

Também nao vejo que trabalhar com TI seja algo ruim. Estou começando em uma empresa e tudo oque vejo de tirinhas lamentaveis no vidadeprogramador nao acontece aqui. kkk

Uma dica que passei para diversos amigos iniciantes e que foram também passadas para mim é a mesma situação de Observação de um Fato na Biologia. Caso você queira iniciar um software qualquer, dependendo do seu nível de dificuldade, inicie apenas assim: Pense com cuidado como poderia ser este software, pense um pouco no design, o que ele poderia conter. Depois formule desenhos para este software, comece a desenhar em folhas de papel como poderia ser. Em seguida ponha em prática pequenos códigos e por fim realize uma experiência geral sobre tudo que realizou. Isto são pequenos fatos que fazem um bom software, e sem esquecer da experiência né? :slight_smile:

Para quem realmente é iniciante, recomendo acessar sites como Youtube e procurar canais que já falem sobre Java, sempre procurar coisas simples, e nunca chegar ao método avançado, ao menos que sua experiência necessite ou a alcance. Realize cursos em sua cidade ou até mesmo online, caso não necessite ou não queira, tenho total certeza que poderás encontrar no Google uma vasta biblioteca de funções e exemplos sobre o mesmo que te ajudarão a crescer tanto no Java como em qualquer outra coisa em que busque interesse.

Caso queira um pouquinho mais de ajuda olha estas sessões, creio que iram ajudar bastante quem às procura:

:arrow: http://www.apostilando.com/sessao.php?cod=6
:arrow: http://www.oficinadanet.com.br/apostilas/76/java
:arrow: http://apostilas.netsaber.com.br/list_apostilas_c_36.html
:arrow: http://www.t2ti.com/java_starter.php
:arrow: http://www.metropoledigital.ufrn.br/aulas/disciplinas/poo/index.html

Espero que isto ajude bastante meus amigos iniciantes, em minha opinião isso foi essencial para toda minha experiência e continua sendo. Boa-sorte a todos! :smiley:

Acho que tem que, obrigatoriamente:

  • Aprender informática, e não frameworks (veja o tópico indicado para mais detalhes);

  • Ter noções de processos (engenharia de software, administração e economia);

  • Aprender a ter postura profissional, ou seja:
    – Se comunicar bem em português: Parte da sua comunicação é em português. Escrever e-mails com dúvidas, falar com colegas de outros setores e obter informação daquele programador sênior arrogante é uma parte fundamental da profissão. Como vovó já dizia: “Se você não se comunica, se estrumbica”. Se comunicar também implica em reconhecer em que ambiente está se comunicando, e ter um pouco de habilidade política (saber ceder para obter concessões). Comunicar bem é essencial para montar um novo currículo e obter um emprego melhor, caso você esteja insatisfeito com o seu.

– Saber priorizar. E na dúvida, pergunte a chefia. Aqui entra o lance dos gargalos, que disseram. É sempre bom ajudar a chefia, indicando os pontos onde você vê possíveis entraves. Entenda que um bom projeto terá os funcionários trabalhando o tempo todo, em paralelo. Portanto, procure entender em que momento que seus colegas irão depender do seu trabalho, para não deixa-los ociosos. E converse com os colegas do qual o trabalho que você depende, para que eles entreguem as coisas para você nos momentos certos.

– Saber reportar a chefia quando o problema é maior do que o esperado: não basta só falar so chefe que tem um problema, mas já tem que ter procurado alternativas ou soluções. Apresente-as e peça para que ele repriorize. Ele tem que ter uma visão clara do impacto, para saber do que abrir mão;

– Ter pró-atividade: Pintou um problema que você sabe resolver? Então, prontifique-se a resolve-lo na sua equipe. Ficou sem trabalho? Não seja aquele programador que senta na cadeira, faz o serviço e vai embora. Ou, pior ainda, aquele ao ficar sem trabalho, navega na internet sem avisar ninguém.

– Evitar participar das fofocas. Se a equipe odeia o chefe ou um colega, abstenha-se. E em hipótese alguma faça complô. Comunicação direta é sempre a melhor saída. Se seu chefe não dá essa abertura, é melhor procurar outro emprego e trocar de chefe.

– Adotar postura derrotista: Evite reclamar o tempo todo do seu trabalho, do seu emprego, da sua vida, do país, da área, etc. Se está descontente, mude de emprego. Você está na empresa para resolver problemas, não para reclamar deles. E ninguém gosta de alguém que só lembre do quanto o projeto/negócio pode falhar.

– Aprender o que a empresa valoriza. E cuidado: isso varia de empresa a empresa. Você deve dançar conforme a música. Se a música não te agrada, não fique se lamentando, troque de emprego.

– Aprender a diferenciar suas expectativas do que foi acordado. Por exemplo, você acha que está trabalhando bem, e põe na cabeça que vai receber um aumento. Essa é uma expectativa sua, não uma promessa da empresa. Se o aumento não vier, não culpe sua empresa, afinal, ela nunca te prometeu isso. Tente renegociar com seu chefe, e ele provavelmente vai te dar uma visão mais clara do que você deve fazer para obter o aumento.

  • Aprender a ler documentações: E lembre-se que estas estão em inglês;

  • Procure estudar boas práticas de software e das ferramentas que você utiliza;

Lembre-se: A maior parte das contratações ocorre por motivos técnicos, mas das promoções e demissões por motivos pessoais. De nada adianta se o mestre ninja de Java, se você é aquele cara que ninguém quer trabalhar.

Em resumo, seria péssimo ser este cara.