Самообучающиеся могут даже иметь преимущество
Вы обеспокоены тем, что отсутствие у вас степени в области компьютерных наук означает, что вы недостаточно подготовлены?
Или, может быть, вы думаете, что наличие степени очень важно для работы разработчиком?
Миф о мощной степени CS должен умереть. Вот что важно.
Чему учат программы CS
Чему вы научитесь, когда получите степень в области компьютерных наук?
Достаточно беглого взгляда на учебные программы топовых, компьютерных, естественных школ в США, и вы получите общее представление:
- Основы вычислений — ОЗУ, ЦП, операционные системы, жесткие диски, схемы и логические элементы.
- Сеть — как компьютеры общаются друг с другом, основы Интернета, проблемы с координацией сети.
- Программирование — в большинстве школ преподают один или два языка сценариев общего назначения.
- Структуры данных — как вы храните данные; какие структуры оптимальны для чтения, записи, быстрого просмотра, сортировки, поиска и т. д.
- Алгоритмы — Основы вычислительной сложности, постоянные/линейные/экспоненциальные задачи, как разработать эффективный алгоритм
- Математика — дифференциальное и векторное исчисление, теория матриц, вероятность/статистика.
Вы многому научитесь, когда получите степень CS! И это действительно тяжелая работа. Студенты осваивают некоторые заведомо сложные области, такие как исчисление, инженерное дело и алгоритмическое мышление.
Это готовит вас к работе?
К сожалению, то, чему вы научитесь на факультете информатики, не всегда поможет вам в работе.
Существуют ли работы, требующие дифференциального исчисления? Конечно, но не многие.
Вам действительно нужно знать об электротехнике, стоящей за печатной платой? Это круто, но не обязательно в 99% вакансий разработчиков.
Ожидается ли, что вы напишете доказательство алгоритмической сложности данной задачи? Нет, если вы не работаете в исследовательской среде.
Информатика учит всем видам навыков, которые связаны с программированием. Но эти навыки не обязательно сделают вас хорошим разработчиком!
Навыки хорошего разработчика
Кодирование важно, если вы хотите быть разработчиком. А дипломы по компьютерным наукам действительно учат писать код.
Но есть множество других навыков, которым степени CS либо не учат, либо активно препятствуют:
- Хорошая коммуникация в команде с нетехническими заинтересованными сторонами
- Выяснение ответа на новую проблему в отсутствие структуры или четких ресурсов
- Изучение новых тем на лету
- Остановиться на достаточно хорошем коде и не заниматься преждевременной оптимизацией
- Подумайте о стратегиях развертывания и обратной совместимости
- Реагирование на критические инциденты в производстве, сортировка и приоритизация быстрых исправлений
Помимо написания алгоритмов, существует масса других вещей, которые делают разработчики программного обеспечения.
Ты не отстаешь
Если у вас нет степени CS, не волнуйтесь. У вас нет большого дефицита.
Конечно, вы могли бы знать больше о компьютерах, алгоритмах, математике и сетях. Всегда будет!
Но эти технические темы — лишь малая часть нашей работы.
Иногда я обнаруживаю, что выпускники факультетов компьютерных наук, которые привыкли получать новый материал с ложечки, сами не могут быстро освоить новые вещи. Или они привыкли к ограниченным, структурированным задачам, тогда как реальный мир представляет собой неограниченные, расплывчатые задачи!
В этом смысле быть самоучкой — это преимущество. Вы привыкли узнавать новое, самостоятельно находить ответы и решать новые проблемы, с которыми раньше не сталкивались.
Как самоучка или разработчик буткемпа у вас, вероятно, больше опыта в развертывании кода, написании MVP простой функции или исправлении реальной ошибки.
Все это ценные навыки, и вы не всегда изучаете их в степени CS.
Ежедневный список
Я помогаю разработчикам программного обеспечения целенаправленно строить значимую карьеру.
В отличие от других, которые рекомендуют гнаться за большими зарплатами, работать в элитных компаниях (FAANG) или усердно готовиться к собеседованиям, я наставляю разработчиков в направлении успешной и сбалансированной карьеры в области программного обеспечения.
Моя цель – помочь вам в работе над программным обеспечением, которое сделает мир лучше.
2000 других разработчиков программного обеспечения получают мою ежедневную публикацию прямо в свои почтовые ящики.
Присоединяйтесь к ежедневному списку и получите мгновенный доступ к моему лучшему контенту!
—
Присоединяйтесь к Medium за 5 долларов — получите доступ ко всему Medium + поддержите меня и других!