Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!

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

понедельник, 2 февраля 2015 г.

Что стоит сделать, чтобы подтянуть JavaCore?

Какой путь предстоит пройти, чтобы стать Junior Java Developer в одной большой (или не очень) компании я попробую сейчас уместить в один этот пост. Каждый абзац его - один этап, и если ты он тебе покажется пройденным - смело переходи к следующему. Тут все зависит от того, какой у тебя сейчас уровень. И вовсе не страшно, если этот уровень сейчас не такой высокий, как хотелось бы - если будешь вкладывать ежедневно в практику, очень скоро все догонишь. Начну с самого начала. 

Допустим опыт у тебя отсутствует, как по Java так и по программированию. Помнишь лишь только, что когда-то давно уроки информатики тебя привлекали у тебя были по ней неплохие отметки. В таком случае тебе стоит разобраться с основами написания программ. Для этих целей подойдет хороший проект http://scratch.mit.edu/ Тебе надо разобраться с тем как большая задача декомпозируется (разбивается) на этапы, те в свою очередь состоят из кирпичиков-команд. Компьютер умеет делать много всяких команд, а программист объединяет их в программы используя такие штуки как например: ветвления, циклы, процедуры, простые ячейки памяти и массивы для хранения промежуточных результатов выполнения программы, используя всевозможные алгоритмы. Это все не сложно, но java я пока бы рекомендовал отложить. На время. Когда разберешься с основными штуками, которые обычно делает программист приступай к следующему этапу. Если вдруг эта игра не подойдет - вот еще одна классная подборка

Ты уже программировал в прошлом на каком либо языке программирования в прошлом или быть может программируешь сейчас. Задачи могут быть как простые - использование компьютера в качестве калькулятора или по-сложнее - автоматизация каких-то рутинных задач. Ты пишешь программы для себя, чтобы сэкономить время, а компьютер тебе в этом помогает. Для проверки: ты уже знаешь, что такое алгоритм, ветвления, цикл, ячейка памяти, процедура, сортировка. Тут смело можно включать язык Java в твой арсенал. В сети по языку java есть множество материалов: видеоуроки, книги, статьи. Но одного знания не достаточно - надо иметь площадку для экспериментов. Такой себе задачник, где собрано много мелких задачек, которые ты будешь решать. Например http://codingbat.com/java или вот http://codeforces.ru/problemset  или еще 100500 других вариантов, которые гуглятся просто "задачи по java с решениями". Так же тебе потребуется какая-то книга, которую ты купишь и будешь читать - твоя настольная книга. Их есть несколько - каждому подходит какая-то своя:

Так же ты сможешь найти множество видеоуроков на тему основ Java, как например:
Но основное тут - это практика, ведь без нее теория "в одно ухо влетело, в другое вылетело". Практики должно быть много. Очень много. Каждый день по 4+ часов. 2-3-4 месяца (как пойдет) зависит от твоей скорости. 
Так же тут стоит задумываться о качестве твоего кода, и в этом тебе помогут:
Тут уже можешь заняться тем, чтобы тестировать свои познания о java с помощью какого-то мокового экзамена scjp. Вот например этого (конкретно в этом тебе надо будет зарегаться, чтобы потом получить расшифровку твоих неправильных ответов). Их в сети есть много. Очень много. Как все с java. Пройди тест в начале пути и проходи его каждую неделю, наблюдая за тем, как % растет. Дойдешь до 90% - это очень и очень хорошо. Есть книга, которая хорошо готовит к сдаче этого экзамена "OCJP Sun Certified Programmer for Java 6 Exam 310-065". Экзамен тебе нужен не для того, чтобы получить сертификат (не уверен что он тебе сильно поможет устроиться), но для того, чтобы знать где именно у тебя пробелы. 

