Профессия программист java. Отборные вакансии для Java программистов. Примерный алгоритм изучения Java

Если вы рассматриваете и другие варианты (помимо трудоустройства программистом 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/час, берите ноутбук и вперёд. Вашей зарплаты должно хватить, чтобы нормально жить в любой стране мира. Почему бы не приступить к исполнению своей мечты прямо сейчас? Программирование – это комфортно.

Зарплата : от 2 000 до 4 000 USD до вычета НДФЛ

Город : Самара

Опыт : 3–6 лет

Занятость

Made Simple Ventures ищет Java программиста в команду по разработке платформы смс-маркетинга. Платформа коммерчески успешна и активно развивается, и что замечательно – это наш собственный продукт: все решения принимаются оперативно внутри компании.

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

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

Требования:

  • Высшее техническое образование и опыт коммерческой разработки на Java от трех лет;
  • Уверенное владение Java SE, знание Spring Framework;
  • Коммерческий опыт работы с noSQL, предпочтительно MongoDB;
  • Умение работать с Git, Maven, Unix консолью;
  • Плюсом будет опыт с NodeJS, Meteor и front-end разработки;
  • Английский требуется на уровне чтения технической документации, предпочтительно свободное владение.

Условия:

  • Удаленная работа на полный рабочий день;
  • График работы оговаривается индивидуально. Часть команды работает в часовом поясе Нью Йорка (-5 EST), поэтому необходима доступность в вечерние часы по московскому времени;
  • Размер оплаты по результатам собеседования.

Senior Java разработчик

Зарплата

Город : Москва

Опыт : более 6 лет

Занятость : Полная занятость, удаленная работа

Обязанности:

  • Разработка приложения, участие во всём цикле разработки. Приложение имеет доступ к клиентским сервисам, базам данных (JDBC);
  • Основной пул задач на Java;
  • Оптимизация и масштабирование архитектуры по RPS. Бывают задачи на сложную логику;
  • Могут быть отдельные задачи на Node.js и других, используемых в проекте, языках.

Требования:

  • Опыт разработки на java от 5 лет;
  • Отличные базовые знания в области Computer Science (алгоритмы, структуры данных, протоколы, модель OSI и вот это вот все);
  • Опыт разработки высоконагруженных веб-приложений (1k+ rps), умение работать с многопоточностью;
  • Отличное знание Java /JEE, фреймворков, библиотек, протоколов, веб-сокетов;
  • Здорово, если вы разбираетесь в таких вещах как: Class loading, Memory Management, Transaction management, Java Concurrent;
  • Понимание принципов протоколов для передачи сообщений между компонентами системы (AMQP, JMS, etc);
  • Опыт работы с асинхронными фреймворками;
  • Опыт работы с базами (100-200Gb+), понимание механизмов репликации, блокировок, сложных запросов, SQL и ORM (JPA2, Hibernate), JDBC;
  • Уверенный рабочий уровень английского языка (устного и письменного);
  • Опыт удалённой работы, организации своего рабочего времени;
  • Открытость и интерес к новым технологиям (в проекте может быть возможность решить задачи с помощью Scala, Closure, etc..);

Условия:

  • Удалённая fulltime работа, московский тайминг — коммуникация голосом около 19, несколько раз в неделю;
  • Командировки в США (Купертино), примерно на 2 недели каждые 3 месяца — важно наличие визы или отсутствие препятствий для оформления;
  • Уровень дохода 220-300 тыс.руб. (готовы обсуждать выше);
  • Оформление — через ИП (налоги оплачиваются самостоятельно), оплата отпуска — 20 рабочих дней;
  • Компенсация за покупку рабочего компьютера;
  • При желании возможна релокация в Сингапур (компания берёт на себя все организационные вопросы).

Ведущий Java-разработчик

Зарплата : от 250 000 до 350 000 руб. до вычета НДФЛ

Город : Москва

Опыт : 1–3 года

Занятость

Обязанности:

  • Разработка и сопровождение высоконагруженных web и интеграционных решений;
  • Анализ кода и оптимизация алгоритмов;
  • Участие во внедрении современных технологий и методов ведения разработки;
  • Постановка задач разработчикам и проведение code-review.

Требования:

  • Практический опыт разработки серверной логики на Java от 3 лет;
  • Знание Spring;
  • Знание JPA (Hibernate);
  • Опыт работы с любой системой контроля версий;
  • Протоколы и форматы: HTTP/HTTPS, JSON, XML;
  • Понимание принципов работы реляционных баз данных, знание SQL;
  • Опыт разработки многопоточных приложений;
  • Навыки отладки и профилирования кода;
  • Английский: чтение технической литературы;
  • Ответственность, дисциплинированность, умение согласованно работать в команде;
  • Желателен опыт применения или готовность к освоению: Технологий ESB, принципов разработки высоконагруженных отказоустойчивых систем, паттернов разработки ПО.

Условия:

  • Полностью официальные выплаты (зарплата + бонусы);
  • Дополнительное вознаграждение за результат (KPI);
  • ДМС (после испытательного срока);
  • Обучение, повышение квалификации, сертификация;
  • Команда единомышленников, увлеченных своим делом;
  • Уютный, эргономичный и креативный офис;
  • Корпоративная спортивная лига, поддерживающая здоровый образ жизни.

Senior Java —разработчик

Зарплата : от 200 000 до 300 000 руб. на руки

Город : Санкт-Петербург

Опыт : более 6 лет

Занятость : Полная занятость, полный день

Обязанности:

  • Участие в развитии архитектуры проекта;
  • Разработка модулей системы на языке Java;
  • Разработка unit- и интеграционных тестов;
  • Написание и поддержка в актуальном состоянии документации на разработанные модули;
  • Участие в оценке и распределении задач в команде;
  • Участие в выборе технических решений;
  • Участие в Code review.

Требования :

  • Минимум 5 лет опыта работы с Java -технологиями;
  • Java core;
  • Cassandra, elasticsearch /lucene, postgresql, любой распределенный cache;
  • Spring framework;
  • JSon, REST;
  • Владение на профессиональном уровне любыми другими языками будет плюсом;
  • Знание основных сетевых технологий и стандартов;
  • Знание паттернов разработки;
  • Знание какого-либо SQL сервера;

Условия:

  • З/п от 200 до 300 000 руб. по результатам собеседования
  • Оформление по ТК РФ
  • Офис на ПС, ул. Чапаева (ст.м. «Горьковская»)

Java разработчик на аналитическую платформу

Зарплата : от 220 000 до 250 000 руб. на руки

Город : Москва

Опыт : 3–6 лет

Занятость : Полная занятость, полный день

Требования:

  • высшее образование;
  • опыт работы от 3-х лет;
  • знание Java core и представление, о чем 17-ая глава JLS;
  • знакомство с классическими алгоритмами и структурами данных;
  • осознавание, что только он ответственен за поставленную задачу и готов её сопровождать от требований заказчика до рабочего прототипа;
  • понимание того, как оптимизировать SQL запросы.

О проекте:

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

Задачи платформы:

  • рассказать бизнесу о его клиентах;
  • исправить ошибки в клиентских данных;
  • найти идентичных клиентов в различных базах и объединить информацию.

Как работает компания:

  • работает по git-flow, через pull-requests на Bitbucket;
  • каждый pull-request проходит код-ревью и сборку c тестирование на TeamCity;
  • доступ к production отсутствует, что накладывает на нас обязанность максимально специфицировать новый код тестами;
  • по результатам итерации проводятся ретроспективы, выявляющие узкие места.

Условия:

  • место работы: г. Москва, комфортный офис в районе метро Кутузовская и МЦК;
  • график работы: пятидневка;
  • работа в команде 10 человек – аналитиков, разработчиков , внедренцев;
  • заработная плата с пересмотром раз в год;
  • любые курсы и конференции по специальности;
  • оплата труда: 220-250,0 тыс.руб.

Senior Java Developer (DataGrip)

Зарплата : от 200 000 руб. до вычета НДФЛ

Город : Санкт-Петербург

Опыт : 3–6 лет

Занятость : Полная занятость, полный день

DataGrip - среда разработки для SQL и баз данных.

Требования:

  • Знание продуктов JetBrains и желание их улучшить;
  • Опыт более 3 лет программирования на Java
  • Любовь к программированию;
  • Умение аргументированно отстаивать свою позицию;
  • Написание понятного код и его поддержка;
  • Опыт работы с базами данных и языками запросов;
  • Опыт участия в проектах с открытым исходным кодом;
  • Знание парадигм программирования.

Чем работа в DataGrip отличается от работы над другими IDE в JetBrains:

  • У DataGrip более пятидесяти конкурентов: все они либо слишком узкоспециальные, либо умеют только базовые вещи, либо стоят очень дорого. SQL существует уже много лет, а среды разработки высшего класса для баз данных так и не создано: в мире на такой инструмент существует сильный запрос. Делать DataGrip - это предлагать SQL-разработчикам совершенно новый опыт написания запросов и работы с данными;
  • В DataGrip нет задачи поддерживать ежегодно выпускаемые фреймворки, и мы добавляем в IDE, в основном, архитектурные новшества. Например, нужно поддержать NoSQL базы данных, расширить возможности диаграмм, сделать дебаггер хранимых процедур, генератор данных или то, до чего мы сами ещё не додумались;
  • Грамматика SQL сложнее, чем у других языков, которые поддерживают DataGrip. Работа с парсером для SQL ставит перед разработчиком необычные задачи;
  • DataGrip - одна из самых маленьких команд в JetBrains и сохраняем бодрый дух стартапа. Много общения, мало формальностей. Частые поездки на конференции, поэтому каждый разработчик , если ему это интересно, может два-три раза в год ездить в США и Европу и рассказывать о DataGrip коллегам;
  • То, что делает DataGrip, попадает почти во все другие IDE в JetBrains: IntelliJ IDEA, PhpStorm, PyCharm, GoLand, RubyMine и Rider.

Как устроено внутри:

  • Исходный код - на Java , Groovy и Kotlin;
  • Для организации командной работы используются: Upsource для ревью кода, TeamCity для автоматического запуска тестов и сборки продуктов, YouTrack для учёта багов и фич;
  • С пользователями общение напрямую.

Что ещё:

  • Страховка для вас, жены/мужа и детей;
  • Свежие и полезные завтраки и обеды в офисе;
  • Уютный и демократичный офис в самом центре;
  • Бесплатные уроки английского и немецкого.

Java Developer

Зарплата : до 180 000 руб. на руки

Город : Москва

Опыт : 3–6 лет

Занятость : Полная занятость, полный день

Обязанности:

  • Анализ требований, предложение способов реализации;
  • Проработка архитектуры решения и исследование узких мест в текущей реализации;
  • Разработка нового функционала;
  • Поддержка существующего функционала;
  • Анализ и исправление ошибок;
  • Написание юнит, интеграционных тестов.

Требования:

  • Опыт работы c Java не менее 3 лет;
  • Высшее техническое образование;
  • Уверенное знание Java (предпочтительно Java 8) — Core/IO/Collections/Concurrency/JMM/GC;
  • Отличные знания: Spring/Spring Boot, Hibernate;
  • Опыт работы с Camel, Hazelcast, Guava, PostgreSQL;
  • Желательно представление о Ansible, Jenkins, Gradle.

Условия:

  • Работа в активно развивающейся международной компании, в коллективе молодых, целеустремленных и талантливых людей;
  • Знание современных трендов в проектировании архитектуры высоконагруженных распределенных сервисов;
  • Постоянное обучение;
  • Стабильная высокая заработная плата;
  • Комфортабельный и уютный офис на метро Павелецкая;
  • Оформление трудовых отношений в соответствии с ТК РФ;
  • ДМС и фитнес.

Java Developer (Junior/Middlle)

Зарплата : от 60 000 до 150 000 руб. до вычета НДФЛ

Город : Москва

Опыт : 1–3 года

Занятость : Полная занятость, полный день

В шведскую ИТ — компанию, создающей решения для крупных финансовых структур, требуется «Java Developer ».

Обязанности:

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

Требования:

  • Высшее образование (информатика/ математика будет преимуществом). Рассматриваем в том числе выпускников технических ВУЗов (в т.ч. студентов последних курсов);
  • Опыт реализации проектов на Java (возможно собственных или в рамках обучения, если нет профессионального опыта).

Будет плюсом:

  • Знание : Spring; JavaEE (EJB 3, JPA, JSF, JMS, Webservices, REST); HTML, CSS, JavaScript; SQL; XSL; Git.
  • Понимание : JBOSS/WebSphere/WebLogic; Camel, OSGi; Hibernate.

Условия:

  • Работа в российском филиале шведской компании, оформление по ТК РФ;
  • Белая заработная плата (в зависимости от опыта кандидата);
  • Оплата обедов в офисе (денежная компенсация около 10 т.р. в месяц);
  • Офис м. Динамо (15 мин пешком или 5 мин бесплатным корпоративным транспортом);
  • Есть офис компании в г. Зеленоград (по желанию кандидата возможна работа в этом офисе);
  • График работы в офисе с 10:00 до 19:00.

Junior Java разработчик

Зарплата : от 50 000 до 70 000 руб. на руки

Город : Москва

Опыт : не требуется

Занятость : Полная занятость, гибкий график

Обязанности:

  • Разработка и развитие публичного и внутреннего API (стек технологий: Java 8, EJB, Hibernate, WildFly, Hazelcast, PostgreSQL);
  • Улучшение существующих функций МоегоСклада: интеграция с внешними системами, кассовыми решениями, развитие внутреннего сервиса биллинга;
  • Доработка клиентской части веб-приложения (пользовательский интерфейс и бизнес-логика) при помощи GWT.

Требования:

  • Выпускник или студент старших курсов технического вуза;
  • Уверенно знаете алгоритмы и структуры данных;
  • Имеете представление о паттернах проектирования и основах ООП;
  • Имеете опыт разработки на Java в учебных или домашних проектах;
  • Знакомы с Java Core (collections, utils, exceptions, concurrency как плюс);
  • Знаете SQL на уровне написания простых запросов;
  • Готовы работать от 30 часов в неделю.

Вы приобретете навыки:

  • Уделять небольшое время анализу задачи перед ее выполнением;
  • Писать грамотные и полезные unit-тесты;
  • Работать в команде, делать ревью кода;
  • Проявлять самостоятельность в постановке и оценке задач, а также оценке эффективности решений.

Условия:

  • Оформление по ТК РФ с первого дня;
  • Белая зарплата 50-70 тысяч рублей (после налогов, на руки);
  • Ультимативно гибкое начало рабочего дня;
  • Комфортный офис в пяти минутах от метро Технопарк;
  • Фирменный мерч (футболки, толстовки, кружки с собаками, блокноты и т.д.);
  • Компенсация оплаты обедов;
  • Компенсация оплаты обучения по профилю;
  • ДМС после окончания испытательного срока.

Программист-стажер Java

Зарплата : до 30 000 руб. на руки

Город : Москва

Опыт : не требуется

Занятость : Стажировка, гибкий график

Обязанности:

  • Участие в развитии интересных и амбициозных проектов в области fintech;
  • Работа в распределенной команде, взаимодействие с внешними разработчиками, взаимодействие с техническими специалистами заказчика;
  • Разработка проектов с нуля — от архитектуры до документации по сопровождению;
  • Развитие существующих проектов, техническое сопровождение, рефакторинг и развитие;
  • Экспертный анализ бизнес‐требований и технических решений, ревью кода;
  • Написание юнит-тестов и интеграционных тестов;
  • Активное участие в развитии команды.

Требования:

  • Неоконченное высшее/Высшее техническое образование;
  • Начальный опыт разработки на Java, возможно Вы только что закончили курсы;
  • Минимальные знания работы с СУБД и SQL (желательно oracle, pl\sql);
  • Опыт разработки web-ориентированных систем, опыт фронтэнд разработки как плюс;
  • Понимание полного цикла разработки ПО;
  • Вас научат работе с системами сборки (мы используем Gradle и Maven);
  • Вас научат работе с фреймворками для тестирования (мы используем JUnit, Mockito, Spock, spring-test);
  • Вас научат работе с инструментами командной разработки (мы используем Jira, Confluence, Stash, Gitlab);
  • Вас научат работе с Linux (в качестве рабочих станций у нас Ubuntu);
  • Знание английского языка — чтение технической документации;

Условия:

  • Заработная плата определяется по результатам собеседования;
  • Дружный, молодой коллектив профессионалов, у которых есть чему поучиться;
  • Обучение полному стеку технологий;
  • Уютный офис рядом с м. Павелецкая;
  • График 5/2 без привязки к рабочему времени, возможность совмещать с учебой;
  • Хорошие перспективы остаться работать в компании после стажировки.
  • Чай, кофе, печенье;)

