Продолжение моей истории

С момента написания моей истории прошел год. Работаю там же. Компанией доволен. Работой доволен.
В марте этого года, когда закончился мой проект, некоторое время «сидел на скамейке запасных». За этот период (месяца полтора) выучил JavaScript, Angular и некоторые другие технологии. Первое время не удавалось пройти внутреннее собеседование в другой проект. Несмотря на сданные мной сертификаты Oracle Java Associate & Oracle Java Professional по Java 7, я не мог похвастаться достаточным знанием некоторых других нужных технологий и фреймворков. Зато, наконец, меня взяли в один из ключевых проектов компании в качестве программиста ARS. После чего я полтора месяца обучался этой технологии (Action Request System — Фреймворк американской компании BMC, использующий Java, JavaScript, Oracle DB и принципы графического программирования). Вскоре помимо функций АРС-программирования стал писать на джава скрипте и поддерживать Web GUI. Оценил все преимущества веб программирования по сравнению с бэк эндом, которым приходилось заниматься в прошлом проекте) В августе получил повышение и стал «мидлом»!
На основании своего опыта (пока еще не очень большого) могу сказать следующее. Во-первых, программирование — это очень разнообразно и интересно. И скрипты, и алгоритмы, и базы данных, и веб. Во-вторых, даже если поначалу что-то не получается, сфера АйТи настолько обширна, что всегда можно найти себе место по душе.
Хочу также искренне пожелать удачи тем, кто только начал изучать программирование или хотя бы задумался об этом! И помните, друзья, мир нигде не заколочен досками!)

P.S.
Если Вы заинтересовался моей компанией и рассматриваете ее в качестве места работы, то можете смело писать мне в ВК: auratarda
Я могу рассказать побольше, а также порекомендовать Вас для поступления в Java-школу.
  • ,

Как выучить Java если вам уже за 30...

Обращаю внимание всех, кому кажется, что курс Джавараш требует слишком много времени и усилий(денег)!

Для меня задача выучить Java за 1 год (так я для себя ее поставил) — усугублялась наличием двух детей (0.5 года и 4 года), отсутствием работы на тот момент, ну и, как мне тогда казалось, основной проблемой был возраст — 35 лет. Для чистоты описания нужно сказать, что были и плюсы — бекграунд в виде диплома физика, опыт работы сисадмином, опыт создания сайтов(HTML+CSS), плюс 5 лет стажа в крупной телекоммуникационной компании, в качестве руководителя отдела эксплуатации городской сети интернет. Тем не менее непосредственно опыта программирования, кроме Basic в школе и TurboPascal в универе, по сути не было.

Вдохновился во-первых потерей работы, а во-вторых в процессе поисков блогом одного «коллеги по несчастью». Не сразу, но набрел на Джавараш — примерно в конце января 2015 и понеслось…

Примерно в начале занятий была куплена Философия Java — Брюса Эккеля. К апрелю были пройдены первые 10 уровней и решены почти все задачи, тут на Джавараш случилась акция, в связи с чем была куплена подписка(кстати вроде бы за то, что задачи были все решены скидка была еще на 20$ больше).

К августу были пройдены примерно 23 — 25 уровней, задач, правда, уже было решено где-то до 20 уровня. Был взят отпуск 2 недели, и назначена дата собеседования в по сути единственную крупную компанию в моем регионе. Т.к. примерный список вопросов заранее прорабатывался, и я усиленно готовился к теории, то техническое собеседование прошел нормально (примерно 40 минут по скайпу), вторым этапом было написание тестового задания и один только технологический стек поверг меня в ужас. JSF + Primefaces, Hibernate
,Java7,PostgreSQL, Glassfish, в качестве дополнительных (необязательных) требований — JUnit и Maven. А написать надо было типичное CRUD веб-приложение «Онлайн-библиотека» с возможностью авторизации и управления ролями юзеров. Про Java EE у меня внятного представления на тот момент практически не было, тем не менее назад дороги не было, и за 2 недели было сделано нечто соответствующее, как мне казалось, данным требованиям, ну кроме юнит-тестов. К моему удивлению, практически в тот же день, как я сдал задание, мне перезвонили и сделали job-offer. Так я стал java junior.

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

P.S.: Да, и кстати, не смотря на то, что сам устроился уже на 20-х уровнях, если есть возможность, так делать не советую, ибо 3 месяца испытательного срока для меня был один большой стресс. Первым делом пришлось выучить Git за пару выходных, постоянно приходилось ликвидировать пробелы в знаниях. В связи с этим проходить курс Джавараш продолжал до победного. Конечно пройти курс полностью, а потом устроиться на работу идея намного более здравая, но мой путь был более извилистым.

Маленькими шагами к большой цели

Началось всё в феврале 2014 года, когда заканчивались последние полгода обучения в университете, когда нужно было решать куда же двигаться дальше. За своё обучение в университете были попытки изучить разные языки, но всё заканчивалось на выполнении учебных задач, как говорится “лишь бы сдать”.
Посмотрев рынок IT-компаний у нас в городе, выбор пал на два направления: QA Engineer или Developer. Многие компании предлагали обучение по данным направлениям. В феврале была сделана попытка попасть на курсы QA в одной из крупных компаний, но попытка не увенчалась успехом. Затем было решено, что необходимо выучить хорошо хотя бы один язык программирования, чтобы можно было на что-то претендовать. Выбор был сделан в сторону Java — этот язык ранее не изучался мной в университете, да и спрос на Java разработчиков на рынке IT довольно приличный, поэтому долго думать не пришлось.
По совету хорошего знакомого обучение началось именно с JavaRush, сначала 5 уровней, потом ещё 5, а затем была куплена подписка, так как обучение совсем не хотелось заканчивать.
Прохождения 12 уровней было достаточно для того, чтобы пройти на стажировку в одну из известных компаний в моем городе. Стажировка для меня оказалась сложным испытанием, но нужным. После стажировки на работу в компанию устроиться не получилось, то ли вакансию закрыли, то ли у меня недостаточно хорошие скиллы были. В общем тут самое главное было не опускать руки, а двигаться дальше.Это был уже август и я продолжила обучение на JavaRush, кроме самого курса я смотрела много видеоуроков на youtube и читала разную литературу (список рекомендованной литературы приведен в конце истории). В октябре я устроилась на курсы ещё в одну компанию, курсы длились 3 месяца. Обучение было интересным, так как все полученные знания можно было попрактиковаться на разных учебных проектах. После прохождения курсов меня приняли на работу на должность Junior Software Engineer, это произошло в начале февраля 2015(10 месяцев с начала обучения на JavaRush). Моей радости не было предела, но на этом я не остановилась.Проработав в компании 5 месяцев, мне было сделано предложение из компании, профилем которой является Java разработка. Предложение оказалось интересным как по зарплате, так и по перспективам карьерного роста. В общем недолго думая, я перешла в новую компанию на должность Junior Java Developer. Сейчас уже прошло 2 месяца как я работаю здесь, но на достигнутом я не остановлюсь.

Продолжайте делать маленькие шаги, по одному в каждый момент времени, пока вы, в итоге, не достигните своей цели.


Рекомендую:
www.youtube.com/channel/UCdXqgQdGW5go6nkkBbUVSMA
www.youtube.com/channel/UCg1x1VDcSzviGGH995gHnjw
www.youtube.com/user/ZhirniToni
Видео-уроки на разные темы.

Литература:
1. Герберт Шилдт «Java. Руководство для начинающих»
2. Брюсь Эккель «Философия Java»
3. Джошуа Блох. «Java. Эффективное программирование»
4. Шилдт Г. Искусство программирования на Java.

Спасибо JavaRush и всем успехов в обучении!
  • ,

Пособие для будущего Java разработчика. Собеседование и карьера


Сила — это река, из которой могут пить многие, и обучение джедая — не единственная возможность зачерпнуть из неё».
— Люк Скайуокер

Все подборки книг остались позади. Что из них читать, что нет — решать только вам. Сейчас у вас осталась одна-единственная цель: устроиться на работу и построить карьеру, не наступая на грабли.

Последняя статья разделена на разделы:
— До работы
— Собеседование
— Во время работы


В этой части очень много моего личного мнения, поэтому прошу не вырывать фразы из контекста и относиться к ней как к откровенному разговору со старым приятелем :).

До работы

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

«У меня нет образования»
Когда я совсем зеленый поступал в академию одной из крупных аутсорсинговых фирм, интервьюеры мне мягко намекнули, что диплом их вообще не интересует, поэтому вопросы были конкретные — по ООП и по базовой Java. Конечно, вы встретите вакансии, где наличие тех. образования будет четким требованием. Я лишь хочу сказать, что его отсутствие — это не препятствие в наши дни. Во многих зарубежных конторах просят BS/MS Computer Science или, внимание, relevant experience. Не убедительно?
Возможно, вас воодушевит тот факт, что технического образование нет у меня ;), но это абсолютно не помешало получить в опыт в крупных компаниях. Спросите меня сейчас, как я поступил бы, если бы можно было перемотать пленку назад? Конечно пошел бы в КПИ/НАУ, но не особо горевал бы, не поступив. Перестаньте париться по этому поводу. Пройдет время — можно и в 40 получить корочку, если вам захочется, — а пока сфокусируйтесь на том, чтобы стать junior разработчиком здесь и сейчас.

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

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

«Меня накрывает лень»
Лень — это всего лишь отсутствие мотивации. Если вы замечаете, что большую часть свободного времени вместо того, чтобы учиться и не отбиваться от курса вы, тупо занимаетесь фигней — я спешу вас уведомить о том, что, скорее всего, работа программиста — это не ваше. По крайней мере, не сейчас.
Некоторые называют лень грехом, болезнью, холерой современного века вместе с ожирением. Оставьте это дело карьерным истеричкам. На мой взгляд, всё вокруг в этой жизни пропитано иллюзией борьбы и конкуренции: кто выше, кто сильнее, кто богаче. У кого машина покруче, у кого в коллективе зарплата больше, кто в спортзале жмет штангу потяжелее, кто из девушек раньше вышел замуж и завел детей — от этого тошнит, как от вонючего фаст-фуда. Люди перестали жить и радоваться жизни, следуя своей мечте, променяв свою зону комфорта на выбор между Pepsi и Coca-Cola.
Для меня лень — это хорошо, это просто замечательно. Это обыкновенная защитная функция вашего организма экономить силы и время на бесполезные для него вещи. Человек создан быть свободным, поэтому если вы ленитесь — перестаньте стараться поднимать вашу пятую точку с дивана — возможно, она сейчас на своем месте :).

«Я иду туда из-за денег»
Если собрать разработчиков и сказать: отныне ваша зарплата будет 3-4к гривен для любого уровня, а тестировщики как будут получать те же рейты, так и останутся, то вопрос будет в другом: не то, скольких бомбанет, а то, сколько программистов после этой новости останутся именно программистами.
Много людей лезут в IТ из-за бабла. Зарплата в переводе с баксов, сыры и дорогая зеркалка. Сколько я ни работал с людьми, всегда проскальзывали разговоры по этому поводу. Я не говорю, что это плохо, я лишь хочу, чтобы вы не пытались себя уговаривать, что вы из чисто духовных целей идете, чтобы изменить мир к лучшему. Прежде чем устроиться джуниором, я знал, какие зарплаты у сеньоров, техлидов — да даже у миддла, — и эти мысли только воодушевляли: я в свое время до работы программистом о таких цифрах мог только мечтать. Называйте эти вещи своими именами и перестаньте этого стыдиться.

«Мне кажется, это не мое»
А чье тогда? Вы знаете, это легко проверить. Откройте первый том Хортсманна и начните читать, писать код из примеров. Если вам не нудно и вы не топчетесь на одной и той же главе вторую неделю — отбросьте сомнения. Изучение технических специальностей — штука последовательная. Нельзя перейти к B, не зная А, но у вас всегда будет шанс вернуться на главу назад и укрепить фундамент. Дерзайте.

«Таких, как я, много»
Всегда есть конкурс на место. Я не спорю, к примеру, сейчас тестировщиков без опыта эта цифра — 300-400, а то и больше на одно место. Да, это горькая правда, но, с другой стороны, я даже с такими показателями не могу найти достаточно серьезного пункта. Да хоть 100500 на место!!! У вас всегда есть возможность наработать опыт на своих проектах: постройте какой-то сервис, десткоп-программу, используйте весь стек, который знаете — и вы уже набиваете шишки, а остальные, кроме рассылки своего резюме, больше ничего не делают.

