Первая работа: почему так сложно найти?

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

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

Резюме


Представьте, что вы работодатель, который открыл набор людей в свою компанию. Заходите на Head Hunter. Там — десятки, а то и сотни объявлений от соискателей. У каждого есть как минимум одно резюме, у самых инициативных — больше. Еще столько же откликнулось на вашу вакансию. Читаем:

Java, HTML, ООП, Английский язык, C/C++, грамотная и поставленная речь, Android

Вы бы взяли такого человека? Я бы — никогда. Америку я не открою, сказав, что резюме — это самая важная часть в поиске работы. Еще раз — САМАЯ важная. Это 80% успеха. Это ваш билет на поезд. Может быть вы и не доедете куда хотели, но поездка не оставит вас без новых впечатлений.

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



Запрашиваемая зарплата не соответствует опыту? Программист-все-умею-и-могу? Но мы ищем Java специалиста и знаем, что человек с опытом работы 5 лет не может запрашивать 40 тысяч в Питере.

Итак, ваше резюме — это ваша валюта. Ее стоимость пропорциональна времени, в нее вложенному. Резюме сложное, продуманное, интересное — большой спрос.

В ключевые навыки пишем только то, что делаем лучше всего. Ищем работу Java-программистом — вписываем только Java и все, что к ней относится напрямую. C++ — это хорошо, но не в ключевых навыках, а в разделе «Дополнительная информация», с обязательным указанием, что имели некоторый опыт, знакомы с данной технологией, есть теоретическая подготовка в чем-либо.

Не нужно врать и вписывать то, что не знаете. Спасите себя от позора на собеседовании, пожалейте работодателя и сэкономьте его время. Если список знаний маленький — значит стоит подготовиться еще немного.

Эффекта разорвавшейся атомной бомбы просмотров резюме можно достичь, указав ссылку на личный git аккаунт.
Даже если там тестовое задание с калькулятором для компании N. HR не понимает код, но ей сказали, что ссылка на репозиторий — это круто. Пожалуй, круче только опыт работы, но пока у нас его нет.

Самоучкам, на мой взгляд, сложнее. Да, часто слышно, что «вышка» необязательна. Но это не значит, что ее игнорируют. В теории, да и на практике, человек с профильным образованием имеет хотя бы теоретические знания, прошел курс математики. А это несомненный плюс перед самоучкой, знания которого хаотичны и неполны. Из личного опыта — не взяли на стажировку в Mail.ru, т.к. они обязаны были заключать договор с институтом. То есть даже без образования, являясь лишь студентом, вам могут быть открыты дороги туда, куда нет доступа самоучкам.

Отклики

Несмотря на то что вам ну очень хочется попасть на свою первую работу, не стоит откликаться на все подряд. Вам точно хочется работать в финансовой сфере? А в генетике? Интересен front или только back? Готовы отсидеть полгода в тестировании? Уверены, что не попросят больше? Хуже, чем быть безработным, только заниматься тем, что не нравится.

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

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

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

Самая неоднозначная часть в поисках. В разных компания проходит по-разному. Кто-то предпочитает скайп, кто-то личное присутствие. Первая встреча может быть только с HR. Бывает, что несмотря на хороший опыт работы, только по личному неприятию вас девушкой, просто «потому что», вы даже не дойдете до технических специалистов.

Вопросы тоже разные. На моем первом собеседовании были простейшие вопросы по Java SE. Методы Object класса, коллекции, базовое понимание ООП. На других — от «Как бы вы узнали, в случае больших задержек в работе приложения, что именно не оптимизировано?» до «Что такое Java EE, Spring, контейнер в нем же?» или просьб написать свой алгоритм StringBuilder.reverse(). Об этом написано много и это не самое главное.

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

Собеседование в компании, где я сейчас работаю, было достаточно простым, недолгим и очень приятным. За примерно 20 минут меня спросили о моем опыте программирования, проектах в которых участвовал, кто я в целом такой. Общие вопросы вширь. В конце сказали: «Вот вам тестовое задание. Залить на гит и описаться на почту в течение такого-то срока. Вам ответят тогда-то.». Позже я узнал, что вместе со мной пытались устроиться еще несколько студентов/выпускников. Кто-то некрасиво вел себя во время собеседования, а кто-то просил зарплату больше, чем я (40000р.), при этом выполнив задание не до конца или хуже. В итоге я попал в невероятно уютный коллектив с классным начальником и удобным ритмом работы.

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

  • На какой проект вас поставят
  • Версия Java и технологии проекта
  • Будете вы разработчиком или тестировщиком (первое время)
  • Ваши обязанности/характер работы (fullstack, back)
  • Зарплата (если в вакансии не было указано), льготы, бесплатные плюшки (от кофе до книг и курсов)
  • Когда будет дан ответ приняты вы или нет (добивайтесь точной даты)
  • Misc: График, митинги, обед, отпуск и больничный и их оплачиваемость etc.

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

Напоследок обширная и более подробная статья по теме от mail.ru.

Эта статья является логичным продолжением моего первого топика по просьбам прочитавших.
  • ,

Как я нашел работу, благодаря JavaRush!

Хэй!
Хочу начать не с познавательной, а скорее, с мотивирующей записи. Самое основное о том, как я пришел к тому, что сейчас у меня есть. Под этим я подразумеваю уровень развития, как программиста. Он не высок, могло быть и лучше, это так, но за последние пол года произошло довольно много различных событий. Еще пол года назад я многократно перечитывал статью о способах сортировки массива и думал: «Как же это чертовски непонятно и сложно!». Сейчас это воспоминание вызывает улыбку и я надеюсь, что еще через пол года я буду так же улыбаться, вспоминая себя нынешнего.
Итак, мой путь программиста начался на javarush.ru
Конечно у него есть некоторые косяки, которые порой жутко бесят. Думаю, вы тоже сдавали задачу не с первого раза, а с 15го, только потому, что не написали какую-то мелочь, которую так хотел компилятор?) Но это мелочи, по сравнению с отличной структуризацией данных, которую дает курс.
Придя туда, я знал только про существование массивов и переменных. Не более. Можно сказать был абсолютным нулем. Та атмосфера, которую получилось сделать у создателей этого ресурса, просто фантастическая! По началу именно она помогала мне не бросить начатое дело. У меня действительно складывалось впечатление, что я делаю что-то по-настоящему серьезное, а не просто вывожу строку в консоль. Я стал тратить всё свободное от пар в вузе время на чтение лекций и решение задач. Тогдашнему упорству и усидчивости сейчас я могу только позавидовать. Если не получалось решить задачу, зарывался в теорию на несколько часов, перечитывая одни и те же строки снова и снова, пока не приходило озарение. Именно так это и бывает. Как барьер между вашим мозгом и нужной информацией. Вы повторяете ее раз за разом, до тех пор, пока барьер не рухнет и осознание прочитанного не прольется, как луч света. По крайней мере я ощущаю что-то подобное.
Помимо лекций и задач, я много времени смотрел ролики на ютубе, серьезно, мне они очень помогали на первых парах. Особенно выделю два канала, они просто шикарные: www.youtube.com/channel/UCuIctN7x71qam9K_ZxS1W2A
и www.youtube.com/user/devcolibri Я вам безмерно благодарен за ваши труды.
Ближе к 10му уровню я начал пробовать помогать другим JavaRash'овцам на форуме. Это зачастую скучно и сложновато, но неимоверно полезно. А еще очень приятно, когда ваш ответ помогает другому, а вам капает рейтинг. Но самое главное вы читаете чужой код. Повторяю банальное наставление, но оно очень важное: читайте чужой, и самое главное, хороший код. Новички этим пренебрегают, желая писать самим, что понятно, это всегда приятнее, но на работе, 90% времени тратится на прочтение чужих рукописей. И чем лучше вы будете это делать, тем легче вам будет в дальнейшем.
Часто возникают вопросы по поводу чтения книг. Я читал философию Java, Брюса Эккеля, и знаете, на первых парах это давалось тяжело. Книга бесспорно хорошая, но много ли толку, когда вы вталкиваете в себя страничку за страничкой? Я думаю нет. Пока у вас не выстроиться общая картина того, как устроен язык, не стремитесь зарываться в книги, в которых описываются детали и тонкости. Это будет только отталкивать вас от программирования и пугать. Например, мне за полгода так и не понадобились побитовые операции, хотя я несколько раз перечитывал главу о них, в надежде разобраться что к чему.
Следующие три месяца пролетели в чтении различных лекций, постов на форумах, просмотре видеокурсов, решении задач. Очень насыщенное и продуктивное время. Практически каждый день что-то новенькое! Но в целом я еще не мог абсолютно ничего. Это первое и самое жестокое разочарование в программировании. Вы приходите с большими надеждами, что позанимаетесь как следует пару месяцев и начнете делать крутые игры и сайты, но хорошенько обламываетесь. Спустя какое-то время появляется мысль: «Так, чувак, ты занимаешься уже n-месяцев, может быть ты сможешь сделать что-нибудь годное?» И оказывается, что нет. Появляется осознание, что в читал про эту штуку, делал вон ту штуку, знаешь об этой штуке тоже, но а толку то?
В этот переломный момент нужно побороть свое разочарование, сжать кулаки и просто продолжить заниматься, как раньше. Именно в подобных ситуациях, очень много людей опускают руки, и очень зря. В масштабах программирования, вы прошли лишь пару шагов, но зато каких!
За эти три месяца я подобрался к 20му уровню и начал подумывать о том, что всё-таки я уже на что-то способен, к тому же приближалось лето и в голове возникла бешеная идея: «найти стажировку». А вдруг? Я просто зашел на хэдхантер или ему подобный сайт, создал объявление, мол смотрите, я очень классный джава-стажер, и стал дальше спокойно, как обычно, ходить на пары залипать в задачки на джавараше. За все время пару раз написали с вопросами оценить себя, и могу посоветовать даже не отвечать на такие сообщения. Это все шлак. Что значит оценить себя? Напишу, что выше высокого, суперский java-lead, звали в гугл, не пошел, что с того? Такие вопросы просто бред и нормальные работодатели не занимаются подобной фигней, аля, писать в личку на авито или том же хэдхантере. Но к моему огромному удивлению, через какое-то время мне позвонили, спросили на каком языке я занимаюсь и просто позвали пройти тестирование в конкретный срок. Я опешил, но конечно же согласился. Это было правда неожиданно, и хоть никто бы меня там палкой не избивал, но я чувствовал сильное волнение, как перед важнейшим экзаменом. А по сути, это он и был.
У меня было два дня и я стал кропотливо перечитывать лекции, серьезно, вот прям с 3-5 и до той, на которой находился в тот момент. Время пролетело крайне быстро и пришел день Хэ. Я приехал в офис, меня он поразил. Светлый, яркий, вокруг только молодые и веселые люди. Ни одного старика. «Вот оно, IT! Как же круто» — думал я в тот момент. Меня встретили, отвели в переговорку. Там уже сидели какие-то ребята, внешне — просоленные кодеры. С усиками, хвостами, прям типичные программисты. Они болтали между собой о том, какие они крутые, а я молчал, потому что и сказать было нечего. Не скажу же я, что вчера перешел на 19й уровень, правда?
В итоге, всем раздали задания, по 5 задач и как же я был рад, когда, ожидая чего-то неизвестного и жуткого, я увидел вполне человеческие, клёвые задачки. Вроде, одна на рекурсию, две на итерации цикла, еще одна на поиск ошибки в небольшом, простом куске кода и еще какая-то… забыл. Тут натаскивание джавараша сыграло колосальную роль. Он просто с лихвой окупил потраченные на подписку деньги. Я сдал задачи и пошел домой, успокаивая себя мыслями, что получил полезный опыт и кругом одни плюсы, но в глубине души понимал, что я чертовски хочу пройти дальше. И через неделю мне перезвонили! Сообщили что я решил 4 задачи из 5 и позвали на стажировку. Счастью в тот момент не было предела. Перспектива того, что летом я буду два месяца находиться среди профессионалов, перенимать у них опыт и делать что-то реально крутое, просто сводила меня с ума. И по факту, все благодаря джаварашу и тем усилиям, которые были потрачены никак не зря.
В итоге, все оказалось немного не так, как я ожидал в своих розовых мечтах, но опыт я получил колоссальный. Объем информации, ее сложность и уровень возросли там на порядок. Мысли постоянно были разные: от «как же я теперь крут, я узнал, как использовать ajax!», до «твою мать, что это за неведомая сложная х***а?!» Но главное продолжать изучать это, не бросать, даже если вы абсолютно ничего не понимаете. Помните про барьер? Рушьте его всеми силами! На стажировке я почти перестал смотреть ролики на ютубе, они перестали быть информативными. Стал больше читать хабр и даже понимать, о чем там пишут! Вот так.
С java я пересел на C#. Не хочу их сравнивать, скажу только, что перейти было крайне легко, они очень похожи. А в конце мне предложили работу! Я был на седьмом небе и не мог поверить, что это действительно происходит. То есть я вот пару месяцев назад еле научился создавать методы и использовать их, понял, чем класс отличается от его объекта, а сейчас могу работать? Честно, я до сих пор твердо уверен, что мне жутко повезло, но это заставляет меня еще сильнее работать над собой, чтобы доказать, что выбрали меня, а не кого-то еще, не просто так. Сейчас я так и остался на 25 уровне курса, но очень надеюсь, что когда-нибудь закончу его.
Вкратце, написал всё, что хотел. Спасибо, что прочитали мой поток сознания. Огромное спасибо сообществу JavaRash и его создателям, вы действительно сделали крутейший проект! А если есть какие-то вопросы, пишите в личку вк, ссылка есть в профиле. Всем приятного и продуктивного обучения!
©Mispon

