Limite de entrada: alto, baixo, médio
Entre os programadores, muitas vezes você pode ouvir sobre o “limiar de entrada” - um conceito que reflete a quantidade de esforço necessária para um indivíduo “júnior” dominar uma linguagem de programação em um nível suficiente para escrever seu primeiro programa sério e encontrar um emprego. O “limiar de entrada” consiste em conhecimento:- características de sintaxe e nuances da linguagem;
- bibliotecas;
- algoritmos e estruturas de dados.
Web ou não Web?
Rede
Os programadores Web podem ser divididos em desenvolvedores Frontend e Backend . Vale a pena entender o que esses termos significam. Os desenvolvedores de “frontend” lidam com o chamado lado do cliente – o que o usuário verá. “Backend” é a parte de software e hardware do serviço – o que roda no servidor. Para um desenvolvedor Frontend decidir qual linguagem de programação escolher, o must-have é o JavaScript e seus frameworks: Angular JS, React e outros. Os dialetos JS não são tão populares quanto seus pais, mas também podem ser úteis: CoffeeScript, TypeScript. Também existe flash AS, antes de existir JScript e VBScript, mas só os dinossauros lembram disso =) Além disso, você precisa entender HTML e CSS .Não Web (empresarial, desktop, móvel)
Agrupei especificamente essas linguagens de programação em uma categoria com um nome tão estranho. A maioria deles pode ser usada para escrever aplicativos empresariais, de desktop e até mesmo móveis. Python , um OOLP fácil de entender, tornou-se incrivelmente popular recentemente devido ao desenvolvimento do Machine Learning : seus adeptos usam amplamente o Python. ML é uma área bastante jovem em TI e, embora os primeiros frutos já tenham sido recebidos, não teria pressa em mergulhar nesse setor ao escolher uma linguagem de programação. Primeiro, você precisa ser MUITO bom em matemática. Em segundo lugar, a onda de popularidade pode seguir o mesmo caminho que com “blockchain” ou “nanotecnologia”. Além disso, como você lembra, Python é usado no desenvolvimento web. C++ : clássico, tudo é construído com base nas “vantagens”. Essa linguagem foi a progenitora de todos os OOLPs populares, e um iniciante definitivamente deveria prestar atenção a ela. Muitos aplicativos populares são baseados nele. Mas a alta probabilidade de “dar um tiro no pé” e a sintaxe difícil de entender anulam a probabilidade de um iniciante dominar esse mastodonte da programação. Kotlin - Java para descolados - uma mistura maluca de OOP e programação funcional. Recentemente popular devido ao fato de que um desenvolvedor experiente que muda de Java para Kotlin melhora significativamente sua produtividade. Um desenvolvedor experiente se acostumará rapidamente com essa linguagem. A propósito, o mesmo se aplica ao Scala, mas o Kotlin é popular no Android. Java é fácil para um iniciante aprender. Inclusive, graças ao JavaRush : foi aqui que entendi como escolher uma linguagem de programação =) A sintaxe do Java é clara, existe a possibilidade de “dar um tiro no pé”, mas não crítica.POO ou POP?
Abordagem processual
A abordagem orientada a procedimentos envolve escrever um programa que consiste em instruções sequenciais que podem ser reunidas em um único todo para resolver com eficácia uma gama específica de problemas. Essas linguagens incluem: C , PureBasic e Pascal . Os mesmos que trazem desânimo aos alunos do ensino médio e do ensino fundamental. Há também um GO relativamente jovem . No entanto, a familiaridade com linguagens procedurais é muito útil para um potencial desenvolvedor. Para mim, a imersão em linguagens procedurais está associada ao sistema Mathematica (Wolfram) e às atividades de pesquisa universitária. Graças às abordagens algorítmicas corretas e procedimentos simples, movendo-se linearmente do início ao fim do programa, consegui calcular valores que são relevantes para a física teórica moderna. É graças a essas linguagens “sequenciais” que você começa a entender que às vezes é mais fácil escrever código do que contar sozinho. Estudar PPP proporciona um bom treinamento algorítmico, que um empregador quase sempre deseja ver em um candidato ao contratar. As bases de tudo e de todos em TI são construídas em linguagens procedurais, portanto, não as subestime. A propósito, iniciantes que decidem qual linguagem de programação escolher para aprender muitas vezes pensam que multithreading é prerrogativa exclusiva da OOP. Isto está errado. As linguagens de programação processual também permitem realizar cálculos paralelos.Abordagem orientada a objetos
Quem começou com linguagens procedurais na maioria das vezes possui bons conhecimentos de matemática, algoritmos e estruturas de dados (isso se deve à ênfase nessas áreas do conhecimento nas universidades técnicas). No entanto, nas realidades modernas, os programadores de sucesso são frequentemente aqueles que dominam bem outra abordagem de programação - orientada a objetos. A ideologia OOP torna possível construir sistemas verdadeiramente globais. A peculiaridade desta abordagem é a sua semelhança com o mundo real:- vários objetos interagem entre si e existem independentemente uns dos outros.
- os objetos possuem uma hierarquia e são capazes de adotar ou alterar o comportamento de seus ancestrais.
- Você pode operar com conceitos abstratos, mas somente objetos realmente existentes podem interagir.
Exemplo Linguagens orientadas a procedimentos são ferramentas para resolver problemas específicos. E se sua tarefa sofreu uma alteração, mesmo que pequena, você provavelmente terá que gastar tempo e esforço reescrevendo todos os algoritmos. Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
A mais ampla base de documentação: documentação oficial da Oracle, portais de treinamento, comunidade em constante desenvolvimento. As respostas para a maioria das dúvidas que surgem durante o desenvolvimento podem ser encontradas em poucos minutos, o principal é entender o que digitar no mecanismo de busca =)
-
Popularidade.
Java é a linguagem de programação mais popular do mundo: além dos desenvolvedores Android e web mencionados acima, quase todos os desenvolvedores corporativos iniciantes escrevem em Java. Enterprise é um desenvolvimento interno necessário para as necessidades das grandes corporações.
Todos os anos, os que odeiam prevêem a “morte do Java”, dizem: “ A Oracle vai parar de apoiá-lo e, em geral, você está fazendo bobagens ”. Isto está errado! Promete-se que novas versões do Java sejam lançadas a cada seis meses. As inovações e recursos mais importantes da versão mais recente podem ser lidas aqui .
Para mim, lambdas no Java 8 foram uma revolução e uma descoberta, sem falar nas novas versões! Agora estou trabalhando em um projeto “retrógrado”, então não me aprofundo em inovações, mas o fato de o Java continuar vivo é um fato.
-
Android.
O Android ocupou com confiança mais de 80% do mercado de telefonia móvel nos últimos 4 anos; TVs, reprodutores de mídia e até sistemas de mídia em carros operam sob este sistema operacional. E o desenvolvimento deste SO é feito principalmente em Java. Imagine quais perspectivas estão se abrindo. Quando consegui um emprego como desenvolvedor Android, fiquei interessado: quanto custa o produto que estou desenvolvendo? Descobriu-se que o preço por ano é de aproximadamente US$ 5. Surgiu uma pergunta razoável: de onde vieram os recursos para este escritório, para salários, biscoitos, mesa de tênis, robôs e outras “coisas bonitas”? É uma questão de quantidade: nosso aplicativo conta com 20 milhões de usuários.
-
Salários.
E de sobremesa: o salário de um desenvolvedor Java é um dos mais altos do setor. Você aprenderá programação com um propósito específico: conseguir um bom emprego.
Popularidade de uma linguagem de programação
Ao escolher uma linguagem de programação, você precisa pensar no objetivo final do aprendizado - conseguir seu primeiro emprego. Para avaliar a popularidade dos diferentes idiomas, acessei um portal de recrutamento popular e comecei a analisar o número de vagas para vários pedidos em Moscou. Você pode ver os resultados abaixo.Java: | 277 |
Pitão: | 227 |
php: | 188 |
c#: | 147 |
c++: | 131 |
rubi: | 40 |
escala: | 24 |
kotlin: | 20 |
RESULTADOS
Aqui está o que um iniciante deve prestar atenção ao escolher uma linguagem de programação:- Popularidade (Java ocupa consistentemente uma posição de liderança);
- Limite de entrada (para Java - média: a gama de competências exigidas pelo empregador é bastante ampla);
- Materiais disponíveis (não existem portais semelhantes ao JavaRush em russo, portanto, a palma da mão vai adivinhar quem =));
- Áreas de aplicação: quanto mais indústrias em que uma linguagem de programação pode ser utilizada, mais especialistas são necessários no mercado. Já falei sobre multiplataforma, mas não me canso de repetir.
GO TO FULL VERSION