«На мое резюме никто не отвечает»
В продолжение вышестоящего пункта. Скорее всего, для будущих айтишников без опыта уметь написать красивое резюме — это хорошо, но когда на одну вакансию очень много людей, многие резюме друг на друга очень похожи: ты, конечно, можешь прислать фотку с декольте (если девушка) или написать много технологий, которые сам знаешь только из википедии. И в том, и в другом случае HR’у будет попросту по барабану: если в вакансии проекта должен быть человек, который, к примеру, знает AWS, то будут искать в резюме именно AWS.
Возьмите во внимание еще такой немаловажный момент, как рекомендации коллег. Это — боль любого человека, который не имеет подобных знакомых, потому как львиную долю junior’ов забирают именно оттуда (если человек по рекомендацияем — не идиот, конечно). Обычно на позицию junior берут, подчеркиваю, адекватного активного человека, который готов учиться, да даже за еду. И если такой кандидат провалится, то скорее следующим будете вы. Ну, а пока остальных собеседуют, у вас есть много направлений, где можно круто прокачаться: open source, задачки в интернете, а может, и фриланс.

«Я не пройду собеседование/хочу в конкретную компанию»
Да, скорее всего, первое собеседование будет провалом, но тот опыт, который вы получите, бесценен. С каждым последующим собеседованием вы будете уверенней и находчивей.
Как сейчас помню свое первое… Боже, что за чушь я нес?! Как было стыдно уходить после него (я запомнил того упыря, который ухмылялся мне в лицо), но когда пришел домой и все обдумал, я понял, что это был прекрасный урок. После него все последующее подобные мероприятия были пропитаны легкостью и уверенностью. Никто не умер, ищут таких, как я, значит, я подойду. Верьте в себя!
Если вы хотите конкретно в определенную компанию, то я думаю, что не открою вам популярный в нашей среде лайфхак, но все же: перед тем, как организовать встречу с этой конторой, пройдите перед этим интервью у конкурентов. Возможно, вам предложат то, от чего вы не откажетесь, или условия будут покруче. Знаю точно одно: вы не пожалеете.

«Мне и на этой работе хорошо»
Знаете, есть такое старое высказывание: Le mieux est I’enneini du bien («Лучшее — враг хорошего»). Возможно, ваша работа — не самое худшее место, ну да, начальник — козел, ну и что? Или, к примеру, третий год без премии, зато стабильная зарплата, тем более мне уже за 30. В какой-то мере оно, может, и так, только помните, что жизнь у вас одна, и ее не следует тратить на разочарования, на мнимый комфорт, когда вокруг столько всего интересного, и всей жизни не хватит, чтобы понять. Не бойтесь стать лучше, не бойтесь стать лучшим. Не слушайте никого, идите к цели настойчиво, если знаете, что это то, чем вы действительно хотите заниматься. Не бойтесь меняться!

Собеседование

По большому счету, вы можете найти это всё в интернете или поспрашивать у знакомых, но я считаю, что лишним не будет. Внизу пример собеседования на junior Java разработчика таким, каким был бы он сейчас, если бы интервьюером был я. Вопросы могут быть какими угодно, я лишь попробовал собрать что-то среднее по больнице. Представим, что вам повезло.
Стандартная схема
Шаг 1. Вам звонит рекрутер, и вы договариваетесь с ней об интервью, к примеру, завтра на 11:00.
Шаг 2. Вы приходите раньше, так как 11:00 — скорее всего, время не для вас, а для разработчиков, у которых зарезервирована какая то комната, в которой вас будут пытать. Хорошим тоном любого рекрутера будет предупредить об этом.
Шаг 3. На самом деле, начиная с шага 3, все пункты можно перемешивать, потому что собеседования могут проходить по-разному. К примеру, здесь вас могут спросить о базовых вещах, откуда вы родом, почему у нас, и так далее. Не исключено, что это может сделать сам HR, и конечно же, не исключено, что на английском. Право, это зависит от компании.
Шаг 4. Вас приглашают в митинг-рум, где у вас будет разговор с одним, двумя, тремя людьми, один из которых будет либо сеньор, либо техлид, который в будущем будет работать с вами, среди остальных могут быть Scrum-мастер, другие разработчики либо HR’ы. Вас собеседуют какое-то время, затем жмут руку и отпускают.
Шаг 5. Возможно, это будет на следующий день, а возможно, сразу же после шага 4 — у вас будет разговор с иностранным заказчиком (если такой имеется), а может, он сам и проведет интервью.
Как видите, вариантов много. Где-то есть заказчики, где-то есть еще телефонное интервью. Это просто пример.

Пример технического собеседования для Junior Java разработчика
Мне очень жалко недоразработчиков, которые читают что-то умное с целью утопить/задавить/попонтоваться перед соискателем на интервью. Если вы видите, что перед вами такой человек, и чувствуете давление и напряжение с его стороны, незамедлительно посылайте его на три веселых, потому что после успешного прохождения с этим кретином придется работать. Не тратьте свои драгоценные нервы.
Интервью, в первую очередь, должно проходить с целью узнать, что знает кандидат, а не то, чего он не знает. Естественно, если вам нужен человек, который знает что-то конкретное — спрашивайте его, не мучайте бесполезными вещами, которые не используете в проекте. Будьте людьми, в конце концов!

Внизу приблизительные вопросы, которые могут попасться на интервью. По 5 вопросов для каждой технологии.
OOP
1. Приведите пример полиморфизма из реальной жизни? В чем преимущества? Недостатки? Напишите простенький код.
2. Что такое интерфейс? Абстрактный класс? Зачем нужны интерфейсы, если можно тупо всё классами писать (немного провокации)?.. То же самое — и про абстрактный класс. Что такое default методы в Java 8?
3. Постройте иерархию классов на конкретном примере воображаемой базы данных или программы (там список разных классов рабочих из базы данных) и взаимодействие между ними (aggregation, composition).
4. Чем composition отличиается от aggregation (is-a, has-a)?
5. Как можно обойти запрет на множественное наследование в Java?

JDK/JRE
1. Чем JDK отличается от JRE? Что такое JVM?
2. Что такое classpath и для чего он нужен? Как, к примеру, загрузить другие классы в classpath?
3. Что вы знаете о classloader?
4. Расскажите о javadoc? Для чего он нужен?
5. Что такое JAR, WAR?

Java Common
1. В чем отличие статических методов от не статических? Что такое final?
2. Что такое boxing-unboxing? byte b = 127, b++, какой результат и почему?
3. Что такое wrapper’ы, для чего это?
4. Что мне нужно сделать, чтобы создать свою аннотацию? Что такое overriding/overloading?
5. Почему класс String final? Что делает метод intern()?

Data Structures
1. Расскажите о структуре Collections API в Java? Вы уже успели поработать с Stream API?
2. В чем отличие между ArrayList и LinkedList? Где лучше использовать ArrayList, а где LinkedList?
3. Расскажите как устроена HashMap? В чем особенности работы с TreeSet, HashSet? Имеете опыт с Guava коллекциями?
4. Массивы в Java, пример двумерного массива.
5. hashCode, equals на примере HashMap?

Concurrency
1. Что такое процесс? Поток? Как создать поток? Что такое syncronized? Как понять этот или тот кусок кода thread-safe?
2. Что такое Thread.sleep, а также wait, notify, yield?
3. Приведите пример deadlock?
4. Коллекции при работе с многопоточностью.
5. ThreadLocal и Atomic операции

SQL/JDBC
1. На конкретном примере достаньте из базы Users того, у которого salary больше, чем 5000.
2. Примеры INNER JOIN, OUTER JOIN, Order By, Group By.
3. Зачем нужен JDBC Driver? Примеры.
4. Расскажите всё, что знаете о ResultSet, парочка примеров.
5. Напишите простенькое DAO c применением RS.

JPA/Hibernate
1. В чем недостатки и преимущества JPA?
2. Что такое EntityManager? Entity?
3. Критерии в JPA/Hibernate.
4. One-To-One, Many-To-Many в JPA/Hibernate
5. Как бы вы сделали JOIN в Hibernate? HQL?

Spring
1. Что такое DI/IoC? Преимущества.
2. Что такое Application Context? Bean?
3. Как бывают типы IoC инициализации?
4. Singleton, Prototype в Spring? Annotation-based Spring?
5. Жизненный цикл бинов? Init-method, destroy-method? @PostConstruct, @PostDeploy?

Maven
1. Основные фазы maven, жизненный цикл.
2. Как запускать maven с тестами, без тестов? Что такое archetype, mvn dependency?
3. Профайлы в maven, как создавать, как запускать.
4. Что такое snapshot в maven? Central/Remote репозитории?
5. Плагины в mvn, принцип работы, пару примеров.

Algo
1. Понятие алгоритма, его скорость, Big-O-Notation.
2. Как найти средний елемент в LinkedList в один заход?
3. Напишите примитивный Stack? В чем разница между Stack и Queue? LIFO, FIFO?
4. Quick Sort, Merge Sort.
5. Напишите програмку, которая проверяет, является ли число палиндромом.
Согласен, может, планка загнута чуть больше в сторону миддла, чем джуниора, но я думаю, что такая подготовочка вам точно не помешает. Старайтесь углубляться в каждый вопрос. Кстати, тут не указаны многие направления в Java, прошу учесть.

Во время работы

Здесь находятся маленькие рекомендации для тех junior/middle разработчиков, которые уже устроились. Эти простые советы могут пригодиться вам так же, как они помогли в свою очередь мне.
Не будь упрямым
Перестаньте доказывать свою точку зрения, даже если она соблазнительно близка к истине. Вы уже заметили, что находитесь в споре долго, а значит, по ту сторону баррикад — обычный осел, у которого в жизни только два мнения: его и неправильное.
У нас невероятно много упрямых людей, которые стоят на своем до последнего, лишь бы их эго не пошатнулось. И это не только ваши коллеги, они просто повсюду — в маршрутке, в магазине, родственники, близкие друзья — от них не убежать и не скрыться. С ними нужно как-то взаимодействовать, даже если ты понимаешь, что человек несет открытую чушь. Более того, то же самое может случиться с вами.
Согласен, простые вещи можно объяснить даже упрямому человеку, ну, а если речь идет об архитектурных вопросах в проекте или о личном мнении? Забудь про это барахло — будь гибче. Я очень уважаю людей, которые могут признать, что они ошиблись, у всех на глазах. Именно такое качество пригодится вам как младшему специалисту — с открытым человеком сложно вступать в конфронтацию, тем более когда он признает, что учится и имеет право ошибаться.
Не опаздывай
Не важно, это испытательный срок или просто пятница, на которую все забивают и приходят к 11. Важно другое: пунктуальность — это особенность профессионала, который зарабатывает себе лишние очки на ровном месте. А лишние баллы человеку без опыта не помешают, не правда ли? Старайтесь не опаздывать и уходить с работы, честно проработав 8 часов.
Не злоупотребляй эстимейтами
К сожалению, очень частая картина, в которую я в прошлом когда-то вляпался сам. Разработчик поставил себе 8-16 часов на выполнение задания и неожиданно справился за 3-4 часа. Остальные часы он тратит на свое личное время в виде настольного тенниса, как это было со мной, или просмотра youtube и прочей развлекаловки. С юридической точки зрения — вроде бы и договорились, но с человеческой вы лишаете себя очень важных вещей:
1.Вы стоите на месте, так как заполняете лишнее время ненужными вещами;
2. Вы не развиваетесь, так как не ставите руководство в известность о своем быстром прогрессе, никто и знать не знает, что вы справляетесь с заданиями быстрее, чем ожидали;
3. Вы начинаете постоянно завышать среднее количество времени на значения, это просто путь в никуда.
Выделяй время на учебу
Шанс отстать от паровоза нереально высокий, поэтому имей ввиду, что технологии и новые версии очень быстро развиваются. Подписывайся на Java евангелистов нашего дня, читай Java дайджесты и вообще интересуйся, учи новое. Это поможет тебе держать марку и развиваться.
Помогай другим
Не бойся помогать другим, даже если они такие же зеленые, как ты. Во-первых, ты здорово укрепишь свои знания, во-вторых, получишь уважение в глазах других, заодно помогут и тебе. В такой обстановке рождаются лучшие коллективы, а также очень быстрый технический и личностный рост.
Занимайся спортом. Имей хобби
Нет, серьезно. Мало того, что люди, занимающиеся спортом, выглядят и чувствуют себя лучше, так еще и работа мозга у них на высоте! Сколиоз, поясница, лишний вес, разные проблемы с внутренними органами — круглосуточные посиделки за компом даже за пределами работы способствуют этому. Если спортом заниматься не получается (в чем я сомневаюсь), используйте маленькие лайфхаки: работайте стоя время от времени, выходите на две остановки раньше и доходите до работы пешком. Да и вообще ходите больше пешком.
Также есть риск перегореть, если программирование занимает гораздо больше вашего времени, чем 40 часов в неделю. На помощь придут личные увлечения — к примеру, фотография, музыка и т.д. Регулярно находите время для духовного.
Балансируй в личной жизни
Когда девушка/жена говорит: «ноутбук или я», нужно основательно призадуматься, какое место занимает в вашей жизни программирование. С другой стороны, начиная свой путь в IT, вам нужно доходчиво объяснить второй половинке, что сейчас вам нужно очень много учиться, чтобы добиться большего. Надеюсь, они поймут. Ну, а вы старайтесь балансировать и правильно распределять свое время.
Выходи за пределы
Будьте проактивными, если чувствуете, к примеру, что можете поделиться знаниями или у вас есть интересные темы, почему бы не организовать маленькие курсы внутри компании для других? Не бойтесь принимать участие в крупных open source проектах, если знаете, как можно помочь. Хотите написать игру, социальный проект или другую идею — делайте, делайте, делайте! Не стойте на месте, всегда ищите пути, где можно развиваться.
Будь конкурентным
Наблюдайте за новыми тенденциями, будьте в курсе трендов, которые происходят в Java сообществе. К примеру, не будет лишним, если вы изредка, время от времени, будете мониторить Java вакансии на DOU, но не для того, чтобы уйти от работы, а для того, чтобы знать, какие технологии остаются актуальными, а что потихоньку пропадает с рынка.
Также старайтесь проходить курсы на Coursera, Udacity и т.д, изучайте новые горизонты. И даже английский: старайтесь смотреть любимые фильмы/сериалы в оригинале с субтитрами, чтобы подтянуть разговорный, скачайте пару-тройку интересных приложений для изучения языка (к примеру LinguaLeo), да и, в конце концов, сходите на курсы.

