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

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

Удачного кодирования 🤩💻

1. Не расстраивайтесь

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

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

Карьера программиста желательна по очень веской причине: вы можете научиться чему угодно в Интернете… бесплатно! И часто образ жизни, который сопровождает карьеру в сфере технологий, намного удобнее, чем в других профессиях.

Важно помнить, что, хотя ресурсов существует множество, вам не нужно изучать все. Начнем с основ.

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

Если вы выбрали интерфейсную разработку, сосредоточьтесь на HTML, CSS и JavaScript. Не воспринимайте эти навыки как должное. На первый взгляд они могут показаться простыми, но хорошее знание основ веб-разработки позволит вам стать инженером-программистом. Большинство компаний предпочли бы видеть кандидата с сильными «ванильными» навыками, чем довольно хорошо разбирающимся в популярных фреймворках / библиотеках.

Если вы решили пойти по пути внутренней разработки, попробуйте такой язык, как Python или Java. Это очень востребованные навыки в сфере высоких технологий.

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

2. Научитесь читать и расшифровывать код.

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

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

Есть много способов научиться читать код. Ознакомьтесь с некоторыми проектами с открытым исходным кодом. Прочтите документацию и исходный код и посмотрите, сможете ли вы описать, что происходит. Вы постепенно начнете понимать, что есть улучшения, которые можно сделать, и, возможно, даже откроете PR!

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

Научиться читать и проверять код - это навык, требующий времени, но он того стоит.

3. Найдите свой метод обучения

Люди учатся по-разному. Некоторые лучше всего сохраняют информацию, когда пишут код. Другие лучше всего учатся, читая или просматривая видео.

Я предпочитаю смотреть онлайн-уроки и читать документацию, чтобы заполнить пробелы.

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

Найдите свой метод обучения. Попробуйте разные ресурсы и платформы.

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

4. Примите участие в жизни сообщества.

Я присоединился к технологическому онлайн-сообществу только через три года своего пути программирования. Это поставило меня в невыгодное положение.

Я очень боролся с синдромом самозванца, и мне было трудно сохранять мотивацию. Но как только я нашел сообщество разработчиков в Twitter и блогах, я стал гораздо больше вкладываться в обучение.

Найдите проект с открытым исходным кодом. Публикуйте в Твиттере свои проекты кодирования. Отправьте свои проекты на GitHub. Найдите способ принять участие, и вы быстро разовьете более близкие отношения с программированием.

5. Теория баланса с практичностью.

Чтобы стать эффективным программистом, вы должны понимать теорию, лежащую в основе определенных парадигм (в определенной степени).

Например, если вы хотите понять, почему вложенный цикл for не так эффективен, как два цикла for в одной и той же области, вам необходимо понимать нотацию Big-O.

Мы живем в эпоху, когда вам не нужна степень в области компьютерных наук, чтобы преуспеть в технологической индустрии. При этом некоторые концепции, преподаваемые в рамках степени CS, чрезвычайно ценны (например, алгоритмы, анализ времени выполнения и т. Д.).

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

6. Не сравнивайте себя с другими

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

Вы уникальны, и предлагаемые вами навыки будут адаптированы для вас.

Тот факт, что один из лидеров отрасли изучает Ruby on Rails, не означает, что вы должны следовать его примеру. Найдите навыки, которые вдохновляют вас в программировании, и изучите их в меру своих возможностей.

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

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

7. Примите участие в открытом исходном коде.

Сообщество разработчиков ПО с открытым исходным кодом процветает, так почему бы не принять участие? Если вам нужен способ улучшить свои навыки чтения кода, найдите проект с открытым исходным кодом!

Вы можете посетить сообщество [GitHub Open Source] (https://github.com/open-source), чтобы начать работу!

Вы даже можете начать свой собственный проект с открытым исходным кодом! Я основал свой собственный проект с открытым исходным кодом [Coding Coach] (https://github.com/Coding-Coach/coding-coach) в сентябре прошлого года, и это был потрясающий опыт.

Если вы хотите принять участие и поучиться у великих разработчиков, не стесняйтесь проверить это!

8. Будьте комфортны, когда вам неудобно.

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

Хотя на первый взгляд это может показаться пугающим, это также дает множество возможностей найти новую технологию для изучения (как вы могли когда-нибудь заскучать ?!).

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

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

9. Не бойтесь задавать вопросы.

В конце концов вы столкнетесь с проблемой, которую не знаете, как решить. Stack Overflow просто не режет!

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

Просьба о помощи не делает вас слабым; это то, с чем я все еще борюсь.

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

10. Окружите себя людьми, которые укрепляют вас.

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

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

11. Сосредоточьтесь на чем-то одном.

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

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

Не пытайтесь жонглировать сразу несколькими темами.

12. Посмотрите на картину в целом - как все эти технологии сочетаются друг с другом?

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

Я люблю рисовать схемы сложных задач. Если мне нужно создать приложение, я люблю разбивать его на домены. Например, я знаю, что мне нужны HTML, CSS и JavaScript для интерфейса. Возможно, я решу использовать React в качестве библиотеки JS. И, возможно, если мне нужно масштабировать это приложение, я выберу Redux для управления состоянием.

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

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

13. Найдите свой набор инструментов - какие инструменты лучше всего подходят для работы?

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

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

Тот факт, что инструмент существует, не означает, что вам нужно его использовать.

14. Поддерживайте хороший баланс между работой и личной жизнью.

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

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

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

Уделяя время себе и другим своим хобби, вы сохраните здоровые отношения с программированием.

15. Изучите основы дизайна.

Если вы создаете приложение, ориентированное на пользователя, вы должны знать основы дизайна. Я не говорю, что вам нужно научиться использовать Sketch или Adobe Illustrator, но изучение основ UX-дизайна положительно повлияет на ваши приложения.

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

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

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

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

16. Найдите наставника

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

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

И не забывайте пересматривать свое наставничество с течением времени, чтобы убедиться, что оно приносит пользу вам обоим.

17. Создайте отличное портфолио и резюме.

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

Исправляйте орфографические и грамматические ошибки. Убедитесь, что все отформатировано правильно и согласованно.

Если вы хотите получить более подробную информацию о написании потрясающего резюме, не стесняйтесь проверить мою предыдущую [запись в блоге] (https://levelup.gitconnected.com/how-to-write-a-stand-out-technical-resume- 6cce4721cd8c ).

18. Неудачи быстро и часто.

Неудача субъективна. Если вы допустили ошибку, извлеките из нее урок. Не повторяйте одну и ту же ошибку дважды. То, что что-то «провалилось», не означает, что оно не было ценным.

Самые успешные люди в истории проделали огромную работу, но их признают лишь немногие.

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

19. Просто продолжай

Придут дни, когда вы захотите отказаться от программирования. Не надо. Это сложная карьера, и все страдают синдромом самозванца.

Ты не одинок. Кодирование со временем станет проще.

Делайте это изо дня в день, и все будет в порядке.

Просто продолжать идти.