Отборные вакансии для Java программистов. Отборные вакансии для Java программистов Помощь в практике

13.06.2021

Привет. Если Вы читаете данную статью то, скорее всего, у Вас возникал вопрос, как стать программистом. Возможно Вы даже решили изучить язык программирования Java, но не знаете с чего начать изучение. Осмелюсь также допустить, что многие задавали себе вопрос: Возможно ли выучить Java за 1 год? Что если я не учился на программиста в университете? У меня даже специальность не техническая. Смогу ли я? Сколько мне придется тратить времени на это занятие? Что придется учить? С чего начать обучение? Если у Вас возникал хотя бы один из перечисленных вопросов, то вы сейчас в правильном месте.


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


Мотивация


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


Почему? – самый сложный вопрос. Он лежит в основе мотивации. Вы должны четко представлять какова Ваша цель и к чему Вы стремитесь. Деньги здесь не должны быть ключевой причиной, а просто важным дополнением. Если Вам нравятся современные технологии, Вы любите что-то создавать, можете часами просиживать за любимым делом, готовы им заниматься бесплатно и у Вас есть логическое мышление, тогда вполне вероятно, что это занятия как-раз для Вас. Вы должны уметь получать удовольствие от работы. Только в таком случае возможно достигнуть действительно хороших результатов.


Что? – это довольно логичный вопрос. Что нужно делать чтобы добиться успеха в данном деле. Здесь, так же, может стоять вопрос, какой выбрать язык и какие материалы понадобятся для его изучения.


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


Какой язык выбрать?


Предположим что с мотивацией все хорошо и мы можем переходить к следующему вопросу. Прежде чем выбрать какой-либо язык, Вы должны понимать есть ли вакансии на рынке труда, будут ли они на момент когда Вы освоите базовый уровень и приметесь за поиск работы. Так же, играет роль сложность языка программирования. Чем сложнее язык, тем больше времени Вам понадобится на его освоение. С другой стороны – выбирать то, что легче всего тоже не всегда хорошо, ведь конкуренция может быть здесь выше чем в других категориях. Для того чтобы определиться с перспективностью языка, нужно проанализировать где он используется, насколько широка область применения и как часто выходят новые фреймворки на выбранном Вами языке. Тут нам может помочь рейтинг языков программирования.


Думаю, пришло время подкрепить слова цифрами. По разным опросам среди пятерки лидеров находятся Java, JavaScript, C++, C и Python.


Примеры опросов Вы можете найти в изобилии в Интернете. Приведем только несколько из них:


К примеру, по версии сайта tiobe.com , регулярно публикующего рейтинг языков программирования, Java остается лидером уже который год. В пятерке также С++ и Python.

Другой авторитетный источник статистики, сайт Stackoverflow , проводивший опросы среди своих пользователей, говорит от том, что на первом месте JavaScript, в то время как Java находится на пятой строчке рейтинга. Но здесь в расчет брали так же языки разметки HTML и CSS.




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


Теперь давайте посмотрим на количество вакансий и откликов кандидатов по разным языкам. Для того чтобы не объяснять долго, приведу просто несколько ссылок. Например сайт DOU.ua регулярно публикует разного рода статистику по вакансиям, зарплатам и т.д. К примеру, Вы можете наблюдать роста количества вакансий по топовым языкам и тут же Вы можете использовать разного рода фильтры, которые покажут соотношение количества вакансий по разным городам и по разным языкам. Данные доступны как в табличном так и в графическом виде. Среди фаворитов здесь, как обычно, Java, Python, C++, .NET. При чем соотношение количества вакансий/откликов за 2018 год лучше всего у С++, 2-3 человека на место. К сожалению, мне не удалось найти похожую статистику по другим странам. Зато на есть хорошая статья с инфографикой конкретно по Java.


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


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


Обзор Java-экосистемы


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



В центре вселенной, как обычно, у нас сам язык Java. Если сказать точнее, то Java Core. На момент написания данной статьи свет увидела Java JDK 10. Компания Oracle поменяла политику работы с версиями Java и сейчас уже нет такой огромной разницы между версиями, как это было при выходе, например, Java 8. Именно эта версия остаётся наиболее популярной и часто используемой в абсолютном большинстве компаний и проектов. Можно смело начинать изучать язык с этой версии, а новые фишки усваивать, накладывая их на знание основ. Изучение этой части, пожалуй, самое сложное задание для новичка. Приходится освоить новый род деятельности и начать думать по другому. На это все накладывается еще и большой объем материала который нужно усвоить. Большинство тех, кто только начинает бросают именно на этом этапе. Тут все зависит только от Вашей мотивации.


Если освоение языка Java проходит нормально, тогда Вам понадобятся еще и дополнительные инструменты, такие как система контроля версий (Version Control System) и система для сборки проектов. В качестве VCS рекомендую использовать Git, который является абсолютным лидером среди себе подобных. Все остальные системы, как например Subversion и Perforce уходят в прошлое. Плюс Вы можете использовать репозитории Github или GitLab, для Вашего кода, бесплатно. С большой долей вероятности в энтерпрайзе вы будете использовать BitBucket от Atlassian. Но это всего лишь оболочка. Если вы научитесь пользоваться Git, то все остальное будет не существенно. Компания Atlassian является так же поставщиком таких продуктов как Jira и Confluence, но для Вас на этапе учебы это роли не играет.


Что касается инструментов для сборки проектов, то тут есть два варианта: Maven и Gradle. По моему субъективному мнению Maven предпочтительнее, но у других разработчиков может быть свое мнение. В принципе оба фреймворка являются равноценными.


После того как Вы познакомились с вышеперечисленными вещами, стоит задуматься в какую сторону двигаться дальше. На рисунке выше Вы видите четыре основных направления движения: Front-End (HTML, CSS, JS), Back-End (Hibernate, Spring, SQL), Android и Big Data. Эти четыре части хоть и разделены на рисунке, но на самом деле довольно плотно связаны. Например, если Вы решили стать Full-Stack Java разработчиком, то Вам придется хорошо изучить Back-End часть и иметь общее понимание основ Front-End части. От Вас не должны ожидать что Вы будете заниматься версткой сайта, но знать HTML стоит. Также должен заметить, что в разделе Back-End под Spring подразумевается в первую очередь Spring Core. Именно с этой части фреймворка нужно начинать. Сейчас он уже разросся до такой степени, что покрывает все аспекты Java разработки. В качестве альтернативы, компания Oracle пытается продвигать Java EE спецификацию, но у них это не слишком хорошо получается.


Что касается BigData, то тут тоже довольно большой стек технологий. В основном все они рассчитаны на распределенное хранение и распределенную обработку данных с помощью подхода Map-Reduce. Самой древней и самой известной технологией здесь является Hadoop.


Думаю, что такое Android, объяснять не стоит. Скажу только, что для того чтобы писать приложения под эту мобильную платформу, придется выучить Java.


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


С чего начать? Что читать?


Очевидно что начинать нужно с основ, т.е. с Java Core. Потом Maven, Git, и дальше уже то направление, которое Вам больше по душе.


Здесь у Вас есть три возможных варианта. Ситуацию, когда Вы выбрали данную специальность в университете, мы не рассматриваем. Она все равно не исключает те варианты, которые описаны далее.


Вариант первый - книги по Java

Самый древний, традиционный и пока что наиболее проверенный способ. Преимущества: большинство книг от известных издательств написаны профессиональными авторами, у многих из которых за плечами десятки лет опыта разработки и преподавания в престижных западных ВУЗах. Также эти книги проверяются тщательно самими издательствами, так что вероятность ошибок очень мала. Особенно, когда одна и та же книга переиздается снова и снова по мере обновления языка. После прочтения базовых книг, придется переходить к более продвинутым. Мало где можно найти продвинутые темы по программированию рассмотренные с той же глубиной. Недостатки: многие книги написаны сухим академическим языком и походят больше на справочники. Знаменитый автор Кей Хорстманн сам неоднократно признавался, что читает подобные книги не полностью, а только те главы, которые помогают ему решить текущую проблему.


Среди наиболее популярных и лучших книг для новичков следующие (названия приведены на английском, в тех случаях, когда книга не была переведена на русский или перевод не был найден):

  1. Java How to Program - Пол Дейтел и Харви Дейтел. Эта книга пережила кучу переизданий и является, пожалуй, наиболее объемным руководством по Java. Кроме самого языка там еще довольно неплохо объясняются основы алгоритмов.
  2. Философия Java - Брюс Эккель - также заслужила почетное место в библиотеке программистов. Доступные и понятные объяснения. Хорошо подойдут для новичков.
  3. Head First Java, 2nd Edition - Bert Bates, Kathy Sierra - книга, ставшая популярной благодаря способности авторов объяснять сложные концепции на простых жизненных примерах. Не слишком глубокая по содержанию, но все таки интересная.
  4. Java. Библиотека профессионала. Том 1,2 - Кей Хорстманн. Эта книга-справочник тоже давно поселилась на полках многих Java разработчиков. Она как раз из разряда тех книг из которых читают отдельные главы для решения задач, а не книгу целиком.
  5. Java 8. Руководство для начинающих - Герберт Шилдт. Сам эту книгу не читал, но слышал несколько положительных отзывов. Читать или нет - решайте сами.
  6. Структуры данных и алгоритмы в Java - Роберт Лафоре. Одна из лучших книг по структурам данных.
  7. Java. Эффективное программирование - Джошуа Блох. Немного более продвинутая книга по Java. Содержит огромное количество советов и рекомендаций касательно того, как можно улучшить Ваш код. Недавно вышло 3-е издание данной книги. Настоятельно рекомендую к прочтению.
  8. Java Concurrency in Practice - Brian Goetz. – старое доброе руководство по многопоточности в Java, которое не выходит из моды.

Вариант второй - видеокурсы по программированию и не только...

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


Альтернативой YouTube урокам могут быть такие площадки:
Safari O’Reilly - огромная коллекция книг, видеоуроков и вебинаров на разные темы. Качество материалов является серьезным преимуществом. Книги и видео тренинги записаны признанными профессионалами в области. Главный недостаток здесь - цена. 400$ в год если платить сразу или 480$ если платить помесячно. Все материалы здесь на английском языке. Если решитесь подписаться, рекомендую материалы подготовленные самим издательством O’Reilly, они обычно качественнее уроков других издательств.


Pluralsight - неплохая площадка для видеоуроков. Выбор материалов по темам большой, но они в основном более поверхностны чем в предыдущем случае. Все материалы здесь тоже на английском. Стоимость подписки 29$ в месяц, или 299 за год. Тут, как и в предыдущем случае, доступ к материалам есть пока платите за подписку. Нельзя просто купить один-два курса навсегда.


Udemy - большая библиотека разного рода курсов. Отличается тем, что курсы здесь не только на английском, но и на русском языках. Ценовая политика здесь совершенно отличается от предыдущих ресурсов. Здесь Вы можете купить курс и он останется у Вас навсегда. Выбирая курс на Udemy обращать внимание нужно на количество часов видеоуроков, качество звука (обычно доступно несколько лекций без регистрации), отзывы других слушателей. Тут я хочу порекомендовать курс «Java. От простого к сложному» . По соотношению качества (количества часов) к цене это, пожалуй, самый выгодный курс на Udemy на русском языке. Переходя по ссылке вы получаете фиксированную цену со скидкой 90%. Всего 10 с небольшим долларов за 33 часа отменного видеоконтента. В процессе подготовки курса, автором было проанализировано большое количество курсов, книг и учебных материалов, а также был приложен семилетний опыт разработки приложений энтерпрайз уровня.


Вариант третий - очные курсы
Еще один вариант обучения, который может привести Вас к заветной цели. Тут все неоднозначно. С одной стороны, идя на очные курсы Вы ожидаете, что Вам покажут и расскажут все что нужно. С другой стороны, учиться придется все равно самому. Ни один преподаватель не сможет просто научить Вас, каким бы хорошим он не был. Здесь, как и во всех других местах, всё зависит от личной мотивации и собственной сообразительности. Так что говорю с уверенностью, от книг и видеоуроков никуда не деться. Преимуществом может быть то, что хороший преподаватель поможет Вам понять те вещи с которыми Вы не смогли разобраться самостоятельно и немного ускорить процесс обучения.

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


Какой вариант выбрать?

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


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

Как практиковаться?

Практика это самый важный вопрос. Она предполагает не столько умение писать код, сколько умение делать это правильно. Многие говорят, что нужно контрибьютить в опенсорс проект или писать свой. Тут я должен Вас огорчить. Если Вы знаете не намного больше чем как написать Hello World программу, никто коммитить в опенсорс проект Вам не позволит. В этих проектах подход очень похож на подход к работе в компаниях. Там есть задания, выполнение каждого из них предполагает код ревю. Задача людей отвечающих за проект - фиксить баги, а не плодить новые.


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


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


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


В этот момент пора обзавестись репозиторием на GitHub или GitLab. У Вас должна быть там парочка нормальных проектов с юнит тестами, которые не стыдно показать работодателю. Попросите кого-нибудь из опытных друзей сделать код ревю. Это хорошая практика для опытных девелоперов, не только новичков. Если друга, знающего хорошо язык, который Вы изучаете, нет, наймите ментора на час или два. Если Вам скажут что все хорошо, стоит с подозрением отнестись к такому код ревью. Всегда есть место для дискуссии.


На таком уровне Вы уже скорее всего сможете контрибьютить в опенсорс. Если пока нет работы, практикуйтесь там. Вам опыт, обществу польза.


Параллельно с репозиторием пора готовить резюме и начинать оббивать пороги компаний. Не забудьте указать ссылки на проекты в своем репозитории. Проходите как можно больше собеседований. Умение их проходить - очень важный скил, который принесет Вам в итоге дополнительный доход.


В заключение хочу пожелать Вам удачи. Помните, Facebook и Apple тоже когда-то были маленькими компаниями у кого-то в гараже или в общаге. Просто нужно учится. Не настолько важно сколько часов в день Вы учитесь, как то, сколько дней подряд вы это делаете.

Теги:

Добавить метки

Если вы рассматриваете и другие варианты (помимо трудоустройства программистом java), то не ограничивайтесь этой подборкой объявлений, в нашем множество других позиций для разных должностей. Там же вы можете воспользоваться поиском по предложениям прямых работодателей и агентств.

Требования к соискателю:

Хорошее знание ООП Опыт разработки на Java и С++ от 2 лет Знание Swing, Reflection, XML RPC, Subversion. Желателен опыт работы с последовательным портом в Java Опыт администрирования Linux

Заработная плата: от 70000 руб. в месяц

Требования к соискателю:

Опыт работы не менее 1 года. Разработка и поддержка web- и/или enterprise-приложений на Java. Отличное знание SQL (желательно с особенностями PostgreSQL) Знание HTML/CSS и JavaScript Опыт работы с Apache Maven/Artifactory/Ant. Отличное знание unix-среды. Умение работать в команде, проверять результаты своей работы, способность производить код высокого качества. Самостоятельность и ответственность Приветствуется: Опыт работы с UI-библиотеками на JavaScript. Опыт работы с компонентами Spring. Опыт конфигурации/администрирования Apache, Nginx, Glassfish.

Заработная плата: до 45000 руб. в месяц

Требования к соискателю:

Высшее техническое образование. - Знание английского языка на уровне чтения технической документации. - Навыки самостоятельного анализа задач и составления алгоритмов. - Знание языка Java SE. - Приветствуется знание дополнительно: basic, С, HTML, css, MySQL запросы (один или несколько из перечисленных языков, опыт реальной работы с ними не принципиален). - Знание принципов работы с СУБД. - Понимание схемотехники. Готовы рассмотреть обучаемых выпускников технических ВУЗов с минимальным опытом работы, без вредных привычек, желающих дисциплинировано работать в стабильной компании и учиться прикладному программированию.

Требования к соискателю:

Опыт работы с React, JavaScript ES обязателен. Redux, Flow-type желателен. JavaScript (в современной редакции) React JS CSS

Заработная плата: от 50000 до 60000 руб. в месяц

Требования к соискателю:

Рассматриваются кандидаты с небольшим опытом или без опыта работы, с высшим образованием (либо студенты последнего курса с возможностью работать полный день). Наличие собственных проектов на Java за рамками учебной программы ВУЗа (могут быть некоммерческие разработки, свои небольшие пробные проекты).

Заработная плата: по договоренности.

Требования к соискателю:

Гражданство РФ Качественное выполнение задач в срок. Личностная вовлечённость в дело, в вашем лексиконе должны отсутствовать фразы "я не знаю", "я не умею", "этого нет в моем тз" и т.д. Желание и умение в короткие сроки осваивать новые ЯП, технологии, ПО, проч. Java/Kotlin/JavaScript (фронт тоже на Kotlin) spring, openlayers, vue docker, electron, git nosql, neo4j, очереди flux

Заработная плата: до 150000 руб. в месяц

Требования к соискателю:

Уверенное владение Core Java от 3-х лет; Понимание принципов ООП; Знание SQL, UML; Опыт командной разработки с использованием системы контроля версий, управления требованиями и конфигурациями; Умение разбираться в чужом коде. Как плюс: Опыт работы в банковской сфере; Понимание паттернов проектирования; Spring, Spring MVC, JMS. Английский (технический) Английский язык технический

Заработная плата: по договоренности.

Требования к соискателю:

Высшее образование (предпочтительно техническое); Опыт работы в аналогичной должности не менее 1,5 - 2 лет, знание и практический опыт Java, JavaScript, HTML, SQL (Oracle), PL/SQL. Приветствуется знание области страхования, бухгалтерии.

Заработная плата: по договоренности.

Требования к соискателю:

Язык разработки: JAVA - Знание SQL, СУБД: Postgre, Elastic Search - Знание HTTP, REST-HTTP, HTML/CSS 5, Java-Script - Система управления версиями: GIT. - Методика организации разработки: Agile. Инструменты: JIRA, Confluence. - Web сервер: Tomcat. - Понимание ORM и практический опыт работы c Hibernate; - Опыт использования GWT/GXT

Заработная плата: до 80000 руб. в месяц

Требования к соискателю:

Знание архитектуры Atlassian JIRA и структуры ее БД Опыт работы java программистом Знание спецификации Java (Spring, Tomcat, REST, SQL) Знание и опыт использования средств сборки ПО (Maven) Умение работать с SQL/NoSQL БД Умение работать с JavaScript (jquery), CSS3, HTML5 Чтение технической литературы (в основном вся документация на английском) Как преимущество: владение функционалом JIRA. Опыт автоматизации процессов разработки с применением JIRA. Знание архитектуры Atlassian Confluence, владение базовым функционалом. Опыт интеграции JIRA с Confluence.

Заработная плата: по договоренности.

Требования к соискателю:

Заработная плата: от 180000 до 200000 руб. в месяц

Требования к соискателю:

1. Опыт программирования на Java EE от 3-х лет/ 2. Хорошее понимание ООП. 3. Хорошее знание SQL.. Опыт работы с PostgreSQL как плюс. 4. Знание основных паттернов проектирования. 5. Написание unit-тестов, желательно «знакомство» с модульным тестированием. 6. Написание «чистого» кода. Способность и опыт работы со корпоративным стандартами кодирования. Сокращенные конструкции не принимаются – нужен "читабельный" код. 7. Опыт работы с сетевыми подсистемами (опыт и понимание как работает сетевой стек). 8. Опыт работы с системами контроля версий. 9. Linux системы на уровне пользователя. Желательно: 11. Опыт работы в платежных провайдерах (PSP, IPSP). 12. Опыт работы с банковскими картами (на любом уровне, вариан в интернет-магазин делал интеграцию с платежной системой подходит). 13. Понимание принципов функционирования e-commerce систем. 14. Опыт написания скриптов на JavaScript – базовое понимание. 15. Знание английского языка на уровне чтения проф. литературы.

Заработная плата: от 40000 до 150000 руб. в месяц

Требования к соискателю:

Все из перечисленного или что-то конкретное, но на хорошем уровне: Spring Framework (и вариации Spring MVC, Spring Security, Spring Boot, Spring AOP, Spring DI, ….) Java / JRE / JDK Hibernate Git или Mercurial Работа с трекерами задач / Jira / Redmine / Mantis _____________________________________________________________________ Плюсы на собеседовании добавят знания в следующих областях: Java 8 Eclipse или Intellij Idea JSP / JSTL Модульное тестирование / JUnit Web / HTML / CSS / JS / JQuery / Bootstrap Oracle Database / Oracle / SQL UML / ERD / Sybase PowerDesigner __________________________________________________________________ Большим бонусом является участие в олимпиадах / ACM-ICPC

Заработная плата: до 100000 руб. в месяц

Требования к соискателю:

Возможно обсуждение работы на дому (при достаточном КПД работы) желательно знание Meteor.js желателен опыт работы с какой-либо биржей

Заработная плата: по договоренности.

Требования к соискателю:

Программирование на Java

Заработная плата: от 100000 до 150000 руб. в месяц

Требования к соискателю:

Хорошее знание синтаксиса Java и понимание его работы. Знание базовых конструкций и классов языка Java 1.7. Понимание работы: циклов, условных операторов, коллекций, перегрузки метода. Понимание принципов ООП, в частности: наследование, объект класса, ссылка на объект, уровни доступа к свойствам и методам класса (инкапсуляция), полиморфизм (работа с дочерним классом как с родительским). Знание основных принципов построения интерфейса, компоненты, использование стилей. Опыт работы с СУБД. Хорошее знание синтаксиса SQL, PL/SQL. Создание хранимых функций, представлений, триггеров. Понимание, как формируется выборка данных. Понимание основных принципов работы транзакций. Понимание основ архитектуры реляционных баз данных. Умение работать с командной строкой в Linux: навигация, копирование, редактирование файлов, запуск\остановка программ\сервисов. Умение самостоятельно находить решение, если раньше этого не делал. Умение читать чужой код. Умение форматировать и комментировать свой код. Опыт программирования для систем класса ERP, CRM, WMS. Понимание основ работы ERP-систем. Работа на результат, а не на процесс. Желательно: Умение работать в Eclipse. Опыт работы с JasperReport\iReport. Опыт разработки для ZK Framework Знание, как работать с системами контроля версий. Опыт работы с PostgresSQL. Опыт работы с Linux. Умение читать техническую англоязычную литературу. Мы будем рады, если у Вас есть опыт работы с OSGi, а также с семейством программ ERP Compiere/Adempiere/iDempiere/OpenBravo

Заработная плата: по договоренности.

Требования к соискателю:

Опыт в Java от 2-х лет Знание паттернов и шаблонов проектирования Хорошее знание SQL Владение Git, Maven, Java 8 Понимание принципов микросервисной архитектуры Написание тестов JUnit Хорошее знание: core, collections, concurrency

Заработная плата: по договоренности.

Требования к соискателю:

Обязательные требования: Хороший уровень знаний Java Опыт коммерческой разработки на Java от 3 лет Знание паттернов проектирования и умение их применять в реальных проектах Уверенное знание Spring Framework (IoC, MVC, Data JPA, Transactions), Hibernate Опыт использования реляционных СУБД или NoSQL-хранилищ Ответственность и аккуратность, умение тестировать собственный код Умение работать в команде Желательные требования: Опытный пользователь Linux Опыт работы с Git или Mercurial Опыт разработки высокопроизводительных и высоконадёжных приложений Ключевые навыки: Java Spring Framework ООП SQL JDBC PostgreSQL Git Linux Apache Tomcat Hibernate ORM

