Eu sou um engenheiro de software que teve posições de programação em VBA (embora não ouse considerar essa experiência 'real', como tentativa e erro!), Perl com CGI, C # e ASP.NET. Os dois últimos são de pós-graduação, com minha entrada no 'mundo real'. Estou com 2 anos de faculdade e 5 anos de experiência (total) nos idiomas mencionados. No entanto, quando se trata do meu currículo, eu posso colocar apenas 2 anos no C # e menos de um ano no ASP.NET.
Sinto que conheço C #, mas ainda tenho que gastar algum tempo 'O que esse método faz?', Enquanto alguns dos engenheiros de nível mais alto podem dizer imediatamente: "Ah, o Método X faz isso, sem nunca ter olhado para isso" antes. " Então eu sei empiricamente que existe um abismo ali, mas não sei exatamente como fazer a ponte. Comecei a programar no Project Euler e peguei um livro sobre padrões de design, mas ainda sinto que passo todos os dias pisando na água, em vez de seguir em frente.
Isso não quer dizer que eu não sinta que tenha feito progresso, apenas significa que, tanto quanto chego todos os dias, ainda vejo o topo da montanha à distância.
Minha pergunta é a seguinte: como você superou esse platô? Quanto tempo demorou para você? Que métodos você pode sugerir para me ajudar nisso?
Eu li o Code Complete , The Mythical Man Month e o CLR via C #, 2ª edição - minha pergunta é: O que faço agora?
Edit : Acabei de encontrar esta pergunta em projetos para um programador de nível intermediário. Eu acho que isso aumenta a discussão (apesar de não suplantar minha pergunta). Como tal, estou adicionando à pergunta como um "Para obter mais informações".
fonte
Respostas:
Parabéns!
Na sua descrição, você é um desenvolvedor intermediário.
Esta fase durará cerca de 3-8 anos, dependendo da sua vontade de aprender acima e além do problema do momento
Para acelerar o processo, leia, navegue no blog, acesse reuniões de grupos de usuários, encontre um mentor, faça pesquisas independentes, codifique projetos paralelos e se enterre em novas tecnologias. Isso pode raspar um ou dois anos fora do tempo.
Ou você poderia ter uma vida fora da programação ;-)
Sério, mantenha-se atualizado e introspectivo, mas desative a opção #% $ @ de vez em quando
Adendo: quando sair, lembre-se de usar calças.
fonte
Uma das melhores maneiras de subir a montanha é escrever algo para você, porque você deseja. Os melhores programadores têm respostas maravilhosas para a pergunta 'qual é o programa mais interessante que você escreveu no seu tempo livre'. Se você não está escrevendo nenhum código no seu tempo livre, não ama o seu ofício o suficiente para melhorar.
fonte
Você deve passar pelo estágio larval.
Embora agora eu programa no VB.NET no Windows, passei pelo estágio larval no Linux x86 com o assembly como idioma principal.
Por um tempo, você deve se dedicar ao ofício até dominá-lo. O que chamamos de instintos de um programador mestre são realmente comportamentos aprendidos. É uma cultura compartilhada. Os programadores devem pensar um no outro e gostar da máquina.
Conheça e entenda. As melhores habilidades não são aquelas vinculadas a um idioma específico, mas podem ser aplicadas a quase qualquer idioma. Conheça os conceitos, procure-os nos problemas e nas linguagens, esteja pronto para inventar coisas novas quando necessário.
Este é o caminho para a grandeza.
fonte
Venho programando desde os 8 anos. Terei 33 anos na véspera de Natal. Ainda vejo a montanha ao longe. Não importa o quão longe você chegue, sempre há mais para aprender.
Conheça os paradigmas e descubra como a linguagem em que você está codificando atualmente implementa esses paradigmas. A programação é uma experiência de vida que sempre tem mais a aprender. Essa é a alegria, não importa quão proficiente você seja, sempre há mais.
Uma maneira de descobrir coisas novas que normalmente não aprenderia é passar um tempo aqui e em outros fóruns de programação como Bytes e Experts Exchange, onde as pessoas fazem perguntas. Se você puder responder à pergunta, vá em frente; se não puder, tente descobrir como concluir a tarefa sozinho, não apenas o OP apreciará seu esforço e assistência, mas também aprenderá algo novo.
Acho que aprendo mais ajudando outras pessoas a encontrar respostas para coisas que ainda não sei do que jamais faria, apenas programando minhas coisas diárias que faço todos os dias.
fonte
O status de programação intermediária implica que você está saindo da mentalidade de "digitar mais rápido" do macaco de código e entrar no reino de querer construir sistemas reais como uma carreira. Esta é uma grande mudança profissional e, francamente, não se trata realmente de habilidades técnicas. Trabalhar no nível intermediário (também conhecido como "desenvolvedor") requer um conjunto significativamente avançado de habilidades pessoais.
Aqui estão alguns sintomas em que você poderia pensar:
O melhor resumo que posso apresentar é que o programador intermediário (ou "desenvolvedor") aprendeu a ser mais produtivo em oito horas úteis para poder ir para casa e ter uma vida fora do trabalho.
Pontos de bônus concedidos se você conseguir encontrar um cônjuge e se reproduzir ....
fonte
O que você está fazendo agora é ótimo, mas se você deseja acelerar incrivelmente o seu progresso, pode fazer duas coisas adicionais:
1) "Ensinar" - Uma maneira simples de fazer isso é iniciar um blog e tentar contribuir com algo útil regularmente (semanalmente, talvez). Almeje o que aprendeu recentemente ou que ainda não sabe . Isso significa que você se forçará a pesquisar, entender e reexpender.
BTW, você pode se inscrever facilmente em uma conta do SingingEels na qual obtém um blog gratuito em uma comunidade de desenvolvimento existente.
2) Escreva muitos miniprogramas - com isso, quero dizer cerca de 1 por semana. Você pode usar isso em conjunto com o acima ... ou apenas por diversão. O que fiz como jovem desenvolvedor foi escolher aleatoriamente (não estou brincando) um espaço para nome no .NET framework. Nele, escolha uma classe que você nunca viu / usou antes e faça um pequeno programa que a utilize.
fonte
Tente
Leia MAIS livros Pegue esses grandes títulos da Amazon e leia-os. Por exemplo, o autor do Code Complete escreveu um ótimo livro sobre engenharia de software - Desenvolvimento rápido de software, compre um e leia-o.
Aprenda uma linguagem de programação diferente Vale a pena estudar uma linguagem de script como python / ruby. Ou talvez uma linguagem de programação funcional :) Isso pode mudar sua opinião sobre a programação. Você pode saber que alguns dos padrões GOF não são necessários para esse tipo de idioma.
Participe de uma comunidade As pessoas podem trocar seus pensamentos ouvindo os outros e fazendo apresentações.
fonte
Encontre programadores inteligentes e aprenda com eles. Imite-os. Observe as coisas que eles fazem de maneira diferente da sua.
Sua empresa faz revisões de código? Essa é uma das melhores maneiras de aprender. Você pode se surpreender com as sugestões que os programadores mais avançados fazem e com o que eles pensam durante a codificação.
fonte
que tal se envolver em outro projeto de código aberto em andamento, para que pelo menos seu trabalho valha a pena para alguém e você possa aprender e interagir com outros desenvolvedores mais avançados que trabalham no mundo real.
para que pelo menos você não esteja limitado no que deseja aprender ou no tipo de projeto que deseja fazer. e já é uma ferramenta gratuita que você está usando, você pode se orgulhar de ajudar a melhorar.
e também aparece bem no seu currículo. :)
portanto, se isso ainda lhe resta algum tempo livre, por que não manter um blog documentando seu aprendizado, experiências e outras coisas. quem sabe, você pode ser o próximo contratado em software ou horror de codificação: p
fonte
Para se destacar como desenvolvedor de C #, leia os dois a seguir. Observe que o foco desses livros está mais na linguagem (C #) e não na estrutura (.NET).
Você já leu o CLR via C # , caso contrário essa é provavelmente a terceira sugestão de qualquer um para desenvolvedores de C #.
Isso também deve torná-lo um desenvolvedor melhor: Diretrizes de Design da Estrutura e Trabalhando Efetivamente com o Código Legado .
fonte