Creativity

Innovation

Originality

Imagination

 

Salient

Salient is an excellent design with a fresh approach for the ever-changing Web. Integrated with Gantry 5, it is infinitely customizable, incredibly powerful, and remarkably simple.

Download

Как вы знаете, одно из основных направлений деятельности нашей компании FoxmindeEd - это менторинг Грубо говоря, мы берем человека, который знает основы языка Java, закидываем его задачами, которые покрывают весь спектр знаний, необходимый для начинающего разработчика и проверяем результаты, доводя уровень программирования от состояния "может что-то написать" до "пишет вполне читаемый и красивый код". Другими словами превращаем новичка в толкового Junior Developer, хоть и без опыта.

С недавних пор у нас появилась еще одна услуга - групповое обучение. Это когда мы берем уже обученого (нами или другими курсами) Junior Developer, даем ему настоящее техническое задание, настоящую команду таких же новичков и настоящее руководство в виде тим-лида и проджект менеджера. Ну и задача самая настоящая.

b0072f8e-352c-4dc4-80d0-4f6cb09364d0 (1).jpg

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

На сегодняшний день полная схема нашего обучения выглядит следующим образом: Вы приходите к нам человеком, едва овладевшим основами языка, проходите менторинг. Становитесь Junior Developer без опыта работы в команде. После него - групповое обучение.в котором получаете необходимый опыт работы в команде, над настоящими задачами и с настоящим окружением. то есть - фактически восполняете недостаток опыта и становитесь Junior Developer с небольшим опытом. Если вы хорошо работаете в групповом обучении - мы берем вас к себе в команду разработки и на этом этапе вы начинаете получать пусть и небольшую, но зарплату. Фактически всех хороших разработчиков мы забираем себе. И естественно через полгода-год - становитесь настоящим Middle developer. Кстати, лучшие наши сотрудники стали уже тим-лидами у нас. Естественно, вы можете найти работу на любом этапе и досрочно окончить обучение.

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

Это текущее состояние, то есть то, что сейчас УЖЕ работает. Но это не все, что я хотел вам рассказать.

В ближайшее время у нас открываются помимо вышеописанного Java Enterprise еще следующие направления менторинга:
- Front-End,
- Automation QA (Java)
- Android разработка.

Для всех этих направлений актуальна та же самая дорога - менторинг - групповое обучение - должность у нас в штате.

Если вы заинтересовались каким-то из новых направлений менторинга - у вас есть шанс стать одним из наших первенцев в данном направлении.

Регистрируйтесь, чтобы это направление стратовало как можно раньше    https://goo.gl/66hX5H 

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

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

Сложность

Самая первая проблема, я бы сказал — мать всех проблем — это сложность. Сложность всего — от предметной области до архитектуры самих Enterprise-приложений. И эти сложности наслаиваются и вызывают друг друга. И умножают друг друга. Поэтому давайте с них и начнем.

Сразу скажу, я не претендую на какие-либо академические познания. Я — обычный руководитель небольшой софтверной компании. Однако я в этом бизнесе давно (уже больше 20 лет) и информацию искать вроде бы умею. Более того — я вообще интересуюсь Computer Science. В любом случае так я вижу ситуацию. Если я ошибаюсь, можете меня поправить — я открыт к новой информации.

Статья опубликована на DOU

Поделюсь с вами пятью книгами, которые, по моему разумению, стоит прочитать Enterprise Java разработчику.

Мартин Фаулер: «Рефакторинг. Улучшение существующего кода»

Книга на все времена. Только прочитав ее, разработчик начинает понимать что-то в своем коде и самое главное — понимать, какую фигню он до этого писал. Да, книга слегка тяжеловата, и слишком растянутые примеры мешают, но из песни слова не выкинешь — если вы ее не читали — прочтите непременно.

Роберт К. Мартин: «Чистый код: создание, анализ и рефакторинг. Библиотека программиста»

Первая книга, которую должен прочитать любой разработчик, только вылезая из пеленок. Книга научит ценить качество кода, привьет верные ориентиры и научит не есть желтый снег. Меня часто спрашивают — вот я научился писать код и что дальше? Вот и ответ — читайте чистый код и будет вам счастье. :)

Роберт К. Мартин: «Agile Software Development: principles patterns and practices»

