Здравствуй, Habr!

Недавно нашел хорошую статью про то, как стать Java-разработчиком «How to Become A Successful Java Developer?» автора AakashSingh_17. И вот хочу поделиться с вами переводом. Однако я вижу, сколько молодых разработчиков выбирают Python как первый язык — по причине объективных преимуществ и связанных с этим языком мифов. Поэтому я добавил анализ этого языка, чтобы новички могли сравнить и сориентироваться — а что лучше выбрать в 2019 году (на самом деле, уже в 2020).

image

А может быть и Java?


Сегодня существует множество языков программирования, которые будут формировать наше будущее. Однако, большинство людей, начинающих изучать программирование, начинают с языка C, а затем переходят к C++ или одному из многих других языков программирования. Но сегодня мы рассмотрим самый популярный язык программирования — Java. Популярность Java можно объяснить его универсальностью, поскольку он может быть использован для разработки индивидуальных приложений, которые являются легкими и быстрыми и служат для различных целей.

Java-разработчик


Согласно индексу TIOBE (индекс, оценивающий популярность языков программирования, на основе подсчёта результатов поисковых запросов, содержащих название языка) в 2019 году Java является языком программирования номер один. На самом деле, Java используется практически в каждой компании, будь то небольшие компании или крупные технологические гиганты, такие как Google, Amazon и т. д. Таким образом, став Java-разработчиком в современном мире, вы можете очень хорошо построить свою карьеру! И именно поэтому я собираюсь поделиться своими соображениями о том, как стать успешным Java-разработчиком:

1. Освойте ядро Java SE


Во-первых, начните с ядра Java( Java SE ) и освойте его как можно глубже. Вы должны знать и понимать основные понятия, такие как циклы, массивы, операторы и многое другое. Кроме того, Java SE имеет ряд API общего назначения, таких как java.lang, java.io, java.math и т.д. и вы должны иметь, по крайней мере, базовые знания о них. Вы также должны будете изучить концепции ООП.

2. Продолжайте практиковать Java


Что бы вы ни узнали в Core Java, просто продолжайте практиковать его, чтобы писать без каких-либо основных ошибок, например ошибок синтаксиса. Обычно легко найти решение проблемы в теории, но в практической реализации подхода могут возникнуть проблемы, поскольку могут возникнуть языковые ограничения. Так что продолжайте кодировать и практиковать Java, а также попытайтесь сделать мини-проекты по любой, интересующей вас теме.

3. Изучите Java EE


Начните изучать Java EE (Enterprise Edition), который также известен как Advanced Java. Когда начинаете изучать Java EE, вы сможете работать над веб-разработкой, поскольку Java EE имеет спецификации для дополнительных функций, таких как распределенные вычисления и веб-службы. Это включает в себя такие технологии, как сервлет, WebSocket, Java Server Faces и т.д.

4. Создавайте проекты с сервлетами и JSP


Все, что вы узнали в Java EE просто объедините с интерфейсными технологиями, такими как HTML, CSS, Javascript и попытайтесь сделать мини-проекты на конкретные темы. Кроме того, важно, что вы делаете по крайней мере два проекта, один с сервлетом и второй с JSP.

5. Изучите фреймворки Hibernate и Spring


Когда завершите изучать Java SE и Java EE, то познакомьтесь с Java Framework, который включают в себя Hibernate Framework и Spring Framework. Это самые популярные фреймворки Java. На самом деле, большинство компаний-разработчиков Java используют Spring Framework, такие как Spring Boot, Spring MVC и Spring Cloud для разработки веб-приложения и т. д. Hibernate framework также очень популярен для сопоставления объектно-ориентированной модели домена с реляционной базой данных, а также языком запросов Hibernate. Таким образом, если вы знаете эти фреймворки и можете создавать на них проекты, то у вас будет отличный шанс быть выбранным на роль разработчика Java в любой компании.

image

Программист Java — одна из высокооплачиваемых и востребованных профессий в IT. Высокая конкуренция вынуждает учеников впитывать всё больше информации, демонстрировать профессионализм с первого дня работы. Сегодняшние 5 советов помогут вам чуть быстрее пройти путь от новичка до интересной и высокооплачиваемой работы.

А может и Python?


Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.

image

Python поддерживает структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование.

Python прост в освоении, чтении и использовании. И это также одна из самых горячих технологий на рынке труда. Но это всего лишь Питон в двух словах – есть еще много чего. Читайте дальше, чтобы увидеть наши главные причины, почему Python идеально подходит для начинающих.

Легко учиться, читать и использовать


В отличие от C# и других языков, синтаксис Python удобочитаем и лаконичен. Новичку, это позволит быстро подобрать основы, с меньшим умственным напряжением. Взглянув на код Python, можно сразу понять, что он делает. В то время как большинство языков программирования требуют больше синтаксического (письменного) кода для выполнения аналогичных задач.

C#

public class Programm 
{
    public static void Main
    {
        Console. WriteLine("Hello World!");
    }
}