Заработная плата: по договоренности.

Требования к соискателю:

Опыт работы от 1-3 лет, высшее образование; - Опыт командной разработки; - Высшее техническое образование; - Опыт проектирования и разработки серверных приложений на Java (j2ee, Jax-ws, hibernate, jboss); - Опыт разработки web-приложений с использованием GWT (HTML, JavaScript, CSS) – от года; - Опыт разработки с использованием СУБД PostgreSQL; - Понимание принципов ООП и шаблонов проектирования; - Английский язык уровня чтения технической документации.

Заработная плата: по договоренности.

Требования к соискателю:

Базы данных (Oracle) ∙ JDBC ∙ Connection pooling ∙ Версионирование схем баз данных (Flyway) Сервер приложений (Java) ∙ Java 8 ∙ Системы сборки (Ant/Maven) ∙ JavaEE  Servlet  Шаблонизаторы (JSP / JSTL / Velocity) ∙ Основной фреймворк (Spring Framework)  Dependency Injection  Isolation Of Controls  MVC  Аспектно-ориентированное программирование ∙ Веб сервисы  WSDL/SOAP (Apache CXF)  REST (JAX RS) ∙ ORM (Hibernate) ∙ Построение отчётов (JasperReports/ DynamicReports, Apache POI, IText) ∙ Типовые библиотеки (Apache commons, Guava, JodaTime) Пользовательский интерфейс (Web приложения) ∙ Bootstrap ∙ HTML/HTML5 ∙ CSS  CSS пре- и пост-процессоры (Less, autoprefixer) ∙ JavaScript  JQuery, Polyfills, AJAX, JSON ∙ Мобильные устройства Test / QA ∙ Модульное тестирование  JUnit  Mockito (mocking, stubbing, ...)  PowerMock (static mocking) ∙ Интеграционные тесты (Selenium/Selenide, Selenium driver) ∙ Снятие метрик исходного кода  Статическая проверка кода (Checkstyle, Findbugs, PMD)  Покрытие кода тестами (Jacoco) Организация процесса разработки ∙ Системы контроля версий (Git, Subversion) ∙ Трекер (Redmine) ∙ База знаний (Redmine wiki) ∙ Continuous integration (Jenkins) ∙ Среды разработки (Eclipse, Intellij IDEA)

Заработная плата: по договоренности.

Требования к соискателю:

Высшее/ неоконченное высшее образование по направлению Знание: WebTutor, CourseLab, MS Office Основы Adobe Photoshop – обязательно HTML, CSS, JavaScript, XML, SQL, Jquery Знание 1С - желательно Основы объектно-ориентированного программирования Высокий уровень самоорганизации, ответственный подход, коммуникабельность

Заработная плата: по договоренности.

Требования к соискателю:

Опыт работы от 2 лет; Знание: J2EE, J2SE, JAXB, SOAP, REST, SQL/ PL-SQL, SWING. Опыт работы с Oracle Database 11g, Weblogic 12c; Знание специальных ПО: mercurial, svn, maven, ant, hudson, Jenkins; Приветствуется опыт веб-разработки (HTML, CSS, JavaScript, Sencha ExtJs). Дополнительно: Нацеленность на долгосрочное сотрудничество, аналитическое мышление, ориентированность на результат, умение работать в команде; Приветствуется наличие успешных проектов на Git Hub.

Заработная плата: по договоренности.

Требования к соискателю:

Желательно знание английского языка на уровне чтения технической документации; Высшее образование Опыт промышленной разработки с использованием Java (J2EE, J2SE) от 3 лет; Знание J2EE (JSP/Servlets, EJB, JMS, JTA, etc); Знание и опыт использования Hibernate/ Spring / JavaScript / HTML / CSS / JQuery; Знание технологий Ajax, EJB 3.0, JPA, JAX-RS, SOAP; Опыт работы с одним из серверов приложений: JBoss, Tomcat; Опыт использования Maven, Ant; Знание SQL и опыт работы с одной из реляционных баз данных - Oracle, PostgeSQL, MySQL, MS SQL Желательно опыт использования GWT; Опыт работы с одной из систем контроля версий StarTeam, SVN/Git/ CVS; Опыт разработки объектов БД Oracle (хранимые процедуры, пакеты, java class).

Заработная плата: от 80000 руб. в месяц

Требования к соискателю:

Уверенные знание JS, ES2015 (ES6); - Желателен опыт работы с React/React Native, NodeJS; - Понимание принципов создания мобильных приложений для Android и IOS; - Навыки вёрстки; - Понимание принципов ООП, паттернов проектирования ПО. - Желателен навык работы с Adobe Photoshop, Corel Draw - Исполнительность, коммуникабельность, системное мышление, аналитический склад ума; - Опыт разработки не менее 3-х лет; - Приветствуется опыт разработки высоконагруженных систем; - Особенно приветствуются сертификаты, рекомендации и богатое портфолио, опубликованные приложения в магазинах Apple и Google.

Заработная плата: по договоренности.

Требования к соискателю:

Хорошее знание Java Core (язык, базовые библиотеки, Java Collections); Опыт разработки J2EE-приложений; Опыт работы с EJB, транзакции; Опыт работы с серверами приложений (Oracle GlassFish, Oracle WebLogic, ...) Опыт разработки веб-приложений на Java (сервлеты и основные знания по front-end, JSP, HTML, CSS); Знакомство с JavaScript, Ajax, jQuery; Опыт работы с RDBMS (PostgreSQL, ORACLE) JDBC, знание SQL (DDL, DML), опыт работы с ORM Hibernate; Рефакторинг, анализ чужого кода; Понимание особенностей трехзвенной архитектуры; Опыт работы с XML, DOM, XSLT; Опыт работы с ANT, VCS (SVN); Опыт работы с bug-tracking (JIRA, Redmine); Английский язык (технический).

Заработная плата: по договоренности.

Требования к соискателю:

Опыт работы от 3 лет в сфере Java-разработки; - знание современных информационных технологий, опыт разработки коммерческих систем; - опыт разработки архитектуры программных систем; - понимание принципов современной разработки и ведения проектов (agile, баг трекеры, системы контроля версий, автоматические сборки).

Заработная плата: от 120000 до 150000 руб. в месяц

Требования к соискателю:

Опыт разработки на платформе Java (реализация OpenJDK) от 4 лет Знание паттернов проектирования, понимание принципов подхода к безопасности веб приложения Фреймворки: Spring, Hibernate Работа в команде: умение выразить и аргументировать свою позицию. Ответственность. Самостоятельное принятие решений. Навыки работы с SQL СУБД из консоли Умение документировать свой код и разбираться в чужом. Использование средств контроля версий. Общее представление о технологиях шифрования данных. Опыт работы с Unix системами: командная строка, типичные действия с файлам, каталогами, просмотр файлов.

Заработная плата: по договоренности.

Требования к соискателю:

* Уверенные знания технологий: Java (Collections, Servlets, JSP), Spring Core и Spring MVC, отличное знание SQL, * Опыт коммерческой разработки на Java от 2-х лет, * Опыт работы с системами контроля версий и баг-трекинга, * Опыт работы по созданию клиент-серверных приложений и программирования информационных систем на базе промышленных СУБД (Oraсle, MS SQL и т.п.), * Опыт индивидуальной и групповой разработки, * Желание расти как профессионалу в области enterprise-разработки.

Заработная плата: от 50000 до 80000 руб. в месяц

Требования к соискателю:

Опыт разработки в среде Eclipse Опыт работы с использованием: Spring, Hibernate, Maven Опыт работы с использованием систем отслеживания ошибок, систем непрерывной интеграции и систем контроля версий Приветствуется наличие сертификатов Oracle (Sun)