Заключение

Ну вот, мой маленький проект на DOU подходит в концу. Дорогие друзья, я искренне желаю вам устроиться на работу и надеюсь, что всё, что было описано мной за эти 7 статей, будет ценным пособием для вас, даже для тех, кто уже работает Java разработчиком.
Будущие джуниоры, помните, что нет ничего невозможного, и если вы действительно поднажмете, у вас непременно всё получится. Я хочу, чтобы вы наконец определились, ваше это или не ваше, разработали подробный план обучения и хладнокровно ему следовали. Не расстраивайтесь, если взамен получаете тишину, — это всё временно, главное — верить и ни в коем случае не сбиваться с курса, а учиться, учиться и еще раз учиться.
Огромную благодарность я хотел бы выразить команде DOU за редактирование большого количества материала и за предоставление мне главного эфирного времени по понедельникам. DOU — это классное комьюнити, которое уже перестало быть просто сайтом для украинских айтишников. Также я бы хотел сказать спасибо всем комментаторам, которые читали мои статьи по диагонали и вырывали фразы из контекста. Без вас статьи не выглядели бы так интересно :)
Да прибудет с вами Сила!

Оригинал статьи взят из DOU
  • ,

С инженера в программисты

История о том, как я сменил инженерную специальность на IT.

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

Паралельно с Javarush изучал прочие интересующие темы/технологии (типа SQL, HTML/CSS), на базовом уровне знакомился с синтаксисом С++/С#. За мои успехи на Javarush администрация JR даже предоставила мне возможность бесплатно поучавствовать в проекте (за что я им очень благодарен!), но, к сожалению, я не смог выдержать тот темп изучения, который задавал Хуберт, и вынужден был покинуть проект.

Чуть позже я поступил на курсы программирования, где проучился 5 месяцев. Там я познакомился с принципами построения Java EE приложений, базовым набором EE фрейморков и написал свой первый проект. Параллельно шлифовал знания по различным технологиям на разных ресурсах и периодически «возвращался» на Javarush.

Сразу после окончания курсов начал искать работу (на поиски ушло полгода, но это уже отдельная долгая история:)).


Мое ИМХО по поводу JavaRush:

Плюсы: главным плюсом для меня изначально было наличие задач – так как для начинающего программиста проблема всегда «на чем бы потренироваться». Причем качество задач довольно высокое в плане их технической разносторонности и разнообразия (это я как человек, занимавшийся на различных ресурсах, говорю). Также понравились лекции своей доступностью и содержательностью (была бы возможность — я бы лекции продолжал читать и сейчас). Понравилось, что сразу за теоретическим материалом идет закрепление на практике. Хорошая подборка дополнительных материалов, причем из различных источников, что очень круто для новичка – сразу открываешь для себя много полезных и содержательных ресурсов. Учиться было интересно, и в целом я доволен тем прогрессом, который получил здесь за проведенное время.

