Во что стоит вкладывать силы и время?
=======================================

 Ситуация такая:  

Имеется небольшой опыт работы с собственными несложными проектами на C#. Однако я хочу писать кроссплатформенный десктоп(возможно и геймдев), работать предпочитаю из под Линукса.  

Выбор пал на комбинацию Qt + C++, взялся изучать и понял что ничего не понял. Не понял в каком направлении вобще копать.  

Судя по вакансиям требуется знание STL, Boost, иногда WinAPI и самой Qt разумеется.  

  

Из всего вышесказанного вытекают следующие вопросы:  

1) Что из этого приоритетнее и в каких пропорциях стоит уделять на это время?  

2) Насколько реально изучать параллельно те же STL и Qt?  

3) Что хотя бы примерно считается достаточным для новичка знанием STL? Не всё же от и до требуется вызубрить. Я понимаю что в разных проектах используются разные технологии и пр., но всё же должно быть что-то, что используется везде или почти везде.  

4) В Qt есть возможность разработки GUI с использованием JS и QML и вроде бы ещё чего-то. Какие это даёт приемущества? Тут как с C#(WPF круче WinForms) или у каждого из подходов есть свои плюсы и минусы (если так то какие)?  

5) В моём предствалении современное GUI приложение должно(не всегда, но часто) уметь работать с сетью и для его разработки нужно понимание некоторых алгоритмов. Насколько эти представлении верны? Если в чём-то ошибаюсь - поправьте, если чего-то не хватает - поделитесь опытом.  

6) Собственно про опыт. Если таковой имеется(в области разработки на Qt + C++):  

 6.1) Расскажите каким путём вы двигались в процессе обучения.  

 6.2) Какие могут быть советы касаемо того, как делать не стоит или того, на что стоит больше обращать внимание.  

 6.3) Какие практические навыки можно прокачать самостоятельно для дальнейшего трудоустройства?  

  

Возможно что-то ещё дополню, но пока это всё что интересует. 

 Возьмите этот список, сверните трубочкой и садитесь писать свой калькулятор/плейер/редактор сейвов/что угодно, лишь бы был гуй и какая-то логика за ним. Десктопный клиент к какому-нибудь серверу - очень хороший вариант на сегодня.  

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

 C++ без STL не бывает. В какой-то степени STL заменяется аналогичными классами из QT, но, в любом случае, С++ без STL не бывает. Без знания STL на вас даже джуниор будет презрительно смотреть.  

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

  

Поэтому сперва изучаешь STL, библиотека довольна маленькая и её можно выучить от и до. Не прям по каждой функции, а по возможностям и навыкам чтения документации. Как только перестаёт консоли и хочется добавить интерфейс, то можно начинать изучать QT.  

  

Связи между GUI и работой с сетью нет никакой. Прям вообще. Благодаря этому можно изучать GUI и работу с сетью независимо и по очереди в любом порядке. 

 Инструменты и технологии это вторично. Вам нужно определить направление куда хотите развиваться, где по вашему будет интересно, т.е. отталкиваться не от скилов, а от интересов, тогда начнете быстро расти.