Estou planejando me mudar para NY em 6 a 12 meses no máximo, então sou forçado a encontrar um novo emprego. Quando planejo começar minha vida em outra cidade, provavelmente também é um bom momento para pensar em mudanças de carreira.
Eu encontrei muitas opiniões diferentes sobre PHP vs .Net vs Java e este não é o tópico aqui. Não quero começar uma nova briga sobre qual idioma é melhor. Conhecer uma linguagem de programação não é a coisa mais importante para ser um desenvolvedor de software. Para ser um desenvolvedor realmente bom, você precisa conhecer OOP, padrões de design, testes ... e uma linguagem é apenas uma ferramenta para fazer as coisas acontecerem.
Então, de volta à minha pergunta. Tenho experiência mista em TI - 1 ano como suporte técnico (administração e suporte do Windows), cerca de 2 anos de experiência em programação embarcada (VB.Net 2005) e nos últimos 2 anos estou trabalhando com PHP / MySQL. Trabalhei com a loja virtual Magento, auxiliei em alguns projetos no Symfony, modifiquei alguns sites do Drupal.
Minhas principais preocupações são as seguintes:
- Continuo aprimorando minhas habilidades em PHP, por exemplo, para começar a aprender algumas das principais estruturas PHP, como o Zend, o Symfony talvez obtenha alguma certificação em PHP.
- Ou começo a aprender .NET ou Java. Eu sou mais familiarizado com o .NET, então provavelmente o escolherei se escolher entre .NET e Java (ou você pode me convencer a escolher Java :).
Em termos de carreira, não sei qual é a melhor escolha. Aprender uma nova estrutura e linguagem consome mais tempo do que melhorar minhas habilidades existentes em PHP. Mas, com o .NET, você tem muitas possibilidades (desenvolvimento do Windows 7 Phone, Silverlight, WPF) e chances maiores de encontrar empregos melhores.
Os trabalhos PHP são menos bem pagos que o .NET, pelo menos, de acordo com minha pesquisa (corrija-me se estiver errado). Mas se eu começar agora com o .NET, sou apenas iniciante e meu salário será baixo. Preciso de pelo menos mais de 2 anos de experiência em algum idioma para tentar encontrar algum emprego que pague mais de US $ 50-60 mil em NY. Meu principal objetivo nos próximos 2-3 anos é tentar encontrar um emprego na categoria $ 60-80k. Não me interpretem mal, não estou apenas perseguindo dinheiro, mas o dinheiro é um fator importante quando você está tentando iniciar uma família.
Tenho 27 anos e sinto que não há muito espaço para decisões erradas em relação à minha carreira, portanto, qualquer conselho será muito bem-vindo.
Atualizar
Obrigado a todos por gastar tempo para me ajudar com o meu problema. Todas as respostas e comentários foram muito úteis. Eu decidi ficar com o PHP, mas também aprender C # e Silverlight 4. Vamos ver aonde a vida me levará.
fonte
Respostas:
Tenho 51 anos e utilizei pelo menos 15 idiomas e / ou frameworks desde que recebi meu primeiro show pago após a graduação em 1987.
Te abençoe.
Eu nunca entrei na gerência porque não queria, mas sei como programar e como manter as equipes motivadas e fornecendo um bom código. Você precisa trabalhar nas habilidades das pessoas e procurar um trabalho interessante que o estique. Eu nunca parei de aprender ou me divertir, mas houve momentos em que eu estava na estrada que poderia ter parado - mas não codificando, viajando.
Contanto que você possa ganhar a vida e cumprir seus compromissos pessoais sem comprometer seus princípios, desde que goste do que faz (um luxo que a geração de meus pais não teve) apenas continue seguindo em frente.
.Net e Java são geralmente corporativos (porque são caros para fazer coisas úteis, mas escalam muito bem), o PHP geralmente é uma startup, eu faço Ruby (geralmente startups que saíram dos estúdios de design por algum motivo) para muitas pessoas como independente. Se você se apegar ao PHP, aprenda o que é o OO, porque acho que finalmente começará a ser o modo como as pessoas fazem as coisas, mesmo que seja uma reimplementação um pouco melhor do que você tem com Java e elas poderiam torná-lo muito mais dinâmico. Pessoas que fazem Python e querem viajar podem acabar fazendo todo tipo de coisas científicas e de jogos interessantes em todo o mundo. Perl ainda é um corredor também e tem um perfil semelhante.
Esqueça o idioma, escolha a indústria que você gosta, escolha uma empresa gerenciada por seres humanos e divirta-se entregando valor às pessoas que a apreciam. Você não vai se arrepender.
fonte
O que diabos a escolha da linguagem de programação tem a ver com sua carreira?
Essa pergunta é como perguntar: "Eu tenho duas opções para um local de trabalho. Devo trabalhar no local em que o chefe tem sotaque norueguês ou no local em que o chefe tem sotaque espanhol?"
Existem considerações de carreira muito mais importantes.
Essa lista pode durar horas. A escolha de uma linguagem de programação é tão relevante para a carreira de um programador quanto a escolha de pentear o cabelo para a esquerda ou para a direita. É todo o desenvolvimento de software, não importa qual idioma da linguagem de programação você esteja falando.
fonte
Aprenda o maior número possível de idiomas, de preferência pelo menos um em cada área principal de desenvolvimento.
Cada um destes ensinará algo sobre os fundamentos do desenvolvimento de software. Obviamente, além disso, você precisará experimentar diferentes abordagens de design (OO, funcionais, baseadas em dados), diferentes métodos de trabalho em equipe (ágil, tdd, em comparação com tipos mais rígidos), diferentes plataformas, diferentes mecanismos de implantação (nativos , baseado em framework, web). A lista continua. A fluência linguística é apenas uma pequena parte do todo.
Para todas essas coisas, você precisa fabricar pelo menos um produto real para usá-lo.
Algumas pessoas dirão que você precisa se especializar em uma tecnologia (PHP, .Net, Java) e construir uma carreira amplamente em torno dessa para progredir. Eu não concordo com isso. Vou levar um desenvolvedor que já esteve ao redor do quarteirão algumas vezes com diferentes plataformas e tecnologias em um que passou 10 anos fazendo uma coisa em qualquer dia da semana. O motivo é que a tecnologia muda a cada ano, e o desenvolvedor que é capaz de adquirir uma nova tecnologia, ler a API e aplicar sua experiência de maneiras mais gerais do que apenas saber que a biblioteca funciona de cor, será muito mais produtivo no longo prazo. Ok, para que o veterano de 10 anos do .Net saia do ponto de partida do .Net mais rápido, mas esse lead inicial se perde em cerca de um mês. Isto'
fonte
Eu sugeriria procurar um emprego em PHP, porque é isso que você faz melhor.
Sugiro também que você comece a se educar nas novas tecnologias que deseja aprender, para poder começar a procurar emprego com essas ferramentas, mas não faça isso em um prazo tão curto, porque descobrirá que essas coisas são enormes e os empregadores esperam você conhece o suficiente desses gigantes para ser produtivo. Isso requer tempo e prática . Não subestime a quantidade de tempo e a quantidade de prática que você terá que fazer.
Para lhe dar uma estimativa do que "eu posso programar em Java" potencial empregado deve ser capaz de, você pode ter um olhar para o Sun Java Tutorial . Eu esperaria que você estivesse familiarizado com pelo menos metade dos conceitos listados, onde familiar significa poder usá-lo em um programa escrito por você e usá-lo corretamente . Eu esperaria que demorasse mais de 6 meses estudando para atingir esse nível.
fonte
Detesto parecer um troll, mas o idioma que você deve aprender é o inglês. Há muitos erros em sua postagem e isso parece desleixado. Se eu estivesse contratando e esse fosse o seu currículo, eu não me importaria com as linguagens de programação que você disse que conhecia, eu assumiria que sua negligência com a língua inglesa seria transferida para o seu trabalho de programação.
Não parecia que você estava estudando inglês como segunda língua (é claro que eu poderia estar errado), mas havia erros gramaticais e ortográficos suficientes para fazer uma pausa na maioria dos gerentes de contratação. Como eles só verão sua palavra escrita no início, é necessário corrigi-la.
fonte
A resposta a longo prazo para essa pergunta é basicamente o que nosso estimado anfitrião (Joel Spolsky) e Steve Streeting disseram. A programação básica não é sobre linguagens, é sobre o uso do computador para resolver problemas e é uma arte que deve ser aprendida, trabalhada e pensada ao longo do tempo. Saber codificar não faz de um programador.
Mas você perguntou um tópico pragmático e sensível ao tempo. O que você deve fazer AGORA?
Eu sugiro que você pesquise PHP até a mudança. Mergulhe, duro, muito duro, 20 horas por semana fora do trabalho duro. Com o PHP, é muito fácil .. obter uma conta de hospedagem e um domínio e começar a criar aplicativos. Com esforço concentrado, 6 meses é uma eternidade. Durante esse tempo, torne-se realmente bom nisso. Isso o ajudará a encontrar um bom emprego uma vez em Nova York e provavelmente o tornará um programador melhor para iniciar.
Entre. Se você ainda não sabia, existe um site de emprego em TI na família StackExchange.
ENTÃO, quando a transição da vida se acalmar um pouco, comece a seguir o manual do Sr. Streeting e a se educar sobre o ofício da programação, em vez do comércio da codificação. Use algum tempo fora do trabalho para ler e fazer coisas em outras plataformas e com outras ferramentas.
fonte
Penso que o ponto principal é que, eventualmente, um engenheiro de software deve chegar ao estado em que a linguagem é em grande parte irrelevante para a tarefa em questão, exceto em suas limitações.
Se você conhece um idioma ou não, isso não deve fazer diferença, desde que você tenha um manual, apenas para acelerar durante o primeiro dia ou mais enquanto você se orienta.
Dito isso, as linguagens proprietárias tendem a ter menos documentação e exemplos espalhados pela Web e, portanto, são mais difíceis de se acostumar e representar um problema se você deseja levar seu trabalho para casa.
fonte
Meu conselho é encontrar um emprego para fazer o que lhe interessa e gostar de fazer. Se você gosta de PHP, por que não continuar desenvolvendo suas habilidades em PHP. É muito mais fácil aprender e desenvolver habilidades fazendo algo que você está interessado.
Você já olhou para .NET ou Java antes? Caso contrário, isso pode sugerir que você não está interessado nesses idiomas, mas talvez você possa passar uma semana mais ou menos olhando cada um e ver por si mesmo se você está interessado.
fonte
Termo curto; Não sei quais são as práticas de contratação nos EUA, mas, considerando que você está se mudando dentro de 6 a 12 meses, por enquanto, eu consideraria o PHP uma vez que você tem dois anos de experiência.
Minha experiência aqui (na Holanda) é que as empresas tendem a ter um foco de curto prazo nas tecnologias e na experiência da estrutura. A linguagem realmente não é, mesmo que estejam perguntando " 3 anos de experiência em C # ", eles querem dizer " 3 anos de experiência com as bibliotecas / ferramentas de estrutura / classe que você usaria com C # ".
(Caso contrário, por que eles querem contratar alguém que precise de três anos para aprender os recursos de sintaxe e linguagem C # está além de mim. Parece alguém que eu não gostaria de contratar.)
Aprendendo novos idiomas; estático, dinâmico, funcional, é de grande valor quando se trata de ampliar suas perspectivas. No entanto, aprender as bibliotecas de classes relevantes e a maneira de fazer as coisas nesse idioma exigirá experiência.
Eu recomendaria tomar uma decisão escolhendo uma pilha de tecnologia e aprendendo profundamente. Use os outros ambientes para se inspirar.
É claro que a preferência pessoal também entra em jogo. Por exemplo, embora haja muito mercado para isso, eu nunca aceitaria um trabalho em PHP: -PI escolhe uma pilha e eu trabalho em busca disso.
Quanto a fazer uma carreira a longo prazo, acho que você deve olhar além da codificação (no final, tudo se resume a aprender e poder ler e / ou vasculhar a documentação) e a tecnologia do dia e analisar mais as habilidades pessoais e outras coisas. As tecnologias vêm e vão rapidamente. É claro que há muito a aprender quando se trata de boas práticas e conhecimentos mais gerais, infelizmente eles raramente são procurados no mercado de trabalho em minha experiência.
fonte
Eu acho que muitas vezes as pessoas misturam linguagens de programação e estruturas / pilhas de tecnologia. É relativamente fácil aprender um novo idioma, mas é muito mais difícil com grandes tecnologias. Concordo com algumas respostas de que o mais importante é a sua experiência geral de programação / solução de problemas, mas não acredito que alguém possa ENTENDER uma tecnologia completamente nova em 1 semana.
Certamente, uma grande parte dos desenvolvedores nunca leu um único livro técnico e não entendeu os elementos básicos das tecnologias que estão usando. Eles apenas abrem caminho para sair dos problemas e são muito "bem-sucedidos". Eu mesmo comecei a carreira em PHP sem nem mesmo entender como o HTTP funciona no começo. Mas alguns empregadores, que eu respeito mais, esperam um profundo entendimento de "como as coisas funcionam", simplesmente porque isso tende a aumentar as chances de sucesso de seus projetos.
O mínimo que você precisa fazer para obter esse entendimento é ler alguns livros BOM com tempo suficiente para criar protótipos de soluções para problemas comuns em um novo ambiente de desenvolvimento desconhecido. É possível fazer em uma semana? Eu adoraria trabalhar com pessoas capazes disso, mas não espero vê-las tão cedo.
Alguns empregadores estão realmente prontos para lhe dar tempo suficiente para obter esse entendimento, respeitando sua profunda experiência técnica geral em outras pilhas de tecnologia (se você tiver uma), mas infelizmente a maioria não é.
Além disso, quando você está mudando de tecnologia, o mais importante é sua personalidade - como você é humilde e curiosa para dedicar tempo suficiente para entender como as coisas funcionam e como são feitas em sua nova área.
Então, para resumir, minha resposta seria a seguinte. Escolha uma tecnologia com potencial suficiente e que (o mais importante) o faça feliz em seu trabalho. Especializado nessa tecnologia, o mercado de trabalho valorizará isso e alguns anos necessários para obter seu salário-alvo valerão a pena. Mas nunca seja excessivamente zeloso, passe algum tempo com outras tecnologias, isso fará de você um PROFISSIONAL muito melhor em geral.
fonte
Eu tenho que concordar com Joel. Mas sua resposta vai além das habilidades e preferências técnicas.
Na minha experiência, geralmente os requisitos de seu trabalho apontam para uma tecnologia ou linguagem de programação específica, e não o que você gostaria de usar; a menos que seja uma startup que ainda não tenha definido o que eles usarão. E ninguém pode garantir que você encontre um emprego / empresa utilizando exatamente o que está procurando.
Portanto, a verdadeira questão é: você é bom em aprender coisas novas? você pode resolver um problema e resolvê-lo em tempo hábil, independentemente da linguagem de programação?
Um bom programador deve estar bem ciente dos conceitos de construção e engenharia de software. Sua pergunta me faz acreditar que você não investiu tempo suficiente para aprendê-las, o que provavelmente o deixa incerto sobre suas habilidades e quais são seus potenciais reais. E honestamente, se você não tiver feito isso, já está na hora de fazê-lo, porque sem eles você provavelmente não irá longe.
Há outra coisa que a maioria de nós, programadores, costumam não prestar atenção antes de completar 30 anos: habilidades de programação são apenas metade das habilidades que tornam um bom programador. Você é um bom jogador de equipe? Você está disposto a passar o conhecimento aos colegas de trabalho tão voluntariamente quanto você (ou deveria estar) recebendo conhecimento de outras pessoas? As habilidades das pessoas são muito subestimadas por muitos de nós, embora sejam realmente muito importantes.
fonte
Não concordo com a maioria dos comentários listados neste fórum.
Além de aprender os princípios e a teoria de engenharia de software, o idioma que você escolhe dominar é uma opção de carreira. É por isso que existem programadores Java e PHP. Os programadores PHP provavelmente não estarão trabalhando para a NASA e os programadores Java provavelmente não estarão trabalhando para uma loja virtual.
Se você quer um emprego na América corporativa, é melhor seguir o Java / .Net. Você pode obter uma boa renda, mas esteja preparado para doar sua vida a eles (tempo).
Se você quer ser um freelancer independente e viver na via rápida com a tecnologia da web, é melhor usar o PHP. Muito trabalho aqui, mas o salário varia muito e ser independente é trabalhar com todos os Tom, Dick e Harry com uma idéia de tentar contratá-lo por centavos.
Há alguma sobreposição com PHP e Java, mas apenas é visto em trabalhos corporativos (Serviços Java REST com front-end PHP), mas você não encontrará lojas da web ou trabalho freelance independente em qualquer lugar perto de Java.
Ambos exigem muito tempo e dedicação, se você quiser ser útil em qualquer situação.
Para ser um desenvolvedor PHP competente e procurado, você precisa de um pacote cheio de conjuntos de habilidades. Provavelmente, você deve conhecer CSS, HTML4 / 5 e, definitivamente, Javascript DOM / Ajax / Jquery, além de pelo menos uma estrutura viável, como Zend (escolha do provador da América corporativa), Codeignitor, cakePHP, etc. Você precisará conhecer os "três grandes" CMS's: Drupal, Wordpress e Magento. Coloque esses conjuntos de habilidades em seu currículo e você será um especialista em PHP com a capacidade de realizar trabalhos onde quer que vá. Como você pode ver, entender tudo isso é uma devoção a um idioma e suas ferramentas, porque aprender Perl não ajudará você a ser um desenvolvedor especialista em Drupal ou Zend.
O mesmo vale para Java: OOP, J2EE, REST / SOAP, Spring / Struts, etc. e é uma frota de outras ferramentas que levam anos para serem mestres.
Alguém aqui tentou codificar Java por um ano e depois voltou ao PHP (ou qualquer linguagem de script). É difícil. Parece estranho.
Eu trabalho para uma empresa da Fortune 500 e os desenvolvedores de Java não seriam capazes de fazer o que os desenvolvedores de PHP fazem e os desenvolvedores de PHP não seriam capazes de fazer o que os desenvolvedores de Java fazem. Mas ambos se saem bem financeiramente porque são especialistas em seu campo, na linguagem de sua escolha e no fluxo de ferramentas que o acompanham.
fonte
Linguagem e plataforma não são tão importantes. Aprenda pessoas sólidas e habilidades de ficção científica. Muitas pessoas disseram isso, mas não deram detalhes, então deixe-me fazer isso. Aqui estão algumas coisas para aprender
fonte