Основы программирования
Азы программирования, основные термины и понятия

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

Урок 3. Первая программа

Выбор языка программирования. Подготовка браузера. Программа «Hello, world!».

Урок 4. Переменные

Установка удобного редактора кода. Знакомство с переменными. Простой калькулятор.

Урок 5. Типы данных

Типы данных. Операции с разными типами данных. Преобразование типов данных.

Урок 6. Алгоритмы и блок-схемы

Алгоритмическое мышление. Визуальные блок-схемы.

Урок 7. Оператор ветвления if

Выбор вариантов в программе. Оператор ветвления if. Игра в загадки.

Урок 8. Логические операции

Комплексные условия выбора. Логические И, ИЛИ. Игра «Злые птицы».

Урок 9. Циклы do, while

Циклы do и while. Игра в русскую рулетку.

Урок 10. Цикл for

Цикл for. Финансовый калькулятор.

Урок 11. Массивы

Большие наборы данных и массивы. Игра в рулетку.

Урок 12. Функции

Функции. Подготовка к написанию игры «Black Jack (21)».

Урок 13. Игра «Black Jack». Часть 1

Написание полноценной игры. Основа – раздача карт и подсчет очков.

Урок 14. Игра «Black Jack». Часть 2

Завершение написания игры. Определение результатов и победителя.

Урок 15. Карьера программиста

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

Git. Быстрый старт
Основы работы с Git

Видеокурс дает опыт командной разработки с использованием Git. Учит «с нуля» организовать совместное хранилище кода и эффективно его использовать. Студенты осваивают git-клиенты с графическим и консольным интерфейсом, учатся контролировать выпуск версий программы и «откатываться» к предыдущим версиям. Подробно рассматриваются распространенные ошибки командной разработки: при слиянии веток, создании commit-ов, хранении исполняемых файлов в репозитории.

Урок 1. Назначение и возможности

Узнаем, зачем нужен git и какие возможности он открывает для программистов.

Урок 2. Базовые операции

Создаем хранилище кода, доступное всем участникам разработки по сети. Осваиваем базовые операции: Clone, Commit, Push, Pull.

Урок 3. Откат изменений кода

Учимся откатывать изменения в коде с помощью git. Осваиваем операции Discard, Revert, Reset.

Урок 4. Работа с ветками

Работа с ветками.
Параллельно разрабатываем несколько версий программы. Осваиваем операции Add branch, Checkout, Merge.

Урок 5. Конфликты

Учимся разрешать конфликты при слиянии веток.

Урок 6. Распространенные ошибки. Часть 1

Боязнь создания новых веток. Хранение исполняемых файлов в репозитории.