Следующая важная штука - ООП. Без нее в java никуда. Частично это покрыто в java core литературе, но опять же - одного знания что такое полиморфизм, икапсуляция, наследование и абстракция недостаточно. Надо чувствовать его. А тут без практики, на которой будут грабли - никуда. Тебе предстоит перейти от мышления в процедурном стиле в мышление в стиле ООП. Для этого потребуется отойти от алгоритмических задачек в сторону более сложных задач по моделированию части реального мира. Например: смоделировать университет со всеми его ключевыми ролями, их взаимодействиями, документооборотом, составлением расписаний, деканата и прочих артефактов. Или пиццерию, со всеми-всеми ее обитателями. Или аэропорт. Или библиотеку. Или.... Выбирать тебе. Как выбрать задачу и ментора себе и в каком направлении тут двигаться можно почитать в этом посте. Книги для понимания ООП я бы рекомендовал такие:
И опять же - много практики. Привыкай к тому, что кодить будешь целый день - это будет твоя основная задача. 

Отдельно хочу сказать про английский язык. Книги и материалы я тебе предложил на русском, потому как допускаю, что с английским ты сейчас не очень дружишь. Если это так - записывайся на курсы уже сегодня и проходи его шаг за шагом. Ты должен будешь:
  • гуглить решения на английском - 70%
  • участвовать в переписке с англоязычной частью твоей команды, писать документацию по проекту - 20%
  • пройти собеседование на английском, общаться минимум раз в неделю с "заказчиком" - 10%
Это в любом случае придется сделать. Начинай сегодня же. 

Следующий этап - технологии из стека j2ee, всевозможные opensource фреймворки и прочие прибамбасы, которые уже придумали для тебя - тебе остается их скрутить вместе. Движение на этом этапе рекомендую проводить в направлении:
  • Java Web basics: Servlets, JSP, HTML5, CSS3 - преврати свой консольный проект в полноценный Web. 
  • DB/SQL - храни данные в базе.
  • JavaEE basics: Maven3, XML/JSON, Spring IoC, Hibernate, Struts2 или SpringMVC - сделай полноценное EE приложение 
  • WebServices/Rest/SOAP - дай доступ к своему api для других служб
  • JavaScript (jQuery), AJAX, JSF  - сделай свое приложение SPA, как сейчас принято в мире Web
Тут важно понимание принципов работы технологий и фреймворков. Но это не все. 

Очень важно тут нарабатывать правильные девелоперские навыки:
  • Декомпозиция большой задачи на мелкие. Большую задачу не нашинковав ее на мелкие не решить. 
  • Доведение задачи до состояния - готово, преодолевая все-все препятствия (а их будет много), постоянное чувство "приехали" - его надо преодолевать, ведь решение где-то есть, может рядом, а может тебя от них отделяет еще 20 неудачных попыток. Не сдаваться!
  • Быстро гугление ответов на свои собственные вопросы - тут книги уже не помогут, хотя они и есть - на чтение их всех уйдет оОоочень много времени, и не эффективно это. Технологии меняются, одни фреймворки приходят на смену другим. Один проект использует один набор технологий, другой - другой. Надо знать базу и уметь догугливать все остальное. 
  • Работа в команде: общий репозиторий, работа на стыке с коллегами, конвенции в команде, коммуникации и многое другое, что не передашь в рассказах, видеолекциях, книгах, а если и передаешь - понятно не будет. Тут надо окунуться с головой в командную разработку.
  • Работа по процессу, навыки планирования
  • Стрессоустойчивость
К сожалению про эти навыки не прочитать в какой-то одной книге - тут надо вливаться в команду и впитывать все, что она тебе дает. Скорее всего этот тренинг ты уже будешь проходить стажируясь в какой-то компании, либо проходя тренинг такой как у нас, в GoIT. Мы вкладываем в твои навыки больше, чем просто делимся знаниями, потому, что знаем - при правильном наборе навыков знания очень скоро ты впитаешь сам. 

В завершение хотелось бы поделиться докладом Якова Файна Становясь профессиональным Java Developer

