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



Джуны на удаленке не нужны


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

И так, меня зовут Сергей, я enterprise-разработчик, я живу в городе Уссурийск (Приморский край, 200к население, +7 часов с Москвой), у меня нет профильного образования, и я ни дня не работал в офисе разработчиком. И эта история про то, как я дошел до такой жизни.

Я не ставлю своей целью воодушевить ребят из провинции, чтобы они все дружно бросились и начали пытаться устроиться на удаленку. Я хочу показать то огромное количество времени, которое я потратил, чтобы дорасти до разработчика (без всякого сомнения, если бы в моем городе был «офис», я бы сделал это гораздо быстрее).

После университета


Изначально я планировал работать в игорной сфере, поэтому после школы пошел на «Социально-культурный сервис и туризм», однако на 2 курсе вышел закон РФ о запрете игорной деятельности. Хотя я живу в Приморском крае, где должны были к 2012 году построить казино, все сроки сорвали, и фактически к моменту моего выпуска ничего не было. Точнее были подпольные казино, но это были те места, где тебе бы точно не хотелось работать.

Как итог, я устроился сначала в оптовую компанию по продаже риса, потом ушел оттуда на монтажника подключения интернета, а потом уже в поддержку в 1С-Франчайзи. Это все заняло примерно полтора года. Как говорится, в руках красный диплом универа, и все двери перед тобой открыты.

Техническая поддержка


Все это время я просматривал что-то более подходящее, и в один день на «Моем Круге» увидел вакансию в ночную техническую поддержку. Я прикинул, что с учетом моего часового пояса, 7 утра по Владивостоку, это 0-00 по Москве, я смогу работать в ночную смену фактически днем. Я откликнулся, прособеседовался и устроился на работу.

Естественно, просто так левого человека не возьмут в поддержку. Я еще со школы увлекался сайтостроением и делал различные сайты для своей команды по дотке и местного игрового клуба. Плюс из-за моего образования, у меня был достаточно хороший английский язык, что позволило мне также оказывать поддержку клиентам из Австралии, Новой Зеландии и США. У меня фактически был уровень такого хорошего веб-мастера с английским языком, плюс опыт поддержки из 1С.

Движение дальше


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

Это был 2014 год, везде кричали, что php-отстой, что python – это будущее и прочее (Как я был наивен и глуп!). Поэтому я начал изучать программирование с него. Как я это сделал:

1) Скачал книги Марк Лутца «Изучаем Python», «Программируем на Python». Книги дались достаточно сложно, ибо читать их было крайне скучно, тем не менее, они дали очень хорошую базу. Если у вас есть выбор, начать быстро или прочитать какую-то фундаментальную книгу по программированию, то я настоятельно рекомендую начать со второго, чтобы получать необходимую базу. Важно понимать, не только «Как», но и «Зачем» и «Почему».

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

2) Потом я решил сделать что-то более значимое и собрать статейный портал на Python. Прочитал книгу по Django (Если честно не особо её понял – информация давалась слишком быстро и слишком «вакумно»). Поэтому посмотрел пару вступительных роликов по Django от ITVDN и обратился к официальной документации.

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

3) Через год мне наскучило разрабатывать проекты на Django. Я стал смотреть, что еще можно придумать на Python. Я, наверное, прочитал все книги по Python, что были на сайте Ozon. Начиная от книги по Devops, заканчивая компьютерным зрением и машинным обучением. Эти темы не особо меня вдохновили (я не видел прикладного значения в моих масштабах, что я могу использовать прямо здесь и сейчас), но эти термины из какой-то неведомой магии и «скайнета», превратились в обычные формулы и прикладные библиотеки.

4) В итоге, я решил немного поднять свой уровень компьютерной грамотности и начал читать книги по C/C++/Java/Компьютерным сетям/PostgreSQL/TDD и Корпоративным паттернам. Если честно достаточно интересный опыт, когда ты понимаешь, как работает другая технология, на что она опирается, какие несет в себе сложности, и как она решает «сложные задачи» из твоего стека.

