Задать вопрос

Какие существуют направления в программировании?

В общем, ситуация такая — я школьник, через год буду студентом. Хочу поступать учиться на программиста, ну и сам пока учусь потихоньку и на курсы хожу. И сейчас читаю про разные направления, пробую всё — пытаюсь понять, чем именно мне нравится больше всего и будучи студентом уже стараться искать работу в конкретной области. Но не хватает некоторой систематизации знаний о направлениях в программировании. Поэтому буду весьма благодарен, если программисты помогут составить более-менее полный список направлений с краткими описаниям. Чтобы сократить область поиска, напишу, о каких областях мне бы хотелось узнать в первую очередь:

1. Встраиваемые системы. Насколько это перспективно? Видел на одном форуме мнение, что embedded в будущем станет менее востребованным, хотя самому мне так не кажется — ведь это и смартфоны, и роботы, и ip камеры и много чего ещё

2. Вирусная аналитика. Совсем недавно это направление попало в моё поле зрения. Хотелось бы просто больше узнать о навыках и знаниях, нужных вирусному аналитику и о том, какие существуют смежные направления.

3. Шифрование, криптография, ЦОС. Насколько практично изучение этих вещей? Я имею ввиду, для того, чтобы работать в крупной компании, а не в каком-нибудь НИИ.

4. Поиск уязвимостей на сайтах (а вообще может быть и, например, в онлайн играх и проч.). В частности, пробую находить XSS, пока ни на одном крупном сайте не нашёл, только на паре не сильно известных сайтов

5. Функциональное программирование. Ну там, Haskell, Erlang. С одной стороны, видел много статей, в которых этот самый хаскель и ФП вообще расхваливались, да и самому мне идеи их нравятся, да только много кто считает, что в теории-то они хороши, но на практике никуда с ними не устроишься. Неужели всё так плохо? И ещё, в каких конкретно направлениях использование ФЯ действительно оправдано?

Вообще интересно ещё низкоуровневое программирование, ковыряние с железом (с паяльником дружу, обжимать умею :)

Сразу оговорюсь, не особо интересна разработка мобильных приложений и фронтенда в вебе. Ну и 1С-ки всякие.

На счёт опыта и навыков:

Python (писал программку для автоматической настройки ip-камеры, сейчас пишу программу ля отправки видео с камеры на сервер, параллельно разбираясь с Django, чтобы писать для этой программы серверную часть)

C++ (ничего готового пока не сделал, сейчас начал писать кейлоггер и простенького сетевого червя — исключительно в (само)образовательных целях, распространять не буду)

Pascal/Delphi (писал программку-переводчик с английского на русский, которая брала слова и их перевод из текстового файла и ещё одну — тест с выбором ответа, берущий вопросы и ответы из текстового файла, спрашивающий у пользователя фамилию и имя, вычисляющий оценку и записывающий в другой файл фамилию, результат и дату — но это давно было, сейчас паскаль как-то подзабросил)

Потихоньку начал учить fasm под Linux, поверхностно знаком с HTML/CSS, очень поверхностно с JavaScript.

Чуть не забыл — интересны в первую очередь свободные технологии — поэтому .NET и Flash, например, не сильно привлекают. Но это не самый важный критерий.

P. S. Изначально хотел попросить более общий список направлений, но так вышло, что в процессе формулирования вопроса пронял, что просить перечислять вообще все направления — слишком нагло, поэтому постарался определить, в направлениях в каких областях мне бы хотелось больше всего узнать.
  • Вопрос задан
  • 35884 просмотра
Подписаться 6 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
embedded - это микроконтроллеры, промышленное оборудывание.... такие вот штуки. Смартфоны давно уже не входят в эту категорию. Тут нужно хорошое понимание того как работает железо, Си, ассемблер и все такое прочее. Хороших специалистов в этой области выпускается с каждым годом все меньше и меньше

вирусная аналитика - без понятия, но я так понимаю что вы должен неплохо разбираться в том, как эти самые вирусы писать. Скажем попробуйте написать тестовый вирус с использованием полиморфного кода. Заодно разберетесь как работать с потоком инструкций в рантайме... штука довольно занимательная... но я если честно так и не потиг сей пласт в свое время.

Шифрование, криптография... рано или поздно в любом направлении сталкнетесь хотя бы с базовыми вещами. Как минимум будете слышать всякие штуки типа SHA12, RSA, SSL и т.д. с чем бы вы в итоге не работали (разве что в embedded меньше этого, хотя я не могу точно сказать).

Что до функционального программирования... это парадигма программирования, на ряду с процедурным и объектно-ориентированным. Это как бы не привязано к направлению разработки. Более того, масса языков совмещают в себе все эти парадигмы или дают возможность писать в том стиле, в котором вы хотите (например PHP, Haskel, Pyhon, Java с 8-ой версии вроде как лямбда-вычисления поддерживает)...

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

Ну а хороший специалисты будут востребованы всегда.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
goodprogrammer
@goodprogrammer
к. ф.-м. н.
С примерами
www.youtube.com/watch?v=fqcSTBWD9JI
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы