Roteiro de um desenvolvedor Java
Um amigo meu estava se perguntando por que os desenvolvedores estão sempre tão felizes. A resposta que ela deu foi simples e surpreendente: eles fazem o que gostam e ganham muito dinheiro. Bem-vindo ao mundo dos desenvolvedores de software.
Salário do desenvolvedor de software
Gostaria de falar sobre os salários dos desenvolvedores. Como a terra está com os salários, onde você deve ir trabalhar e onde não deve. Se você não é um desenvolvedor e tenta decifrá-lo por conta própria, pode obter dados bastante controversos. O ponto principal é que o principal fator que influencia o salário de um incorporador não é a qualificação, mas o local de trabalho. Às vezes, dado o mesmo nível de qualificação, a diferença entre o bom e o mau local de trabalho pode ser de 2 a 10 vezes (!) A cada momento, sua qualificação é constante. Você não pode se tornar duas vezes mais qualificado em um mês e receber o dobro. Mas você pode mudar de local de trabalho em um mês e receber um salário duas vezes maior. Uma vez no fluxo de dois meses meu salário multiplicou por três (!) – Experiência inesquecível. Então, vamos descobrir qual é o melhor lugar.- Se o principal negócio de uma empresa é o desenvolvimento de software
- Se a empresa está orientada para o mercado global ou local
- Onde está localizado o escritório principal: país desenvolvido ou país em desenvolvimento
números específicos
Como os salários são diferentes em diferentes partes do mundo, proponho pegar o salário do Desenvolvedor Java Sênior com 5 anos de experiência como ponto de partida e chamá-lo de “máximo de 5 anos”. Todos os valores abaixo serão dados como uma porcentagem desse valor. Aqui estão alguns exemplos de salários de “máximo de 5 anos” em diferentes cidades do mundo:


O que você pode conseguir a menos que faça coisas estúpidas
Se você começar a trabalhar em sua autoeducação em programação agora mesmo, seu salário pode ficar assim:
Plano
0-3 meses (estudante)
Você sabe muito pouco sobre programação. Você pode ter estudado na escola ou em uma faculdade no nível básico. O que você precisa fazer é aprender a programar e aprender Java. Seu objetivo é conseguir um emprego como Desenvolvedor Java Junior em uma empresa de nível 3 ou superior. Nos três primeiros meses do plano você não receberá nada, pois está apenas aprendendo a programar. Mas quanto mais cedo você começar, melhor. A melhor hora é AGORA. No futuro, quando você tiver uma família e muitos empréstimos, será muito mais difícil se requalificar. Para corrigir seu erro, você terá que economizar dinheiro para pagar pelo menos um ano de vida normal. Não cometa erros bobos.3-15 meses (Desenvolvedor Java Junior)
Você já trabalha como desenvolvedor de software e sua experiência cresce a cada dia. Não relaxe. Você tem muito o que fazer antes de descansar nos remos. O que você precisa fazer é – estudar as tecnologias que você precisará como Desenvolvedor Médio. Quem são esses? O mundo está em constante mudança. Vou te encher de conselhos e a vida vai mudar tudo. Encontre algumas vagas na web e veja o que você precisa para se candidatar. Certifique-se de ler um livro de Bruce Eckel “Thinking in Java”. Seu objetivo no primeiro ano de trabalho como Java Junior Developer é atingir o nível de Java Middle Developer. Ninguém diz que seria fácil, mas é possível para uma pessoa orientada para objetivos. Isso aumentará seu salário em um instante em até 40% do “máximo de 5 anos” ($ 50.000 para SF e Londres, $ 6.000 para Bangalore).Programação de 2 anos (Java Middle Developer, nível 1)
Você fez um bom trabalho no ano passado e agora é um Java Middle Developer. Você pode viver muito bem ganhando 50% do salário do Desenvolvedor Java Sênior. Você está recebendo algumas tarefas sérias no trabalho e sua experiência cresce significativamente. Você alcançará o nível de Java Senior Developer em dois ou três anos. Não precisa se apressar. De qualquer maneira, você não terá grandes vantagens salariais. O que você precisa fazer é aprender padrões de projeto, leia – McConnell's Code Complete. Aperfeiçoe a qualidade do seu código e as habilidades da equipe. Crie uma regra de ler 1 livro sobre programação de computadores por mês. Então, em 4 anos você será 50 livros mais inteligente do que todo o resto. Não adie: você não terá mais tempo livre, além disso, muito provavelmente você vai começar uma família, ou se tiver uma, ela vai se tornar maior. Seu objetivoé escolher algumas tecnologias para se especializar como Desenvolvedor Java Sênior. Você não pode aprender todos eles, você sabe. E é sempre uma boa decisão tornar-se guru em uma única especialização.
Programação de 3 anos (Java Middle Developer, nível 2)
Agora você é um desenvolvedor intermediário experiente e está pensando em se tornar um desenvolvedor sênior. É agradável e prestigioso. Seu salário excede 60% do “máximo de 5 anos” ($ 10.000 em Bangalore, $ 25.000 em Kiev, $ 40.000 em Berlim, $ 80.000 em Nova York). A partir deste momento a procura por profissionais como você aumenta a oferta. Você sempre conseguirá encontrar um emprego em alguns dias e dificilmente ganhará menos do que ganha agora. Isso, claro, se você não fizer nada estúpido. O que você precisa fazer écontinue estudando as tecnologias que você escolheu. Trabalhe melhor. Não pelo bem do seu empregador, pelo seu próprio. Inscreva-se para participar de projetos envolvendo tecnologias promissoras (como BigData, no momento em que este artigo está sendo escrito). Você passará 8 horas por dia no escritório de qualquer maneira, então por que não ganhar um pouco mais de dinheiro por isso e, o que é muito mais importante, a experiência mais valiosa que você precisará no futuro. Seu objetivo é encontrar um novo emprego. Uma boa equipe sempre pode ser encontrada. Você enfrentará novos projetos e tecnologias. Você não precisa torcer para sua cadeira. Se você ainda estiver trabalhando em uma empresa de terceiro nível, pense em contratar uma de quarto nível.Programação do 5º ano (Desenvolvedor Sênior Java, nível 1
Agora você é um Desenvolvedor Sênior. Talvez você não mereça isso, e você sente isso. Mesmo assim, meus parabéns. Não importa se você é digno de sua posição agora, tudo o que importa é que você se torne digno dela no futuro. Acho que você vai concordar que é melhor conseguir um bom emprego e depois crescer até o nível exigido do que vice-versa. Espero que você não tenha esquecido meu conselho de ler um livro por mês. Qualquer aluno vai invejar seus conhecimentos e habilidades agora. Para ser mais específico, ele estará orando por eles. Pense nisso: você tem ganhos sérios, perto de 90% do salário de “máximo de 5 anos”. Você provavelmente ainda é jovem. O mundo está a seus pés. O que você precisa fazer épara reavaliar as tecnologias que você escolheu. Talvez você precise mudar de especialização. O mundo mudou, as tecnologias mudaram e você adquiriu bastante conhecimento nos últimos dois anos. O que você escolher agora se tornará a manchete nos próximos anos para você. É hora de escolher suas tecnologias favoritas. Seu objetivo é escolher sua direção de crescimento. Eles são numerosos, ninguém pode nomeá-los todos, mas sua escolha deve ser feita agora. Se você fizer uma pequena mudança hoje, terá uma grande mudança no futuro.Programação do 6º ano (desenvolvedor sênior Java, nível2)
Você decidiu seu futuro e está trabalhando para que seu sonho se torne realidade. Uma direção escolhida corretamente junto com o desejo de seguir em frente – e o resultado não tardará. Parabéns. Fico feliz em ver que mais uma pessoa realizou seu sonho. Há uma verdade profunda. As pessoas costumam superestimar o que podem alcançar em um ano e subestimar o que podem fazer em cinco. Olhe cinco anos atrás. É assim. O que você precisa fazer é evitar decisões imprudentes e não ser preguiçoso. Seu objetivo é escolher a direção e seguir em frente. Ou você pensou que termina aqui? Lembre-se de sua formatura. Não é o fim, é só o começo.Sua futura especialização

Carreira de Desenvolvedor Java
A carreira de desenvolvedor é diferente de qualquer outra. Você não precisa se tornar um gerente para ganhar um bom dinheiro. Muitas vezes acontece que um Desenvolvedor Sênior ganha mais que seu gerente-chefe. Quanto mais experiência você ganha, mais fortes são suas relações de trabalho com seu chefe, que muda de “chefe-subordinado” para “estrela e gerente”.
Desenvolvedor de duzentos anos
Se você gosta de programar acima de tudo, então este é o seu caminho: Desenvolvedor Sênior, Desenvolvedor Líder Técnico e Arquiteto. Dessa forma, você pode trabalhar como desenvolvedor por 50 anos ou mais. Na maioria dos casos, os salários dos desenvolvedores seniores e dos desenvolvedores líderes técnicos excedem os de seus gerentes. Portanto, faça o seu dinheiro valer a pena.Gerente. Você tem sorte de não ser como os outros
Você foi para o inimigo. Estou brincando. Se você descobrir grandes habilidades de organização, então seus caminhos são: Líder de Equipe e, em seguida, Gerente de Projetos. Isso lhe dará a chance de se tornar chefe de departamento e abrir seu próprio negócio. É isso que você quer, não é?Lar é onde o coração está

Veja Nápoles e não morra.
Você ainda não tem família e adora viajar . oDesk é o seu tudo. Encontre um cliente, concorde com uma taxa de US$ 20 a US$ 50 por hora, leve um laptop com você e pronto! Seu salário será suficiente para viver em qualquer lugar do mundo. Por que não começar a realizar seus sonhos imediatamente?Não quero programar, sou menina..
Se você for uma menina , pode precisar tirar uma licença maternidade . Parece uma piada machista, o que é. Ainda assim, há muito bom senso nisso. Provavelmente, tirando uma licença de maternidade, você poderá obter muito dinheiro da licença de maternidade (em países com alta proteção social). Há empresas que não pagam nada, e há aquelas que pagam bem. Uma das minhas alunas recebia um terço do salário anual durante a licença-maternidade. E isso aconteceu na primavera de 2009, durante as demissões. E daqui a um ano e meio você pode voltar, sendo no mínimo Desenvolvedor Médio.Nível 6

1 Elly. Visibilidade do objeto. nulo
- Ei, amigo! - Oi, Elly! Você vai me contar algo interessante hoje? - Hoje vou falar sobre o tempo de vida de um objeto . Depois que um objeto é criado, ele existe (vive) até que pelo menos uma variável armazene seu endereço (há pelo menos uma referência de objeto). Se não houver mais referências, o objeto morre. Exemplos:
2 Professor, coleta de lixo

3 Elly, finalize
- Olá de novo! Agora darei uma breve introdução ao método finalize() . Este método é chamado pela máquina virtual Java no objeto antes que o objeto seja destruído. Na verdade, esse método é oposto ao construtor. Neste método é possível liberar os recursos utilizados por um objeto. - A classe Object possui este método, portanto, toda classe possui ( todas as classes em Java são consideradas herdadas da classe Object e contém uma cópia de seus métodos ). Se você escrever em sua classe o método finalize() e ele será chamado antes que os objetos desta classe sejam destruídos. Exemplo:
4 Elly, tempo de vida do objeto
- Também quero contar algumas coisas interessantes sobre o tempo de vida do objeto. Em Java, é muito difícil perder o objeto acidentalmente; se você tiver uma referência de objeto, isso significa que o objeto certamente está vivo. - Dentro de uma referência de objeto armazena um número – endereço deste objeto na memória. Você não pode alterar esse número, aumentá-lo ou diminuí-lo. Você não pode criar uma referência quando tiver apenas um endereço na memória. Você só pode criar um novo objeto e atribuir sua referência a uma variável. Esta é a única maneira de obter uma nova referência. - Eu vejo. Ou seja, se eu definir como null (apagar) todas as referências do objeto, nunca vou pegar a referência do objeto e acessá-la? - Sim. Mas muitas vezes o oposto é verdadeiro – há muitos objetos vivos não utilizados.A maioria dos programas cria dezenas de objetos e os armazena em diferentes listas durante a execução, mas nunca limpa essas listas. - Principalmente, os programadores rotulam objetos indesejados como “excluídos”, isso é tudo. Ninguém se importa com sua remoção das listas. Portanto, grandes programas Java tendem a inchar - mais e mais objetos não utilizados permanecem vivos na memória. - Isso é tudo. No futuro chamarei sempre a vossa atenção para os objectos não utilizados e para a sua eliminação adequada. - ОK, obrigado. Você esclareceu algumas coisas sobre as referências.5 Diego, Tarefas de vida útil do objeto
- Ei, amigo! Aqui estão algumas tarefas para você:Tarefas | |
---|---|
1 | 1. Método finalize() da classe Cat Escreva um método protegido void finalize() lança Throwable na classe Cat |
3 | 2. Classes Cat and Dog e método finalize() para cada classe Em cada classe Cat e Dog escreva um método finalize() , que exibe na tela uma mensagem de que o objeto foi destruído. |
3 | 3. 50.000 objetos da classe Cat e 50.000 objetos da classe Dog Crie em um loop 50.000 objetos da classe Cat e 50.000 objetos da classe Dog. (A máquina virtual Java destruirá objetos não utilizados, então o método finalize() será chamado pelo menos uma vez). |
4 | 4. Contador Cat No construtor da classe Cat [public Cat()], aumente o contador cat (variável estática catCount da mesma classe) em 1. No método finalize() diminua em 1. |
6 Elly, classes e métodos estáticos
- Aqui está um novo tópico interessante. Quero falar sobre as variáveis e métodos estáticos. - Ah, já ouvi falar de variáveis estáticas. Sobre métodos estáticos também, eu acho. Mas gostaria de ter mais detalhes. - Ao declarar variáveis em uma classe, especificamos se essas variáveis são criadas em uma única instância compartilhada ou se é necessário criar suas cópias para cada objeto. Por padrão, uma nova cópia da variável de classe é criada para cada objeto dessa classe. Aqui está o que parece:



7 Risha, classes e métodos estáticos
-Além dos métodos estáticos, também existem classes estáticas . Vamos considerar este caso mais adiante, vou apenas mostrar um exemplo dele:
8 Diego, Tarefas no método estático
- Ei, amigo! Aqui estão algumas tarefas interessantes em métodos estáticos:Tarefas | |
1 | 1. Classe Cat e variável estática catCount Escreva uma variável estática int catCount na classe Cat. Crie um construtor [ public Cat() ], no qual a variável fornecida deve ser aumentada em 1. |
2 | 2. Métodos estáticos: int getCatCount() e setCatCount(int) Adicione dois métodos estáticos à classe Cat: int getCatCount( ) e setCatCount(int) com os quais você pode obter/alterar o número de gatos (a variável catCount) |
3 | 3. Classe Util Implemente um método estático double getDistance(x1, y1, x2, y2) . Deve calcular a distância entre os pontos. Use o método double Math.sqrt(double a) para calcular a raiz quadrada do parâmetro passado |
4 | 4. Classe ConsoleReader Escreva uma classe ConsoleReader, que terá 4 métodos estáticos: - String readString() para ler strings do teclado - int readInt() para ler números do teclado - double readDouble() para ler números fracionários do teclado - void readLn () para esperar pressionar enter [use readString()] |
5 | 5. Classe StringHelper Escreva uma classe StringHelper, que terá 2 métodos estáticos: - String multiple(String s, int count) deve retornar as contagens repetidas da string. - String multiple(String s) deve retornar a string s repetida 5 vezes. Exemplo: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Professor, escopo estático e tempo de vida do objeto

10 de julho
- Ei, amigo! Você fez um ótimo trabalho hoje. É por isso que simplesmente não posso lhe dar mais. Vamos, sente-se, o show começa:11 Capitão Esquilos
- Olá, soldado! - Bom Dia senhor! - Tenho uma notícia incrível para você. Aqui está uma verificação rápida para reforçar suas habilidades. Faça isso todos os dias e você aprimorará suas habilidades rapidamente. As tarefas são especialmente projetadas para serem executadas no Intellij IDEA.Tarefas adicionais a serem executadas no Intellij Idea | |
---|---|
1 | Classe Cat e variável estática catCount Escreva uma variável estática public int catCount na classe Cat. Crie um construtor [public Cat ()]. Deixe a variável estática catCount aumentar em 1 toda vez que você criar um gato (um novo objeto Cat). Crie 10 objetos Cat e exiba o valor da variável catCount . |
2 | 2. Gatos estáticos
Para criar variáveis de gatos , use a linha de código: public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Mova um modificador estático Mova um modificador estático para que o código seja compilado. |
4 | 4. Número mínimo de palavras-chave estáticas Adicione o número mínimo de palavras-chave estáticas para compilar o código e concluir o programa com êxito. |
5 | 5. Alguma ideia nova? Vamos pensar...
|
6 | 6. KissMyShinyMetalAss Escreva uma classe chamada KissMyShinyMetalAss. Crie um objeto dessa classe e exiba-o na tela. |
7 | 7. Nome de três variáveis estáticas Escreva 3 variáveis estáticas públicas: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION