На Хабре, в песке и пыли, лежит описание классической проблемы юного подавана начинающего программиста: "как разорвать порочный круг". Возможно, мне крупно повезло, а может не могло не повезти (с моим маниакальным стремлением программировать), но раз уж я есть и я работаю программистом, значит не всё так уныло и безысходно.
Итак, если вы — «никто», а хотите найти работу настоящим джедаем, всегда найдётся тропка наверх:
Не опускайте руки, даже если отказали 10 раз — это просто ещё одно бревно на пути к вершине. Прелесть программирования в том, что даже не входя в команду «больших мужиков», всё-равно можно развиваться. Не написал кода — прочти статью. Не читается — нарисуй блок-схему. Не рисуется — придумай концепт. Тренируй мозги и засыпай их знаниями, изобретай велосипед и совершенствуй колесо — любое движение будет вести тебя вперёд.
Ещё автор вопрошал по поводу технологий, знаний и т.п.
На тот момент, смешно вспомнить, я вообще не владел технологией, которая требовалась фирме! (ASP) Но т.к. в самом программировании я варился уже лет 7, это не могло не помочь. Логично, что такую ерунду я изучил за одну неделю, за вторую разобрался с тонкостями, а к концу месяца самостоятельно делал целые страницы. «Куратор» проверял мою работу и нареканий почти не было.
Вывод? Как можно интенсивнее копайте профессиональную тему, изучайте и читайте все мэйнстримные технологии и тенденции: не пригодится какая-то технология — пригодится «логика» её составляющая. Не делали что-то практически — зато читали! А если в голове уже что-то есть, обучаться и применять это несравненно легче.
В плане «где и на чём писать» сейчас стало намного проще, чем лет 15-20 назад: технологии устоялись, маразмы отсеялись, тенденции наметились, так что примерно картина такая:
Есть ещё дюжина других областей (например, системное ПО, операционки, фермы, ИИ), но для начинающего лучше начать с простого. Нелишним будет поиграть с Linux или D, изучить протоколы TCP, HTTP. Базы данных, графика, сети — само собой. Напомню: чем больше вы знаете, тем легче идти вперёд — всё друг за друга цепляется, повышая вашу эрудицию и способность к обучению.
Удачи, юниоры!
Итак, если вы — «никто», а хотите найти работу настоящим джедаем, всегда найдётся тропка наверх:
- «По знакомству». Благо, тырнет сейчас у всех, народ где-то тусуется, что-то пишет, поэтому смело вливайтесь в крупнейшие сообщества (LOR, CodeProject, RSDN, SQL.RU, тот же Хабр). Придумайте ник, чтобы он как-то намекал на вашу специальность. Спрашивайте о работе, хвалитесь достижениями, фильтруйте потенциальных людей «в теме».
Первая моя работа была найдена именно так — увидели в IRC, немного поболтали, я описал свои (крайне) скромные познания, пригласили в контору на собеседование. Все остальные конторы Я ВЫБИРАЛ САМ — потому что уже встал на первую, самую высокую ступеньку — работу в реальном мэйнстриме.
- «Рекрутеры», «объявления». Это не такой тупиковый путь, как кажется. Иногда конторам нужен именно «подаван» — человек, на которого можно сбросить «допиливание», «отчёты», «найди суслика», «сбилди релиз» и т.п. Даже на такой работе можно «подняться» — это получится даже само собой, ибо опыт неизбежно конвертируется в знания, а много опыта — в мудрость. Главное — не выпендриваться «я достоин бóльшего»: пока ты «никто», грызи что дают. Причём ковыряние в г*не вовсе не означает, что ты не можешь это отложить и слегка влиться в тему — спросить что и как пишут, что используют, как устроено, «а что это за стрелочка» и т.п. Люди, особенно когда на расслабоне, охотно поиграют с тобой в сенсея — прими свой скромный статус и внимай.
- Прояви себя сам! Запили игру, редактор, библиотеку — любое интересное тебе дело. Поставь пометку: «ищу работу, вот контакты». Пассивные ловушки тоже срабатывают!
- Смешной (но чем чёрт не шутит?) способ: носи майку/кепку/валенки с каким-то намёком на работу: «похапэхаю за еду», «настрою девушке windows». Бывает, и в степи два осла стукаются лбами! Я бы, ища работника, такой шанс не упустил. Особенно когда «хозяин» не хочет особо платить, но рад поэксплуатировать твой энтузиазм. Обидно? Всё равно соглашайся! «За еду» — лишь условность, твоя цель — ОПЫТ! Когда он будет, не ты будешь искать — тебя будут ловить.
Не опускайте руки, даже если отказали 10 раз — это просто ещё одно бревно на пути к вершине. Прелесть программирования в том, что даже не входя в команду «больших мужиков», всё-равно можно развиваться. Не написал кода — прочти статью. Не читается — нарисуй блок-схему. Не рисуется — придумай концепт. Тренируй мозги и засыпай их знаниями, изобретай велосипед и совершенствуй колесо — любое движение будет вести тебя вперёд.
Ещё автор вопрошал по поводу технологий, знаний и т.п.
На тот момент, смешно вспомнить, я вообще не владел технологией, которая требовалась фирме! (ASP) Но т.к. в самом программировании я варился уже лет 7, это не могло не помочь. Логично, что такую ерунду я изучил за одну неделю, за вторую разобрался с тонкостями, а к концу месяца самостоятельно делал целые страницы. «Куратор» проверял мою работу и нареканий почти не было.
Вывод? Как можно интенсивнее копайте профессиональную тему, изучайте и читайте все мэйнстримные технологии и тенденции: не пригодится какая-то технология — пригодится «логика» её составляющая. Не делали что-то практически — зато читали! А если в голове уже что-то есть, обучаться и применять это несравненно легче.
В плане «где и на чём писать» сейчас стало намного проще, чем лет 15-20 назад: технологии устоялись, маразмы отсеялись, тенденции наметились, так что примерно картина такая:
- «Под Windows» — однозначно C#. Платформа .NET предлагает такой громадный выбор модулей, что редко когда вам понадобится что-то стороннее. Писать можно всё, исключая «числодробилки» и ресурсоёмкие игры. Найти работу — как два байта переслать.
- Игрушки. Это отдельная индустрия со своими подобластями, тут всё неоднозначно и лучше 10 раз подумать, прежде чем становиться узкопрофильным игроделом. Основной язык — С++.
- «Под MacOS» — если решили уйти в стан яблочников, кроме Objective-C выбора нет. По-сути, напоминает «Си с объектами» и писать не особо сложно — всяко проще, чем на С++. Про работу не скажу, но сами понимаете — «узок их круг, страшно далеки они от народа» (не путайте обилие айфонов с узкой нишей для программистов в стране победивших Окон).
- Web, HTML, JavaScript и иже с ними. Громадный рынок, без работы не останетесь никогда. Сюда же идут всякие «похапэ»(ни в коем случае!), ruby, python и, внимание, опять C# (ASP.NET)! Но предупреждаю: эта ниша просто забита всеми видами программирующих, конкуренция — дикая, зарплаты — сильно разные и чаще низкие, зато геморой с браузерами и стандартами — ежедневный. Оставьте эту область на крайний случай.
- Встраиваемые устройства (embedded). Ниша — огромная, разнообразная: от часов, микроволновок и смартфонов, до автомобильного менеджера впрыском и ядерной станции. Но тут «самоучек» нет, растут в таких областях только попав в коллектив к профессионалам с соответствующим оборудованием. На мой взгляд, скучноватая, узкопрофильная область с «никакой» вероятностью перейти на другие устройства — везде своя специфика, стандарты, библиотеки и почти всегда — Си с его неуклюжей памятью, взрывоопасными указателями и примитивной отладкой. Реже — Java, конвульсирующий труп «урезаного С++».
Есть ещё дюжина других областей (например, системное ПО, операционки, фермы, ИИ), но для начинающего лучше начать с простого. Нелишним будет поиграть с Linux или D, изучить протоколы TCP, HTTP. Базы данных, графика, сети — само собой. Напомню: чем больше вы знаете, тем легче идти вперёд — всё друг за друга цепляется, повышая вашу эрудицию и способность к обучению.
Удачи, юниоры!