Книгой, которая поможет на собеседовании для будущего j2ee разработчика "Java/J2EE Job Interview Companion" автора Arulkumaran Kumaraswamipillai - очень емкая и классная подборка вопросов о core java, oop и j2ee технологиях. 

Я уверен, пройдя этот путь ты точно будешь работать в компании. Тут важно понимать, что знание этого всего автоматически не означает твое трудоустройство. Устроишься ты, если будешь стучаться в компании:
  • Создаешь свое резюме
  • Изучишь вакансии размещаемые на сайтах компаний в разделе "Вакансии"
  • Будешь ходить на собеседование 
  • И одно из них пройдешь!
Все получится. Но придется хорошенько потрудиться...

А что будет дальше можно увидеть в моем докладе У тебя получится.

понедельник, 16 июня 2014 г.

Готовимся к вебинару

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

Правило 1е! Появилась мысля в голове? Разобрался в каком-то вопросе? Тут же напости два небольших абзацика анонса на эту тему. Выложи анонсик у себя в блоге и айда ее пиарить - в соцсетях, по друзьям, во все скайп групки. Когда спрашивают тебя как дела, что нового - не говори "нормально", а делись линкой на ивент - скажи, что сейчас живешь этой темой, а потому хочешь поделиться с людьми. Пиарь всем. Пиарь везде. В посте должна быть формочка регистрации, где соберешь у ребят - скайп/емейл/номер телефона и их предпочтения. Если кто и чиркнут одно два предложения - тебе в помощь, будешь знать куда дальше двигаться. В общем это то, что касается "как стартовать". Тут тормозить не стоит, только газу. Не соберутся ребята на твою тему - да и ладно, узнаешь хоть об этом. А то как обычно делают - готовят-мучают тему пол года, а потом наконец-то рожают и с удивлением узнают, что а тема-то никому не интересна... Будь шустрым. Кто самый шустрый? Я самый шустрый!


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

Правило 2е! Пока собираются ребята на формочку ты читаешь максимально постов по этой теме в сети - все что найдешь, даже самое конфликтирующее. Так же всех, кого знаешь - всем рассказывай по этой теме. Пусть окружащих буквально тошнит от того, что ты увлекся этой темой :) Утрирую конечно, но где-то так и стоит делать. Соберешь фидбек у друзей, много раз разными словами расскажешь тему. Чем больше минидокладов будет, тем проще дастся тебе твой спит на вебинаре. Планов не готовь, просто рассказывай на эту тему, начиная приблизительно с "а вы знаете, что..."


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


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


Правило 5е! Любые ошибки - это всего лишь пометки на пути к успеху. Чем больше фейлов - тем лучше. Ничего особенно предпринимать не стоит - просто отмечай: "о, прикольно получилось - в следующий раз попробую иначе". Особенно ошибкипривествуются за час до начала вебинара и на самом вебинаре - чем их больше ты сможешь отметить - тем лучше будет твой следующий вебинар. Сам подумай + еще спроси в конце вебинара у ребят, как им? Я вот своих первых слушателей продержал 3 часа без перерыва :) - увлекся малость. 


Правило 6е! Стабильный интернет. Лучше по моему вещать из дома, потому как офис - штука ненадежная. Попросить родных и близких не мешать, домашних питомцев не домагаться, а соседей не сверлить перфоратором :) Если в офисе - стоит забукать митингрум и попросить IT суппорт, чтобы инет был стабильный - кто там знает, может быть у них сейчас плановое отключение. Подключаться к сети лучше не по вайфаю, а проводком. Если тебя посреди эфира отключит - будет не очень удобно. Хорошо бы на этот кейс иметь план Б :) Как-то развлечь ребят, коль уж они пришли. Позже ты запишешь свой вебинар и вышлешь им, но сейчас они настроены смотреть - и надо их запрос реализовать. 


Правило 7е! Репетиция. Обычно она начинается за час до начала вебинара. Попроси кого-то подключиться пораньше и помочь тебе. Так же стоит убедиться, что запись ведется. Я не был уверен, хоть и порепетировал перед тем, а потому включил еще одну скринрекордилку. Так же стоит убедиться, что тебя слышно хорошо (у меня комп вдруг перестал видеть микрофон). Так же стоит убедиться, что никакие тулы не всплывут посреди экрана в момент вебинара - потому все мессенджеры, все скайпы, все окна в браузере закрываются. В браузере так же чиститс вся хистори. С рабочего стола и диска D убираются все папочки. Рабочее место должно быть чистым, чтобы потом не было желания цензурить видео. Кстати про видео - его хорошо пишет Google Hangouts и выкладывает на ютьюб, но только, если трансляцию начать с Ютьюба, а не с самого Hangouts. Что еще? Если ребят будет много - стоит замьютить их всех перед началом. Hangouts в момент когда кто-то говорит показывает его вещание, переключая твой рабочий стол - это может быть не комфортно и лишний раз вопрос не зададут. Лучше вести опросы в чатике невербально. Так же стоит позаботиться о разрешении экрана - 1024*768 - и для записи и для все типов ноутов оптимальное. Настроить перед тем все программки, которые пригодятся и поудалять все лишнее. В общем подготовиться. На это все 2 часа до начала вполне хватает. 


Правило 8е! Чем быстрее ты это сделаешь - тем лучше Тут вопрос количества, которое естественно перерастет в качество, если будешь работать над шишками. 


Если зацепило - велкам на наш оффлайн хакатано-практикум по инфопродуктам. Скоро мы проведем первую встречу в Киеве. 

воскресенье, 17 февраля 2013 г.

Собеседование это не игра в одни ворота

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

Но собеседование это не игра в одни ворота. Со-беседование. Со-(вместное)-беседование. А это значит, что присматриваться стоит к работодателю так же, как он это делает с тобой.

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

На собеседовании можно так же влиять на тему беседы. Тут равноправье. Представь, что ты консультант и тебя пригласили, дабы ты поделился своим опытом.

Ты можешь быть не опытным в тех вопросах, которые подготовил для тебя Интервьюер - не обижайся на него за это. Он не со зла. Просто подготовь "свои" вопросы, ответы на которые знаешь хорошо. Сделай домашнюю заготовку (спасибо Якову Файну), принеси ее на собеседовании и сделай так, чтобы ее оценили (или как минимум увидели).

Готовится к собеседованию надо хорошенько - так, как ты бы готовился, если бы тебя менеджер попросил прособеседовать кандидата в напарники для pair programming. Тебе же потом работать в этой компании/проекте/команде.

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

Что делать сейчас, пока все хорошо? Собирать то, что тебе поможет в момент, когда ты будешь уволен: знакомься с людьми, изучай технологии, посещай тренинги/семинары/мастерклассы, читай книги, веди блог, интересуйся всем, что окружает тебя, помогай нубчикам, волонтерь у опытных, пиши что-то open-source'ное и самое главное промолчи, если хочется нагадить...

Очень обидно, когда человек уходит из компании и за ним тянется шлейф фидбеков "манагер Г, соцпакет Г, все Г, ну их! пойду в соседнюю контору". Обидно за человека этого, поскольку не ведает, что творит. В новой компании все скорее всего повториться. Так же, на собеседовании, не задашь ни одного вопроса, которые тебя волновали в прошлой компании. Опять обменяешь пару k$ на кота в мешке. Пройдет пол года и картина повторится...

"Грюхать дверьми" не стоит по одной простой причине: IT на Украине - это большая деревня. Сегодня ты собеседуешь Кого-то, завтра Кто-то тебя не берет на работу. Все связано. Помогать стоит друг другу. Даже если этого Кто-то не прав! Помогать хотя бы тем, чтобы промолчать там, где хочется "дать фидбек".