Отдельно можно отметить книгу по Spring, которая показала, насколько корпоративное приложение сложнее, чем «easy-going» проекта на Django.

Тестирование и Автоматическое тестирование


Через три года работы в поддержке, мне, к сожалению, отказали в переход в отдел разработки, но появилась возможность получить позицию в отделе тестирования. К тому моменту я свободно знал Python и мог в Java, поэтому было бы глупо не согласиться.

Отдел тестирования дал достаточно хорошее понимание, как ведется разработка сложных систем, как взаимодействуют команды внутри себя и между собой. Конфигурация различных тестовых окружений, приоритезация задач и многое другое.

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

Отдельно понравилась тема тест-дизайна. В компании был большой пул различных курсов по тестированию, поэтому с ними можно было узнать много крутых фишек, о которых ты вообще раньше не задумывался из сферы тест-дизайна. Например, проектирование минимального числа тест-кейсов, чтобы покрыть наиболее количество вариантов системы с помощью pairwise (http://www.pairwise.org/) генераторов. Это крутые штуки из работы QA-Инженера, о котором многие разработчики даже не задумываются.

Переход в разработку


Через полтора года в отделе тестирования, я получил договоренности, что если я предоставлю рабочий прототип на php-стеке, я получу возможность пройти стажировку в отделе разработки.
Один месяц у меня ушел на книги по PHP. После Python и Java освоить PHP оказалось достаточно легко, хотя время от времени и появлялись вопросы «А почему тут так нельзя».

И три месяца я потратил на АПИ-сервис на Symfony (веб-морда, личный кабинет, бизнес-логика, почтовые уведомления, пдф-генератор, парсинг сложных json-структур и прочее). Внезапно оказалось, что Symfony – это своего рода гибрид Django и Spring, поэтому каких-либо проблем с пониманием вообще не возникло.

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

Первые месяцы в качестве разработчика


Мне предоставили ментора, который фактически ревьювил мой код и подсказывал, почему нужно делать так, а не иначе. Иногда созвоны длились по полтора-два часа, когда детально разбирался код по шаре и давались рекомендации, как его улучшить. Фактически получалось так, что я давал решения в нужные сроки с нужной логикой, но за счет того, что у меня не было опыта корпоративной разработки, они получались слишком запутанными и усложненными. Плюс время от времени появлялись вопросы по работе Redis/RabbitMQ/Elastic итд. Но все же главная работа велась в сфере, чтобы упросить код и сделать его тестируемым (когда пишешь код для себя, даже не задумываешься, что другие люди не смогут его читать). Как итог, за 4 месяца мой код подтянулся по стилю до корпоративных стандартов.

Реально, когда пишешь код сам, даже не задумываешься о том, как его будут понимать другие люди, и правильно ли излагать свои мысли таким образом. Опыт работы в команде сложно чем-то заменить.

Общий стаж, чтобы получить работу разработчика на удаленке с нуля – 4 года, 9 месяцев.

Как итог об удаленной работе с нуля:


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

Комментарии (74)


  1. Ikitos
    22.11.2019 12:13

    Норм написал)


    1. ekha
      22.11.2019 23:49

      +1. Особенно на удаленку падки свежевышедшие, достаточно умные студенты, которые, в принципе, по хорошему ТЗ смогли бы написть рабочий прототип. Им кажется, «все могу сам с нуля». Пока проекты такие, что действительно можно за пару недель в одного сделать ))


      1. Viceroyalty
        23.11.2019 09:43

        На фриланс биржах в основном небольшие и есть, но это совсем другой оффтоп


  1. onegreyonewhite
    22.11.2019 12:23

    Тёзка да ещё и тоже с Приморья — привет!
    Так а как сейчас с работой? Так же в PHP стеке?


    1. bakotin Автор
      22.11.2019 14:53

      На ПХП-стеке, с работой все хорошо.


  1. resetme
    22.11.2019 13:30

    Выводы верные, но я бы заменил «стремится к нулю» на просто «равна нулю». Так будет правдивее.


    1. dustdevil
      22.11.2019 14:36
      +2

      Автор — достаточный повод утверждать что таки не равна. Но асимптотически стремиться.


      1. resetme
        22.11.2019 15:11

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

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


        1. dustdevil
          22.11.2019 17:57
          -6

          Поверьте, прекрасно знаком с этой проблемой. У меня в неделю по 3-5 собеседований.
          60% не могут ответить сколько базовых типов данных в php…


          1. druidvav
            22.11.2019 20:07
            +8

            уже 10 лет работаю с php и вот тоже не смогу ответить на этот вопрос. печалька.


            1. dustdevil
              22.11.2019 20:19
              -7

              www.php.net/manual/ru/language.types.php

              Ответ очень прост. Их всего 8. Все, вопрос пора снимать с повестки на собеседованиях, теперь будут знать ВСЕ (шутка юмора)! А если серьезно, у меня реально складывается впечатление, что большая часть программистов читает Хабр чаще чем доку php.


              1. druidvav
                22.11.2019 20:20
                +10

                Невероятно полезная информация! Пригодится в работе!


              1. Hardcoin
                22.11.2019 20:40
                +6

                Более плохого способа отделить зерна от плевел трудно придумать.


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


                1. dustdevil
                  23.11.2019 00:19
                  -7

                  Да я вижу что вы «посчитали». А если бы «почитали» — то поняли бы, что: «Iterable — псевдотип, введенный в PHP 7.1.»

                  Будьте добры, приведите мне переменную к типу Iterable… Когда сможете — возьму на работу. И простите, свою «слишком большую» вы, видимо, получаете за зря. Хотя тут вопрос, что считать «большой» зарплатой.


                1. dustdevil
                  23.11.2019 01:27
                  -3

                  «Псевдотип callback использовался в этой документации до того, как был введен тип callable в PHP 5.4. Он означает в точности то же самое.»


                  1. Hardcoin
                    23.11.2019 01:41
                    +3

                    Судя по второму комментарию, вы уже осознали, что не так с вашим предыдущим. А вот что не так с вашим вторым комментарием — пока нет. Если callable засчитывать, то получается девять. Как же у вас восемь получилось, можете их перечислить?


                    1. dustdevil
                      25.11.2019 15:02

                      Ох не хотел я сюда больше лезть, но…
                      Перечисляю: булев, целочисленный, число с плавающей точкой, строка, массив, объект, ресурс, null. Почему сюда не вошел callback/callable, ведь «был введен ТИП callable в PHP 5.4»? Удивительное рядом, это ошибка перевода. Оригинал выглядит так: «Callbacks can be denoted by callable type hint as of PHP 5.4.». Надеюсь, разница между «type» и «type hint» понятна. Жаль что многие этого не понимают на интуитивном уровне, именно для них и появляются вопросы про количество типов на собеседованиях.


                      1. Hardcoin
                        25.11.2019 19:58

                        Ох не хотел я сюда больше лезть, но…

                        Ну почему же, вполне достойный ответ. Ещё и gettype, кстати, считает Callable объектом, а не отдельным типом (те, которые не array, конечно).


                        На мой взгляд, учитывая, что в самой документации написано "ten primitive types", это говорит просто о плохом дизайне языка. Даже авторы документации (в т.ч. на английском) не видят четкой разницы. К слову, предположение, что "к типу можно привести", некорректно, т.к. к типу resource это сделать не получится.


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


              1. Big_Shark
                22.11.2019 21:56
                +5

                Ответ очень прост. Их всего 8.


                https://www.php.net/manual/ru/language.types.intro.php
                "PHP поддерживает десять простых типов."

                Так 8 или 10?


                1. fshp
                  23.11.2019 00:12
                  +5

                  Представьте сколько он кандидатов отсеял и какое о себе впечатление оставил.


                1. dustdevil
                  23.11.2019 00:20
                  -3

                  8.
                  Псевдотипы не считаются базовыми.
                  Но если кандидат аргументирует свое «10» тем что так написано в документации — это скорее плюс чем минус. Правда, придется объяснять почему он не прав.


                  1. TerraV
                    23.11.2019 01:02
                    +2

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


                    1. dustdevil
                      23.11.2019 01:19
                      -5

                      Всегда сам.
                      Да, тут тоже пару минусов, плиз. Свое мнение о местных php-«разработчиках» я сделал…


              1. Thereauoy
                23.11.2019 00:07
                +2

                Вот серьезно, хоть кому-то, хоть когда-это эти знания могут быть полезны хоть на какую-то долю хоть какого-то процента? Вы правда считаете, что это адекватный вопрос для собеседования? Да 95% разработчиков со стажем понятия не имеют сколько базовых типов в PHP


                1. dustdevil
                  23.11.2019 00:22
                  -4

                  Ну ахренеть… Я беру разработчика, который претендует минимум на зарплату приличного мидла, а он не знает сколько типов в языке? Простите, это все равно что брать филолога, который не знает сколько в русском языке падежей.

                  Ахренеть просто…


                  1. stas2s
                    23.11.2019 00:42

                    Сколько букв в русском алфавите. Не помню. Читаю по 4 книги в неделю. Нормально пишу. Не используемая информация забывается.


                    1. dustdevil
                      23.11.2019 00:56
                      -3

                      Согласен. Кроме одного «но»… Это базовые академические знания предмета. Утрируя: Вы пришли на экзамен по математике в ВУЗ… Вас просят даже не доказать, а хотябы сформулировать теорему Пифагора… Нормальным ответом будет «нах мне надо, до 10 считать умею, а больше мне в жизни не пригодится!»? Почему собеседование на вакансию с требованием «глубокое понимание основ языка php» — нечто отличное?

                      Вы не помните количество букв. Филолог, в моем понимании — обязан. Кстати, их там 33, с первого класса помню почему-то.


                      1. oldbie
                        23.11.2019 02:17

                        Вас просят даже не доказать, а хотябы сформулировать теорему Пифагора…


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

                        Конечно это не касается, например, второго закона термодинамики потому что он так и называются.


                      1. saboteur_kiev
                        23.11.2019 03:21

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


                      1. AgentRX
                        23.11.2019 08:57
                        +1

                        Ну вот я в C++ не помню, сколько там базовых типов данных, это не мешает мне их использовать в работе сеньора. Для этого надо понимать язык, а не обладать «базовыми академическими знаниями предмета».

                        Мало того, есть куча фреймворков, которые нужны в работе. Там тоже все типы помнить?) stackoverflow еще никто не отменял)


                      1. ainoneko
                        24.11.2019 06:48

                        Это базовые академические знания предмета
                        «Сколько планет в Солнечной системе и океанов на Земле?»
                        (С тех пор, как многие учились в школе (получая базовые знания), убрали Плутон и добавили Южный океан.)

                        «Что тяжелее: килограмм ваты или килограмм железа?»
                        (На этот вопрос есть три правильных ответа, в зависимости от интерпретации (и та, что даёт Перельман в своей книге, мне кажется менее естественной).)


                      1. stas2s
                        25.11.2019 15:35

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

                        После этого вопроса отношение, стало, чтож вы не знаете простых вещей, подучитесь, а я разнервничался.(блин 6 лет на php, до этого 3 года на Си)
                        На этом конкретном собеседовании я более чем подходил на их вакансию. Более того им реально бы повезло. А меня привлекло, что пешком было 15 минут идти и нормальная контора. А я в тот момент думал выходить из декрета(фриланса). В итоге стал работу искать только через полгода и устроился на в два раза выше зарплату, но час добираться. Мне бы лучше поближе. Но рядом с домом редко вакансии появляются.


                  1. a1111exe
                    23.11.2019 02:20
                    +2

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

                    Вам шашечки или ехать? Это риторический вопрос, Вы однозначно утверждаете, что шашечки важнее.


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


                    Интересно, а про количества встроенных функций, классов стандартной библиотеки и т.д., Вы тоже спрашиваете? Ещё, наверное, сигнатуры и тонкости поведения всех встроенных и библиотечных функций/методов надо знать наизусть, да?


                    Вот Вас спросили про пользу этого явно бесполезного знания, а в ответ Вы привели эмоции и аналогию, из-за которой я бы Вас не взял/уволил по причине проблем с логикой. Которая, кстати, для разработчика неизмеримо полезнее бесполезного количества базовых типов. Объясняю:


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


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


                    Или можно сравнить филолога и учёного, изучающего теорию языков программирования. В теории языков программирования, применительно к исследуемым языкам своей специализации, наверное, имеет академический смысл иметь представление о разных количествах разных сущностей в этих языках.


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


                    1. Rive
                      23.11.2019 19:26

                      Я полагаю, попросту есть контент, полезный для прохождения собеседований (и в основном только для этого). Список этих вопросов легко гуглится, при прохождении собеседований я натыкаюсь в основном на них и подозреваю, что интервьюеры точно так же перед собесом вбивают в поисковик «вопросы на собеседовании %langname%».

                      Для знакомства со страшным неподдерживаемым говнокодом есть испытательный срок или просьбы скинуть адрес репозитория с пет-проектами на почту, а до него кандидат пропускается через мясорубку более дешёвых фильтров, а-ля:
                      — Кандидат — homo sapiens.
                      — Кандидат умеет говорить.
                      — У кандидата есть телефон и интернет.
                      — Кандидат уже где-то работал (и возможно, огорчён этим прискорбным фактом, но тщательно это скрывает).
                      — У кандидата есть одежда.
                      — Кандидат умеет вести светскую беседу о предыдущих местах работы, указанных в распечатке резюме.
                      — Кандидат выглядит умным (но не чрезмерно занудным) при вопросах с ответом, требующим меньше двух минут изложения.

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


                  1. LibrarianOok
                    23.11.2019 12:12

                    И сколько же их?


            1. kimisa
              23.11.2019 11:59

              Вот и у меня после 7 лет программирования на собеседовании был вначале ступор, когда мне задали такой же вопрос. Т.к. никогда не задумывалась на эту тему и все их ни разу не перечисляла. Просто при программировании знаю, что тут нужен один тип, а здесь другой.
              Аналогичная проблема и с PSR. Это прямо сейчас модно. А я открыла, прочитала, поняла, что я так и пишу. И вот скажите зачем мне запоминать их? Если я так и работаю? У меня что при ревью кода спрашивают показать где и какие номера у меня применены?


        1. nikbond
          22.11.2019 23:46

          И тем не менее после энного количества попыток действительно «вдруг прокатывает». Тысячи примеров.


    1. Alexey-nla
      22.11.2019 14:52

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


  1. MisterSmith
    22.11.2019 16:04
    +3

    Вообще то это результат упорного труда — «прочитать все книги», «АПИ-сервис на Symfony» — разве могло быть иначе?


  1. alexsertov
    22.11.2019 16:12

    А с каких книг по Java вы начинали? И что рекомендовали бы в первую очередь?


    1. bakotin Автор
      24.11.2019 02:24

      Герберт Шилдт — Java, руководство для начинающих. Но тут правда нужно понимать, что я её читал уже после книг по Python, с пониманием, что такое программирование. Так что сложно сказать, насколько она хороша прямо с нулевого уровня.


  1. AliluyaFak
    22.11.2019 16:49

    Годный материал, люблю личные примеры. А если что не получалось, где кроме Хабра вопросы задавали и ответы искали? Еще было бы неплохо список литературы и прочего кинуть для новичков. А так спасибо большое, что поделились личным опытом!
    У меня как у новичка чуть ли не каждый день проблемы, которые я решаю, постоянно спрашиваю, ищу инфу. Например, на одном проекте перешел с PHP 5.4 на 5.6 и бац не работает myht.ru/question/55272814-php-lokon-slomana-v-5-6-protiv-5-4-centos7 Сейчас это просто пофиксить, а раньше казалось катастрофой.


    1. bakotin Автор
      24.11.2019 02:28

      На самом деле ответы практически всегда есть в сети (просто поиск из гугла на английском), либо в документации — просто надо понимать, что именно тебе нужно (с этим сложнее было, юзал тостер и стак оверфлоу — на тостере подсказывали, как-то быстрее).


  1. hookenful
    22.11.2019 17:45

    Brablay, бро!
    :shock: :shock:


    1. bakotin Автор
      24.11.2019 02:29

      Заголовок спойлера


  1. GeBoN
    22.11.2019 18:51

    А как хорошо начиналось

    Разработчиком на удаленке – c нуля до героя

    и как закончилось
    Как итог об удаленной работе с нуля: ...

    «Вы растоптали мои эдельвейсы» (с) Агата


  1. Northerner19
    22.11.2019 19:51
    +1

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


  1. Vaarrant
    22.11.2019 20:05

    Отличный пример. Автор, а Вы так и планируете дальше быть на удаленке? Мысли переехать в другой город, где можно стать офисным планктоном, не посещали?


    1. bakotin Автор
      24.11.2019 02:48

      1) Планирую переезжать «на запад» — главная цель получить московский часовой пояс, чтобы было комфортнее работать. И хороший спектр услуг в «шаговой доступности». Например, для супруги делали операцию на глаза, приходилось ездить во Владивосток. И то повезло, там открыли современный глазной центр буквально пару лет назад, так бы в Хабаровск пришлось.

      2) В офис не планирую. В РФ буквально несколько компаний, которые делают проекты сопоставимой сложности на ПХП с тем, где я сейчас работаю. И все эти компании сидят в Москве, а я не особо хочу в Москву.


  1. Bringoff
    22.11.2019 20:56
    +1

    Работаю на удаленке больше 3-х лет, до этого фрилансил понемногу. Образование слегка непрофильное. В офисе за все время работал 2 дня в одной из компаний, чтобы познакомиться с людьми. И прекрасно себя чувствую. Все возможно, но нужен определенный склад ума, чтобы так работать.


    1. bakotin Автор
      24.11.2019 02:54

      И адекватную семью, чтобы и супруга понимала, что если ты работаешь, надо не отвлекать тебя и не шуметь, и чтобы родители не «намекали» на поиск «настоящей работы».

      Хотя, допустим с появлением детей, многие удаленщики либо уходят в коворкинг, либо снимают где-то офис, студию. Благо в регионах ценник не сильно кусается.


      1. Whuthering
        24.11.2019 22:34

        чтобы родители не «намекали» на поиск «настоящей работы».
        Да пусть намекают себе на здоровье, человеку знающему и успешно делающему своё дело на подобные намёки хоть от близких, но мало понимающих в сути вопроса людей должно быть в целом пофиг.


  1. mav1984
    22.11.2019 23:49
    +1

    Устроился python разработчиком на полный рабочий день на удаленку без предшествующего опыта на питоне (пройдя удаленную стажировку 2 месяца, из которых 1-ый месяц бесплатно, сейчас уже полгода отработал на этом месте, полет нормальный), до этого 5 лет фриланса (понятно, что тоже удаленного) на VBA.

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

    Мой вывод: устроиться на удаленку без опыта офисной работы вполне реально: либо через стажировку, либо через фриланс.


  1. Loriens
    22.11.2019 23:50

    Также думал, что удалёнке джуны не нужны.

    Имею бакалавриат на Прикладную математику. Наклепал что-то своё на Swift, стал искать работу в СПб. Никому был не нужен, от безысходности стал откликаться на вакансии на джуна на удалёнку. Нашёл работу за 3 дня на адекватные для моего уровня деньги (хоть и низкие для СПб).

    В целом был очень удивлен и после этого стал считать, что на удалёнке любой уровень сойдёт, лишь бы ты показал достойный код.

    P. S. Довольно быстро ушёл в офис, потому что там и плюшки, и зп официальнаая и побольше. Официальное оформление и на удалёнке есть, но редко и точно не на джуна.


    1. kimisa
      23.11.2019 12:08

      3 года подряд работаю на удаленке и всё время по трудовому договору. И при собеседовании сразу об этом выясняю. Фриланс это другое.


      1. Loriens
        23.11.2019 13:17

        Могу сказать, что это классно. В моей первой компании в принципе никого из удалёнщиков не оформляли официально, при этом нас было достаточно много. В то же время мой друг всегда работал на удалёнке с официальным оформлением, но только спустя 10 месяцев опыта. На первой работе также было без оформления.

        Из всех вакансий, что я смотрел на джуна на удалёнку на Swift, большинство было без оформления. При этом на вакансиях мидла уже такой проблемы не видел.


        1. kimisa
          23.11.2019 15:03

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


  1. 411
    23.11.2019 00:07

    Совсем с нуля конечно же сложно.

    Но с фразой

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

    Собственно я бы в большинстве случаев джунам рекомендовал бы идти в офис, да ещё и в идеале к хорошему тимлиду, но и альтернативы тоже стоит рассматривать. Скорей не рекомендовал бы именно фриланс.

    В целом выводы автора по своему опыту крайне неверны и скорей вводят в заблуждение. Просто надо понимать, что путь удаленщика в начале всегда сложнее, и можно быть к нему не готовым, поэтому с хорошим опытом переход даётся гораздо проще.


    1. RomeoGolf
      23.11.2019 13:50

      А можно про вас чуть подробнее? Что за команда и есть ли вакансии?


  1. AcckiyGerman
    23.11.2019 01:06
    +1

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

    Вместо долгой и трудной карьеры внутри одной конторы, автор (с его хорошим знанием английского, со знанием Python, Java, Symphony и опытом написания нескольких сайтов на Django), легко нашел бы кучу предложений среди англоязычных компаний, ну или на Upwork.


    Вместо этого он продолжал кушать кактус и выслушивать сентенции в духе "чтобы стать стажером, нужно выучить PHP".


    Я не то, чтобы против PHP, просто у него довольно ограниченная область применения, в отличии от Java & Python. А писать под веб когда-нибудь надоест и захочется писать игры, ML, системные утилиты, etc.


    Так что мой совет Junior'ам — если вы уж знаете основы Python (Java, C#, whatever), но в вашей компании (куда вы устроились тестировщиком) требуют учить язык X (и только потом вы станете "стажером") — плюньте на них и сходите на пару удаленных собеседований (а учить лучше JS — он везде в вебе нужен). Для вас откроется безграничный мир предложений удаленной работы, и с гораздо более высокой ЗП.


    1. stranger_shaman
      23.11.2019 02:12

      Но он не пошел и не сделал… Все у него стремится к нулю, да еще и глупость везде мерещится. Неудивительный и предсказуемый итог.
      Надо верить в себя и заниматься любимым делом.


      1. mkll
        23.11.2019 04:22

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


      1. Pavel1114
        23.11.2019 04:30

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


        1. a1111exe
          23.11.2019 05:21

          Вам знакомо много людей, перешедших из техподдержки в разработку не меняя работодателя?


          У меня нет статистики, но сложилось впечатление, что в относительно больших компаниях с налаженной бюрократией такой переход граничит с невозможным. Особенно, если учесть, что обычно специфика техподдержки очень и очень далека от специфики настоящей разработки. В не очень больших фирмах (20-50 работников) с относительно неформальными отношениями между сотрудниками и начальством может действительно сложиться ситуация, когда фирма растёт, образуются вакансии, и начальство предпочитает по возможности заполнять их изнутри. Не уверен, что таких фирм реально много.


          Я знаком с несколькими людьми, которые перешли из техподдержки на должности разработчика и системного администратора. Все в одной фирме, проработав в техподдержке порядка 2-3 лет (один через год, но только потому, что выгорел и написал увольнительную, что заставило начальство сильно ускориться и получился win-win) + сам процесс перехода полностью на новую позицию затягивался примерно на год. Никто из моих знакомых из других компаний, больших и не очень, никогда ничего такого не рассказывал. Но опять же, это, конечно, не статистика.


          В общем, всё, что я хотел сказать — далеко не очевидно, что автор переоценивает свои навыки. Переход между двумя очень разными по требованиям должностями в рамках одной фирмы это не что-то само собой разумеющееся.


          1. Pavel1114
            23.11.2019 05:58

            Я не написал что это очевидно. Я написал «возможно автор немного переоцивает свои навыки».

            У меня нет статистики, но сложилось впечатление
            вот и у автора тоже, а выводы как будто исследование провёл.


          1. Jammarra
            23.11.2019 13:10

            Суть в том что компании не нужен плохой разработчик. Им нужен хороший сотрудник тех поддержки.


            Я тут в одной известной на хабре компании работал одно время. И в ней руководителю прямым текстом говорил что хочу заниматься чем то более серьезным в своей области и иметь большую ЗП и перспективы по её росту.


            Что бы вы думали, меня продолжали кормить завтраками и ставить в смену на потоковые задачи потому что "некому работать", изредка давая что то интересное.


            В какой то момент плюнул и нашел другую работу, где нет ограничений на то чем я буду заниматься. И где ЗП на старте предложили в 2 раза больше.


            1. stranger_shaman
              23.11.2019 16:00

              Вот о том и речь. Место всегда найдется, особенно если ты любишь свое дело.


  1. zolt85
    23.11.2019 08:03

    Если «удалёнка» — сама цель, ничего не выйдет. Если цель — стать разработчиком, то путь автора показывает одну из возможностей, «удалёнка» в его случае вынужденная необходимость, т.к. в месте пребывания нет подходящего работодателя. Мы все были когда-то «джунами», и все прекрасно понимаем, что для того, чтобы выйти из этого «состояния» (или войти в него?) надо работать, работать и ещё раз работать. А пока работаешь — учиться, учиться и ещё раз учиться, как завещал дедушка Ленин. По-другому никак, это закон природы, навык надо развивать и тренировать.


  1. chilicoder
    23.11.2019 08:31

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


  1. Andruh
    23.11.2019 15:24

    Работаю удалённо 3 года после достаточно бурной офисной карьеры. До этого работать удалённо не хотелось, потому что всегда тащился от опытных коллег и учился у них. Настал момент, когда я понял, что уже не учусь. А быть гуру в офисе — не самая интересная роль (у меня нет проблем с самооценкой, если что).
    Когда смотрю на молодых удалённых коллег, не понимаю, почему они не пользуются возможностью поехать в Москву и работать в офисе. Даже если ты уже стал разработчиком, тебе есть чему учиться в офисе — и там это происходит быстро.
    Так что да, подтверждаю, что пока учишься хоть чему-то — лучше учиться в офисе.
    И да, я знаю и использую много языков, но ни в одном не знаю количества базовых типов. Знал, возможно, только студентом про Pascal и C, да и то не припоминаю, чтобы даже на экзаменах были вопросы про количества.


  1. annasmirn
    23.11.2019 17:33
    +1

    Знаю много разработчиков, которые на удаленке очень даже неплохо зарабатывают. И очень даже довольны


  1. OnYourLips
    23.11.2019 23:29

    Как любят говорить ребята с Тостера, в частности кураторы большинства разделов, джуны на удаленке никому не нужны

    Как правило это голословные пустые утверждения, основанные на своем неудачном опыте.
    Во всех удаленках, где я работал, были джуны. Количество айтишников в таких компаниях было от 4 до 80.


  1. vvzvlad
    24.11.2019 16:13

    Вау, Уссурийск, жил там до 16 лет. Картонка ещё жива?


    1. bakotin Автор
      24.11.2019 16:51

      Да живет за счет постовок в Китай, Корею и Японию.