Урок 7. Распространенные ошибки. Часть 2

Ошибки при работе с ветками. Ошибки при создании commit-ов.

Урок 8. Pull Request. Работа с Open-Source-проектами

Осваиваем Pull Request-ы на примере работы с Open-Source-проектами.

Урок 9. Pull Request. Сдача домашних заданий.

Сдача домашних заданий в GeekBrains с помощью Pull Request.

Урок 10. Консольный git-клиент. Базовые операции

Осваиваем базовые операции в консольном git-клиенте.

Урок 11. Консольный git-клиент. Работа с ветками

Учимся работать с ветками в консольном git-клиенте.

Урок 12. Работа с версиями программы

Учимся выпускать различные версии программного продукта с использованием git.

Урок 13. Итоги

Подводим итоги проделанной работы.

Java. Быстрый старт
Основы языка Java на примере разработки небольшой игры

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

Урок 1. Знакомство с языком Java

Краткое описание языка; установка необходимых инструментов разработки; написание первой программы.

Урок 2. Переменные, типы данных, ветвления

Описание фундаментальных понятий языка Java на примере простого консольного калькулятора.

Урок 3. Циклы; игра «Угадай число»

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

Урок 4. Методы

Демонстрация методов на примере усовершенствования игры «Угадай число».

Урок 5. Завершаем разработку игры «Угадай число»

Доводим код игры до конечного варианта.

Урок 6. Разработка игры «Поймай каплю». Часть 1

Создаём окно игры.

Урок 7. Разработка игры «Поймай каплю». Часть 2

Учимся загружать и рисовать картинки; реализуем игровой цикл.

Урок 8. Разработка игры «Поймай каплю». Часть 3

Ловим события мыши и заканчиваем разработку игры.

Урок 9. Итоги

Собираем проект в один jar-файл, чтобы его было удобно запускать без среды разработки; подводим итоги.

Курс для начинающих разработчиков, тех, кто хочет быстро освоить основы объектно-ориентированного программирования (ООП) и научиться создавать собственные проекты. Главной особенностью курса является сочетание изучения теоретических основ языка Java и практических онлайн-тренировок под руководством наставника.

Урок 1. Введение в Java

  1. Как работает Java. JVM. Общие принципы. Инструменты.
  2. Hello, world!
  3. Переменные и типы данных.
  4. Методы и их применение.
  5. Условные операторы.

Урок 2. Циклы и массивы

  1. Понятие циклов. Цикл while;
  2. Циклы for, foreach;
  3. Понятие массива;
  4. Разбор решения домашнего задания.

Урок 3. Практикум. «Крестики-нолики» в процедурном стиле

  1. Разработка алгоритма;
  2. Создание логики;
  3. Создание логики противника-компьютера;
  4. Разбор домашнего задания.

Урок 4. Введение в ООП

  1. Что такое ООП и зачем он нужен? Основные понятия;
  2. Создание классов и объектов;
  3. Инкапсуляция;
  4. Наследование;
  5. Абстрактные классы, интерфейсы и полиморфизм;
  6. Разбор домашнего задания.

Урок 5. Память, хранение данных

  1. Хранение данных в Java: стек, куча;
  2. Сборка мусора;
  3. Строковые классы, пулы строк;
  4. Разбор домашнего задания.

Урок 6. Графические интерфейсы

  1. Библиотека Swing и другие графические библиотеки. Основы Swing;
  2. Менеджеры размещения и выравнивание элементов;
  3. События в Swing. Меню и диалоговые окна;
  4. Разбор домашнего задания.

Урок 7. Практикум. «Крестики-нолики» в ООП

  1. Определение классов и GUI;
  2. Разработка логики, часть 1;
  3. Разработка логики, часть 2;
  4. Разбор домашнего задания.

Курс для тех, кто хочет укрепить свои знания в Java. На курсе ученики осваивают теорию и параллельно под руководством преподавателя с нуля разрабатывают полноценный проект на Java, получая таким образом практический опыт применения сложных объектно-ориентированных концепций, характерных для языка. Перед прохождением курса рекомендуется освоить курс для новичков: "Java. Уровень 1".

Урок 1. Объектно-ориентированное программирование Java

Углубленное изучение вопросов ООП в Java: основные принципы ООП, абстрактные классы, интерфейсы.

Урок 2. Исключения

Концепция обработки исключений, её сравнение с традиционным механизмом обработки ошибок, блок try-catch-finally, типы исключений, стандартные исключения в Java и их роль, выброс исключения из метода

Урок 3. Коллекции

Виды контейнеров в Java: List, Map, Set. Основные реализации и приемы использования, проход по элементам коллекции, сравнение и сортировка элементов коллекции

Урок 4. Продвинутые вопросы создания графического интерфейса

Создание собственных элементов управления. Работа с графикой. Обработка событий

Урок 5. Многопоточность

Потоки в Java, способы создания и управления состояниями потоков, основные проблемы при работе с потоками и синхронизация.

Урок 6. Работа с сетью

Сокеты. Написание простого эхо-сервера и консольного клиента.

Урок 7. Написание сетевого чата. Часть I

Написание клиентской и серверной части чата. Многопоточная обработка клиентских подключений.

Урок 8. Написание сетевого чата. Часть II

Разработка интерфейса для клиентской части. Авторизация. Механизмы взаимодействия клиента и сервера.

Алгоритмы и структуры данных на Java. 1 месяц.
Работа с массивами, списками, деревьями, графами, хеш-таблицами, стеком и очередью

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

Урок 1. Общие сведения об алгоритмах и структурах данных

Введение в алгоритмы и структуры данных

Урок 2. Массивы и сортировка

Работа с массивами и способов их сортировки.

Урок 3. Стек и очередь

Обзор структуры данных, стек, очередь и приоритетная очередь.

Урок 4. Связанные списки

Учимся создавать и использовать списки.

Урок 6. Деревья

Рассмотрим работу с двоичными деревьями.

Урок 7. Графы

Рассмотрим работу с одной из самых гибких и универсальных структур.

Урок 8. Хеш-таблицы

Быстрый поиск и вставка с помощью хеш-таблиц.

Основы баз данных. 20 уроков.
Проектирование БД и запросы SQL

Базы данных (БД) - это системы хранения и обработки данных, для доступа к которым используется язык SQL (Structured Query Language). Любой современный сайт, игра или настольное приложение нуждаются в хранении данных. На данный момент существует множество различных систем управления базами данных (СУБД), самой популярной является MySQL. “Основы баз данных” - это 20 интенсивных видео-уроков (по 10 минут), где мы вместе пройдём все этапы проектирования БД на примере интернет-магазина с использованием языка запросов SQL. После этого курса вы сможете использовать различные базы данных, такие как MS SQL и Postgre Sql, так как синтаксис языка SQL для них практически не отличается.

Урок 1. Реляционные базы данных

Чем отличается БД от СУБД; какие базы данных называются реляционными; обзор современных СУБД.

Урок 2. Установка СУБД

Установка СУБД MySql и графического приложения Mysql Workbench.

Урок 3. Проектирование базы данных, нормальные формы

Проектирование данных в Excel; нормальные формы; первичный ключ.

Урок 4. SQL-команда CREATE

Создание таблиц в графическом интерфейсе MySql Workbench; команда CREATE; типы данных; работа в консоли.

Урок 5. SQL-команда INSERT

Заполнение таблиц данными с помощью графического интерфейса; команда INSERT; AUTO INCREMENT.

Урок 7. SQL-команды DISTINCT, ORDER BY, LIMIT

Получение и фильтрация данных с помощью SQL-команд DISTINCT и LIMIT; сортировка с помощью команды ORDER BY.

Урок 9. Согласованность данных

Понятие согласованности или консистентности данных.

Урок 10. Внешний ключ

Понятие внешнего ключа и ограничений на значения столбцов; FOREIGN KEY CONSTRAINTS.

Урок 11. Создание таблиц с отношением “многие ко многим”

Добавление корзины в базу данных интернет-магазина.

Урок 12. Составной первичный ключ

Использование составного первичного ключа при проектировании таблицы с отношением “многие ко многим”.

Урок 13. Объединение данных из нескольких таблиц

Получение данных из нескольких взаимосвязанных таблиц; несостоятельность подхода с использованием нескольких SELECT-ов.

Урок 14. Оператор INNER JOIN

Объединение данных из нескольких таблиц с помощью оператора INNER JOIN.

Урок 15. Операторы LEFT JOIN, RIGHT JOIN

Объединение данных из нескольких таблиц с помощью операторов LEFT JOIN и RIGHT JOIN.

Урок 16. Оператор UNION

Объединение результатов нескольких SQL-запросов с помощью оператора UNION.

Урок 17. Агрегирующие функции

Агрегирующие функции COUNT, SUM, MIN, MAX.

Урок 18. Оператор GROUP BY

Группировка выбранного набора строк с использованием оператора GROUP BY.

Урок 19. Индексы

Фильтрация в GROUP BY с использованием HAVING; увеличение скорости выполнения запросов с использованием индексов.

Урок 20. Транзакции

Понятие транзакции; оператор TRANSACTION; требования ACID к транзакционной системе.

Java. Уровень 3. 2 месяца.
Профессиональная разработка программного обеспечения

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

Урок 1. Обобщения

Что такое обобщения, обобщенные классы, методы и интерфейсы, наследование обобщенных классов, ограничения при работе с обобщениями

Урок 2. Базы данных

Реляционные базы данных, язык запросов SQL. Операторы SELECT, INSERT, UPDATE, DELETE. Подключение к базе через JDBC, отправка запросов и обработка результатов

Урок 3. Средства ввода-вывода

Обзор средств ввода-вывода. Байтовые, символьные, буферизированные потоки. Сетевое взаимодействие, сериализация/десериализация объектов

Урок 4. Многопоточность. Часть I

Многопоточность в Java, разделяемая память, управление потоками и вопросы синхронизации, взаимодействие потоков исполнения, взаимная блокировка

Урок 5. Многопоточность. Часть II

Классы для работы с многопоточностью, Concurrent collections, разбор практических примеров

Урок 6. Обзор средств разработки

Логирование. Тестирование с использованием JUnit, написание тестов, класс Assert

Урок 7. Reflection API и аннотации

Понятие рефлексия, тип данных Class, метаданные классов, доступ к полям и методам, аннотации и их использование, написание собственных аннотаций.

Стажировка в GeekBrains. 2 месяца.
В формате вебинаров

Во время стажировки студентам предстоит поработать в режиме удаленной занятости над Open Source-проектом либо стартапом. Студентам будет предложено выбрать один из набора доступных для разработки проектов. Студенты научатся работать в команде, коммуницировать с другими разработчиками, product- и project-менеджерами, дизайнерами, изучат гибкие методологии, фреймворк SCRUM, освоят принципы дистанционной работы. Результат стажировки - умение работать в команде, пополнение портфолио, возможность указать работу над проектом в качестве профильного опыта работы в резюме. Стажировка проходит в формате дистанционной работы с частичной занятостью, еженедельными встречами-статусами с преподавателем в формате вебинара.

Урок 1. Знакомство, выбор проекта

Какие роли бывают в разработке. Product Manager, Project Manager, разработчик, дизайнер. Что такое MVP. Архитектура современного сервиса. Как разработчики взаимодействуют между собой. REST API, Web Socket. Backend, Frontend, мобильные приложения. Микросервисная архитектура. Основы удаленной работы. Запись в команды.

Урок 2. Методологии разработки

Обзор методологий. Каскад (водопад), Agile-манифест, Канбан, Скрам. Где и для чего применяются. Смешанные методологии.

Урок 3. Методология SCRUM

Работа по SCRUM. Планирование спринта. Причесывание бэклога (backlog grooming). Цель спринта. Инкремент. Гибкая методология в условиях дистанционной работы. Таск-трекеры (Trello, Favro)/

Урок 4. User Story Mapping

Типы задач. Декомпозиция задач. Построение карты пользовательских историй. Работа над пользовательскими историями. Работа с ТЗ по водопаду и в гибких методологиях.

Урок 5. Ответственность, мотивация, личностный рост

Чем и как мотивировать себя. Какие уровни мотивации бывают. Как не сгореть на работе. И как не забить на работу.

Урок 6. Написание резюме

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

Урок 7. Предварительное подведение итогов, подготовка к защите проекта

Разбор студенческих резюме. Предварительное подведение итогов. Немного о стартапах, монетизации, инвесторах.

Урок 8. Подведение итогов, демонстрация выпускного проекта

Демонстрация рабочего прототипа студентами. Обсуждение полученных результатов. Обратная связь от преподавателя. Напутствие.

Привет. Если Вы читаете данную статью то, скорее всего, у Вас возникал вопрос, как стать программистом. Возможно Вы даже решили изучить язык программирования 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 тоже когда-то были маленькими компаниями у кого-то в гараже или в общаге. Просто нужно учится. Не настолько важно сколько часов в день Вы учитесь, как то, сколько дней подряд вы это делаете.

Теги:

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