Отрасли программирования. Кем можно стать?

Здравствуйте, дамы и господа. Я учусь в 11 классе и твердо решил стать программистом. У меня есть небольшой опыт в олимпиадном программировании(знаю немного C++). Недавно поставил себе Ubuntu 12.04 на десктоп , осваиваюсь. Пока времени хватает, следуя совету,пытаюсь пробовать себя в различных сферах(захожу на форумы,читаю хабр , тостер и т.д). Также читаю книгу Дейтелов по С++, потихоньку прокачиваю свой английский. Знакомых/друзей программистов нет, поэтому спрашиваю у вас - кем можно стать,какую работу можно выполнять? Хочется,чтобы профессия оставалась востребованной. Я очень хочу стать профессионалом в своём деле. У меня есть несколько вариантов:
1) Веб-программист.
2) Разработчик ПО.
3) Разработчик игр.
4) Системный администратор.
5) Что - нибудь ещё.
Можете рассказать по подробнее про каждую из вышеперечисленных профессий ? Добавьте что-нибудь от себя, советуйте , если не сложно. Ещё меня интересует такой вопрос - где можно найти себе наставника?
Спасибо за внимание!
  • Вопрос задан
  • 18046 просмотров
Пригласить эксперта
Ответы на вопрос 4
makol
@makol
Рекомендую к ознакомлению, www.xakep.ru/magazine/xa/116/074/1.asp
Ответ написан
@hsc
full stack python back-end developer
Мне кажется, что есть смысл начинать с компилируемых ЯП. Они, как правило, более близки к железу, а это, в свою очередь, сыграет очень важную роль в понимании процесса в целом, ведь любая программа, будь то десктопное приложение, или мобильное, или какой-нибудь бэкэнд, рано или поздно превращаться в инструкции процессора, и чем быстрее этот процесс происходит и чем меньше инструкций — тем быстрее она выполниться. Раз у вас есть знания С++ - то это чудесный выбор для начала. Он покажет насколько важны оптимальные алгоритмы, научит планировать и продумывать архитектуру чтоб добиться производительности, научит экономить ресурсы и грамотно управлять ими, столкнет вас лоб в лоб с нюансами типа "битая куча", аварийное завершение приложения со стороны ОС, всевозможные переполнения и т.д. Не стоит этого бояться, в вашем случае, когда есть время, это может стать очень интересным. Кроме этого будет возможность параллельно почерпнуть знаний о строении ОС (виртуальная память, стек, дескрипторы, процессы и потоки и т.д.).

В последствии можно будет посмотреть и на веб программирование и на моб. платформы и на серверверное программирование. Конечно, не на С++. Каждой задаче - свои инструменты. Там уже выбор ЯП будет осуществляться не по принципу "что я знаю", а по принципу "на чем быстрее и эффективнее", поскольку зная что-то типа С++ на другой ЯП можно переходить уже намного быстрее. Высокоуровневые языки типа python, ruby и т.д. очень удобны, но поверьте, знание того, что происходит в ОС будет качественно выделять вас на фоне людей, которые не могут похвастаться этими знаниями. С знаниями "низких уровней" у вас появиться больше шансов попасть на высоко-нагруженные проекты и носить гордое звание профессионала.

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

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

Успехов вам!
Ответ написан
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
Разработчик ПО в данном списке - весьма обширная сфера.
Одно из направлений данного направления (простите за тафтологию) - разработка мобильных приложений. Это и есть одно из перспективных и активно развивающихся направлений.
Проще попробовать и решить, что тебе нравится. Но при этом и не кидаться бездумно от одного к другому. Можно плавно переходить. Например, после C++ посмотреть Java, там задеть веб-разработку и посмотреть как там что устроено. Отсюда уже дойти до PHP/Python/Perl. Постепенно и базы данных подтянуться (это если на C++ СУБД никаких простеньких не писал).

Я например, на вебе остановился. И даже тут столько направлений и путей развития, что голова идет кругом.

Что касается наставника, то лучшим вариантом будет устроиться в какую-нибудь компанию джуниором, получить необходимые навыки и дальше либо остаться работать у них, если все устраивает, либо искать другое место работы.
Я на первом курсе попал в школу веб-разработки Embria (Фотострана) - за 2 месяца знаний получил больше, чем за весь первый курс (и второй, как потом оказалось - тоже :).
Ответ написан
begemot_sun
@begemot_sun
Программист в душе.
Нельзя вот так раз и стать кем-то определенным.
Как будто если вы выберете один путь, то всю жизнь до пенсии будете работать в этом направлении ? Нет.

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

Будьте разносторонне развитым. Особенно развитым в Английском (это очень нужный навык). Потом придет время, и вы сами выберете нужное вам направление. Через какое-то время, опять же, вы его смените на что-то еще, возможно более специализированное.
А сейчас нужно пробовать всё, всё что можно.

Good luck.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы