Я начал свой путь программирования еще в 2017 году, на первом курсе университета с Python, и с тех пор активно учусь.

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

1) Уделите время изучению сложных вещей

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

Трудные вещи требуют от нас времени, чтобы учиться

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

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

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

2) Пишите о том, что я узнаю

Я начал писать на Medium в апреле 2021 года, когда собирался окончить университет. Я хотел бы начать с 1 или 2 курса университета. Написав более 300 статей на Medium, могу смело сказать одно:

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

При условии минимального уровня качества, конечно.

3) Как можно скорее начните практиковать структуры данных и алгоритмы.

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

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

  • Невозможно закодировать базовый поиск по графу
  • Невозможно закодировать базовый бинарный поиск
  • Даже не зная, что такое связанный список
  • Быть ужасным в рекурсии
  • Невозможно проверить, правильно ли сформированы скобки (используя стек)

^ Я по-королевски провалил так много собеседований на стажировку в огромных технологических компаниях, и все потому, что я (по какой-то причине) решил не задавать практические вопросы по структурам данных и алгоритмам на 2-м и 3-м курсах университета.

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

4) Учиться с целью, а не учиться ради обучения.

Когда я учу что-то ради изучения, т.е. это часть модуля, я обычно

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

И наоборот, когда я узнаю что-то с определенной целью, я обычно

  1. не ненавидь это так сильно (иногда даже наслаждаясь этим)
  2. учиться гораздо эффективнее
  3. сохранить то, что я узнаю, даже спустя годы

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

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

Если я скажу себе I want to learn web development because I want to build a portfolio site ПРОТИВ T want to learn web development because I want to learn web deveolpement, первое определенно сработает лучше.

5) Научитесь развертывать собственные проекты раньше

Я начал учиться развертывать свои собственные проекты (веб-проекты), вероятно, примерно на третьем курсе университета. И это изменило правила игры! Хотя я хотел бы научиться этому раньше.

  • Облачные вещи, например. Экземпляры AWS EC2
  • Автоматические развертывания, например. Нетлайф
  • Доменные имена, как купить и как сделать так, чтобы они указывали на ваш сервер
  • Докеры и контейнеры
  • и так далее

6) Как можно скорее начните обучать людей, учитесь, обучая

Я работаю репетитором по программированию с начала 2021 года, и то, чему я научился, обучая, просто феноменально.

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

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

7) Приобретите внешний монитор раньше

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

Кодирование с 2 внешними экранами еще больше изменило правила игры. Я мог бы использовать 2 экземпляра VSCode (интерфейс и сервер) и все равно видеть изменения в своем веб-приложении.

Я не могу поверить, что первые 3 года своей университетской жизни я писал код на своем крошечном ноутбуке с 14-дюймовым экраном. Рекомендация — приобретите внешний монитор или 2. Кодить будет приятно.

Заключение

Дайте мне знать, сколько времени вам потребовалось, чтобы решить их все!

Несколько заключительных слов

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

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

Получить мои бесплатные электронные книги: https://zlliu.co/books