Самообучающиеся могут даже иметь преимущество

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

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

Миф о мощной степени CS должен умереть. Вот что важно.

Чему учат программы CS

Чему вы научитесь, когда получите степень в области компьютерных наук?

Достаточно беглого взгляда на учебные программы топовых, компьютерных, естественных школ в США, и вы получите общее представление:

  • Основы вычислений — ОЗУ, ЦП, операционные системы, жесткие диски, схемы и логические элементы.
  • Сеть — как компьютеры общаются друг с другом, основы Интернета, проблемы с координацией сети.
  • Программирование — в большинстве школ преподают один или два языка сценариев общего назначения.
  • Структуры данных — как вы храните данные; какие структуры оптимальны для чтения, записи, быстрого просмотра, сортировки, поиска и т. д.
  • Алгоритмы — Основы вычислительной сложности, постоянные/линейные/экспоненциальные задачи, как разработать эффективный алгоритм
  • Математика — дифференциальное и векторное исчисление, теория матриц, вероятность/статистика.

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

Это готовит вас к работе?

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

Существуют ли работы, требующие дифференциального исчисления? Конечно, но не многие.

Вам действительно нужно знать об электротехнике, стоящей за печатной платой? Это круто, но не обязательно в 99% вакансий разработчиков.

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

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

Навыки хорошего разработчика

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

Но есть множество других навыков, которым степени CS либо не учат, либо активно препятствуют:

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

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

Ты не отстаешь

Если у вас нет степени CS, не волнуйтесь. У вас нет большого дефицита.

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

Но эти технические темы — лишь малая часть нашей работы.

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

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

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

Все это ценные навыки, и вы не всегда изучаете их в степени CS.

Ежедневный список

Я помогаю разработчикам программного обеспечения целенаправленно строить значимую карьеру.

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

Моя цель – помочь вам в работе над программным обеспечением, которое сделает мир лучше.

2000 других разработчиков программного обеспечения получают мою ежедневную публикацию прямо в свои почтовые ящики.

Присоединяйтесь к ежедневному списку и получите мгновенный доступ к моему лучшему контенту!

Присоединяйтесь к Medium за 5 долларов — получите доступ ко всему Medium + поддержите меня и других!