Как стать начинающим программистом с нуля: 5 советов от профессиональных разработчиков, которые подойдут любому новичку
Содержание:
- Плюсы и минусы профессии
- Узнайте больше о бизнес-стороне
- Какой язык программирования выбрать новичку
- Внесите свой вклад в сообщество с открытым исходным кодом
- Читайте больше
- Советы студентам
- «Джанго» — это танцы?
- Первое тестовое — лендинг для гадалки
- Чем занимается программист?
- Практические навыки
- Зачем становиться веб-разработчиком?
- Как стать одним из них – айтишником?
- Языки программирования
- Что нужно знать, чтобы стать android-разработчиком
- Чем занимается программист на Java
Плюсы и минусы профессии
Плюсы
- востребованная профессия во всём мире
- программист — профессия будущего
- высокая заработная плата
- можно получить работу, не имея высшего образования
- в профессии есть элемент творчества
- возможность удалённой работы
Минусы
- сидячая работа
- высокая конкуренция
- быстроразвивающаяся индустрия предпологает постоянную учёбу, чтобы не отставать от других
- высокие требования к специалисту, трудно войти в профессию новичку, курсов часто бывает недостаточно
- часто работа проходит в режиме аврала и стресса
- часто результат работы невидим и неощутим
- полная погруженность в профессию, часто работа не заканчивается по звонку
руководитель группы разработки финтех-сервиса «Выберу.ру»
Узнайте больше о бизнес-стороне
Независимо от того, являетесь ли вы частью коммерческой или некоммерческой организации, ваше программное обеспечение расширяет возможности бизнес-цели.
Изучение того, как ваша компания зарабатывает деньги и обслуживает клиентов, а также основных компетенций, которыми она обладает по сравнению с конкурентами, может помочь вам раскрыть новые подходы и улучшения, которые будут поддерживать бизнес.
«Поговорите со своими коллегами в бизнес-отделах и задайте жесткие деловые вопросы своим руководителям», — сказал Слоян.
«Например, если вы работаете на платформе онлайн-рекламы, основной технологией которой является персонализация рекламы, определение и внедрение инноваций в алгоритм релевантности рекламы сделает или сломает ваш бизнес».
Вы также можете получить предвидение, чтобы разработать систему, которая может быстро масштабироваться вместе с вашим бизнесом, и определить возможности, которые могут быть не очевидны для нетехнических менеджеров.
Какой язык программирования выбрать новичку
Всё больше и больше людей хотят стать программистами. Связано это с тем, что многие думают, что программисты ничего не делают и получают огромные деньги. Конечно же, это не так, работа программиста очень сложная, и большие зарплаты следует ждать только после большого периода времени. Однако, если же есть желание стать программистов и вы не знаете, какой язык программирования стоит начать изучать как первый, то эта статья для вас.
Итак, вы хотите стать программистом и думаете, какой бы язык программирования стоит изучить первым. Сразу хочется сказать, что не стоит смотреть на сторону Паскаля, которого так любят в школе преподавать и Бейсика, который ещё остался со времён СССР. Конечно, можно изучить их для основ, чтобы понимать, как вообще всё устроено, но это трата времени. Например, если взять язык Python, то он и лёгкий, как Паскаль, но в то же время и мощный. Вообще, где используется Python. Этот язык часто используют при разработке сайтов, а именно: серверной части сайта. Да и вообще, не только сайтов. Взять только приложение Instagram, или игру World of Tanks, там тоже используется Python! Конечно, об этом языке не так много пишут, поэтому он ещё не получил такой популярности. Новички ведь как думают, чем популярнее язык – тем он лучше. На самом деле не так, ведь в программировании всё зависит от целей. Например, перед вами стоит цель: создать игру под мобильные платформы. В таком случае, конечно, лучше начать изучать Java, но этот язык сложный, и стоит начать с чего-то простого, например, Python. Питон является скриптовым языком, а иметь в арсенале скриптовый язык всегда надо, так как он пригодится везде! Стоит заметить, что популярность этого языка с каждым годом растёт. Многие сайты переходят с PHP на Python. Так как у Python и синтаксис приятней и работать легче, чем с PHP. Такие гиганты как: Yandex, Вконтакте, Google – давно уже перешли на Python. Скоро Питон займёт место PHP и станет самым популярным языком для веб-разработки. PHP держится только по той причине, что многим проектам лень переписывать тонну кода с одного языка на другой.
Делая вывод хочется сказать, что лучшим языком для новичка является Python. Это и перспективы большие и лёгкость в обучении. Python можно освоить за пару недель, основы, конечно. Вообще, сейчас даже в школах хотят заменить Паскаль на Python. Но всё же конечный выбор стоит перед вами, ведь есть такие люди, которые не любят синтаксис Python.
Внесите свой вклад в сообщество с открытым исходным кодом
Когда вы вносите свой вклад в сообщество с открытым исходным кодом, это расширяет ваши возможности
«Когда вы вносите свой вклад в проект, обратите внимание на обратную связь, которую вы получаете от пользователей и других разработчиков», — добавил Техада
Когда вы отдаете что-либо обществу, убедитесь, что вы также пользуетесь возможностью получать в ответ!
«Признайте, насколько важно взаимодействовать с вашим профессиональным сообществом, но также долго и упорно думайте о том, какой вы хотите видеть свою роль в данном месте», — сказал Чарли Роббинс, директор по инженерным вопросам GoDaddy и бывший член совета директоров компании. Node.js Foundation
Вместо того чтобы гоняться за славой суперзвездного разработчика, убедитесь, что вы выступаете на конференциях, пишете посты в блогах и участвуете в проектах наставничества, которые на самом деле вызывают у вас страсть!
Обмен идеями и изучение новых вещей из вашего сообщества может помочь избежать выгорания, но только если вы подходите к нему по-настоящему с интересом.
Читайте больше
Многие навыки, необходимые для того, чтобы быть сильным разработчиком, не преподаются в колледже или университете. Но ряд книг, написанных разработчиками, может дать вам практическую информацию, которая в противном случае может занять годы, чтобы научиться на работе.
Я рекомендую «Полный код» Стива Макконнелла, «Чистый код» Роберта Сесила Мартина и «Мифический человек-месяц» Фреда Брукса.
Для начинающих в этой области выделю следующие книги: «Научиться программировать» Криса Пайна, «Программирование Ruby: Руководство для прагматичных программистов» Энди Ханта и Дэйва Томаса, «Гибкая разработка с Rails» Дэвида Хайнемайера Ханссона и «Плетение паутины» Тима Бернерса-Ли.
Советы студентам
Итак, мы закончили с общими рекомендациями. Мои советы студентам будут следующими:
1. Изучайте фундаментальные вещи сразу. Не тратьте время на технологии — это успеется! Алгоритмы, структуры данных, практика решения стандартных задач — это три столпа. Переступив через эти темы сейчас, вы либо погубите свою карьеру в будущем, либо вам придётся возвращаться к этой теме и с трудом выкраивать время для изучения.
Книги для параллельного чтения:
- Седжвик Р. Фундаментальные алгоритмы на С++
- C. Скиена. Алгоритмы. Руководство по разработке.
- Т. Кормен. Алгоритмы. Построение и анализ.
- Лааксонен А. Олимпиадное программирование.
- Скиена С., Ревилла М. Олимпиадные задачи по программированию.
Не помешает обращаться к курсам и видео, например, на платформах Stepik или просто на Youtube.
Обязательно нужно практиковаться в решении реальных задач. Для этого создано множество платформ, вот самые популярные:
- topcoder.com
- official.contest.yandex.ru
- LeetCode.com
Все эти знания позволят вам проще и быстрее подготовиться к интервью в любую крупную компанию. При этом не стоит спешить. Лучше разобраться детальнее и порешать больше задач для лучшего понимания темы.
2. Постарайтесь найти несколько интересующих вас проблем и написать более-менее реальные приложения, которые:
- Решают ясную поставленную задачу.
- Имеют хорошо оформленный открытый исходный код на GitHub.
- Можно описать в статье со схемами, графиками и картинками.
Если вам трудно определиться с такой темой, то вот ресурсы, где можно почерпнуть идеи:
- Попробуйте поучаствовать в хакатоне (как онлайн, так и офлайн) и заразиться идеей оттуда. Вы сможете даже продолжить проект, начатый во время ивента.
- Прочитайте мега-список проектов тут.
- Посмотрите список проектов тут.
Коротко опишите свои проекты в резюме. Даже простые вещи покажут вашу активность и заинтересованность. Нанимающий руководитель лучше возьмёт неопытного, но активного разработчика, нежели пассивного «нахлебника».
3. Начинайте проходить интервью в компании. Выбирайте работу в компании, в которую:
- Были сложнее и интереснее интервью.
- Есть практика обучения молодых специалистов.
Выбирайте компанию не по уровню зарплаты, а по тому, насколько много вы сможете узнать и изучить в первые два-три года карьеры. Есть компании, платящие много даже начинающим, но в них никто не будет вас обучать или заботиться о вашем росте, никто не будет просматривать ваш код и давать советы по улучшению. Вполне возможно, что вас нагрузят совершенно другой работой, в которой вы мало будете программировать. Не стоит думать, что первая работа станет вашей последней.
К тому же, высокий уровень зарплаты, пока вы начинающий специалист, затмевает разум и расслабляет. Идите туда, где вам дадут знания и опыт. Не переживайте, к хорошим деньгам вы вскоре придёте, а вот чтобы стать настоящим профессионалом нужно много времени, и не стоит его терять ради быстрой выгоды.
Как правило, чем сложнее и интереснее было интервью, тем более перспективна работа в компании. Даже если после интервью вы чувствуете себя «лузером», но компания готова вас взять «в подмастерье» — это великолепный шанс!
Все дальнейшие шаги будут определяться вами лично или с помощью ваших коллег, друзей и руководителей. Получив фундаментальные знания и первый опыт, вы легко начнёте осваивать технологии, переходить между стеками программирования и компаниями, в общем «искать себя».
«Джанго» — это танцы?
Если на все эти вопросы у вас нет ответа (даже приблизительного), вам нужен курс, немалая часть которого посвящена азам вычислительной науки, объяснению типов данных, алгоритмов и обучению синтаксису языка программирования. Пройти такой можно, например, в SkillFactory. Первые 4 месяца вебинаров как раз и посвящены основам. Затем вы сможете перейти к написанию простеньких программ.
В дальнейшем за 9 месяцев вы узнаете, как использовать Python/Django, базы данных и СУБД, javascript и верстку, как поднять веб-сервер и развернуть на домене созданный сайт. Это как раз то, что нужно для фронтенд и бэкенд уровня.
Последний этап курса — поиск и устранение ошибок в написанном коде, автоматическое тестирование приложения с помощью фреймворков, проектирование интерфейсов, передача навыков по решению проблем, возникающих перед фулстек-разработчиком в самом начале выполнения заказа.
Помимо лекций компетентных специалистов на курсе «fullstack-разработчик на Python» вы сможете выполнять домашние задания, решать задачи разного уровня сложности, а также вам будут доступны тренажеры для программирования. В конце курса предстоит пройти тестовое собеседование, что поможет при дальнейшем трудоустройстве.
Первое тестовое — лендинг для гадалки
Я продолжал рассылать резюме, и однажды мне дали первое тестовое задание — сверстать для гадалки лендинг на Bootstrap. Я разволновался, сделал его за пару дней, отправил, но не получил фидбэка.
Тестовые обычно не оплачивают, но взамен компания должна дать обратную связь. Если её нет, кандидата обманули. У меня такое было раз десять. Усилия часто уходят в никуда, и это грустно.
Многие тестовые не приносят пользы, поэтому они должны быть компактными и не занимать много времени. Цель тестового — выявить ваши знания и пробелы. Если требуют сделать готовый проект, на кандидате тупо хотят заработать. Верстать десять страниц не нужно — достаточно одной.
Чтобы избежать проблем, я всегда спрашиваю HR, когда моё тестовое рассмотрят и можно ли опубликовать выполненное задание у себя на GitHub. Если не отвечают — это плохой знак. Рассчитывать на такого работодателя не стоит.
На первое собеседование меня позвали, когда я сделал таблицу, в которой данные подгружаются из JSON-файла, а строки можно сортировать. Наверное, кого-то удивит XMLHttpRequest, зато задание было выполнено и всё заработало (про Fetch API и библиотеку Axios я тогда не знал). К этому моменту я уже несколько месяцев рассылал резюме и делал тестовые.
Перед собеседованием я разложил на столе все свои записи, открыл справочники, проверил камеру с микрофоном и стал ждать. Я три раза прыгал с парашютом, но ожидание интервью было намного страшнее 🙂
И вот в кадре появились трое и похвалили моё тестовое. Правда, я поплыл, когда приступили к техническим вопросам, — на какие-то ответил, но умудрился засыпаться на теме про document.createElement. Меня спросили, как создать элемент, а я начал что-то бормотать про innerHTML, хотя уже не раз создавал элементы. В тот момент я понял, что не нужно скрывать своё волнение: на той стороне тоже люди, и у них тоже когда-то было первое собеседование.
Меня не взяли, потому что нашёлся кандидат, которому не пришлось бы работать по ночам из-за временного сдвига. Зато волнение полностью пропало. Отказ — не конец света, а просто ещё одна попытка.
Иногда мне предлагали странные тестовые — например, за два месяца сделать большой личный кабинет на Vue.js или сверстать полноценный сайт и отдать его через GitHub.
Однажды дали простое задание — сделать плитку с изображениями и подписями. После этого было собеседование, где предложили второе тестовое — полностью сверстать лендинг со слайдерами и анимациями. Убеждали, что я плохо отвечал на собеседовании и это обязательное задание. Когда я отказался, спросили о причинах «такого поведения». После этого я просто перестал им отвечать.
Простое тестовое задание, после которого меня пытались нагрузить. Скриншот: Skillbox Media
С «Хабр Карьеры» я получил другое тестовое — сверстать лендинг по подбору авто. Фидбэк на него был грубоватый, с выражениями вроде: «top: 30vh? Серьёзно». Я позиционировал модальное окно через position: fixed; и top: 30vh;. Их смутило, что вместо пикселей я использовал относительные единицы Viewport Height. Сказали, что «адаптив просто ужасный», хотя в ТЗ его и не было.
Тестовый лендинг о лизинге авто. Скриншот: Skillbox Media
Работу не мог найти уже 8 месяцев, поэтому попросил Сашу Белькевича посмотреть мой аккаунт на GitHub. Он ответил, что я крепкий джун, а моя беда в часовом поясе. Но деваться было некуда — мы с женой не могли переехать по семейным обстоятельствам.
Я продолжал учиться и рассылать отклики. Иногда менял что-то в резюме, экспериментировал с сопроводительными письмами и делал тестовые. Собеседований было мало — меньше десяти.
Потом я закидал откликами местную компанию по продаже бытовой техники, и они скинули тестовое задание на Vue.js. Я его сделал, меня позвали на собеседование. Ехал из пригорода, поэтому на дорогу ушло три часа. Приехал вовремя, но меня заставили полчаса ждать в фойе — сначала искали переговорку, а потом лида и разработчиков.
Тестовое на Vue.js — каталог акций для магазина бытовой техники. Скриншот: Skillbox Media
Чем занимается программист?
Основная задача специалиста по программированию — написание кодов для запуска и успешной работы программ и приложений. Что входит в понятие программа: видеоигра, мобильное приложение, настройки кухонного комбайна или холодильника, операционная система компьютера, настройки для рентгеновского аппарата. Для написания алгоритмов он использует специальные компьютерные языки. Они, как правило, состоят из ряда специальных символов и слов. Языков программирования огромное множество — каждый выбирает тот, с которым ему комфортнее всего работать и какой подходит для решения определенной задачи. Если специалист может работать одновременно с 4 и более языками, он может считаться мастером высокого уровня.
Сегодня существует некая подмена понятий. Многие ошибочно полагают, что программист — человек, который создает код для работы программ, компьютерщик — работник, который выполняет ремонт компьютеров, и IT-специалист — это все одна и та же работа. Это вовсе не так. Каждый из этих людей занимается своим делом и имеет четко определенные обязанности. Если вы хотите быть именно программистом, то вы будете работать именно с кодами.
Существует несколько направлений:
- Системные специалисты;
- Прикладные;
- Веб.
Системные программисты создают операционные системы. Прикладные занимаются разработкой приложений для развлечений, обучения, работы. Веб-программисты создают интернет-страницы и программное обеспечение для них.
Для обучения необязательно заканчивать университет, программистом можно стать после обучения в колледже или на специальных курсах. Главное, следовать за мечтой и не опускать руки.
Практические навыки
- Лучший способ получить навык программирования — писать проекты. Начните с простых программ, которые увидите в книгах или видео. Затем попробуйте их немного модифицировать и усложнить.
- Создайте собственное приложение. Параллельно стоит практиковаться выполнять задачи и писать код на ресурсах для программистов, например HackerRank. Работодатели часто начинают процесс поиска разработчиков именно на таких платформах.
- Заведите аккаунт на GitHub или GitLab, выложите туда код, который готовы показать другим программистам и будущим работодателям.
Чтобы перейти из джуниоров в мидлы, разработчику важно работать с паттернами (шаблонами), и определять качество кода. Научитесь думать архитектурно, выделять модули и правильно проектировать зависимости
Учтите, что требования к мидл-разработчикам могут сильно отличаться в разных компаниях.
Чтобы перейти на более высокий уровень, джуниору может понадобиться от года до двух лет работы — в зависимости от того, сколько сил он вкладывает в учебу.
Зачем становиться веб-разработчиком?
Веб-разработка — это отрасль, которая точно не умрет в ближайшее время. Бюро статистики трудовых ресурсов США предсказало 27% рост количества рабочих мест в сфере веб-разработки к 2024 году.
Вот пять основных причин стать web программистом и обучиться с нуля:
- Вы можете работать удаленно;
- Вы можете работать самостоятельно. Заниматься фрилансом или начинать свой бизнес;
- Вы выходите на прибыльный технологичный рынок. Веб-разработка — это билет в мир высоких технологий. У большинства технологичных стартапов есть потребность в веб-разработчиках, поэтому это может быть ваш путь к успеху.
Как стать одним из них – айтишником?
Может показаться, что получить какую угодно работу в IT не такая уж и сложная задача. Однако на самом деле так и есть! Это реально, причем довольно быстро и без особых хлопот. Путей много, вот пара тропинок:
Подписаться на полезные каналы в YouTube, пока его не заблокировали. Скачать тонну бесплатных самоучителей. Не тратить ни копейки на бесполезные курсы, которые продают вам этот же материал постранично с рекламой в нагрузку
Научиться делать хоть что-то полезное, не важно, на каком языке, платформе. Не важно даже, насколько хорошо
Просто перестать быть нулем. В двоичной системе счисления вы автоматически станете значимой трушной величиной.
Или напроситься в стажеры — тоже куда угодно, в любую шарашку, хоть бесплатно. Главное, чтобы вам дали получить реальный боевой опыт. Речь не о том, что кто-то потратит полгода жизни на ваше бесплатное обучение. Просто находиться рядом, пропитываться атмосферой, выполнять все более сложные поручения по чужим проектам. Это уже гораздо ближе к джуниору, чем диплом колледжа, преподаватели которого видели жизнь только в учебниках (причем скорее всего из прошлого тысячелетия).
К этому можно добавить любые другие способы узнать хоть что-то практическое. Вы будете готовы, как только помимо «Кто его сюда пустил?! У нас же есть свежий бэкап?» услышите «Очень криво, но переделывать некогда». Все, это значит, что вы в деле! Страшная айтишная правда в том, что любые проекты на любом уровне делаются именно так. Когда просто некогда переделывать говнокод, и он уже не падает сам хотя бы достаточно долго, чтобы можно было отбежать в сторону после сдачи.
Ну и конечно вам пригодятся такие мелочи, как:
- Гуглить вместо зубрить.
- Английский вместо его отсутствия.
- Знакомства и общение вместо «я интроверт».
Все разработчики – интроверты, но это не мешает им общаться по проектам, тусить на хакатонах, мутить стартапы, выступать публично, сниматься в кино, становиться рок-звездами. Как пелось в детской песенке: без нетворкинга чуть-чуть, а с друзьями – много.
Наконец, последний хинт, который может стать первым. Не обязательно программировать, чтобы стать айтишником. Можно тестировать чужой код, прекрасно себя при этом чувствовать, наслаждаться привилегиями IT и хоть релоцироваться на все готовенькое. Вообще без программирования! Как в том анекдоте про критика чужого кода – ишь QA какая. Это работает.
Языки программирования
Выбирать нужно исходя из востребованности языка на рынке прямо сейчас, его перспектив, а также сложности. Однозначного ответа здесь нет, как и рецепта «как стать программистом с нуля».
Можно начать с базовых языков разметки HTML и CSS. Продолжить Java и JavaScript. Это проверенный путь во Frontend разработчики. Java, к слову, вполне пригоден для изучения с самого начала, так как логика языка несложна. Считается, что простыми для освоения также являются Python или PHP.
Не стоит начинать обучение со сложных языков типа С++.
Чем больше языков знает программист, тем лучше он как специалист. Многофункциональные программисты очень востребованы.
Что нужно знать, чтобы стать android-разработчиком
Весь процесс создания программного продукта проходит в среде Android Studio — профессиональном ПО разработчиков. Android Studio доступен для бесплатного скачивания на официальном сайте андроида. В Android Studio часть функций уже автоматизирована, но большую часть работы делает сам программист.
Языки программирования. Для работы в Android Studio разработчик должен владеть языками Java и Kotlin. Java — классический, официальный язык программирования, поддерживаемый Android Studio. Kotlin — предпочтительный язык программирования для Android-приложений по версии Google. Kotlin — относительно новый язык программирования, появился в 2017 г. — он более лаконичен, чем Java и в нём учли все недостатки Java и исправили их.
Разработчику Android необходимо изучать оба языка программирования. На Kotlin пишут большинство новых приложений, но на Java созданы десятки миллионов давно работающих программ. Язык Java более универсальный, после него будет проще освоить и другие: C++, C# или Swift.
С 2019 г. компания Google выбрала Kotlin в роли главного языка программирования для ОС Андроид. Научиться программировать на нём помогут курсы из подборки «ТОП-8 онлайн-курсов для Kotlin-разработчиков»
Дополнительные навыки. Вот, что нужно знать андроид-разработчику помимо среды Android Studio и языков Java и Kotlin:
- особенности ОС Android и правила её настройки;
- правила оформления кода и вёрстку, языки HTML, CSS и XML;
- инструменты контроля и управления версиями файлов Git и сервис для совместной разработки и хранения файлов Github;
- основы графического дизайна, алгоритмизации, тестирования;
- библиотеки и фреймворки;
- технический английский язык.
Этих базовых навыков достаточно для начала работы. Дополнительные навыки можно освоить уже в процессе работы. Разработчик не перестаёт учиться никогда. В программировании изменения происходят настолько часто, что без постоянного обучения разработчик рискует потерять квалификацию.
Чем занимается программист на Java
Java — один из старейших и востребованных языков программирования, который был создан в 1995 году. Джава считается многофункциональным языком, на котором можно создавать приложения, решения в сфере веб, всевозможные элементы для сайтов, видеоигры и приложения для мобильной операционной системы Android.
Помимо разработки с нуля, на Джава можно модифицировать уже созданное программное обеспечение, изменяя как дизайн, так и функции. Тестирование тоже входит в число возможностей этого языка программирования.
Из всего вышесказанного следует, что программист на Java занимается разработкой приложений, программ, сервисов и прочего. Конкретное направление работы зависит от обязанностей. Например, в веб-студию Джава-специалист понадобится для программирования клиент-серверной части проекта, для бэкенд-разработки и для создания всевозможных элементов для сайта или приложения.
Безусловно, помимо самого написания кода, на плечи Java-разработчика ложится внедрение кода в программы, составление документации, тестирование, оптимизация, поиск и устранение ошибок в ПО. Многие приложения подразумевают разработку архитектуры и программных модулей.
Достоинства и недостатки профессии
На стадии ознакомления с плюсами и минусами работы уже можно решить, стоит изучать Джаву или нет. Однозначного ответа на этот вопрос не существует, так как у каждого человека свои навыки и предпочтения. Кому-то понравится писать код на Java, а для кого-то это покажется совсем не его делом.
Перечень достоинств профессии:
- автоматизированная работа с памятью — не придется вручную обращаться к кластерам памяти;
- программы на языке транслируются в байт-код, который можно запустить на виртуальной машине, а значит нет привязки к операционной системе и оборудованию;
- в отличие от многих языков программирования, в большинстве вакансий требуется знать только Java (без требований к владению другими языками);
- высокая заработная плата даже для IT-сферы;
- это один из самых популярных языков программирования;
- можно работать на фрилансе или устроиться в компанию;
- есть возможность удаленной работы;
- есть множество качественных программ обучения на русском (как с нуля, так и для повышения квалификации).
Список минусов работы:
- несмотря на огромное количество улучшений, программы на Java потребляют в 10-30 раз больше памяти, чем программы прямого конкурента с похожим синтаксисом в лице C++;
- большинство идентичных задач выполняются в 2 раза быстрее на C++, чем на Java;
- согласно исследованиям Google, код на Java не только потребляет значительно больше памяти по сравнению с C++, но и значительно менее производителен;
- обязательно хорошо понимать математику и алгебру, зная правила, формулы, аксиомы и термины;
- необходимо хотя бы минимальное знание английского языка, а в некоторых вакансиях есть требование к отличному знанию английского для чтения и составления документации;
- из-за наличия сборщика мусора, код для обработки ошибок не такой простой, как в том же C++.
Внимательный читатель мог заметить, что в недостатках часто приводится сравнение Джава с C++. Чем это обусловлено?
Дополнительно рекомендуем прочитать обзор профессии C++ разработчика.