Криптонит. Разработка, наука, шифрование
1.74K subscribers
650 photos
31 videos
383 links
Канал IT-компании «Криптонит».
Рассказываем про:
•работу с Big Data на основе AI, ML, шифрования
•разработку и языки программирования
•математику и криптографию

На связи @OBogolyubskaya_official
Присоединяйтесь к нам: https://career.kryptonite.ru/
Download Telegram
🔠🔠
Где используют язык программирования Golang? Рассказывает наш инженер департамента инфраструктуры Алексей Косов.

Это вторая часть обзора языка Go — в следующий раз познакомимся с его плюсами и минусами.

Go — универсальный язык, который используется во многих популярных областях:
▪️backend-разработка;
▪️консольные утилиты;
▪️разработка API;
▪️web-интерфейсы;
▪️инфраструктурные приложения (K8s, Docker, Helm).

Наша команда в «Криптоните» работает как раз с инфраструктурными приложениями. Ежедневно мы используем популярные приложения, которые написаны на Go: Kubernetes, Docker и Helm, в частности — Kubernetes-операторы.

При работе с операторами мы можем при необходимости менять какие-то вещи под себя. Допустим, мы скачали проект с GitHub и нашли там баг. Мы можем открыть код, разобраться в нём и поправить часть так, как нам требуется.

Наша команда находит готовые открытые продукты, которые мы встраиваем в нашу платформу. Так как они написаны на Golang, мы можем легко внести изменения. Это относится не только к Kubernetes-операторам, но и к другим приложениям, которые используются у нас на платформе. Например, SeaweedFS и MinIO, которые работают с Big Data.

Ещё мы используем Go-templates — шаблонизатор на языке Go. Например, при работе с Helm создаётся шаблон манифеста. С помощью темплейтов в него подставляются различные переменные, которые хранятся в отдельном values-файле. В итоге получается полноценный манифест.

📌Темплейты — достаточно мощный инструмент. Единственный минус в том, что, по сравнению с Go, их код тяжелее воспринимается. У них свой набор ключевых слов, которые лишь частично пересекаются с теми, что используются в языке.

На прошлой работе у меня был опыт взаимодействия с Go-templates. Я разрабатывал мини-приложение, и мне нужно было написать модуль, который бы взаимодействовал с сетевым оборудованием. Для этого я использовал язык Go, а базой для составления набора команд у меня служили как раз Go-templates. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем разбираться с языком программирования Go. В этот раз — его плюсы, в следующий — минусы. Своей экспертизой поделился инженер департамента инфраструктуры компании «Криптонит» Алексей Косов. #языки_программирования

🟢Плюсы

🟦Высокая скорость компиляции и выполнения. Go изначально был заточен, чтобы быстро компилироваться. Скорость выполнения — не самая высокая, но Go держится где-то наверху среди других языков.

🟦Простота языкаGo — небольшой язык с простым и понятным синтаксисом. Описание его стандарта занимает около 100 страниц, в то время как у С++ — примерно полторы тысячи. В нём мало ключевых слов, особенностей, сложных конструкций.

🟦Простая реализация многопоточных приложений и лёгкость параллельного программирования. Подробнее я рассказал об этом в пункте про особенности.

🟦Наличие сборщика мусора. Он позволяет эффективно использовать память и снимает некоторые обязанности с разработчика.

📌Нам не нужно как, например, в С++, создавать руками конструкторы, деструкторы, что-то уничтожать и т.д. Общей памятью управляет именно сборщик мусора. Нам нужно только закрывать пулы соединений, а всё остальное почистит он сам. Это удобно, но имеет свои нюансы, о которых я расскажу в минусах.

🟦Обработка ошибок. Мне кажется, что в Golang более осознанная обработка ошибок, чем в других языках.

Все ошибки мы должны обрабатывать явным образом: вызвали метод, он что-то вернул, и одним из значений может быть ошибка.

После этого мы должны проверить, случилась она там, или нет. Чаще всего это проверяется путём сравнения значения ошибки с nil (нулевое значение для указателя, канала, функции, интерфейса, карты или среза). У нас нет возможности, как в других языках, обернуть всё в блок try, отловить блоком catch и пустить всё на самотёк.

🟦Сборка в один файл. Тут всё просто: когда мы собираем приложение, у нас на выходе один исполняемый файлик. Во многих языках программирования помимо одного файла рядом нужно положить не один десяток библиотек. В случае же с Golang — просто один файл.
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем разбираться с Golang. На этот раз смотрим на минусы этого языка по мнению нашего инженера департамента инфраструктуры Алексея Косова. Что бы вы могли добавить? #языки_программирования #golang

🔴Наличие сборщика мусора. Всё-таки он влечёт за собой дополнительные расходы на потребление ресурсов ЦП и оперативной памяти.

🔴Обработка ошибок. Итак, мы вызвали каждую функцию и получили переменную, в которой должна записаться ошибка. Однако её там может и не быть. Поэтому после каждого вызова мы должны проверить её наличие и, если она есть, определить тип ошибки.

Проблема в том, что после каждого вызова функции или метода у нас повторяется один и тот же статичный блок с проверкой. И на одну строчку вызова может быть 3-5 строчек проверки обработки ошибок. Код превращается в портянку — первое время это сильно режет глаза, но потом привыкаешь. Этот минус скорее не про функциональность, а эстетику.

🔴Неявная реализация интерфейсов. Сами интерфейсы — штука удобная, но только когда ты сам что-то разрабатываешь. Для того, чтобы реализовать интерфейс в Go, нет необходимости использовать ключевое слово, как, например, implements в Java.

В Golang любой тип данных, который реализует все методы интерфейса, автоматически реализует сам интерфейс. Мне кажется, что неявная реализация интерфейсов затрудняет понимание отдельных частей кода и процесс реверс-инжиниринга, которым мы как раз занимаемся.
Please open Telegram to view this post
VIEW IN TELEGRAM
Golang — какие особенности обучения есть у этого языка программирования? Рассказывает инженер департамента инфраструктуры «Криптонита» Алексей Косов.

🧠У Golang низкий порог входа. Изучать его легче, чем Java, но сложнее, чем Python. Go — небольшой молодой язык, который, скорее всего, задумали простым изначально. Например, можно реализовать действие в одну строчку вместо десяти.

У Go есть удобная система модулей — можно подключить уже созданные библиотеки и повторно использовать их. При этом они будут на том же языке и с тем же синтаксисом, а не в виде миллиона фреймворков, которые все написаны по-разному, как в JavaScript.

Потребность изучить Golang у меня возникла на работе, так как в проекте поменялся стек. Вместо Java- я стал Go-разработчиком. Так исторически сложилось, что я предпочитаю самообучение. Поэтому я пользовался  metanit.com и habr.com, где можно пробежаться по основам.

📚Ещё я прочитал книгу «Язык программирования Go» Донована и Кернигана, которая как раз подходит для начинающих. Ещё у Go большое количество библиотек и, поскольку это open source-сообщество, есть куча проектов на GitHub. Можно какой-нибудь из них позаимствовать или поучаствовать в разработке.

📣 А если есть вопросы — воспользоваться русскоязычным чатом в Telegram.

По поводу курсов: у меня есть пример из жизни. Знакомый купил годовой курс «Разработчик на Go» популярной образовательной платформы.

Целый год они изучали всё, что только можно, но не Golang: базы данных, Docker, Git, сети; успели пройти базу по Python, С++, Java… и лишь в конце немного коснулись нужной темы. Всё, что они успели изучить по Go, можно было пройти за двухнедельный интенсив. #языки_программирования #golang
Please open Telegram to view this post
VIEW IN TELEGRAM
🔠🔠 Финальная часть нашего обзора на #Golang. Смотрим, какие pet-проекты можно сделать на этом языке программирования по мнению нашего инженера департамента инфраструктуры Алексея Косова.

📐Здесь можно придумать всё, что угодно. Go — это больше про backend, но на нём можно сделать любой проект. Вопрос только в том, насколько это рационально.

Можно потренироваться на Telegram-боте. Он ничем вас не ограничит — не придётся искать сервер для хостинга, чтобы показать свой маленький домашний проект. Нужно лишь посмотреть как пользоваться Telegram API (по этой теме информации полно) и придумать идею.

📌Можно начать с погоды в вашем городе, а потом усложнять до системы, в которой потребуются и базы данных, и подключение по API к каким-нибудь другим системам.

Попробуйте двигаться от простого к сложному: развивайте и поддерживайте свой проект. Его демонстрация станет преимуществом на собеседовании. Код скажет о вас больше пачки дипломов.📐 #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Встречаем наш шестой обзор языков программирования — на этот раз разбираемся с Python. В этом посте посмотрим на его особенности, в следующий раз поговорим, где его можно использовать.

Обзор этого языка подготовила группа серверной разработки компании «Криптонит»🫶

Python — высокоуровневый язык программирования. Благодаря ясному синтаксису его код понятен и легко читается. Python часто называют «исполнимым псевдокодом»: на нём можно писать код быстрее, чем на других языках.

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

Python находит применение в разных отраслях. Например, его можно использовать для автоматизации задач, разработки веб-приложений с помощью Django, анализа данных с помощью библиотек pandas и NumPy.

📌А ещё у нас есть обзоры на Rust, Scala, JavaScript, Spark и Golang. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем погружаться в Python! В этом посте наша группа серверной разработки рассказала, где можно использовать этот язык программирования.

🧠 Python подходит для решения задач в абсолютно разных сферах. Например, он впечатляет в веб-разработке — такие фреймворки, как Django, Flask и FastAPI упрощают разработку веб-приложений и делают её эффективной.

🔹Django предлагает всё, что нам нужно, прямо из коробки для создания сложных веб-сайтов, включая интегрированную административную поддержку и безопасность.
🔹Flask даёт большую гибкость и лёгкость в настройке.
🔹FastAPI отличается своей производительностью и поддержкой асинхронных запросов, что ускоряет разработку и интеграцию с другими системами.

В области научных исследований и аналитики данных Python имеет огромное количество популярных библиотек и фреймворков. Чаще всего используются библиотеки типа NumPy, pandas, SciPy, Matplotlib, Seaborn и Scikit-learn для проведения различных вычислений, анализа данных, визуализации и машинного обучения. Эти инструменты, вместе с IPython и Jupyter Notebook, обеспечивают мощную среду для исследований.

❗️Python лидирует и в области машинного обучения и искусственного интеллекта. Библиотеки TensorFlow, PyTorch, Keras, OpenCV, NLTK и spaCy помогают разрабатывать алгоритмы и обучать нейросети для таких задач, как распознавание речи, компьютерное зрение и анализ текста.

И конечно, Python отлично подходит для автоматизации и обработки данных. Python-разработчики могут создавать скрипты для автоматизации задач, использовать библиотеки типа pandas и Dask для анализа и обработки данных, а также такие инструменты, как Luigi и Apache Airflow, для организации рабочих процессов.

💙 Команда «Криптонита» в первую очередь использует Python в качестве классического бэкенда, для взаимодействия между сервисами и быстрой разработки API. #языки_программирования #python
Please open Telegram to view this post
VIEW IN TELEGRAM
🐍Какие плюсы и минусы есть у Python? Раскладываем всё по полочкам в этом посте.

🟢Плюсы🟢

🟦Читаемость и простота
Одним из ключевых преимуществ Python является его чистый и интуитивно понятный синтаксис. Поэтому Python — отличный выбор как для новичков, так и для опытных разработчиков. Код на нём читается легко, что уменьшает когнитивную нагрузку и ускоряет разработку.

🟦Многофункциональность и стандартная библиотека
Python предлагает обширную стандартную библиотеку, охватывающую различные области программирования: от веб-разработки до научных вычислений. Это сокращает использование внешних библиотек и ускоряет разработку приложений. Python предоставляет встроенные инструменты, позволяя разработчикам охватывать различные аспекты программирования.

🔴Минусы🔴

🟥Скорость выполнения
Python критикуют за его медленную скорость по сравнению с некоторыми компилируемыми языками, например, C++ или Java. Это связано с его интерпретируемой природой и динамической типизацией.

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

🟥Мобильная разработка
Python — не лучший выбор для мобильной разработки из-за своей производительности и отсутствия поддержки на уровне операционных систем (iOS и Android). Хотя и существуют инструменты (например, Kivy) для создания мобильных приложений на Python, они не так широко распространены, как альтернативы.

Есть у нас тут «питонщики»? Что бы вы добавили в список достоинств и недостатков Python? #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
По статистике, Python — один из самых популярных языков программирования в мире. У него с самого начала большое активное сообщество.

❗️Делимся важными ссылками: они помогут найти ответы на вопросы на любом уровне опыта. Проверено группой серверной разработки компании «Криптонит»!

▪️официальная документация: обширна и хорошо структурирована, есть руководства и справочные материалы;
▪️форум Stack Overflow;
▪️сообщества в Discord и Telegram;
▪️конференции PyCon, EuroPython.

📌Участники сообщества часто сами инициируют предложения по улучшению Python (PEPs). Это делает язык постоянно развивающейся платформой, готовой адаптироваться к требованиям технологического мира. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
На следующей неделе у нас начнётся новый цикл обзоров про языки программирования — на этот раз про С++.