Заработная плата: от 60000 руб. в месяц

Требования к соискателю:

Заработная плата: по договоренности.

Требования к соискателю:

Обязательные условия: - Опыт работы с Oracle Database 11g (администрирование, проектирование) - уверенные знания SQL, PL/SQL; - Опыт работы с HTML, CSS, XML, AJAX, JavaScript; - постановка задачи, общение с заказчиком. Желательно: - Высшее техническое образование; - Знание PL-SQL developer - основные принципы формирования и проведения банковских операций. - Опыт на аналогичной позиции от 3х лет.

Заработная плата: до 60000 руб. в месяц

Требования к соискателю:

Навыки разработки на JAVA (JSE), Python (2.7) Умение разбираться в чужом коде Опыт работы с СУБД (MySQL, PostgreSQL, Oracle) на уровне написания селектов

Заработная плата: от 110000 до 140000 руб. в месяц

Требования к соискателю:

Опыт программирования Java (от 2-х лет) Уверенное владение Java-технологиями (J2EE) и обязательно Spring и Hibernate Образование высшее техническое

Заработная плата: до 65000 руб. в месяц

Требования к соискателю:

Гражданство РФ. Необходимые знания: 1) Основы объектно-ориентированного программирования (ООП). 2) Программирование на языке Java с использованием технологии Java SE (Swing). 3) Опыт работы с Базами данных, поддерживающими SQL нотации: MS SQL Server 2005+, Interbase. 4) Опыт написания SQL скриптов. Желателен (но не обязателен) опыт работы с Ant – скриптами, EJB, Application Serves для Java (Glassfish, Tomcat и т.п.), Java Spring, Hibernate, frameworks вместе с Spring ORM и т.п., Visual Basic for Applications, платформой.NET (написание.dll и работа с железом). Желателен опыт работы в среде NetBeans, опыт контроля версий ПО с помощью Subversion.

Заработная плата: от 120000 руб.. в месяц

Требования к соискателю:

J2SE, J2EE, Spring, XML, SQL. Разработка интерфейса на JSP, HTML, HTML5, CSS, JavaScript; желательно: опыт работы с продуктами Apache: Jetty, Camel, ActiveMQ, Derby. знание технологий: JMS, JMX, JDBC.

Заработная плата: от 60000 до 80000 руб.. в месяц

Требования к соискателю:

Заработная плата: по договоренности.

Требования к соискателю:

Уверенные знания SQL; - высшее образование (математика/физика/инженерные специальности); - опыт коммерческой разработки на Java от 2-х лет; - уверенные знания технологий: Java (Collections, Servlets, JSP), Spring Core или Spring MVC; - опыт работы с системами контроля версий и баг-трекинга; - знание английского языка (чтение документации); - желание расти как профессионал в области enterprise разработки.

Заработная плата: по договоренности.

Требования к соискателю:

Опыт разработки высоконагруженных систем; Опыт как в части frontend, так и в backend; Знание и опыт работы в Jboss, Appache, Tomcat, Hibernate, Spring, SQL, Junit, Maven, SOAP, Java, JS, EXTJS, HTML+CSS, XML/XSLT, WSDL/XSD; Плюсом будет опыт работы с PostgreSQL, разработка шин обмена данными; Опыт продвинутой работы с Linux платформами.

Заработная плата: от 50000 до 80000 руб.. в месяц

Требования к соискателю:

Отличное знание Java SE, MySQL (сложные запросы и оптимизация запросов к БД); - Знание библиотек: Netty, MyBatis; - Знание сетевых протоколов tcp/ip; - Твердое понимание принципов ООП и умение их применять; - Знание и понимание MVC, реализации событийно-управляемой модели выполнения кода; - Опыт проектирования и разработки сложных серверных приложений; - Опыт разработки многопоточных приложений; - Желание и готовность работать в команде, ответственность, внимательность, пунктуальность; - Опыт работы в команде. Плюсом будет: - Опыт разработки распределенных систем; - Участие в игровых проектах; - Умение грамотно составлять документацию.

Заработная плата: по договоренности.

Требования к соискателю:

Образование неполное высшее, высшее (техническое). Опыт работы в разработке приложений на Java от 3-х лет; Уверенное знание Java EE; Опыт работы с базами данных PostgreSQL; Желательно знание Spring Framework, GWT; Уверенное знание английского языка, чтение технической документации; Плюсом также будет знакомство с: Apache Maven 3.0.4, Apache tomcat 7.0, Spring 3.1 (MVC, IOC), Jenkins 1.x, EclipseLink 2.x, Apache CSF, Freemarker, Shtrih, JPos, iText.

Заработная плата: от 100000 руб.. в месяц

Требования к соискателю:

Знание языка программирования Java. Опт работы программистом не менее 3-х лет. Знание языков разметки HTML и XML Опыт создания таблиц стилей CSS Опыт управления содержанием систем - инструмент Liferay Роrtаl CMS Знание принципов организации систем ГИС Опыт макетирования пользовательских интерфейсов с помощью специального ПО опыт загрузки картографической информации с использованием СУБД Oracle Навыки установки и сопровождения общесистемного программного обеспечения, установки и запуска баз данных, веб-серверов и сервисов навыки разработки общесистемных скриптов Навыки администрирования Linux RHEL, MS Active Directory, CentOS 5, Windows 2008 Server Навыки Linux Shell Scripting Опыт установки и запуска, управления и администрирования СУБД Oracle, СУБД Му SQL Навыки проектирОвания БЩ, построения кластерных хранилищ данных Знание языка запросов SQL навыки проектирования объектной модели данных Знание нотации моделирования структуры данных UML

Заработная плата: от 65000 до 80000 руб.. в месяц

Требования к соискателю:

JAVA EE (Servlets/JSP, JDBC, JPA)!!! Опыт работы с Tomcat Иметь представление о XML, XSLT, XSD, WSDL, SOAP Опыт работы с РСУБД, знания SQL Будет плюсом: Spting MVC Hibernate, Spring Data JPA Опыт разработки web-сервисов с использованием технологий: JAX-WS, JAXB (Metro) PostgreSQL (PL/pgSQL) SVN Redmine Администрирование Linux JavaScript, HTML, CSS

Заработная плата: по договоренности.

Требования к соискателю:

Что требуется от Вас? Опыт разработки на JAVA от 3-х лет и наличие мечты работать на SCALA. Любовь к web-решениям, опыт работы с СУБД и frontend разработки. Плюсом будут следующие вещи (отсутствие чего либо из перечисленного или всего сразу не является препятствием, научим всему): опыт работы с Play 2 framework опыт работы с ORM вообще и Slick в частности понимание распределенных вычислений и знакомство с Akka навыки работы в интеграционных проектах (стандартные и не стандартные протоколы) понимание командной разработки, терпимость к чужому коду, написание тестов для своего и чужого кода Дополнительным преимуществом является опыт и желание не ограничиваться backend логикой: опыт frontend-разработки на JavaScript знакомство с AngularJS

Требования к соискателю:

Заработная плата: от 60000 до 130000 руб. в месяц

Требования к соискателю:

Опыт работы с web-серверами и серверами приложений J2EE. - Знание шаблонов проектирования Java и J2EE - Опыт работы с Spring, Maven, GWT, EJB, JPA - Опыт работы в команде разработчиков - Опыт работы с системами контроля версий (Git). - Опыт работы с РСУБД - Знание HTML, CSS, JavaScript. - Знакомство с Glassfish, Atlassian JIRA. - Опыт программирования на Java от 2 лет

Заработная плата: от 90000 руб. в месяц

Требования к соискателю:

Обязательно: JAVA, Oracle SQL PL\SQL - Знание Oracle ADF - приветствуется! - Опыт работы с Web Logic - приветствуется! - Желательно опыт работы с SVN - Опыт работы с ИС от 2-х лет

