Инструменты для профессиональной разработки

  1. JDK – Java Development Kit — включает в себя компилятор (приложение, переводящее строки кода в инструкции для компьютера) языка Java, JVM (Java Virtual Machine) и исполнитель программ.
  2. IntelliJ IDEA — программа для профессионального написания кода. Содержит вспомогательные подсказки и подсветки, помогает компилировать, запускать и отлаживать код.
  3. Notepad++ — замена простому блокноту, имеет подсветку и множество функций для поиска и сравнения.
  4. Oracle SQL Developer — приложение для оперативной и профессиональной работы с базами данных. Позволяет писать и запускать скрипты на языках для работы с базами данных (SQL/PlSQL).
  5. TortoiseGIT — Windows shell interface for Git. Приложение, встраиваемое в систему для доступа и менеджемента локального GIT репозитория.
  6. PuTTY — для удаленного доступа к серверам и машинам.
  7. VisualVM — для мониторинга и контроля приложений, работающих на Java-машине.
  8. FindBugs — позволяет проверять код на наличие ошибок и подсказывает пути решения проблем при написании. Очень старый!
  9. Jenkins – бесплатное приложение, позволяющее настраивать и запускать Continuous Integration на сервере или вашем компьютере.
  10. JUnit — инструмент для модульного тестирования с открытым исходным кодом. Помогает подготовить вводные данные и предоставляют аннотации для запуска.
  11. Youkit — программа для профилирования приложений Java и .NET. Полностью интегрируется с IDE и серверами предложений,
  12. помогает найти ошибки.
  13. Cobertura — приложение, вычисляющее процент кода, к которому обращаются тесты и определяет, в каких частях программы требуется тестовое покрытие.
  14. Apache NetBeans — IDE с открытым исходным кодом для разработки настольных, мобильных и веб-приложений.
  15. Oracle JDeveloper — среда разработки, позволяющая создать сервис-ориентированную архитектуру кода. Поддерживает полный жизненный цикл разработки и создание аннотаций.

Полезные ресурсы: https://www.tutorialspoint.com/java/index.htm https://www.baeldung.com/ https://mkyong.com/ https://www.vogella.com https://www.programiz.com https://www.geeksforgeeks.org https://metanit.com http://developer.alexanderklimov.ru/android/java/java.php https://www.hackerrank.com/ https://leetcode.com/ https://proglang.su/java

Возможности Java-разработки

  1. Мобильная разработка на платформе Android. Тут без вариантов, платформа Android написана на Java, и поэтому необходимо знать ее для мобильной разработки на андроиде. Примеры приложений на Java:
    • Telegram for Android
    • VLC media player
    • Signal-Android
    • Android Studio
    • NewPipe
    • WordPress App
    • FastHub
    • LeafPic
  2. Работа с большими данными. Java позволяет работать с большими данными благодаря своей многопоточности и возможности писать на нескольких платформах одновременно. Кроме того, отличным преимуществом стала возможность расширять проекты без потери в их скорости выполнения и поддержки. Примеры приложений:
    • Hbase
    • Accumulo
    • ElasticSearch
    • AWS
    • Hadoop
  3. Разработка веб-приложений требует огромных человеческих ресурсов и уже готовых решений. Java стала лидером в этой сфере благодаря простоте изучения и огромного стабильного сообщества. Примеры приложений:
    • LinkedIn
    • Яндекс.маркет
    • Одноклассники
    • Сбербанк.онлайн
    • Amazon
  4. Серверные решения: С ростом Java-решений потребовались сервера, заточенные под Java, и выбор стал простым. Также у Java есть автоматическое управление памятью: платформа берет на себя управление памятью и программисту не нужно больше тратить огромное колличество времени на контроль, анализ и поиск утечек памяти.Примеры приложений:
    • GlassFish
    • Jetty
    • JBoss Enterprise Application Platform
    • Tomcat
    • WebLogic Server
    • IBM WebSphere Application Server
  5. Разработка сервисов и приложений в финансовом секторе: Java подходит для этой сферы, прежде всего, потому что дает безопасность, возможность работать на нескольких платформах и готовые решения. В последние годы сектор больших данных (написанный на Java) стал причиной развития использования этого языка. Примеры приложений:
    • Goldman Sachs
    • Citigroup
    • Barclays
    • J.P.Morgane. Deutsche Bank
  6. Приложения для разработки: Язык Java не зависит от платформы: один раз написанное – работает всегда и везде. Один и тот же код работает и запускается на всех платформах одинаково. Кроме того, старый код работает всегда: полная совместимость со старым кодом при выходе новых версий и фич в Java.
    • Eclipse
    • IDEA
    • Jenkins CI
    • JIRA

Как начать программировать на Java и стать профессиональным разработчиком:

  1. Разобраться с базовыми понятиями Java – все с чего-то начинается. Важно понимать, что такое переменные, операторы, циклы, массивы и другие основные операции. Базовые концепции заложат мощный фундамент для последующего изучения возможностей языка программирования. Очень важно найти ментора из IT сообщества – он поможет разобраться и даст рекомендации о том, как достичь желаемого.
  2. Освоить ООП – объектно ориентированное программирование. После того, как вы научились понимать код и писать свои решения для хорошо фрагментированных задач, пора переходить к понятиям классов, интерфейсов и объектов. Из этих кубиков и складываются огромные приложения, которые управляют миром. На этом этапе нужно учиться описывать мир вокруг в терминах классов и интерфейсов. Описывайте все, что видите; например, опишите компьютеру вашу квартиру, задачу, которую вы решаете на работе, или начните описывать задумку вашего стартапа.
  3. Обучиться декомпозиции – умению разбить большую задачу на маленькие подзадачи. Одно из самых важных умений для начинающего разработчика. Попробуйте взять простое приложение (калькулятор или будильник) и разбить весь функционал приложения на маленькие составляющие. Читайте все, что найдете о реальных работающих системах; например, как писался Facebook или Instagram. https://github.com/donnemartin/system-design-primer
  4. Познакомиться со структурами данных – «контейнерами», в которых компьютер держит всю информацию. List, Set, Map, Stack и как правильно со всем этим работать.
  5. Выучить основы алгоритмики – то, что подскажет вам, как эффективно решать типовые задачи, лежащие в основе всех проектов: сортировки, поиск, проверка наличия, перестановки, динамическое программирование, эффективное использование памяти, кэширование и многое другое. Крайне важный шаг – это в первом порядке спрашивают на собеседованиях и просят решать типовые задачи с использованием Java.
  6. Научиться работать с базами данных – приложениями, позволяющими хранить информацию. Например, получать к ним доступ используя SQL. Для практики можно установить одну из бесплатных баз данных. Сайт с подборкой для практики.
  7. Освоить фреймворки — сторонние базы кода, которые можно подключать к вашему проекту и решать определенные задачи. Писать код с нуля самостоятельно — это совершенно необязательно! Базовые и часто повторяющиеся задачи уже были решены до вас, и вам нужно научиться эти решения правильно применять. Выберите один из наиболее популярных и востребованных языков (на нашем курсе это Spring) и напишите на нем приложение. Spring в действии – Крейг Уоллс
  8. Получить профессиональную Java сертификацию – она позволяет проверить полученные знания и подтверждает вашу квалификацию. На нашем курсе «Профессия Java-разработчик» мы помогаем студентам пройти эту сертификацию.
  9. Практика в написании резюме и подготовке к собеседованиям. Карьера программиста — Макдауэлл Г. Лакман