А значит, самое время вам напомнить, что в нашем блоге уже собрано 6 обзоров:
▪️Rust
▪️Scala
▪️JavaScript
▪️Spark
▪️Golang
▪️Python

В каждой статье мы рассматриваем плюсы и минусы языка, его сферы применения, особенности, а также делимся ресурсами для изучения.

Материалы написаны вместе с экспертами — коллегами из департамента разработки «Криптонита». #языки_программирования
Криптонит. Разработка, наука, шифрование
На следующей неделе у нас начнётся новый цикл обзоров про языки программирования — на этот раз про С++. А значит, самое время вам напомнить, что в нашем блоге уже собрано 6 обзоров: ▪️Rust ▪️Scala ▪️JavaScript ▪️Spark ▪️Golang ▪️Python В каждой статье мы…
Как мы и обещали — новый обзор на С++ ждёт вас на Хабре!

Поговорили о перспективах языка, его особенностях и востребованности на рынке с Андреем Никитиным, ведущим инженером-разработчиком направления системного программирования компании «Криптонит».

💬Полная статья — по ссылке, а ниже — небольшие выжимки из материала💬

▪️С++ позволяет строить что угодно — универсальные абстракции, иерархии любой сложности, логические слои, стеки протоколов... Обычно среди сильных сторон упоминают кроссплатформенность, но её нет «по умолчанию».

Это не Java, программы на которой транслируются в байт-код и запускаются в виртуальной машине. В C++ нужно сразу писать код под все планируемые архитектуры и операционные системы, учитывать зависимые библиотеки, это требует значительных усилий.

▪️В ближайшие годы от С++ точно не откажутся. В мире существует огромное наследие кода на C++ и тысячи масштабных проектов, которые нужно поддерживать. Сам язык продолжает использоваться и развиваться.

▪️Чтобы начать писать телеграм-ботов на Python, достаточно взять гайд из интернета и кодить по нему. В С++ не уедешь далеко без понимания того, как устроена память, логика указателей, как компилируется программа и так далее. По сравнению с молодыми языками, C++ более требователен к программисту и не допускает вольностей.

▪️Главный минус C++ — скудная стандартная библиотека. Например, в std даже нет библиотеки для работы c json. Это, конечно, боль. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие особенности у С++ ? Начинаем новый цикл обзоров языков программирования.

🔵С++ — это универсальный язык в плане семантики, но чаще он используется как объектно-ориентированный — с наследованием, интерфейсами и так далее.

С++ позволяет строить что угодно — универсальные абстракции, иерархии любой сложности, логические слои, стеки протоколов.

🔘Обычно среди сильных сторон упоминают кроссплатформенность, но её нет «по умолчанию».

Это не Java, программы на которой транслируются в байт-код и запускаются в виртуальной машине. В C++ нужно сразу писать код под все планируемые архитектуры и операционные системы, учитывать зависимые библиотеки, это требует значительных усилий.

🔵Традиционно философией С++ было дать программисту полную свободу действий, чтобы он мог использовать только самое необходимое и не платить потерей производительности за остальное. К сожалению, не всегда программисты пользуются этой свободой правильно.

С++ вам не нянька! Делайте, что хотите, но виноваты будете сами. Например, если выделяете память, то не оставляйте её без присмотра. Синхронизация доступа к разделяемым ресурсам — за этим тоже нужно следить самому.

📌Есть у нас тут разработчики, которые пишут на С++? Что бы из особенностей вы ещё добавили? #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем разбираться с С++. В этом посте смотрим, где используют этот якобы мёртвый язык💀 (на самом деле это не так) #языки_программирования

🧠В мире существует огромное наследие кода на C++ и тысячи масштабных проектов, которые нужно поддерживать. Разработчики использовали его до Rust, Golang и других новомодных языков.

С++ использовали, когда одновременно важны и производительности, и «близости к железу». Он как раз обеспечивал сочетание высокоуровневого языка и возможность использования низкоуровневых функций.

❗️И хотя говорят, что С++ — «мёртвый язык», это не так. Его популярность сохраняется на высоком уровне даже на фоне появления более простых в освоении языков. В ближайшие годы от С++ точно не откажутся.

Сам язык продолжает использоваться и развиваться. Раз в 3 года выкатывают обновление стандарта и дополнительный функционал. Сейчас мы в «Криптоните» используем в разработке продуктов C++ стандарта 2020 года и с интересом следим за нововведениями в готовящийся стандарт C++23.

На С++ пишут всё, что устроено сложно, а должно работать быстро:
▪️игровые движки, включая Unreal Engine и Unity;
▪️Microsoft Office, продукты Adobe (Photoshop, Premiere, Lightroom, After Effects, Illustrator);
▪️браузерный движок Chromium — основа большинства современных интернет-браузеров;
▪️серверные бэкенды.
Please open Telegram to view this post
VIEW IN TELEGRAM
Так в чём же минусы С++? Он теряет привлекательность, потому что появляются языки с более низким порогом вхождения. Например, чтобы начать писать телеграм-ботов на Python, достаточно взять гайд из интернета и кодить по нему.

❗️В С++ не уедешь далеко без понимания того, как устроена память, логика указателей, как компилируется программа и так далее.

По сравнению с более молодыми языками, C++ требовательнее к программисту и не допускает вольностей. Например, в нём нет «динамической типизации». Это статически типизированный язык. Даже когда вы пишете что-то вроде «auto var = 5», переменная var сразу имеет не «какой-то неизвестный», а совершенно точно определённый тип, в данном случае — int.

📌В С++ нет сборщика мусора, поэтому за памятью нужно следить самостоятельно. Это тоже дисциплинирует, заставляет тщательнее продумывать алгоритм.

🔴Пожалуй, главный минус — скудная стандартная библиотека. Например, в std даже нет библиотеки для работы c JSON. Всегда разработчики на C++ были вынуждены сами писать различные вспомогательные утилиты и библиотеки.

🟢Просто надо знать инструмент, с которым работаешь. При достаточном уровне понимания он даёт огромную мощь. Когда производительность менее важна, можно писать высокоуровневый абстрактный ООП код, а когда надо максимально ускориться — то обратиться к низкоуровневым возможностям языка. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Java — какие особенности у этого языка программирования? Начинаем новый цикл обзоров!

Итак, особенности Java.

🔹Полная независимость байт-кода от операционной системы и оборудования. «Write once, run anywhere» — такова философия Java.

🔹Гибкая система безопасности, исполнение программы полностью контролируется виртуальной машиной

🔹Динамические возможности во время выполнения кода, которые доступны не во всех традиционных компилируемых языках. Например — рефлексия. Это процесс, во время которого программа может модифицировать собственную структуру и поведение во время выполнения.

Есть у нас тут джависты? Что бы вы ещё добавили?

📌Спасибо за помощь в подготовки этой серии постов Сергею, ведущему Java-разработчику Нижегородского подразделения «Криптонита». #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Где применяется Java? Рассказываем вместе с Сергеем, ведущим Java-разработчиком Нижегородского подразделения «Криптонита».

🔵Java — язык общего назначения. Большей частью он используется в серверной разработке, особенно в
энтерпрайзе: банки, телеком, ритейл.
Также Android SDK использует язык Java в качестве основы для приложений Android.

Сейчас в «Криптоните» мы разрабатываем на Java серверную часть для веб-приложений. Это распределённая система. Она основана на микросервисной архитектуре, для обработки больших объёмов данных.

🔹Мы пишем сервисы, которые взаимодействуют друг с другом без веб-интерфейса. Это бо́льшая часть работы. Её малая часть — это конечное взаимодействие с пользователем через веб-браузер. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Плюсы и минусы Java. Продолжаем погружаться в этот язык программирования вместе с Сергеем, нашим ведущим Java-разработчиком. Что бы вы ещё добавили к списку?

🟢Плюсы

🔹Строгая типизация, большое количество разнообразных библиотек и фреймворков. Нам не нужно каждый раз изобретать велосипед. Основной код инфраструктуры энтерпрайз-приложений базируется на крупных фреймворках, например, Spring. Они ускоряют разработку и уменьшают общее количество типового кода.

🔹Java не стоит на месте, постоянно развивается. Сейчас ушли от императивного и объектно-ориентированного программирования в чистом виде и частично перешли к функциональному программированию, которое есть в таких JVM-языках, как Scala и Kotlin. Это обеспечивает лучшую прогнозируемость и безопасность кода.

🔴Минусы

🔹Legacy-код. Java поддерживает обратную совместимость вплоть до начальных версий, соответственно — очень много библиотек было написано на заре её становления. А они могут содержать ошибки или стать причиной низкой производительности.

🔹Наследование. В том виде, в котором оно существует в Java, его лучше избегать или максимально изолировать. Ну и null references — та самая «ошибка на миллиард долларов», от которой теперь не избавиться из-за обратной совместимости.