Заработная плата: по договоренности.

Требования к соискателю:

Желательно: HTML, CSS. javascript, jquery. Опыт работы с реляционными базами данных: Знание языка SQL и умение писать запросы. Опыт oracle, mssql приветствуется.

Заработная плата: до 90000 руб. в месяц

Требования к соискателю:

Опыт работы от 3-х лет Знание английского языка технологии maven, Jenkins, (желательно: spring, hibernate, zk framework)

Заработная плата: по договоренности.

Требования к соискателю:

Уверенное знание Java - уверенное знание принципов ООП - уверенное знание принципов работы СУБД, понятия "план запроса", умение писать сложные но оптимальные sql выражения. - базовые знания HTML, CSS - понимание базовых алгоритмов, структур данных и шаблонов проектирования - опыт работы с системами автоматизации процесса разработки Будет большим плюсом: - опыт работы с Oracle DB/ PLSQL - знание JavaScript, опыт разработки ajax-based приложений - опыт работы со Spring - опыт работы с Maven - опыт работы с Git

Заработная плата: от 60000 до 90000 руб. в месяц

Требования к соискателю:

JAVA EE (JSF, Primefaces, JAX-WS, EJB, ORM, Security, SAX/DOM parse), Maven, Jasper Report HTML, CSS (Bootstrap), JavaScript (JQuery) MySQL (+Stored Procedures) GlassFish, Mercurial Основной критерий – хорошее знание JAVA EE и опыт Web-разработок, остальные пожелания обсуждаются

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

Зарплата программиста

Хочу рассказать о зарплатах программистов. Как собственно обстоят дела с зарплатой, куда лучше идти работать, а куда - нет. Если вы не программист и попытаетесь самостоятельно разобраться в этой теме, то можете получить набор очень противоречивых данных. Все дело в том, что главным фактором, влияющим на зарплату программиста, является не его квалификация, а место работы. Иногда, при одинаковой квалификации, разница между хорошим и плохим местом может достигать 2-10 раз(!) В каждый конкретный момент времени ваша квалификация постоянна. Вы не можете за месяц стать опытнее в два раза и получать в два раза больше. А вот сменить за месяц работу и получать в два раза больше - очень даже можете. Однажды в течении двух месяцев моя зарплата выросла в три раза(!) - незабываемое впечатление. Давайте же выясним, где лучше всего работать. Вот три фактора, которые очень сильно влияют на уровень зарплат в компаниях:
  1. Является ли разработка ПО основным бизнесом компании.
  2. Ориентирована ли компания на международный рынок или на внутренний.
  3. Собственником фирмы является западная компания или отечественная.
Обратите внимание, что город, в котором вы живете не играет решающей роли. Т.е. если вы получаете в 10 раз меньше, живя в Дрездене, чем ваш знакомый в Нью-Йорке, значит, в дело вступили перечисленные выше факторы.

Конкретные цифры

Сложно привести какие-то конкретные цифры для всего мира. Я дам описание ситуации для Восточной Европы, которая в целом справедлива для всех стран, где более-менее развит IT-outsource/outstaff. Ниже приведен расклад зарплат программистов для Киева – это крупный центр ИТ-аутсорса Восточной Европы. В СПб зарплаты на 10% выше, в Москве где-то на 20%. Не встречал в Восточной Европе ни одного города-миллионника, где бы зарплаты были на 30% меньше чем в Киеве. Так как вы все из разных городов, предлагаю увеличивать приведённые мною цифры, в соответствии с указанной шкалой:Вот сколько может зарабатывать Java Senior Developer с пятью годами опыта работы, в зависимости от уровня компании, в которой работает:
Уровень Зарплата в месяц Описание
1 $200 - $500 Внизу находятся фирмы, где ИТ - это непрофильное направление бизнеса компании, заказчик - внутренний рынок, а собственник - государство. Например, ИТ-отдел в налоговой или другой государственной организации.
2 $500 - $1500 Ниже среднего находятся ИТ отделы различных не государственных структур: банков и т.д.
3 $1,000 - $2,500 Средний уровень - это фирмы, которые занимаются разработкой ПО
4 $3,000 - $4,000 Выше среднего - это фирмы, которые занимаются разработкой ПО, и заказчики у них с запада
5 $4,000 - $5,000 На вершине - фирмы, занимающиеся разработкой ПО, заказчики у них с запада, и собственник тоже. Их мало. Открытые вакансии бывают нечасто, и попасть туда непросто. Но они есть.
Что самое странное в сложившийся ситуации? Половина всех программистов работает в фирмах уровня 1 и 2. Хотите узнать, в чем подвох? Есть сотни открытых вакансий программистов в фирмах уровня 3 и 4. Эти компании готовы предложить более высокие зарплаты и, обычно, гораздо лучшие условия труда. Я знаю двух Java Junior’ов, один из которых пошел работать на $100 в месяц (в фирму уровня 1), а второй на $1,000 в месяц (уровень 4). Зачем получать меньше? Спрос на программистов превышает предложение – не идите работать туда, где мало платят! Вывод 1: Средние зарплаты Java-программистов в Киеве - около $1,200 в месяц Вывод 2: Ваша средняя зарплата, через 5 лет, если вы не пойдёте работать в фирмы уровней 1 и 2, а пойдете работать в фирмы уровня 3 и 4, будет выше $3,000 в месяц. Чего можно добиться, если не тупить Если вы будете постоянно заниматься саморазвитием в области программирования, то ваша зарплата, начиная с сегодняшнего дня, может выглядеть примерно так.

План

