
Limiar de entrada: alto, baixo, médio
Os programadores costumam falar sobre o "limiar de entrada" - um conceito que reflete a quantidade de esforço necessária para qualquer "desenvolvedor júnior" dominar uma linguagem de programação suficientemente bem para escrever seu primeiro programa sério e encontrar um emprego. O "limiar de entrada" consiste no conhecimento de:- peculiaridades e nuances da sintaxe da linguagem
- bibliotecas
- algoritmos e estruturas de dados.
Web ou não Web?
Rede
Os programadores da Web podem ser divididos em desenvolvedores front-end e back-end . Você deve entender o que esses termos significam. Os desenvolvedores frontend estão envolvidos no lado do cliente, ou seja, o que o usuário vê. O "back-end" trata da manipulação e armazenamento de dados — a parte de um serviço que é executado em um servidor. Para um desenvolvedor Frontend decidir qual linguagem de programação aprender, JavaScript e frameworks JavaScript (Angular JS, React e outros) são essenciais. Os dialetos JS, como CoffeeScript e TypeScript, não são tão populares quanto seus pais, mas também podem ser úteis. Existe também um Flash AS, e costumava haver JScript e VBScript, mas só os dinossauros se lembram disso =) Além de tudo isso, você precisa entender HTMLe CSS .
Não web (corporativo, desktop, móvel)
Eu intencionalmente combinei as seguintes linguagens de programação nesta categoria com um nome estranho. Você pode usar a maioria deles para escrever aplicativos corporativos, de desktop e até móveis. O Python é uma linguagem de programação orientada a objetos fácil de entender e tornou-se incrivelmente popular recentemente devido ao crescimento do aprendizado de máquina (ML): os desenvolvedores de ML fazem uso extensivo do Python. MLé uma área relativamente nova em TI e, embora já tenhamos visto que ela deu frutos, eu não entraria com pressa nessa indústria ao escolher uma linguagem de programação. Primeiro, você precisará de um EXCELENTE entendimento de matemática. Em segundo lugar, a onda de popularidade pode passar da mesma forma que passou para "blockchain" ou "nanotecnologia". Dito isso, você deve se lembrar que o Python é usado no desenvolvimento da web. C++: uma linguagem clássica onde tudo é construído no operador "mais-mais". Essa linguagem é a ancestral de todas as linguagens populares de programação orientada a objetos, e um iniciante definitivamente deve prestar atenção nela. Muitos aplicativos populares foram escritos usando-o. Mas a excelente chance de "dar um tiro no pé" e a sintaxe de difícil compreensão reduzem a zero a probabilidade de um iniciante dominar esse mastodonte da programação. KotlinGenericName, que é como Java para hipsters, é uma mistura maluca de OOP e programação funcional. Tornou-se popular recentemente devido ao fato de que um desenvolvedor experiente que muda de Java para Kotlin pode melhorar seriamente sua produtividade. Um desenvolvedor experiente rapidamente se sentirá confortável com essa linguagem de programação. A propósito, o mesmo se aplica ao Scala, mas o Kotlin é popular no mundo Android. Java é fácil para iniciantes aprenderem. Especialmente com a ajuda do CodeGym =) A sintaxe do Java é compreensível e, embora haja o risco de "tiro no próprio pé", não é crítico.OOP ou POP?
A abordagem processual
A abordagem orientada a procedimentos envolve escrever um programa que consiste em instruções sequenciais que podem ser reunidas em um todo unificado para resolver efetivamente um conjunto específico de problemas. Essas linguagens incluem C , PureBasic e Pascal . Ou seja, as línguas que trazem desespero aos alunos do ensino médio e universitários. Há também o relativamente jovem GOlinguagem. Dito isso, estar familiarizado com linguagens procedurais é muito útil para um desenvolvedor em potencial. Minha imersão em linguagens processuais veio com o sistema Wolfram Mathematica e pesquisas universitárias. Algoritmos adequados e procedimentos simples, movendo-se linearmente do início ao fim do programa, permitiram-me calcular valores relevantes para a física teórica moderna. Essa linguagem de programação "sequencial" é a coisa certa para ajudá-lo a entender que às vezes é mais fácil escrever códigos que executam cálculos manualmente. A programação orientada a procedimentos de aprendizagem (POP) fornece um bom treinamento algorítmico, que um empregador quase sempre deseja ver em um candidato a emprego. Absolutamente tudo em TI é construído com base em linguagens procedurais, portanto, não as subestime. Por falar nisso, os iniciantes que decidem qual linguagem de programação aprender geralmente pensam que apenas as linguagens OOP suportam multithreading. Isso não é verdade. As linguagens de programação procedural também permitem cálculos paralelos.
A Abordagem Orientada a Objetos
Aqueles que começaram com linguagens procedurais geralmente são bem versados em matemática, algoritmos e estruturas de dados (devido à ênfase das universidades técnicas nessas áreas). Ainda assim, a realidade hoje é que os programadores de sucesso geralmente são aqueles que dominam uma abordagem diferente da programação: o paradigma orientado a objetos. A ideologia OOP permite construir sistemas verdadeiramente globais. Uma característica dessa abordagem é sua semelhança com o mundo real:- Diferentes objetos interagem uns com os outros e existem independentemente uns dos outros.
- Os objetos têm uma hierarquia e podem adotar ou alterar o comportamento de seus ancestrais.
- Você pode usar conceitos abstratos, mas apenas objetos que realmente existem podem interagir.
Exemplo Linguagens orientadas a procedimentos são ferramentas para resolver problemas específicos. Se sua tarefa mudar, mesmo que ligeiramente, você provavelmente terá que gastar tempo e esforço reescrevendo todos os algoritmos. Imagine um programa que descreve uma concessionária de carros que vende carros e caminhões, novos e usados. Em uma linguagem procedural, você precisa definir funções que processam a entrada ou saída de dados para cada entidade: um carro novo, um caminhão novo, um carro usado e um caminhão usado. O que a POO oferece? Com uma abordagem orientada a objetos, precisamos apenas definir uma classe base Vehicle que armazene as características compartilhadas por todos os tipos de veículos:
E métodos para receber e enviar informações. Em seguida, criamos objetos que herdam as características da classe Veículo: Carro e Caminhão. Eles contêm informações que pertencem especificamente a esses tipos de veículos, bem como métodos de entrada/saída. De repente, a direção da concessionária decide ampliar a linha oferecendo também motocicletas. Sob a abordagem processual, teríamos que recriar toda a lógica para motocicletas novas e usadas, enquanto uma linguagem OOP nos permite simplesmente criar uma nova classe Motocicleta que herda todas as características da superclasse Veículo e contém refinamentos específicos da motocicleta. E o que aconteceria se adicionássemos vários veículos? Uma implementação processual exigiria mais trabalho do que OOP. Além do mais, quanto maior o alinhamento, menos operações envolvendo objetos serão necessárias. |
- OOP envolve o desenvolvimento independente de módulos individuais, permitindo que um programador ou equipe escolha o método e os limites de contato e troca de informações.
- Código particionado em pequenos módulos é muito mais fácil de ler do que procedimentos monolíticos. Como resultado, um estranho pode entender rapidamente seu código e, da mesma forma, você pode ingressar em um novo projeto, se necessário.
- Uma classe pode ser alterada sem afetar a interação de outra, mas essa alteração pode afetar a hierarquia dos objetos filho. Depois de dominar essa abordagem, expandir e modificar um programa torna-se trivial.
-
Plataforma cruzada.
Java funciona em qualquer lugar graças à máquina virtual Java (JVM). Uma das principais vantagens dessa linguagem é sua natureza multiplataforma: não há necessidade de pensar em qual biblioteca adicionar ou na arquitetura de um determinado processador. "Escreva uma vez, corra em qualquer lugar."
-
Documentação.
Existe uma enorme base de documentação: documentação oficial da Oracle, portais de treinamento e uma comunidade em constante evolução. As respostas para a maioria das perguntas que surgem durante o desenvolvimento podem ser encontradas em poucos minutos. O principal é entender o que entrar no buscador =)
-
Popularidade.
Java é a linguagem de programação mais popular do mundo: além dos já mencionados desenvolvedores Android e web, quase todos os desenvolvedores corporativos escrevem em Java. Enterprise refere-se ao desenvolvimento corporativo interno necessário para as necessidades das grandes corporações.
Todos os anos, os odiadores prevêem "a morte de Java". Eles dizem: " A Oracle vai parar de dar suporte a isso. Você está perdendo totalmente o seu tempo. " Isso não é verdade! Eles prometem lançar novas versões do Java a cada seis meses.
Para mim, as expressões lambda no Java 8 foram revolucionárias e uma revelação, para não falar das novas versões! Atualmente, estou trabalhando em um projeto "legado", então não me aprofundo nas últimas inovações, mas é fato que o Java está vivo.
-
Android.
Nos últimos 4 anos, o Android deteve consistentemente mais de 80% do mercado de telefonia móvel . TVs, reprodutores de mídia e até mesmo sistemas de infoentretenimento automotivos são executados neste sistema operacional. E o desenvolvimento de aplicativos para este sistema operacional ocorre principalmente em Java. Imagine as perspectivas que estão se abrindo. Quando consegui um emprego como desenvolvedor Android, me perguntei quanto valia o produto que estava desenvolvendo. Como se viu, o preço era de cerca de US $ 5 por ano. Isso levanta a questão: "então de onde vem o dinheiro para este escritório, os salários, lanchonete, mesa de ping-pong, robôs e outras regalias? A resposta está no volume: nosso aplicativo tem 20 milhões de usuários.
-
Salários.
E agora a cereja do bolo: o salário de um desenvolvedor Java está entre os mais altos do setor. Afinal, você está planejando estudar programação com um objetivo específico: conseguir um bom emprego.
A popularidade da linguagem de programação
Existem fontes oficiais de informação, então vamos recorrer a elas. De acordo com o TIOBE , o Java ocupa o primeiro lugar em outubro de 2019. No ranking PYPL , o Java ocupa o segundo lugar, muito à frente do JS e rivalizando com o moderno Python.Conclusão
Como um iniciante contempla a escolha de uma linguagem de programação, é nisso que ele deve prestar atenção:- Popularidade (Java ocupa consistentemente uma posição de liderança)
- Limite de entrada (para Java, é médio: os empregadores exigem uma gama bastante ampla de habilidades)
- Materiais disponíveis (bem-vindo ao CodeGym =))
- Campos de aplicação: quanto mais campos onde uma linguagem de programação é utilizada, mais especialistas são necessários no mercado. Já mencionei como o Java oferece suporte ao desenvolvimento multiplataforma, mas nunca me canso de repetir.