Данная статья больше предназначена для школьников 7-11 классов, которым нравится всё, что связано с информационными технологиями, различные гаджеты, компьютеры, железо, программирование и др, и хотят больше углубиться в это и в дальнейшем посвятить себя этому делу.
С чего начать?
Я как автор данной статьи предполагаю, что хоть какое-то представление у читателя должно быть, но скажу от себя. Если например вам нравится эта сфера, но вы пока ничего толком не знаете, первым делом я посоветую вам изучить что это вообще такое и с чем едят, чтобы было полное представление и понимание всех аспектов данной сферы. По-моему субъективному мнению, настоящий мастер своего дела должен знать всё, абсолютно всё, что связано с его ремеслом.
После того, как вы изучите все тонкости и направления, в которым есть IT, то решите для самих себя, что же вам нравится больше? Быть может вам в детстве нравилось играть в игры и вы хотите создавать свои игры? Или мобильные приложения? Веб-сайты? Или может заниматься обеспечением информационной безопасности системы? Или может хотите заниматься администрированием серверов?
В прошлой статье я уже писал про направления и специальности, но в этой я хочу затронуть их еще раз и разобрать более подробно.
Web-разработка
Её можно разделить на две части: Frontend разработка/Backend разработка
Frontend: специалист данного направления занимается разработкой пользовательского интерфейса, другими словами, внешним видом сайта, той частью, что открывается непосредственно для обычного пользователя.
Необходимые знания: HTML, CSS, JavaScript, понимание работы интернета, что такое сессия, клиент, сервер, понимание HTTP/HTTPS (это список базовых знаний, к ним добавляются так же знания различных библиотек по типу jQuerry, React, знание фреймворков - Angular.js, Vue.js и т.д).
Backend: специалист данного направления занимается разработкой программно-административной частью сайта, его внутренним содержанием, логикой и поведением сайта, другими словами обеспечивает работу серверной части сайта, которая зачастую скрыта от глаз пользователя (это та часть, которая отвечает за обработку, хранение, распределение, передачу данных и т.д).
Необходимые знания: PHP, Python, C#, Ruby, Java, C++ (и так же знание различных библиотек и фреймворков. P.S не нужно знать все эти языки программирования для серверной разработки, вам нужно изучить синтаксис, достоинства и недостатки этих языков программирования и выбрать тот, что больше вам по душе и изучить библиотеки для него).
В Web-разработку так же входят и SEO-специалисты
SEO (от англ. - Search Engine Optimization - поисковая оптимизация) - эти специалисты занимаются продвижением сайтов в поисковых системах (например Yandex, Google, Bing и др.) редактируют страницы по ключевым словам, фразам, для привлечения заинтересованных клиентов/пользователей
Необходимые знания: логическое мышление, базовые знания языков программирования, знание различных алгоритмов, понимание работы поисковых систем.
Плюсы в web-разработке:
1) востребованность веб-разработчиков
2) возможность большого заработка (если вы новичок, естественно сразу вам никто не будет платить большие деньги, но с опытом зарплата будет высокой)
3) возможность самостоятельного обучения, отсутствие необходимости обучения в ВУЗ'е, web-разработчиком можно стать даже самостоятельно, все необходимые навыки можно приобрести сидя дома, изучая бесплатные материалы в сети или же записаться на платные курсы
4) возможность работать сидя дома/быть фрилансером
Минусы в web-разработке:
1) приходится много сидеть на месте и залипать в монитор (так же возможно, что иногда будет ненормированный рабочий день)
2) высокая конкуренция на рынке труда и появление новых технологий, которые постоянно следует изучать, необходимо постоянно быть в курсе любых новинок
3) иногда работа может начинать казаться скучной и однообразной
Разработка игр (GameDev)
Данная классификация наверное самая интересная для читателей, особенно для школьников 7-11 классов, которые сами любят поиграть в игры, да что уж там, я думаю мы с вами все любим позалипать в игры ;)
Разрабатывание игр это наверное одно из самых интересных направлений, но в то же время одно из люто хреновых. Почему? Сейчас всё объясню.
Думаю ни для кого не секрет, что игры бывают:
1. Мобильные, то есть на смартфоны и планшеты Android/IOS
2. Браузерные (например те, что в соц.сетях)
3. Десктопные (на стационарные компьютеры и ноутбуки)
4. Консольные (Xbox, PlayStation, Nintendo Switch)
Необходимые знания для разработки мобильных игр и приложений: Java, Kotlin, C++ - под Android и Swift под IOS (но это что касается языков программирования, так же следует иметь понимание работ этих ОС, знания в математике, даже в физике, в зависимости от игры, если это 3D онлайн шутер, который вы создаете с самого начала, не используя никаких движков, то хотя бы базовые знания в физике, математике вам необходимы, как вода для рыбы, иначе вам будет очень сложно, или можете воспользоваться уже существующими движками, с написанной физикой)
Необходимые знания для разработки браузерных игр: по сути всё то же самое, что в web-разработке, включая всё вместе, как frontend, так и backend
Необходимые знания для десктопных игр и консольных (серьёзных проектов): C, C++, Java, C#, понимание модели взаимодействия сервер-клиент, знание дискретной математики, математического анализа, и физики, если это серьезная игра, со своей физикой, или можете воспользоваться готовыми движками, но всё равно знание физики лишним не будет и много др.)
Плюсы в GameDev'e:
1. возможность большого заработка (но вначале, когда вы только начнете, его может вовсе не быть)
2. Возможность устроиться уже сформировавшуюся крупную компанию по разработке игр или же открыть свою компанию и работать на себя
3. Возможность творчески реализоваться
4. Получение эстетического удовольствия, когда ваша игра становится популярной и всем нравится
Минусы в Game'Dev'e:
1. Если вам не повезет устроиться в крупную компанию по разработке игр и не удастся самостоятельно добиться чего - то, то скорее всего ваш заработок будет минимальным
2. Востребованность разработчиков игр не такая высокая в странах СНГ, по сравнению с Европой и Америкой
3. Большая конкуренция, так как к знаниям разработчикам выдвигаются самые высокие требования
4. В случае, если вы работаете на компанию, то свои творческие идеи вы отодвигаете на второй план, так как от вас будет скорее всего требоваться строгое выполнение технического задания
Разработка настольного ПО (клиентского) и Enterprise(промышленного):
Enterprise - включает в себя разработку корпоративных приложений, автоматизацию рабочего процесса/бизнеса, финансовых и бухгалтерских расчетов и т.д (пример - банковское ПО, другими словами Enterprise - это промышленное ПО)
Необходимые знания: Java, C++, знание СУБД (пример - Ms SQL), C# (.NET), Objective-C (для мака) (и много всего другого, что уже зависит от конкретных требований заказчика или руководства для решения поставленной задачи)
Что касается плюсов и минусов в этих сферах, то лично я затрудняюсь сказать точно, но по - моему субъективному мнению, в принципе, они в целом похожи между собой.
На этом всё, надеюсь Вам было интересно читать, если да, то поставьте лайк статье :)