Зачастую бывает так, что программисты-самоучки, являясь очень хорошими специалистами, не обладают некоторыми базовыми знаниями, которые можно получить в колледже или университете. Сегодня эти навыки менее важны, чем практические аспекты разработки программного обеспечения, но я считаю, что каждый разработчик должен знать об операционных системах, структурах данных, алгоритмах, логике предикатов, компьютерной архитектуре и многих других темах, встречающихся в большинстве учебных программ высших заведений. Эти темы довольно сложно изучить самостоятельно, особенно если вы даже не подозреваете об их существовании.
В следующей главе я расскажу вам о том, как в некоторых наиболее крутых компаниях проводятся собеседования разработчиков, в процессе которых интервьюер пытается выяснить, понимает ли претендент все те основные концепции, которые изучаются в вузах.
Я человек весьма прагматичный и обычно выступаю против традиционных систем образования, но также считаю, что большинству программистов необходимо иметь некоторые теоретические знания, не относящиеся непосредственно к написанию кода, но лежащие в его основе.
Несмотря на то что университет с меньшей долей вероятности даст вам практические знания, необходимые для работы в качестве разработчика ПО, большинство учебных программ позволяет овладеть глубокими знаниями о концепциях информационных технологий. Эти концепции могут быть чрезвычайно полезны при входе в более сложные области программирования, такие как работа с системами, работающими в реальном времени, разработка новых алгоритмов и повышение их эффективности. Такие новые сферы, как машинное обучение, также нуждаются в людях с хорошим пониманием этих концепций информатики.
Структурированные знания
Высшее образование ценно тем, что позволяет получить структурированные знания. Есть немалое количество людей, которые не могут работать без конкретного плана действий. Многие начинающие программисты бросают обучение, потому что их попросту пугает тот объем информации, который нужно изучить, а также отсутствие плана. Кроме того, бывает и так, что человеку сложно чему-то научиться из-за недостатка силы воли и самодисциплины.
Если вы узнали себя в одной из перечисленных выше групп, то университет для вас – это лучший способ стать разработчиком. Самостоятельное обучение означает самостоятельную разработку плана обучения, а также самостоятельное определение того, сколько времени ежедневно вы будете уделять программированию. В колледже или вузе есть лишь небольшая часть факультативных дисциплин «по выбору», а все остальное будет строго регламентировано в соответствии с программой обучения. Вам остается просто придерживаться учебного плана.
Стажировки и прочие возможности
Колледжи и университеты нередко предлагают своим студентам стажировки или какие-либо иные связи и ресурсы, недоступные самоучкам. В части компаний существует практика найма сотрудников что называется «со студенческой скамьи», для чего эти фирмы устанавливают с учебными заведениями соответствующие контакты. В этом случае вам будет гораздо проще устроиться на работу после получения диплома.
Во многих колледжах существуют специальные программы, проводятся различные конференции и другие мероприятия, значительно облегчающие поиск нужных контактов и налаживание связей.
Преимущества такого подхода очевидны, если вы хотите начать свою карьеру в по-настоящему крупной компании (такой как Microsoft или Google).
Опытный разработчик может получить работу в одной из этих крупных компаний на основе заслуг и опыта, но для начинающего разработчика ПО стажировки – отличный способ начать карьеру. Поскольку большинство программ стажировки проводятся в колледжах и университетах, то вы должны быть студентом или недавним выпускником вуза, чтобы иметь к ним доступ.
Недостатки
Но не будем забывать и о недостатках, присущих высшему образованию. Да, эта часть книги понравится вашим родителям куда меньше.
Разумеется, недостатки есть у всего, в том числе и у высшего образования. Какие-то из них более очевидны, какие-то – менее.
Затраченное время
Первый и наиболее очевидный недостаток – это время, которое вы потратите на получение диплома. Учеба в вузе занимает минимум четыре года. На протяжении всех этих лет вы не будете работать программистом и поэтому не сможете записать этот период в трудовую книжку или резюме.
Как вы понимаете, за четыре года может произойти очень много событий. Поэтому обязательно подумайте, стоят ли все вышеперечисленные преимущества четырех или более лет вашей жизни. Кроме того, вуз сам по себе отнимает время. Не все предметы будут развивать вас как разработчика. В учебном плане вас будут поджидать и дисциплины общего характера, не имеющие никакого отношения к разработке ПО. Соответственно, в контексте развития вас как специалиста все эти предметы являются пустой тратой времени. Тесты, контрольные, экзамены тоже не принесут много пользы. То же самое можно сказать и про лекции. Особенно если вы знаете более оптимальные способы усвоения информация.
Традиционное образование не стремится к максимально эффективному использованию времени. Большинство учебных программ рассчитано не на то, чтобы максимально развить наиболее сильных студентов, а на то, чтобы подтянуть до приемлемого уровня наиболее слабых. Этот аргумент – один из главных доводов против высшего образования. Лично мне высшие учебные заведения кажутся не очень эффективными. Я советую вам хорошенько обдумать этот вопрос, прежде чем вы пойдете подавать документы на поступление.
Финансовые затраты
Следующий недостаток – стоимость обучения. Каждый человек стремится сохранять деньги, а не тратить. Но поступление в вуз означает, что вам придется расстаться с весьма крупной суммой. Вы и сами это знаете, но все же скажу, что высшее образование – это дорогое удовольствие, и с каждым годом оно становится еще более дорогим товаром. Если во время обучения вам предстоит жить вне родительского дома, то расходы будут еще выше. Я знаком с большим количеством разработчиков ПО и людьми других профессий, которые все еще выплачивают кредит за свое обучение – спустя десятки лет после окончания вуза.
По-моему, это не лучшая перспектива. Ведь если бы вы вместо получения дорогостоящего образования все эти годы работали и получали за это деньги, вам бы не пришлось оплачивать учебный кредит и проценты по нему. Так что же такого особенного дает высшее образование? Разве что чуть большую зарплату, и то не факт.
Согласен, данная точка зрения выглядит весьма мрачно, но я знаю массу программистов, которые потратили немалые суммы на образование и теперь находятся в весьма плачевной финансовой ситуации.
Но не переживайте, у меня есть для вас пара рекомендаций, которые помогут вам смягчить финансовый ущерб, наносимый получением высшего образования. Мы поговорим о них чуть позже, в разделе, посвященном стратегиям.
Позволю себе напоследок дать вам еще один совет.
Убедитесь, что при поступлении в вуз вы учли все факторы, включая расходы на образование, уровень вашего интереса к данной сфере, расходы на проживание и питание, потерянный доход от возможной работы. В общем, все, что поддается подсчету.
Расписываться в собственном невежестве после окончания вуза и просить государство погасить ваш студенческий долг не просто безответственно, а максимально глупо.
Устаревшая и не имеющая ничего общего с реальностью информация
Для того чтобы опубликовать книгу, требуется большое количество времени. Для того чтобы создать учебную программу, добавить в нее новые предметы или вычеркнуть старые – еще больше.
Зачастую преподавательский состав в колледжах и университетах очень далек от тех приемов разработки ПО, которые используются в реальном мире. В результате образовательные программы вузов плохо отражают навыки и технологии, наиболее необходимые в работе.
Да, знать основные концепции отрасли IT полезно. Однако в работе вам куда больше пригодится умение пользоваться системой контроля версий и знание методологии Agile и наиболее распространенного фреймворка JavaScript.
Справедливости ради следует сказать, что многие учебные заведения понимают свои слабые места и предпринимают определенные шаги, чтобы сделать учебные программы более актуальными. Однако так поступают далеко не везде. И это одна из причин, почему я вообще решил написать эту книгу.
Я хочу дать вам все необходимые знания о карьере в области разработки программного обеспечения, потому что чувствую, что большинство колледжей и университетов не в состоянии это сделать.
Вы, конечно, можете и самостоятельно преодолеть это ограничение, изучив своими силами другие аспекты разработки ПО. Только вот, подозреваю, в процессе этого вам наверняка захочется спросить: «А зачем я тогда вообще плачу за высшее образование?»
Отвлекающие факторы
Если вас когда-нибудь интересовало, почему существует рейтинг самых «отвязных» вузов страны, то следующий абзац ответит вам на него. Многие люди считают студенчество лучшим периодом своей жизни. Обучение в университете – это не только лекции, семинары, лабораторки и экзамены
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.
Сноски
1
Издавалась на русском языке. Питер, 2016 г. – Прим. ред.
2
https://simpleprogrammer.com.
3
http://youtube.com/jsonmez.
4
https://simpleprogrammer.com/products/careerguide/toolkit.
5
Издавалась на русском языке. Русская редакция, 2019 г. – Прим. ред.
6
Издавалась на русском языке. Питер, 2018 г. – Прим. ред.
7
Издавалась на русском языке. Питер, 2021 г. – Прим. ред.
8
Включает такие действия, как компиляция исходного кода в объектный модуль, сборка бинарного кода в исполняемый файл, выполнение тестов, развертывание программы в целевой среде, написание сопроводительной документации или описание изменений новой версии. – Прим. пер.
9
Речь идет о книге Дугласа Крокфорда. Издавалась на русском языке. Питер, 2013 г. – Прим. ред.
10
Издавалась на русском языке. Питер, 2002 г. – Прим. ред.
11
Проект Эйлер – некоммерческий проект в Интернете, объединяющий любителей математики и программирования. Проект был запущен в 2001 году Колином Хьюзом и сейчас поддерживается небольшой группой энтузиастов. Участники проекта могут выбрать любую из существующих в текущий момент задач и решить ее с помощью любого известного им языка программирования. После ввода правильного числового ответа участник получает доступ к форуму по данной задаче, где участники обсуждают и сравнивают между собой найденные ими алгоритмы. – Прим. ред.
Вы ознакомились с фрагментом книги.
Для бесплатного чтения открыта только часть текста.
Приобретайте полный текст книги у нашего партнера:
Полная версия книги