Вторая книга в этом обзоре от Роберта Мартина. По-хорошему — ее одной было бы достаточно вместо всех предыдущих. Книга прекрасна во всем — строго структурирована, емкие, короткие фразы, ни единого лишнего слова, авторские иллюстрации с легким и интеллигентным юмором. Но есть две проблемы. Первая — она отвратительно переведена на русский язык. Хуже я перевода не видел вообще, поэтому название даю на английском — на русском ее читать не имеет никакого смысла. Достаточно сказать, что один принцип там вообще переведен в противоположном от оригинала смысле. Естественно, авторское оформление и рисунки потеряны. А вот в оригинале — мастрид, однозначно. Даже держать книгу в руках приятно.

Мартин Фаулер «Шаблоны корпоративных приложений»

Следующая книга из нашего обзора подойдет для тех, кто уже поработал на галерах и даже перестал краснеть за свой код, ну по крайней мере делает это не часто. В этот момент разработчик понимает, что от решения локальных проблем надо переходить к пониманию построения архитектуры приложений в целом. К сожалению, хороших книг, обучающих декомпозиции предметной области я практически не знаю. Эта книга — не про декомпозицию, а про типовые решения для Enterprise разработки. Но и из нее можно сделать большое количество выводов и многому научиться. Честно говоря, я ее читал в русском переводе и был не впечатлен. Переведена она существенно хуже, чем рефакторинг, так что наверняка лучше читать в оригинале. Кстати, по материалу этой книги я скоро буду проводить тренинг в Киеве, приходите. Буду рад вас видеть. :)

Kent Beck «Extreme Programming Explained: Embrace Change»

Прочитав эту книгу, я настолько в свое время влюбился, что ушел с престижной должности начальника отдела веб-разработки в Лиге в мелкую конторку простым девелопером, лишь потому, что они мне пообещали настоящий ХР, прямо как у Бека. Прочитайте, Бека читать приятно, у него отличный рубленный слог, четкая структура и приятный юмор.

Естественно, ХР — это вообще не про Enterprise, это про организацию всей команды. Ну и по естественным причинам — в Enterprise эта тема возникает в первую очередь — команды большие. Задачи длинные и сложные. Нужно как-то в этом всем разбираться. ХР сейчас в чистом виде встречается крайне редко, однако принципы Agile разработки — то, что должен знать любой разработчик. И лучше Кента Бека их не объяснит никто, на мой вкус.

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

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

Почему вообще мы рассматриваем Enterprise

Не все читатели этой статьи — разработчики Enterprise-приложений. Однако я все-таки настаиваю, что нам надо обратить внимание на проблемы Enterprise-приложений в первую очередь. Почему? По многим причинам, которые я перечислю ниже, но все они ведут к тому, что именно Enterprise — то самое место, где все вызовы складываются друг с другом и где первым порвется, когда настанет час Х.

Меня новички часто спрашивают, какой Java IDE пользоваться. Решил не повторять каждому, а оставить тут

Выбор IDE - любимый вопрос для холиваров. А разгадка простая - что значит "лучше"? Самая удобная, имхо - IDEA. Но я лично пользуюсь Eclipse и ее же заставляю учить своих студентов. По двум причинам: 
1. Идея - слишком умная. Она частенько делает за вас какие-то вещи, которые в редких случаях, но оказываются весьма неверными. и вы тратите тонны времени на то, чтобы найти, что же она таки натворила и это исправить. Даже если это случается редко (а так и есть) для энтерпрайза, имхо, это неприемлемо. 
2. в некоторых компаниях ее запрещают использовать просто из-за того, что бесплатная версия идеи бесплатна вообще-то только для НЕ КОММЕРЧЕСКОГО использования. А вы вообще-то на работе занимаетесь именно коммерческой разработкой. И вы в таком случае внезапно оказываетесь без любимого инструмента. Eclipse доступен всегда и везде.
Но решать в любом случае вам.
NetBeans не советую - он достает периодическими странными выходками. 
А вообще-то, на определенном уровне вам придется осваивать все известные науке IDE. Просто чтобы не мучиться перенастраивать проект под себя, а взять и работать. У меня например - все 4 IDE (Eclipse, IDEA, NetBeans, JDeveloper) стоят на машине :)

 

Апдейт: Я смотрю набежали сплошняком сеньоры и начали обсуждать. какую IDE они используют. Успокойтесь, рыцари добра. Этот пост не для вас. Вы будете работать в том, в чем захотите или в том, что потребует проект (например, если вы работаете Oracle SOA Suite, то у вас JDeveloper - на мой вкус худшая из доступных Java IDE) и вы не ноете. А новичка все-таки лучше сориентировать именно на Eclipse - она используется на многих проектах, на ее базе разрабатывают IDE для разных других вещей (например - FLEX Builder) и она ничего практически не делает за разработчика. заставляя его самого шевелить мозгами. Я как преподаватель одобряю. Все, больше в споре не участвую.