7 тем, которые нужно освоить, чтобы стать хорошим программистом

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

Не изучайте только один язык программирования

Кодирование — это искусство создания программного обеспечения с использованием программного кода. Существует множество языков программирования, позволяющих это сделать, и все они имеют свои преимущества и недостатки. Настоящий программист знает эти плюсы и минусы и знает, как использовать правильный язык программирования для правильного проекта. Из-за этого важно узнать, как работают языки программирования в целом, прежде чем углубляться в любой язык программирования. Узнайте, как работают циклы, условные операторы, функции и классы, а затем начните реализовывать их на разных языках программирования. Вы можете использовать http://repl.it/, чтобы работать с множеством разных языков, не устанавливая их на свой компьютер.

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

Например; для создания интерфейсного веб-приложения вам, вероятно, понадобятся HTML, CSS и JavaScript. Если вам нужно написать серверную часть REST API, вы можете использовать JavaScript со средой выполнения NodeJS или использовать Python с FastAPI. Все зависит от проекта и как программист вы должны сделать правильный выбор языка программирования.

Ресурсы для начала изучения языков программирования:
https://www.codecademy.com/
https://www.sololearn.com/
https://www. udemy.com/
https://repl.it/

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

2. Станьте профессионалом со своими инструментами кодирования

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

Для меня; Я широко использую VScode с Git и GitHub. Я использую различные линтеры и средства форматирования кода, чтобы убедиться, что я могу просто сосредоточиться на написании кода, а IDE позаботится о том, чтобы код был красивым, когда я его сохраняю. VScode выполняет довольно приличный рефакторинг «из коробки», но я также использую библиотеку веревок Python, чтобы помочь мне переименовать символы. Я также использую TabNine для увеличения скорости написания кода. Таким образом, я могу сосредоточиться на написании кода и создании необходимого мне программного обеспечения, не беспокоясь ни о чем другом.

Ресурсы для обучения использованию инструментов:
https://git-scm.com/docs/user-manual
https://code.visualstudio.com/docs

3. Изучите структуры данных и алгоритмы

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

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

Ресурсы по структурам данных и алгоритмам:
https://www.udemy.com/share/101qSq3@DbMjvVahUvp1UDeuK6s6Yn-rbvD4_8yCLeAh7nce9lAEj1ZeIgtFl0iAPmbyHMHm/
https://en.wikipedia.org/wiki/List_of_data_structures
https://en.wikipedia.org/wiki/Список_алгоритмов

4. Изучите шаблоны проектирования

Шаблоны проектирования определяют, как должна быть написана определенная часть вашего приложения. Некоторые части вашего приложения определенно нуждаются в объектно-ориентированном программировании, в то время как другие можно написать с помощью нескольких простых функций. Ознакомьтесь с хорошо известными шаблонами проектирования, такими как Observer, Singleton и Factory. Создание кода с достойными и узнаваемыми шаблонами проектирования повысит качество вашего кода и может привести к более удобному повторному использованию.

Убедитесь, что вы знаете, как использовать принципы «Не повторяйся» (DRY) и «Единственная ответственность». Узнайте, как писать модульные тесты для вашего кода, и используйте подход Test Driven Development, чтобы убедиться, что ваш код протестирован перед развертыванием. Ваш код станет качественнее и проще.

Ресурсы для изучения шаблонов проектирования:
https://play.google.com/store/books/details?id=6oHuKQe3TjQC
https://en.wikipedia.org/wiki/Software_design_pattern

5. Создавайте личные проекты

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

Чтобы начать работу над личным проектом, найдите то, что вам нужно, или то, что может помочь вам в повседневной жизни. В настоящее время я создаю приложение, которое поможет мне в повседневной жизни, сортируя и систематизируя мои личные заметки. Бэкенд — Python, фронтенд — JavaScript, CSS и HTML. Он написан как микросервисы, и благодаря этому я много узнаю об архитектуре программного обеспечения, структурах данных и алгоритмах. Потому что это проект для меня, нет внешнего давления и нет дедлайнов. Я могу просто делать это, когда мне хочется и есть время. Я делаю ошибки во время этого проекта, и мне приходится их исправлять, что приведет к лучшему коду и большему опыту написания кода.

6. Участвуйте в проектах и ​​сообществах с открытым исходным кодом

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

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

7. Знайте, как попасть в нужный поток

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

Убедитесь, что вы знаете, когда сделать перерыв. Люди не созданы для того, чтобы работать восемь часов подряд; мы созданы для работы небольшими спринтами. Программирование в течение двух или трех часов и небольшой перерыв могут быть намного лучше для вашего производства. То, как должен выглядеть этот небольшой перерыв, у всех разное; это может быть так же просто, как сходить в туалет или выпить чего-нибудь, но это также может означать, что вы собираетесь на небольшую прогулку или в спортзал. Что касается меня, мне нравится немного играть на гитаре, читать какие-то статьи или смотреть что-то на YouTube. Это не обязательно должно быть что-то образовательное; это должно быть что-то, что отвлечет вас достаточно, чтобы очистить голову.

Краткое содержание

Лучший способ научиться программировать — делать это. Создайте для себя проект и попытайтесь найти лучшие инструменты для выполнения работы; найдите правильные языки программирования, изучите инструменты кодирования, найдите лучшие структуры данных и алгоритмы для обработки данных и спроектируйте программное обеспечение наилучшим образом. Обязательно участвуйте в проектах и ​​сообществах с открытым исходным кодом и найдите подходящую среду.