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

Наберитесь терпения

Поскольку я такой человек, который может мотивировать себя сделать что-то и буквально загореться, чтобы сделать это. Много раз я упирался в стену, когда учился программировать, из-за своих больших ожиданий (я выучу все это за один день!) и искусства программирования (скорее всего, вы столкнетесь с N ошибками, которые изменят ваш разрекламированный подход :)) .

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

Вы столкнетесь со многими ошибками, и лучший подход — извлечь урок из каждой из них. Вы увидите множество возможных улучшений кода или различных решений одной и той же проблемы, и лучший способ — понять их все. Это расширит ваши возможности для решения других проблем в будущем, что, безусловно, поможет вам освоить более продвинутые навыки кодирования.
Учитесь шаг за шагом, это не гонка :)

Все начинается с… листа бумаги!

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

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

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

Изучить тему

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

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

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

Изучите множество фреймворков

«Хорошо, я выучу один язык, и все, я смогу создавать все, что захочу!»
Я как молодой разработчик

«Нет :) Вам нужно изучить разные фреймворки, чтобы решать разные проблемы. Но не волнуйтесь, с каждым новым фреймворком становится все круче!»
Теперь я

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

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

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

Изучайте несколько тем

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

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

Заключение

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