Минусы: не очень удобная система проверки задач без фидбека. Поначалу это было не особо заметно, но на более высоких уровнях стал ловить себя на мысли, что зачастую 90% времени решения задачи уходит не на составление алгоритма решения/изучение темы, а на топтание по кругу: «какой же тесткейс проваливает мое решение». Особенно сильно это стало заметно на больших задачах. С одной стороны, это вроде как и челенж, но потом все же понимаешь, что время можно потратить с большей пользой.
Еще не понравилось, что ближе к 30-му уровню для того, чтобы продолжать читать лекции, нужно решить практически все задачи ничего не пропуская (вкупе с предыдущей «проблемой» из-за этого процесс обучения сильно замедляется/останавливается).

Отдельно хотелось бы выделить реальный проект – обязательно поучаствуйте в нем, чем раньше – тем лучше. Изучения Java Core – это круто, но деньги программистам платят за знание Enterprise технологий. Если не хотите/не получается участвовать в проекте на JR, ищите другие возможности – курсы программирования или начинайте что-то простенькое писать сами (хотя самому без помощи поначалу будет трудновато).

Вот моя краткая история обучения, приятного всем кодинга :).
  • ,

Как я стал Junior Java Developer

Чукча не писатель, поэтому заранее прошу прощения за не самый лучший стиль написания.
Мой путь от 1 уровня на JavaRush до должности Junior Java Developer начался год назад. Сразу после летней сессии я взялся за изучение java и решение задач на javarush. Активное обучение длилось около 4 месяцев с небольшими перерывами. Осенью, будучи на 23 уровне, я попал на курсы по джаве в одной довольно известной компании. Эти курсы в паре с универом отнимали много времени, поэтому на JavaRush пришлось забить. Было ли это правильным решением я не знаю, но что сделано, то сделано.
Курсы были в виде занятий по выходным(лекция+практика) и домашних заданий. Далее домашние задания переросли в лабораторные работы — полноценные приложения, одно из которых — десктопный таскменеджер, а другое — клиент серверное приложение для управления списком групп и студентов. К завершению этих лабораторных я уже неплохо знал Java Core, Swing, XML, Oracle SQL, Maven и умел работать с SVN. Далее по плану было веб-приложение(третья лабораторная), но я решил, что нужно что-то менять. Составил CV(в нем также добавились знание JDBC, JSP, сервлетов), написал cover letter и начал рассылать все это добро по всем самым крупным компаниям Украины в поисках работы либо оплачиваемой стажировки.
Где-то через 3 недели поисков поступило предложение одной крупной аутсорсинговой компании. Мне предложили пройти собеседование по скайпу, после этого было очное собеседование, далее — приглашение на трехмесячную стажировку. Чтобы пройти стажировку мне пришлось кардинально изменить свою жизнь: я перевелся в универе на индивидуальный график и переехал в соседний город. Стажировка проходила успешно, каждый день я узнавал что-то новое. Из-за того, что я уезжал на 2 недели на сессию, стажировка затянулась до 3.5 месяцев. И вот, стажировка окончена, я в предвкушении джоб офера и… его нет. Компания взяла тайм-аут. Мне дали неделю отдохнуть, чтобы найти для меня проект в компании. «Через неделю ты либо получишь офер, либо нам придется попрощаться» — сказали мне.
Наверное, это была одна из самых длинных недель в моей жизни. До последнего думал, что проект не найдут и придется возвращаться в родной город. Даже начал рассылать резюме в другие компании. К счастью, все сложилось хорошо, job offer я получил и уже неделю работаю на должности Junior Java Developer.
Теперь немного советов. Кроме задач на JavaRush, очень рекомендую изучить SQL, Maven, почитать про логирование, Git, SVN, Spring и Hibernate(хотя бы основы), HTML/CSS, сервлеты, jsp, почитать про юнит тестирование, протокол HTTP. И конечно же сделать хоть небольшой проект используя все это. Ну и английский язык качайте, без него никуда. У меня с ним не очень хорошо — pre-intermediate, поэтому приходиться наверстывать.
В завершении, хочу выразить свою благодарность разработчикам JavaRush и пожелать всем удачи, терпения и усидчивости.
  • ,

Советы по трудоустройству.

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