Нужна помощь тех,кто уже работает,или купил подписку!

Совсем недавно закончил 10 уровень, пролистал к 15 и тут материя закончилась.Я остался один на один со всеми новыми вопросами.Тут мне пришло в голову, что я так и ничего стоящего написать не могу.Дайте мне масив я отсортирую, выведу в возрозтающем, убивающем порядке.Но ничего действительно ценного я не напишу.У меня вопрос:
Я действительно не создан для етого, или просто слишком мало практики, слишком мало знаний?
Вспомните себя, после окончания бесплатной части.Вы были такие же?(+-)Или уже четко знали как организировать и построить логику приложения?
P.S.мне 15, денег на подписку скорей всего не будет(но шанс есть)Извините за все ошибки, так как русский не мой родной язык.
  • ,

Нуждаюсь в совете.

Добрый вечер, друзья.Намедни столкнулся со следующей проблемой, которую решить не по силам уже несколько недель. Сейчас я нахожусь на 15 уровне, до которого относительно легко добрался еще месяц назад. Но вот на протяжении всего месяца у меня опускаются руки и все по одной простой причине, что я перестал понимать каким образом решается задача. На 14-15 уровне идут задачи по принципам ООП и хоть имея знания по этой теме, я каждую новую задачу разбираю больше чем по часу и без помощи форума с приведенным решенным кодом/подсказками я обойтись никак не могу. Я постоянно путаюсь в возвращаемых переменных в различных методах. Могу долго сидеть и тупить над конструктором, хоть по отдельности все это более-менее понимаю. Помогите пожалуйста советом, что нужно подтянуть и где найти необходимую информацию, чтобы щелкать задачи 14-15 уровня как орешки?
  • ,

Советы для всех новичков и немного своей истории

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

Немного о себе.

Всегда любил математику и логику, хотел научится программировать, но не въезжал со старта в принципы и методы этого дела с помощью литературы, так как сразу в голове при прочтении каждой следующей страницы появлясось сколько непонятностей и вопросов, что книга улетала далеко на полку.Решил искать в инете какие-то интерактивные курсы с наглядными примерами и наткнулся на JavaRush, и втянуло так…
За несколько первых лекций сразу понял, что к чему, все мысли были заняты поиском решения задачи, это как наркотик.Пришел на JavaRush полным «0» прошлим летом, а сейчас я уже на 34 уровне.На собеседования еще не хожу, потому что понимаю что есть еще пробелы в знаниях, пойду когда закончу все уровни и почитаю еще немного литературы.

И так, хочу дать немного советов новичкам, может кому — то поможет и кто — то не будет повторять моих ошибок.Все написаное ниже — мой личный опыт, как абсолютно полного новичка в программировании:

1.Все мы хотим учится и при этом ничего не платить, таков уж наш менталитет.Первые уроки бесплатные и кого сразу не втянуло- могу сказать, что программирование вряд ли для вас! И так, я, как наверное и многие, прошел бесплатные уровни и остснавливатся не захотел.Денег как всегда жалко и я воспользовался 5 приглашенными друзьями, сам за ник под их логинами дошел до третего уровня и получил дополнительную подписку на месяц, так делал 2 или 3 раза(hubert прости).Сразу отмечу, что вначале задания короткие и легкие, начинаеш думать, что за пару месяцев осилиш весь курс! Но это не так!!! Дальше задания большие и сложные, для некоторых решение выносится в голове неделями, так что месяц бесплатной подписки истекает очень быстро.
Вот и я взял себе премиум подписку — И НИ КАПЕЛЬКИ НЕ ЖАЛЕЮ!!! Друзья -не тратте своего времени зря, если хотите учится, берите премиум подписку(это не реклама, все равно вы сами к этому прийдете) это секономит вам кучу времени и сил и нервов!!!

2.Мое мнение, что все надо изучать с самого происхождения, поэтому я начал свой путь программиста с очень замечательной книги «Чарльз Петцольд — К.О.Д.».В ней описывается истори появления на свет вычислительных машин, основы их работы, как они считают, вычисляют, как работает память, единици измерения информации, кодировки и много других полезных вещей.Книга читается очень легко и очень понятна, рекомендую всем.Из литературы по программированию не советую новичкам читать «Филоссофия ява»(для новичка она вам даст больше вопросов чем ответов, а когда вы приобретете немного опыта и поймете суть, конечно же ее нужно почитать).Для старта читайте лекции на курсе и дополнительные материалы по лекциям и смотрите примеры на форумах.