0-3 месяца (Ученик) Вы знаете о программировании очень мало. Может учили в школе и/или университете, но очень поверхностно. Ваша задача - учиться программированию и изучать Java. Ваша цель - устроиться на работу Java Junior’ом в компанию не ниже 3-го уровня. Первые три месяца на плане вы не получаете ничего, т.к. просто изучаете программирование. В будущем, когда у вас будет семья и куча кредитов, сменить специализацию будет гораздо сложнее. Чтобы исправить ошибку вам понадобится отложить денег на год нормальной жизни. Не делайте глупых ошибок. 3-15 месяцев (Java Junior Developer) Вы уже работаете программистом, и ваш опыт растёт с каждым днём. Не прохлаждайтесь. Вам ещё многое предстоит сделать, чтобы можно было почивать на лаврах. Ваша задача - изучать технологии, которые понадобятся вам как Middle разработчику. Какие именно технологии? Мир меняется. Я сейчас насоветую, а жизнь все поменяет. Найдите в интернете несколько вакансий и посмотрите, что для них требуется. Обязательно прочитайте книгу Брюса Эккеля «Философия Java». Ваша цель в первый год работы Java Junior’ом - дорасти до уровня Java Middle. Никто не говорит что это очень легко, но вполне возможно для целеустремлённого человека. Это сразу даст скачок ЗП до полутора тысяч. 2-й год работы программистом (Java Middle Developer, level 1) Вы хорошо потрудились в прошлый год, и теперь вы - Java Middle Developer. С зарплатой в полторы тысячи можно нормально жить. На работе вам дают серьёзные задания, и ваш опыт растёт как на дрожжах. Вы дорастёте до Java Senior Developer за два-три года. Нет смысла ускорять этот процесс. Сильного роста в зарплате вы все равно не получите. Ваша задача - изучите паттерны проектирования, прочитайте «Совершенный код» МакКоннела. Улучшайте качество своего кода и свои навыки работы в команде. Можно взять за правило каждую неделю читать одну книгу по ИТ. Тогда через год, вы будете на 50 книг умнее остальных. Не стоит откладывать это на потом: свободного времени у вас больше не станет. Вполне вероятно, что у вас появится семья, или пополнится, если уже есть. Ваша цель - выбрать несколько технологий, в которых вы будете специализироваться как Senior-разработчик. Всего вам все равно не изучить. А быть гуру в небольшой области – это хорошее решение. 3-й год работы программистом (Java Middle Developer, level 2) Вы уже опытный Middle разработчик и начинаете подумывать – стать Senior Developer. Это приятно и престижно. Ваша зарплата превышает 2 тысячи долларов (данные для Киева). С этого момента спрос на таких профессионалов как вы, превышает предложение. Вы всегда сможете устроиться на работу за пару дней, и вряд ли будете получать меньше, чем сейчас. Если, конечно, не выкинете какую-нибудь глупость. Ваша задача - продолжить изучение выбранных технологий. Работайте лучше. Не ради работодателя, ради вас самих. Проситесь в проекты с перспективными технологиями (такими как Big Data, на момент написания этой статьи). Вы все равно будете проводить в офисе 8 часов в день, так почему бы не получить за это немного больше денег и, что гораздо важнее, ценнейший опыт, который вам ещё понадобится. Ваша цель - сменить работу. Хороший коллектив есть везде. Вы столкнётесь с новыми проектами и технологиями. Не стоит раньше времени прирастать к стулу. Если вы все ещё работаете в компании третьего уровня, подумайте над переходом на четвёртый уровень. Пятый уровень, хоть и очень привлекательный, пока недостижим. 4-й год работы программистом (Java Senior Developer, level 1) Вы стали Senior разработчиком. Поздравляю. Возможно, стали им незаслуженно, и вы это чувствуете. Все равно поздравляю. Не важно, достойны ли вы сейчас вашей должности, главное чтобы вы стали достойны её в будущем. Согласитесь, лучше сначала получить хорошую работу, а через год дорасти до неё, чем дорасти до хорошей позиции и ждать её ещё год. Надеюсь, вы не забыли мой совет и читали по одной книге в неделю - теперь вашим возможностям позавидует любой студент. Вернее он готов молиться на них. Подумайте, у вас серьёзная зарплата, приближающаяся к трём тысячам долларов. Скорее всего, вы ещё молоды. Весь мир у вас под ногами. Ваша задача - ещё раз просмотреть выбранные вами технологии. Возможно, вам нужно сменить специализацию. Мир изменился, технологии изменились, да и знаний у вас за два последних года прибавилось. То, на чем вы сейчас остановитесь – станет вашим выбором на несколько ближайших лет. Самое время выбирать любимые технологии. Ваша цель - выбрать направление, в котором вы могли бы развиваться дальше. Их очень много, всех вариантов никто не перечислит, но выбор нужно сделать прямо сейчас. Если сегодня вы немного измените своё настоящее, это приведёт к большим изменениям в вашем будущем. 5-й год работы программистом (Java Senior Developer, level 2) Вы определились с вашим будущим и работаете над воплощением вашей мечты. Правильно выбранное направление в совокупности с желанием идти вперёд и результат не заставит себя ждать. Поздравляю. Я рад, что ещё одним счастливым человеком стало больше. Есть одна мудрая истина. Люди часто переоцениваю чего можно добиться за один год, и недооценивают, чего можно добиться за пять лет. Оглянитесь на пять лет назад. Так оно и есть. Ваша задача - не принимать глупых решений и не идти на поводу у лени. Ваша цель - выбрать направление и двигаться дальше. А вы думали это конец? Вспомните свой выпускной класс. Это не конец, это только начало.

Будущая специализация

Вы можете развиваться как технический специалист (верхняя ветка), как управленец (нижняя ветка) или как наемный профессионал/независимый консультант (средняя ветка). Все зависит от ваших предпочтений.

Карьера программиста

Профессия программист отличается от других профессий. Здесь нет необходимости делать карьеру менеджера, чтобы хорошо зарабатывать. Нередки ситуации, когда старший программист получает больше, чем его начальник-менеджер. Чем больше вы набираете опыта, тем сильнее ваши отношения с начальством движутся от точки «начальник-рабочий» к отношениям вида «кинозвезда и её менеджер». Зажравшиеся, знающие себе цену программисты перебирают и проектами и вакансиями. Порадуемся за своих. Что же нужно, чтобы стать таким высококлассным и востребованном в мировом масштабе программистом? Вы должны иметь большой опыт в самых новых и востребованных технологиях. Как этого достичь? Ответ ниже. После того, как вы первый раз устроились работать программистом, с вами начинают происходить две вещи, которые, как ни странно, не всегда бросаются в глаза.
  1. Вы начинаете быстро набирать опыт работы в реальных проектах. Один год опыта работы программистом может дать вам больше знаний и навыков в вашей специальности, чем 5 лет университета. Опыт – это настолько значимый показатель, что в IT-вакансиях зачастую пишут «требуется Java-программист с тремя годами опыта работы».

  2. Вы по 8 часов в день изучаете новые технологии, а вам за это ещё и щедро платят. Значимость этого фактора трудно переоценить. В некоторых случаях полученные навыки настолько ценны, что ради их получения можно работать бесплатно, а то и доплачивать. Если вы грамотно выбираете проекты, на которых соглашаетесь работать, то вас ждёт головокружительная карьера программиста.
Вот только, что же выбрать? Зачастую, если вы не знаете, какие технологии будут вам полезны, вы начинаете выбирать технологии по принципу «нравится, не нравится» или «модно, не модно». Тут уж как повезёт. Так что, лучше знать заранее, куда вы хотите попасть. Путей развития программиста очень много, поэтому я, для простоты, выделю несколько из них, и напишу своё видение полученной ситуации. Не стоит воспринимать эту схему как жёсткую позицию, скорее как упрощённый взгляд на вещи, с целью внести хоть какую-то ясность.

Двухсотлетний программист

Если больше всего вам нравится программировать , то ваш путь: Senior Developer, затем Tech Lead Developer и архитектор. Также вы можете просто работать программистом лет 50. Зачастую зарплаты старших программистов и техлидов превышают зарплаты их менеджеров. Не прогадайте.

Менеджер. Тебе повезло, ты не такой как все

Вы перешли на сторону врага. Шучу. Если у вас открылись недюжие организаторские способности , то ваш путь: Team Lead, а затем Project Manager. Это даст вам шанс стать директором и поможет при открытии своего дела. Вы ведь этого хотите, не так ведь?

Украсть трактор

Если вы успели завести семью и детей , то возможно вы хотите тихой и безбедной жизни в стране со стабильной экономикой. Задумываетесь над переездом/иммиграцией в Канаду, США, Швейцарию или даже Австралию. У вас есть отличные навыки и востребованная профессия. Вам не придётся начинать с мойщика посуды. А, например, с Senior Java Developer. Да ещё и, вероятно, на большую зарплату. Не так уж и плохо.

Посмотреть весь мир, кроме Парижа и не умирать

У вас ещё нет семьи, и вы хотите попутешествовать . Upwork – ваше все. Найдите себе заказчика, обговорите с ним рейты – от $20/час, берите ноутбук и вперёд. Вашей зарплаты должно хватить, чтобы нормально жить в любой стране мира. Почему бы не приступить к исполнению своей мечты прямо сейчас? Программирование – это комфортно.

Здравствуй, дорогой читатель. Давно хотел написать подобную статью, но либо не хватало времени, либо мешала предательская лень. Но, как бы там ни было, все-таки у меня получилось собраться с мыслями, чтобы написать то, что принесет вам, я надеюсь, какую нибудь пользу. С радостью поделюсь своими знаниями и опытом, в ответ с вас причитается время и внимание. По моему мнению, данная публикация хорошо подойдет для тех, кто готов определиться в своих интересах и хочет связать свою жизнь с IT - тем или иным образом. Итак, поехали!

Выбор языка программирования

Публикация начинает выглядеть как многие подобные материалы. По закону жанра я должен буду написать название пары тройки языков программирования, назвать парочку плюсов и минусов и, в итоге, так и не ответив на вопрос, перейти к следующей части. Отчасти в этом есть доля правды, ведь каждый выбирает для себя тот язык, который ему ближе, исходя из того, разработкой какого вида продуктов он хочет заниматься в будущем. Большинство из вас изучали в школе Turbo Pascal и вряд ли для вас будет новостью, что на этом языке сейчас уже практически ничего не пишут. Так и в данном случае, выбирать язык надо грамотно, хотя много знаний никогда не бывает, но если вы хотите за короткий промежуток времени эффективно влиться в ряды программистов, к выбору языка надо подходить с умом. В самом начале запомните: хороший программист никогда не останется голодным, а в большинстве случаев сможет купить себе много икры (это определение подойдет для любой специальности, но ни одна специальность не даст вам такой свободы выбора места работы, как в плане компаний, так и стран - программист он и в Индии программист).

Логично, что чем популярнее язык и востребованность, тем больше шансов будет найти работу в будущем, при этом язык должен быть несложным в освоении. Потому что хотя на C++ и пишут большое количество игр и получают за это хорошие деньги, новичку, тем более не знакомому с ООП (объектно-ориентированное программирование) лучше отложить на некоторое время этот язык куда подальше. Далее по ссылке предоставлен список самых популярный языков программирования 2014 года , и как видно, на первом месте стоит Java, далее идут C языки, затем Phyton, JavaScript, PHP, Ruby и т.д. Если самим поискать подобные статистики, то вы увидите, что в разных источниках места заняты по разному, но в целом первые 10 мест по содержанию везде будут совпадать.

Если же обратиться к другому , в основе которого анализ выложенных в Twitter вакансий, вы увидите очень похожую ситуацию с первым примером. И да, обе статьи на английском, привыкайте к этому, если хотите стать программистом, запомните, что практически вся документации и источники полезной информации написаны на английском, так что если ваши знания в этом языке слабоваты, добавьте себе в список дел на завтра и на ближайшее будущее изучать и практиковать английский. Думаю, я даже напишу отдельную статью, посвященную изучению иностранного языка.

Исходя из этих двух источников мы уже можем себе представить, какие языки программирования сейчас «в моде». Как видно по названию, автор статьи выбрал для себя Java. Хотя я считаю его лучшим для изучения ООП, найдется много людей, которые не согласятся со мной, и это логично - сколько людей, столько и мнений. Тут мы встаем на небольшое перепутье дорог: выбирать Java, С# (очень похож на Java), Phyton, если мы хотим работать с начинками программ и приложений (back-end) или же PHP, JavaScript, HTML, если хотим заниматься веб-разработкой (front-end). В первом случае я бы свой выбор остановил на Java, а во втором - на PHP, хотя опять же, тут больше по вкусу, надо уже самому искать информацию о различных языках и вообще понимать, чем ты хочешь заниматься. Для размышлений вот подборка языков, которые используются в крупнейших интернет компаниях мира .

Есть 2 основных причины, почему бы я выбрал либо Java, либо PHP. Первая - это очень популярные языки и найти соотвествующую работу не составит труда, а вторая - в том, что ни по каким другом языкам вы не найдете столько обучающего материала как по этим двум, причем как на русском, так и на английском.

Обучение

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

Вообще, у меня есть своя теория, не раз подтвержденная мною же на практике: абсолютно всему можно научиться за 1 год. . Поверьте мне, это сущая правда, кому-то даже понадобиться меньше времени, но если человек не перестает сдаваться и в течение года с умом подходит к обучение, то практически невозможно, чтобы он не научился. Это не только в программировании, абсолютно в любой сфере: хочешь играть на гитаре - без проблем (у меня это заняло не так уж много времени и сил), научиться аргентинскому танго, кататься на серфе - на все это хватит одного года. Главное - учитесь!

В данном случае я буду рассматривать язык Java, так как он мне все таки ближе. Благо в интернете полно людей, которые безвозмездно помогают другим в обучение, поэтому найти подходящий для вас материал не составит труда. , которые можно с пером и бумагой просматривать в стенах свою уютной квартиры (пока только на русском языке). Для тех, кто привык вчитываться в проходимый материал, опять же интернет предоставляет большие возможности и это только один из всевозможных сайтов с уроками по Java . Теории хоть отбавляй, но не могу сказать про такой обучающий сайт, как Coursera.org , где вы сможете найти обучающие курсы на различных языках и по различным областям, в том числе и программированию - опять же все абсолютно бесплатно. Таких сайтов не один и не два, стоит всего лишь поискать.

Но как бы не была познавательной теория, в программирование без практики не обойтись. Но даже тут за нас уже сделали пол дела и не надо искать различные задачи, чтобы улучшать свои навыки, такой сервис как JavaRush очень в этом поможет. В целом данный сайт дает как теорию, так и практику, начиная просто с дублирования кода с экрана и заканчивая комплексными задачками, а в перерывах даже предлагает расслабиться и посмотреть небезызвестный мультсериал. По заверениям авторов, достигшие 20 уровня в сервисе будут иметь достаточные знания, чтобы уже устраиваться в IT компанию.

Ну и конечно, кто-то спросит, а как же книга? Разве не надо их читать, а если надо - то что? На это я отвечу, что от чтения книг еще никто глупее не становился. Книг тоже очень много, но я перечислю только небольшую часть из них:

Помощь в практике

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

У многих начинающих программистов на первых порах возникает большое количество вопросов, особенно когда нужно выполнять самостоятельное задание. Это нормально. Но в таких ситуациях надо понимать, что практически на любой возникший у вас вопрос можно найти ответ в интернете. Вряд ли вы первый, кто с ней сталкивается, поэтому не торопитесь сражу же задавать вопросы на различные форумы программистов (о которых я напишу чуть позже). Посидите минутку, правильно сформулируйте проблему у себя в голове и смело ищите её в поисковике. Наверняка большинство будут искать на русском языке, но не забывайте, что язык программистов - это английский, поэтому, если вы не нашли ответ на великом и могучем, стоит поискать на языке, который в школе вроде бы все учили, но так и не выучили. Но если даже и в этом случае оказалось, что на ваш вопрос нигде нет ответа, в бой вступают лучшие форумы интернета:

  • Cyberforum - по моему мнению, самый популярный русскоязычный форум ITшников, тут можно найти ответы на вопросы, при чем и не только в области программирования;
  • Programmers forum - крупный русскоязычный форум;
  • Searchengines - небезызвестный форум, но специализируется больше в веб- программирование;
  • Stack overflow - а это уже, не побоюсь этих слов, самый популярный во всем мире IT-форум, ответы практически на все свои вопросы вы найдете именно здесь;
  • Dev shed - тоже крупный англоязычный форум;
  • Quora - форум прямо не специализирующийся на программировании, но зато большая вероятность, что вы получите ответ от настоящего профессионала.

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

Компилируем код

Довольно много я уже написал, конечно, сложно охватить такую большую тему в рамках одной статьи, но, думаю, первые шаги уже сделаны и вызвать у вас соответсвующие мысли они должны. Думаю, это только первая статья из серии «Как стать программистом» и, соответственно «зачем?», если вы стоите на перепутье дорог и пока не знаете, какой выбрать путь. В следующий раз я затрону более интересные в материальном плане вещи, ведь не секрет, что программисты люди не бедные, а уж где и сколько они получают, посмотрим в следующий раз.

Наконец, для тех, кто хочет действительно стать программистом, желаю взять быка за рога, собрать всю волю в кулак и делать то, что вам нравится. До меня уже тысячи раз говорили, но я повторюсь, главное - желание и труд. Тогда все у вас получится. Запомните самое главное: воспринимайте изучение языков программирования и различных технологий не как цель, а как СРЕДСТВО. Только представьте, какие возможности перед вами открываются. Может быть, именно вы станете одним из тех, кто меняет мир в режиме реального времени. Так что удачи и спасибо за внимание!

Видео-бонус

Теги:

  • как стать программистом
  • научиться программированию
  • выучить java
Добавить метки