Ну и готовиться, конечно. Ведь ни что не вечно... 

понедельник, 7 марта 2011 г.

Мотивация: Первый раз всегда страшно

Две недели назад стал ковырять на своем проекте DBFit фреймворк – таск такой на проекте получил. Уверен, любому программисту знакомо это: у кого реже, у кого чаще, но в проекте периодически возникают необходимости подучить что-то новое. И учишь. А после, оказывается, что ты один в команде обладаешь экспертизой в этом направлении. Вроде как и экспертизы той раз два и обчёлся, но тем не менее в команде с этим вопросом подходят именно к тебе.

Так и со мной случилось. Сижу ковыряю фреймофрчик, и вдруг в одно классное утро предложение от коллеги приходит «ты к нам все равно в гости едешь, давай может попутно ребятам про фреймфорчик расскажешь? Мы тут случайно узнали, что ты знаешь его...» Ехал в Николаев я по другой теме – обмен опытом с коллегами менторами. Ну, думаю, ладно. Попробую. И тут волноваться стал. А я – то всего часов 40 с фреймворком работал не больше. И что я буду говорить ребятам, если они будут задавать вопросы. И о чем говорить целый час? - все что я знаю можно уложить в 10 минут рассказов. Волновался в общем.

Но все не так плохо, как я себе рисовал. А помогло мне вот что:
- наши тренинг координаторы – ребята очень позитивные, открытые и всегда можно заручиться ихней поддержкой.
- интернет - это всемирная свалка и на ней можно найти что угодно, даже презентацию по любому фрейморку. Дальше дело техники: связаться с автором, спросить разрешения, дополнить по своему усмотрению и готово!
- за час до презентации я провел одну единственную репетицию, на которой проговаривал то, что собирался рассказать ребятам. Если предложение не собиралось в кучу, я перефразировал его до тех пор пока не получалось удобоваримо. И шел дальше. И так, на самом докладе получалось, что я уже не первый раз докладываюсь, а значит плавило «первый блин комом» - уже не актуально.
- ребята в Николаеве – очень приятные, любопытные, общительные. Передавать им знания было одно удовольствие.

К чему это все?
1) Если у тебя есть опыт, пускай крохотный, но все же уникальный – ты уже можешь поделиться им с коллегами. У тебя 20 часов наработок? Ты можешь сэкономить 5 ребятам из разных проектов в сумме 100 часов на их экспериментах (вероятно, они иначе прошли бы твой путь самостоятельно) – после твоего доклада они легко смогут сказать «да это нам подходит» или «нет – не подходит». 4 часа подготовки – 100 часов экономии. А что если аудитория на 30 человек? Впечатляет.
2) Не важно, сколько опыта получено на сегодняшний день. Любая самая незначительная экспертиза может помочь коллеге. Даже, если сегодня первый день знакомства с библиотекой – уже есть, что поведать ребятам из своей же команды. Через неделю можно пошарить знания уже и на другие команды. «Чтобы стать докладчиком – надо иметь много месяцев (или лет) опыта» – это неправда. Незню кто (может я сам) и когда мне это в голову положил, но это бред.
3) Это вовсе не страшно. Те, страшилки, которые перед докладом рисовало мое сознание – ни одна не случилась. Трудности были, но другие. Я никак не мог предугадать ни одну из них – просто не хватило бы фантазии. Так что будь уверен, все то, чего ты сейчас боишься – уж точно не случится.

Хочу поблагодарить Ребят, которые инвестировали в эту маленькую акцию обмена опытом свое время: тренинг координаторы Наташа Потапова и Андрей Дворчин; лид моего проекта Олег Яворский, с чьей подачи я стал заниматься этим таском; Артем Пасхин, в голове которого родилась идея пошарить знания и Антон Куликов, чья презентация повторно использовалась.

Спасибо ребята за Ваше время.