🔹Сам создатель языка Джеймс Гослинг сказал: «Java — это язык синих воротничков». Это подразумевает низкий порог вхождения, большое количество разработчиков с низкой квалификацией.

🔹Java — своеобразный язык. Можно написать абсолютно нечитаемые вещи, которые будут работать с помощью костылей и матов. Но поддерживать это потом — большая проблема. Такой код я тоже встречал. Его иногда проще переписать заново, чем внести туда изменения. Собственно, в этом и есть проблема низкого порога входа. #языки_программирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Наш ведущий Java-разработчик из Нижнего Новгорода Сергей рассказывает, как он учился этому языку программирования. В конце поста — пять полезных ресурсов. #языки_программирования

🔘Когда у меня был выбор купить курс или учиться самому, я выбрал второе и ни разу не пожалел. Основы не сложны в изучении, язык достаточно логичен и хорошо продуман.

Сложности начинаются, когда необходимо изучать всю сопутствующую инфраструктуру и огромный зоопарк технологий, используемый в энтерпрайзе. А в качестве хобби можно изучить только Java SE и спокойно писать, например, простенькие десктоп-приложения с графическим интерфейсом.

Реклама из каждого утюга навязывает курсы. Я даже думал попробовать, но быстро отказался от этой мысли. Если выражаться грубо, преподавать на них будет человек, который «пережёвывает пережёванное». На мой взгляд, лучше обращаться сразу к первоисточникам.

❗️Книги — это хороший источник знаний для самообучения, но он требует дисциплины. Практиковаться тоже можно самостоятельно. Языки программирования тем и хороши: как минимум, основа языка базируется на логике. Поэтому, если у тебя всё в порядке с логическим мышлением, до некоторых вещей ты дойдёшь сам.

📌Кстати, вовсе не обязательно читать книги только по Java. Советую изучать сопутствующие языки и технологии параллельно. Тогда сразу будет складываться общая картина: понимание, в каком направлении двигаться, и как избежать тех или иных ошибок.

📚Вот мой список пяти книг, по которым я учился писать на Java
🔹 «Java: эффективное программирование», Джошуа Блох;
🔹 «Java Concurrency на практике», Брайан Гетц;
🔹«Spring 5 для профессионалов», Юлиана Козмина;
🔹«Структуры данных и алгоритмы Java», Роберт Лафоре;
🔹 «Современный язык Java», Рауль-Габриэль Урма.
Please open Telegram to view this post
VIEW IN TELEGRAM
Советы для начинающих Java-разработчиков — последний пост обзора этого языка программирования. #языки_программирования

❗️Сначала лучше определиться с тем, что вам интересно. Если Android, то после Java Core лучше переходить на изучение Kotlin. Если цель найти работу в энтерпрайзе, то нужно учиться писать веб-серверы на Spring. А вот в сфере разработки десктоп-приложений работу джуном найти сложно.

❗️Всегда прокачивайте технические навыки и знания, но не забывайте и о soft skills. В современной разработке никому не нужен «рак-отшельник», сидящий в тёмном углу и пишущий по готовому ТЗ.

Нужны инженеры, которые могут решать проблемы бизнеса. С помощью чего? Это уже отдельный вопрос. Java или какой-то другой язык программирования — это не особо важно. Нужно научиться владеть этим инструментом и минимизировать проблемы, связанные с использованием этого инструмента.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пост-навигация нашей рубрики #языки_программирования

🔘Собрали все материалы от экспертов «Криптонита» про разные языки в одном посте — читайте только то, что интересно именно вам!

Java
Особенности языка
Где используется язык?
Плюсы и минусы языка
Полезные книги про Java
Советы начинающим на Java

JavaScript
Особенности языка
Где используется язык?
Плюсы и минусы языка
Pet-проекты на JavaScript

Python
Особенности языка
Где используется язык?
Плюсы и минусы языка
Комьюнити

C++
Особенности языка
Где используется язык?
Минусы языка (плюсы есть в посте «Особенности»)
Обучение этому языку

Golang
Особенности языка
Где используется язык?
Плюсы языка
Минусы языка
Обучение этому языку
Pet-проекты на Golang

Scala
Особенности языка
Где используется язык?
Плюсы и минусы языка

Rust
Особенности языка
Где используется язык?
Плюсы и минусы языка

Spark (фреймворк)
Особенности языка
Где используется язык?
Плюсы языка
Минусы языка
Обучение
Please open Telegram to view this post
VIEW IN TELEGRAM