Python

print("Hello World!")

Можно заметить, что количество кода, которое мы пишем даже для простого приложения (7 строк в C# против 1 строки в Python). Даже по мере того, как мы продолжаем масштабирование, Python поддерживает основную функциональность читаемости и остается легким и удобным.

Меньше запоминания синтаксиса


Учитывая простоту синтаксиса Python, вам не нужно будет запоминать много разделов кода. Это позволит развивать ваши истинные навыки программирования, а не только способность запоминать синтаксис.

С меньшим количеством кода для запоминания, уменьшается количество ошибок, сделанных разработчиком. На протяжении многих лет Python развивался, включая в себя новые идеи, отвечающих новым требованиям; однако структура языка совсем не изменилась. Т. е. методы и функции почти идентичны тем, которые использовались 10 лет назад. Это позволяет читать код через несколько лет без корректировки

Python — это объектно-ориентированный язык


Каждый разработчик знает об объектно-ориентированном программировании, и оно встроено в язык Python. Это практика создания объектов и данных для решения проблем.

Использование классов, понимание наследования и создание экземпляров — это ключ к продвижению себя как молодого разработчика. В дополнение к уже создаваемому объектно-ориентированному языку Python поставляется с множеством библиотек и модулей, которые еще больше расширяют его возможности. Эти инструменты позволят вам ускорить свой цикл разработки, позволяя создавать лучшие проекты, быстрее, чем другие языки.

Отладка


Одним из самых сложных навыков для новичка является отладка. Именно здесь вы по-настоящему узнаёте язык и то, как он работает изнутри. Иногда у вас будут простые ошибки типа синтаксических, в других случаях они будут проявляться в 1 из 100 запусков вашей программы. Тут вам придётся ближе познакомиться со своим отладчиком и основными ошибками в языке. К счастью, Python располагает хорошей системой обработки и отчётов об ошибках, чего нет у многих других языков.



Краткий вывод


Python — это объектно-ориентированный язык; прост в освоении, отладке, чтении.
Python широко используется в веб-приложениях, разработке игр и т. д. Такие компании, как Google, Facebook, IBM, EA используют Python. Он может решить практически любую задачу.
Благодаря своей простоте и широте области применения, он идеально подходит начинающим программистам.

Выбирать вам. Выбирайте взвешенно!

Кстати, а что бы выбрали или уже выбрали вы?

Комментарии (23)


  1. alex_zzzz
    25.11.2019 14:42
    +1

    Откуда взялся С#, когда вся первая половина про Java?


    1. frostspb
      25.11.2019 14:48
      +2

      это хитрая манипуляция, чтобы не очернять Java, на котором Hello World такой же объёмный


      1. Lolohaev
        25.11.2019 14:52

        И при всем этом забыли Namespace добавить…


        1. alex_zzzz
          25.11.2019 15:08

          Неймспейсы не нужны. По умолчанию будет глобальный неймспейс.


          1. Lolohaev
            25.11.2019 15:12

            В качестве примера «посмотрите как много строк надо написать» добавление неймспейса более чем оправдано)


          1. Free_ze
            25.11.2019 17:05

            Откуда в глобальном неймспейсе взялся Console?


            1. alex_zzzz
              25.11.2019 17:29

              А, ну да, точно.


            1. masai
              26.11.2019 19:41

              Да там и скобки после Main забыты.


              Минимальный код как-то так выглядит:


              public class Program
              {
                  static void Main()
                  {
                      System.Console.WriteLine("Hello World!");
                  }
              }


  1. maxzh83
    25.11.2019 14:55
    +1

    3. Изучите Java EE

    Не надо. Точно не третьим пунктом.
    4. Создавайте проекты с сервлетами и JSP

    Оставил бы тут только сервлеты и то только для кругозора.
    На самом деле, третьим пунктом после изучения языка, посоветовал бы просто сгенерить простое веб-приложение на Spring Boot (можно через start.spring.io) и попробовать что-то простенькое написать. Обычно это увлекает, т.к. начинается творчество. А уже потом EE и прочее.


    1. hatari90
      26.11.2019 10:58

      На самом деле, третьим пунктом после изучения языка, посоветовал бы просто сгенерить простое веб-приложение на Spring Boot (можно через start.spring.io) и попробовать что-то простенькое написать. Обычно это увлекает, т.к. начинается творчество. А уже потом EE и прочее.

      Недавно слепил простой rest-сервис из демонстрационного примера на spring boot, возвращающий pdf, сгенеренный библиотекой jasperreports (с передачей параметров в json post-запросом). С учетом, что никогда не писал на java, да и вообще с программированием на «вы», был тот еще квест. Но интересно было.
      Когда-нибудь может решусь на смену профиля, хотя требования даже к junior'ам в вакансиях и статьи про собеседования пугают массой незнакомых терминов.


  1. dopusteam
    25.11.2019 15:04

    "К счастью, Python располагает хорошей системой обработки и отчётов об ошибках, чего нет у многих других языков."


    Объяснять подробнее я, конечно, не буду


    1. xhumanoid
      25.11.2019 17:07

      ну это же элементарно =)

      всего лишь пару вопросов:

      1. как взять стектрейс у работающего приложения чтобы посмотреть где какие потоки находятся (обёртки которые подключаются через gdb и потом парсят вывод работают через раз, плюс требуют этого самого gdb на машинке и нужным пермишенов)
      2. как стейктрейс из лога вставить в ide чтобы она нормально переходила по клику на нужный файл и строку


      «А в остальном, прекрасная маркиза, всё хорошо, всё хорошо!»


  1. BasicWolf
    25.11.2019 15:09

    EVE написана на Питоне. Это намного весомее, чем «скриптовый язык».


    1. frostspb
      25.11.2019 15:39

      Серверная часть и на Stackless Python, если быть точным.


  1. Lolohaev
    25.11.2019 15:52

    Статья показалась странной, наткнулся после прочтения этого поста и данного комментария. Мне показалось, что еще 1 студент получает хорошую оценку. Подозрения подтвердились, когда я зашел на страницу с подписчиками и увидел там автора того самого комментария.

    Я не против обучения, но ребят, давайте не будем сравнивая 2 языка программирования выставлять третий в плохом свете. У C# есть ряд преимуществ по сравнению с Java (вспомним хотя бы про Linq для работы с коллекциями) и мне, как человеку с основным языком С# неприятно это видеть.

    Если упоминаете третий язык, то добавляйте его в сравнение, чтобы не было таких неприятных ситуаций.


    1. Free_ze
      25.11.2019 17:10

      вспомним хотя бы про Linq для работы с коллекциями

      Так и в Java с обработкой коллекций давненько все в порядке)

      мне, как человеку с основным языком С# неприятно это видеть

      Зачем так сердцем к технологии прирастать?)


      1. Vadem
        26.11.2019 02:44

        Так и в Java с обработкой коллекций давненько все в порядке)

        Да, только вот Linq не cтолько для работы с коллекциями в памяти, сколько работы с внешними истокниками данных, в отличии от потоков в Java.

        Понятно, что вы отвечали на коментарий, в котором было именно про работу с коллекциями, но, думаю, ремарка выше не помешает. А то болько уж много людей, которые не понимеют толком что такое Linq. Думают, что это что-то типо стримов в Java.


        1. Free_ze
          26.11.2019 11:34

          только вот Linq не cтолько для работы с коллекциями в памяти, сколько работы с внешними истокниками данных

          С чего вдруг? Linq вполне удобен для коллекций и используется не реже императивного подхода.
          LINQ to Objects и какой-нибудь LINQ to Entities — это разные независимые реализации. Причем, вторая — функциональность внешней библиотеки.

          Думают, что это что-то типо стримов в Java.

          Я не ъ-эксперт в Java, но, например, ленивые запросы к СУБД со стримами там умеет JOOQ. Это не так круто выглядит, как L2E, но по сравнению с Criteria API — это небо и земля ((=


          1. Vadem
            27.11.2019 18:50

            Я имел ввиду, что LINQ to Objects не особо интересен сам по себе.
            Идея LINQ заключалась в том чтобы был один унивесральный способ работыт с любыми источниками данных. Причём этот способ дожен быть статически типизированным и расширяемым. Чтобы можно было написать свой провайдер и сделать, например, LINQ to Twitter.
            А просто набор методов для работы с коллекциями в памяти есть почти в любом языке если не в стандартной библиотеке, то в ввиде внешнего пакета.


            1. Free_ze
              27.11.2019 19:05

              Да, с этой точки зрения вы конечно правы.
              Хотя огромная польза в едином интерфейсе мне не очевидна. Более того — она обманчива, когда провайдер падает с ошибкой компиляции выражения в рантайме. Ведь есть огромный соблазн (и компилятором не запрещено) заиспользовать какой-нибудь кучерявый метод в выражении, что вполне валидно для обработки коллекции в памяти.


  1. RISENT
    25.11.2019 15:54

    И да, автро любезно позаимствовал картинку отсюда: mkdev.me/mentorship


  1. sbnur
    25.11.2019 15:56

    Копипастная статейка, к слову


  1. sshikov
    25.11.2019 17:06

    Спорная статейка. Типичная ошибка, кстати, почему-то особенно типичная для веб-разработчиков: считать что все проекты в мире являются такими же или похожими. Отсюда и JavaEE, и сервлеты — которые сравнительно хороши для веба, и совершенно не нужны во многих других направлениях. И Spring/Hibernate — в общем из той же оперы. И никакого упоминания например о других языках экосистемы JVM, о скале, груви, котлине, кложе (и еще некоторые заслуживают быть упомянутыми), о хадупе и его отдельной экосистеме, об OSGI, о мобильной разработке, и так далее, и тому подобное.

    В общем-то, это можно понять, потому что веб разработки и правда много — но это не перестает быть неправдой.