Инструменты для профессиональной разработки
- JDK – Java Development Kit — включает в себя компилятор (приложение, переводящее строки кода в инструкции для компьютера) языка Java, JVM (Java Virtual Machine) и исполнитель программ.
- IntelliJ IDEA — программа для профессионального написания кода. Содержит вспомогательные подсказки и подсветки, помогает компилировать, запускать и отлаживать код.
- Notepad++ — замена простому блокноту, имеет подсветку и множество функций для поиска и сравнения.
- Oracle SQL Developer — приложение для оперативной и профессиональной работы с базами данных. Позволяет писать и запускать скрипты на языках для работы с базами данных (SQL/PlSQL).
- TortoiseGIT — Windows shell interface for Git. Приложение, встраиваемое в систему для доступа и менеджемента локального GIT репозитория.
- PuTTY — для удаленного доступа к серверам и машинам.
- VisualVM — для мониторинга и контроля приложений, работающих на Java-машине.
- FindBugs — позволяет проверять код на наличие ошибок и подсказывает пути решения проблем при написании. Очень старый!
- Jenkins – бесплатное приложение, позволяющее настраивать и запускать Continuous Integration на сервере или вашем компьютере.
- JUnit — инструмент для модульного тестирования с открытым исходным кодом. Помогает подготовить вводные данные и предоставляют аннотации для запуска.
- Youkit — программа для профилирования приложений Java и .NET. Полностью интегрируется с IDE и серверами предложений,
- помогает найти ошибки.
- Cobertura — приложение, вычисляющее процент кода, к которому обращаются тесты и определяет, в каких частях программы требуется тестовое покрытие.
- Apache NetBeans — IDE с открытым исходным кодом для разработки настольных, мобильных и веб-приложений.
- 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-разработки
- Мобильная разработка на платформе Android. Тут без вариантов, платформа Android написана на Java, и поэтому необходимо знать ее для мобильной разработки на андроиде. Примеры приложений на Java:
- Telegram for Android
- VLC media player
- Signal-Android
- Android Studio
- NewPipe
- WordPress App
- FastHub
- LeafPic
- Работа с большими данными. Java позволяет работать с большими данными благодаря своей многопоточности и возможности писать на нескольких платформах одновременно. Кроме того, отличным преимуществом стала возможность расширять проекты без потери в их скорости выполнения и поддержки. Примеры приложений:
- Hbase
- Accumulo
- ElasticSearch
- AWS
- Hadoop
- Разработка веб-приложений требует огромных человеческих ресурсов и уже готовых решений. Java стала лидером в этой сфере благодаря простоте изучения и огромного стабильного сообщества. Примеры приложений:
- Яндекс.маркет
- Одноклассники
- Сбербанк.онлайн
- Amazon
- Серверные решения: С ростом Java-решений потребовались сервера, заточенные под Java, и выбор стал простым. Также у Java есть автоматическое управление памятью: платформа берет на себя управление памятью и программисту не нужно больше тратить огромное колличество времени на контроль, анализ и поиск утечек памяти.Примеры приложений:
- GlassFish
- Jetty
- JBoss Enterprise Application Platform
- Tomcat
- WebLogic Server
- IBM WebSphere Application Server
- Разработка сервисов и приложений в финансовом секторе: Java подходит для этой сферы, прежде всего, потому что дает безопасность, возможность работать на нескольких платформах и готовые решения. В последние годы сектор больших данных (написанный на Java) стал причиной развития использования этого языка. Примеры приложений:
- Goldman Sachs
- Citigroup
- Barclays
- J.P.Morgane. Deutsche Bank
- Приложения для разработки: Язык Java не зависит от платформы: один раз написанное – работает всегда и везде. Один и тот же код работает и запускается на всех платформах одинаково. Кроме того, старый код работает всегда: полная совместимость со старым кодом при выходе новых версий и фич в Java.
- Eclipse
- IDEA
- Jenkins CI
- JIRA
Как начать программировать на Java и стать профессиональным разработчиком:
- Разобраться с базовыми понятиями Java – все с чего-то начинается. Важно понимать, что такое переменные, операторы, циклы, массивы и другие основные операции. Базовые концепции заложат мощный фундамент для последующего изучения возможностей языка программирования. Очень важно найти ментора из IT сообщества – он поможет разобраться и даст рекомендации о том, как достичь желаемого.
- Java. Библиотека профессионала. Том 1,2 – Кей Хорстманн
- Java. Как программировать – Пол Дейтел и Харви Дейтел
- Java 8. Руководство для начинающих – Герберт Шилдт
- Освоить ООП – объектно ориентированное программирование. После того, как вы научились понимать код и писать свои решения для хорошо фрагментированных задач, пора переходить к понятиям классов, интерфейсов и объектов. Из этих кубиков и складываются огромные приложения, которые управляют миром. На этом этапе нужно учиться описывать мир вокруг в терминах классов и интерфейсов. Описывайте все, что видите; например, опишите компьютеру вашу квартиру, задачу, которую вы решаете на работе, или начните описывать задумку вашего стартапа.
- Объективно ориентированный анализ и дизайн – Поллис Гари, Маклафлин Бретт
- Паттерны проектирования – Эрик Фримен, Элизабет Робсон
- Обучиться декомпозиции – умению разбить большую задачу на маленькие подзадачи. Одно из самых важных умений для начинающего разработчика. Попробуйте взять простое приложение (калькулятор или будильник) и разбить весь функционал приложения на маленькие составляющие. Читайте все, что найдете о реальных работающих системах; например, как писался Facebook или Instagram. https://github.com/donnemartin/system-design-primer
- Познакомиться со структурами данных – «контейнерами», в которых компьютер держит всю информацию. List, Set, Map, Stack и как правильно со всем этим работать.
- Выучить основы алгоритмики – то, что подскажет вам, как эффективно решать типовые задачи, лежащие в основе всех проектов: сортировки, поиск, проверка наличия, перестановки, динамическое программирование, эффективное использование памяти, кэширование и многое другое. Крайне важный шаг – это в первом порядке спрашивают на собеседованиях и просят решать типовые задачи с использованием Java.
- Алгоритмы на Java - Роберт Седжвик, Кевин Уэйн
- Структуры данных и алгоритмы в Java - Роберт Лафоре
- Алгоритмы. Построение и анализ - Томас Кормен, Чарльз Лейзерсон
- https://leetcode.com/
- https://www.hackerrank.com/
- Научиться работать с базами данных – приложениями, позволяющими хранить информацию. Например, получать к ним доступ используя SQL. Для практики можно установить одну из бесплатных баз данных. Сайт с подборкой для практики.
- Освоить фреймворки — сторонние базы кода, которые можно подключать к вашему проекту и решать определенные задачи. Писать код с нуля самостоятельно — это совершенно необязательно! Базовые и часто повторяющиеся задачи уже были решены до вас, и вам нужно научиться эти решения правильно применять. Выберите один из наиболее популярных и востребованных языков (на нашем курсе это Spring) и напишите на нем приложение. Spring в действии – Крейг Уоллс
- Получить профессиональную Java сертификацию – она позволяет проверить полученные знания и подтверждает вашу квалификацию. На нашем курсе «Профессия Java-разработчик» мы помогаем студентам пройти эту сертификацию.
- Практика в написании резюме и подготовке к собеседованиям. Карьера программиста — Макдауэлл Г. Лакман