
У вас есть друзья-разработчики, или вам просто не терпится начать, увидев образ жизни разработчика. Он говорит с вами, и вы хотите начать. Вы говорите себе, что месяца достаточно, чтобы стать профессионалом, но не знаете, с чего начать.
Сколько времени это займет?
Гораздо больше месяца; Я могу обещать вам это. Это то, через что проходят все. По какой-то причине большое количество пре-программистов думают, что они могут стать разработчиками за один месяц; некоторые более консервативны и говорят о трех. Три месяца — это обычно оптимистичный срок, который дают себе опытные разработчики, когда хотят выучить новый язык. Вы смотрите ближе к одному-двум годам. Чем больше времени вы уделяете ежедневно, тем ближе вы будете к годовой отметке.
С чего начать?
Если вы учитесь в школе программирования, с этого и начните. Сосредоточьтесь на своих проектах и стремитесь быть успешнее. Когда вы получаете проект, притворяйтесь, будто вам за это платят. Завершите проекты полностью и сделайте что-нибудь дополнительно. Я помню один такой сценарий, когда я проходил курс по разработке мобильных приложений. Несмотря на то, что у меня уже был многолетний опыт программирования, у меня был минимальный опыт мобильной разработки. Для окончательного проекта нам нужно было выбрать 3 функции и внедрить их в приложение по нашему выбору; было 40 возможных вариантов. Пока все выбирали свои три, я реализовал все 40. Я не искал дополнительных похвал или похлопывания по спине. Я посещал этот курс, чтобы изучить разработку мобильных приложений, и хотел в полной мере воспользоваться им. Продолжайте повторять это и сосредоточьтесь на основах информатики. Вам будет значительно легче выбрать язык/фреймворк, когда вы действительно поймете основы программирования.
Если вы не посещаете какую-либо учебную программу по программированию, у вас есть преимущество и недостаток. Если вы знаете свою конечную цель и то, как ее достичь, вы можете пропустить все основные занятия, которые требуются в колледжах, и посвятить свое время программированию. Вы будете есть и дышать кодом 8 часов в день и ускорите свое путешествие.
Есть несколько недостатков. Вы, скорее всего, пропустите сложные концепции, поскольку не несете ответственности за выполнение своих заданий. Вы будете строить этот калькулятор сто раз, но не захотите двигаться дальше. Другим недостатком является то, что у вас не будет учебного плана. Курсы колледжа разработаны таким образом, чтобы основываться друг на друге. Вы можете начать переходить к концепциям, к которым вы просто не готовы, и большую часть времени будете чувствовать, что тонете. Вы не поймете, как на самом деле кто-то изучает программирование, и ваш разум будет постоянно говорить вам бросить, поскольку это не для вас. Это когда вы должны сделать шаг назад и понять, что вы выбрали неправильный подход.
Каков подход? Вот что я рекомендую всем новым разработчикам, которые спрашивают меня:
- Получить введение в книгу по программированию.
- Исследуйте тип программирования, который вас интересует. Выберете ли вы путь разработки мобильных приложений, путь веб-разработки, путь встроенных систем или какой-то другой путь?
- Как только вы узнаете свой путь, пришло время изучить тип используемых языков программирования.
- Купите вводную книгу или две по этому языку программирования. Одновременно следуйте вводным руководствам YouTube.
- Полностью ознакомьтесь с YouTube. Пришло время найти руководства по применению.
- Изучите другие необходимые концепции программирования, такие как контроль версий и использование инструментов управления проектами.
- Создайте портфолио. Чем больше приложений вы создадите, тем лучше.
- Получите стажировку или работу начального уровня. Потребляйте все из опыта.
- Перейдите на позицию среднего уровня через пару лет. Снова потребляйте все подряд и начинайте наблюдать за тем, как ведут себя должности старшего уровня.
- Получите должность старшего уровня.
Ваша первая книга по программированию (1–3 месяца)
Вы будете читать эту книгу не один раз. Приобретите книгу по Java или подобному языку, в котором строго изложены основы объектно-ориентированного программирования. Абсолютно лучший способ прочитать книгу, подобную этой, заключается в следующем:
- Читайте максимум одну главу в день.
- Прежде чем читать следующую главу, быстро просмотрите все предыдущие главы.
- Как только вы закончите книгу, начните все сначала и перечитайте ее во всех подробностях.
Вы, вероятно, относительно легко усвоите первые 2-3 главы, особенно если вы уделяли внимание математике. Вы начнете визуализировать, что такое функция/метод и как они связаны с математикой.
Следующая глава будет жестокой, и вы будете обильно потеть. Что сейчас произошло? Вы путешествовали, и вдруг вас ударила эта огромная кривая обучения. Вы понятия не имеете, как продвигаться дальше. Исследуйте конкретные темы в Интернете и попытайтесь понять их. Когда вы, наконец, закончите и почувствуете напряжение, начните сначала. В следующий раз у вас будет гораздо лучшее понимание. Бывают также случаи, когда вы читаете книгу по программированию, и в ней говорится: «Просто напишите такой код, и мы объясним, что это значит, в следующей главе». Это просто означает, что есть фундаментальные концепции, о которых вы еще не думали. Как только вы доберетесь до главы, в которой это объясняется, а затем перечитаете предыдущие главы, все обретет смысл.
После завершения книги сделайте пару выходных, а затем перечитайте ее еще раз полностью. Это поможет вам закрепить понятия. Вы будете поражены тем, как много вы теперь понимаете и как много вы пропустили, даже если вам казалось, что вы прочитали книгу уже сто раз.
Изучите тип программирования, который вас интересует (месяц 4)
Возможно, вы хотите заняться разработкой мобильных приложений, но вы не знаете, чего не знаете. Изучите типы используемых языков программирования. Например, вас интересует создание приложений для Android, iOS или кроссплатформенных приложений? Для этого потребуются разные языки программирования. Где разработчики счастливее всего? Кем ты видишь себя в будущем? Вы дышите продукцией Apple? Вы хотите просто создавать нативные приложения для iOS? Время решает, хотите ли вы изучать SwiftUI или UIKit.
Пришло время изучить тип используемых языков программирования (4,5–5 месяцев)
Хочу заняться веб-разработкой. Это совершенно новая банка червей. Прежде чем начать, вы должны знать основы, такие как HTML и CSS. Вы хотите быть фронтенд или бэкенд разработчиком? Вы знаете, в чем разница между фронтендом и бэкендом? Вы ищете самые модные языки программирования или вас интересуют стабильные языки корпоративного уровня? Это решения, которые вам придется выяснить в ходе вашего личного исследования. Существуют тысячи статей и видеороликов, в которых люди описывают свою карьеру на определенном языке.
Купите вводную книгу или две по выбранному вами языку программирования. Одновременно следуйте вводным руководствам YouTube. (6–9 месяцев)
Когда вы знаете свой путь и знаете, как добиться на нем успеха, пришло время приобрести книгу по этому языку программирования. Теперь вы должны знать свои предпосылки; если они есть, то вы должны сначала прочитать эти книги. Например, если вы хотите стать фронтенд-разработчиком, использующим ReactJS, вам необходимо знать HTML, CSS и основы JavaScript. Вы, вероятно, также захотите познакомиться с фреймворком CSS, таким как Bootstrap, или служебным фреймворком, таким как Tailwind. Только после того, как вы освоитесь с этими основами, наступит время для React.
Чтобы ускорить процесс обучения, просмотрите несколько руководств на YouTube одновременно с чтением книг. Они не должны быть сосредоточены на создании приложений, а вместо этого должны быть сосредоточены на основах этого языка программирования или фреймворка/библиотеки.
Получите полное представление о YouTube. Время найти учебные пособия по применению. (10–12 месяцы)
Теперь, когда вы понимаете концепции, пришло время следовать и создавать некоторые приложения. Вы могли бы сделать это раньше, но есть одна причина, по которой это была плохая идея. Если бы кто-то попросил вас переделать приложение, за которым вы только что 6 часов следили на YouTube, вы бы не смогли. Вы все еще будете бороться сейчас, но ваш разум уже достаточно сформировался, чтобы вы могли иметь общее представление. Пройдите как можно больше таких руководств. Как только вы закончите с ними, попытайтесь воссоздать их самостоятельно, не прибегая к их помощи. Google ваши вопросы, если вы застряли. Ищите ответы на StackOverflow. Делайте то, что делают разработчики, но не обманывайте себя, снова следуя за ними.
Изучите другие необходимые концепции программирования, такие как контроль версий и использование инструментов управления проектами. (13–14 месяцы)
Если вы преодолели отметку в один год, то вы, вероятно, серьезно относитесь к программированию как к карьере. Пришло время познакомиться с инструментами, которые используют программисты, такими как Git, GitHub, BitBucket, Jira, Confluence, Asana, Trello и т. д. Интернет — ваш друг. Вы исследуете и практикуете использование этих инструментов. Они являются частью любой обычной рабочей среды. Также это хорошее время, чтобы начать смотреть видео о повседневной работе типичного программиста. Вы увидите такие вещи, как упоминание стендапов. Узнайте, чем занимаются разработчики во время стендапа.
Создайте портфолио. Чем больше приложений вы создадите, тем лучше. (15–24 месяцы)
Вы уже создали несколько приложений, просматривая эти видео на YouTube. Если вы создали их самостоятельно и воссоздали, не просматривая эти видео, загрузите их в свою учетную запись GitHub. Ищите реальные проблемы и пытайтесь создавать приложения, которые их решают. Это не обязательно должны быть готовые к работе приложения, но вы должны стремиться сделать их как можно более совершенными. Идея состоит в том, чтобы заниматься разработкой каждый день и использовать знания, которые вы накопили за последние полтора года. Сосредоточьтесь на развертывании приложений в различных средах; это облегчит вашу карьеру, я могу вам это обещать.
Получите стажировку или работу начального уровня. Потребляйте все из опыта. (2–4 года)
Перед тем, как приступить к собеседованию, вам нужно просмотреть пробные интервью и попрактиковаться в ответах на распространенные вопросы по программированию. Как только вы получите эту работу начального уровня, воспользуйтесь ею. Компания и вышестоящий персонал будут знать, что вы не способны решать сложные задачи. Они будут продолжать подталкивать вас медленно. Воспользуйтесь этим и поглощайте как можно больше. Это ваш первый опыт работы, и вы будете бороться. Поймите, что компания не хочет, чтобы вы потерпели неудачу. Разработчики более высокого уровня готовы помочь, поэтому обязательно задавайте свои вопросы, пока вы находитесь на этом этапе. Это повысит вашу учебу и вашу карьеру.
Перейдите на позицию среднего уровня. Опять же, потребляйте все и начните наблюдать за тем, как ведут себя должности старшего уровня. (4–6 лет)
Вы получили повышение до разработчика среднего уровня; поздравления. Пришло время взяться за более сложные задачи и начать прокладывать свой путь к должности старшего разработчика. Пока вы были младшим разработчиком, у вас не было времени наблюдать за тем, что делают старшие разработчики; вы едва могли сосредоточиться на задачах, которые вы делали. Поговорите со своими коллегами и просмотрите их код. Принимайте каждое предложение во время проверки кода и внедряйте его в свой код. Ваша карьера среднего уровня закончится раньше, чем вы думаете.
Получите должность старшего уровня. (лет 7+)
Время пришло, и ты узнаешь, когда оно наступит. Вы будете помогать младшим и другим разработчикам среднего уровня. Задания станут сложнее, но вы начнете получать от них удовольствие. В других случаях задачи будут казаться легкими. Вы перейдете на свою старшую должность. Дышите спокойно, вы сделали это. Что теперь? Если вы похожи на большинство разработчиков, вы будете искать прошлые карьеры и будете точно знать, что делать дальше.

Дино Кайич в настоящее время является руководителем отдела информационных технологий в компаниях LSBio (LifeSpan BioSciences, Inc.), Absolute Antibody, Kerafast, Everest BioTech, Nordic MUbio и Exalpha. Он также является генеральным директором MyAutoSystem. Он имеет более чем десятилетний опыт разработки программного обеспечения. У него есть B.S. в области компьютерных наук и несовершеннолетнего в области биологии. Его опыт включает в себя создание приложений для электронной коммерции на уровне предприятия, разработку программного обеспечения на основе исследований и содействие распространению знаний посредством письма.
Вы можете связаться с ним в LinkedIn, подписаться на него в Instagram или подписаться на его публикацию в Medium.