Дерек Сиверс Гэвин Вуд

Ну что ж… У всех нас бывают моменты, когда мы впервые сталкиваемся с миром программирования и разработки программного обеспечения. Когда вы изучаете свой первый язык программирования, вы понимаете, что программированием можно заниматься так много всего! От машинного обучения до VR и AR, программирование сейчас буквально везде. Даже крупные учреждения теперь используют алгоритмическую торговлю для покупки и продажи определенных акций! В CS есть множество областей для изучения, какую из них выбрать?

Прежде всего: почему вы должны выбрать поле в CS?

Среди многих программистов распространено убеждение, что вы должны быть универсалом, когда дело доходит до программирования. Хотя я не согласен, я действительно верю в специализацию в долгосрочной перспективе, поскольку лучше освоить одно ремесло / область, чем быть «мастером на все руки». Если вы освоите одну область CS, есть вероятность, что у вас будет лучшая карьера, чем у того, кто является универсалом. ОДНАКО, это не означает, что вы не должны быть универсалом. В начале вы должны быть универсалом. Под универсалом я подразумеваю изучение каждой области CS, например, веб-разработки, базы данных и т. д. Быть универсалом действительно помогает вам понять, как работает каждая область CS, и поможет вам выбрать, в какой области специализироваться. Поэтому сначала ОБОБЩАЙТЕ, а затем СПЕЦИАЛИЗИРУЙТЕ!

Моя история

После того, как я закончил свой первый курс по Python под названием «Автоматизация скучных вещей» и изучил некоторые основные концепции CS, я обнаружил, что существует буквально так много вещей, которые вы можете делать с помощью языка программирования. От машинного обучения, биотехнологий, веб-разработки до алгоритмического трейдинга! CS было что предложить. Несмотря на то, что поначалу это было захватывающе, было очень трудно определить, какую область исследовать изначально. Чтобы окунуться в мир программирования, я хотел выбрать что-то крутое. Оказалось, что машинное обучение было моим первым выбором. Причина, по которой я выбрал ML, заключалась в том, что я видел, как эти программисты на YouTube делают крутых ботов, которые могут определять определенные черты лица или даже объекты! Ощущение создания бота, который мог бы обнаруживать определенные объекты, меня очень взволновало. Однако когда я начал изучать машинное обучение, оказалось, что это больше математика, чем само программирование. Если вы новичок в машинном обучении, вам нужно действительно убедиться, что вы действительно хорошо разбираетесь в вычислениях и статистике, потому что без этих предметов вы никогда не сможете построить модель, которая могла бы распознавать определенные закономерности. Кроме того, вы должны учитывать «время обучения» и «точность» модели. Мне просто не нравилась вся эта математика, и я решил больше никогда не смотреть на машинное обучение.

Второй областью, которую я исследовал, была технология Blockchain. Единственным недостатком изучения этого было то, что мне пришлось прекратить писать код на Python, так как Python не так часто использовался в этой области. Однако использовались web3.js, Solidity и Node.js. Я до сих пор помню, что твердость была самой сложной частью всего! Solidity, если вы не знаете, представляет собой комбинацию C, Java и Python. Конечно, это не очень хорошая идея, чтобы прыгать в такой язык, когда вы только промокли ноги, однако это не значит, что я сдался. Я все еще пытался пройти свой первый курс Blockchain Developer, и когда я прошел курс, я понял, что Blockchain просто скучен. Вы должны были пройти множество этих тестов get и изучить Java с нуля. Итак, я подумал, что это довольно сложная область для изучения. Да, в какой-то момент мне нужно выучить Java, но я очень люблю Python! Я многому научился, и было здорово, как Гэвин Вуд придумал объединить три самых популярных языка в один.

Что теперь?

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

Заключение: что вы можете узнать из моей истории

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

Кто-то может сказать, что изучение всех этих полей не будет пустой тратой времени? Ну да, но я бы оставил вас с этой цитатой Дерека Сиверса из книги Инструменты Титанов: Относитесь к жизни как к серии экспериментов.

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

Поэтому я настоятельно рекомендую изучить множество областей, которые может предложить CS, как можно раньше, даже если вы думаете, что начали программировать слишком поздно. Хотел бы я, чтобы кто-нибудь дал мне этот совет, когда мне было 14 лет :)

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