3.Сразу зарегистрируйтесь на info.javarush.ru и help.javarush.ru.Там найдете большинство ответов по решению задач на курсе.
Если прошли несколько уровней и поняли как решить определенные задачи то не ленитесь и помогите решить их тем, кто просит помощи в сообществе.Помогая другим вы лучше закрепите пройденный материал и в будущем кто — то поможет вам(не сомневайтесь, что помощь вам понадобится).Если не можете пройти задание не стои сразу создавать новые топики на форуме.Воспользуйтесь поиском и в 99% вы найдете уже готовые ответы на ваши вопросы по задачам, к тому же, когда вы читаете обсуждение задач, кто то можеть дать вариант решения попроще или ссылку на поллезный материал.

4.И так вы прошли первые уровни, где задачи решаются в браузере и пора установить IDEA.
В сообществе есть топики по установке и настройке IDEA, прочитайте их все перед тем как начнете решать задачи в среде разработки, так как вы сразу настроите IDEA под себя и будете хорошо ориентироваться в настройках и использовании, это секономит кучу времени, которое вы посвятите решению задач!
В идеа есть быстрые клавиши выучите основные.
некоторые советы по ускорению написания кода:
1.Если надо вывести что то в консоль печатаете sout и жмете tab — появится System.out.println();
2. psvm и жмете tab — появится public static void main(String args){};
3. alt + ins — вставка конструкторов, геттеров, сеттеров и т.п.
4.Бывает запулкаете код на выполнение а выполняется код предыдущей задачи — в нажной для запуска
задаче жмете правую миши и запускаете из контекстного меню.
5. String args — это массив параметров(строк) которые передаются программе в начале ее работы.С этого
массива вы извлекаете нужные вам строки и оперируете ними в main.чтобы передать программе список
строк жмете Run -> Edit configurations и в строке Program arguments вводите строки через " ".Чтобы
использовать их содержимое args[0]- 1-ая строка,args[1]- 2-ая… Напр.System.out.println(args[0]) —
выводит первый параметр.Короче с args работаете как с массивом(Когда попалась первая задача с парамет-
рами я нифига не понимал что это, думаю многим поможет)
6.@Override — обозначает переопределенный метод
7.Прочитайте про рефакторинг

5.В процессе обучения будете узнавать много новых классов.Если вы используете класс впервые то рекомендую
найти в гугле явадоки(описание классов).Обращаем внимание на конструкторы, методы(особенно их принимаемые значения и главное какой тип они возвращают).Новые классы сарайтесь сразу освоить-почитайтеБгде они применяются, выучите методы.Иногда простое описание класса не дает полного представления о нем- я рекомендую посмотреть исходный код класса, это временами помогает понать как работает его метод и как он устроен.В исходном коде, код отрефакторин специалистами, написан кратко и ясно, читая исходники вы научитесь составлять красивый читабельный код и меньше времени будете тратить на написание своего.И так, где же взять исходники? Основные класс вшиты в идеа.В IDEA слева, где папки проекта, вверху есть кнопка со стрелкой Project, нажмите на стрелку и виберите Packages, внизу есть папка Libraries там в подпапках вы найдете исходники стандартных классов.

6.По идеа пока все, остальное осваивайте сами, я рассказал о том что используется чаще всего(Если бы вы знали сколько раз я написал public static void main(String args){}… пока узнал о psvm + tab).
Теперь по задачам:
1.Внимательно читайте условие!!! Называйте поля, классы и методы точно так, как вас просят, даже если
программа работает правильно, валидатор не подтвердит решение если хать одна буква отличается!
Внимательно следим за пробелами и их колличеством.
В задачах на потоки используем BufferedReader.
2.Освойте цикл for-each — с ним код лаконичней
3.Обрабатывайте исключения и проверяйте ссылки на null!!!
4.После того как решили задачу, зайдите в сообщество и посмотрите логику решения других.Бывает люди
код в несколько строк заменяют мемуарами
5.Принимайте опыт других и передавайте свой
6.Если задача все же для вас трудна и вы решили создать свой топик — выкладывайте условие задачи, свой
читабельно оформленный код, желательно с комментариями, и суть проблемы.ЗАПОМНИТЕ каракули читать
никто не будет и вам не помогут.

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

P.S. Учитесь, учитесь и еще раз учитесь!!! Ваше будущее в ваших руках!!!