Как начать путь кибернетика?
Во-первых, поступите в любой вуз на специальность «вычислительная техника и программирование» или любую смежную. Это самое простое и очевидное начало. Позволит погрузиться в тему и получить общие знания (включая очень важные фундаментальные знания в математике).
Во-вторых, осознайте, что «минимум сухой теории» и «сложные технические задачи» — это взаимоисключающие параграфы. Либо хавать теорию огромной ложкой за обе щеки, либо быдлокодить скриптики на PHP (без претензий к самому PHP, просто как пример). Инженер в первую очередь решает задачу, а не использует инструмент. Можно быть виртуозом гаечного ключа и отвёртки, но чтобы спроектировать автомобиль, этого мало.
Ну и в-третьих,  определитесь с задачей, которая интересна, и под неё выбирайте инструменты. Для десктопных приложений в моде C#, нестареющей классикой считается C++, имеет множество преимуществ Java и её производные вроде Scala (это к вопросу блокнот с анимацией). Для работы с текстами (составление компиляций) неплохо подходят скриптовые языки, вроде Python, Ruby, JavaScript, Perl.
И в-четвёртых, больше никогда не говорите, что HTML и CSS — это программирование. Это вёрстка, она к программированию имеет очень мало отношения. Но раз Вы кое-что в этом понимаете, попробуйте начать с изучения JavaScript, как раз умение верстать и понимание DOM пригодятся. И инструменты знакомые.
для робототехники учите что-то серьезно, промышленно-корпоративное однозначно:
си, си++, си-шарп, пайтон, джава, руби, свифт, гоу-ланг..... это как основные и популярные в этой области на чем работает мировой робототехник-паблик.
вообще от задачи к задаче бывает свой специфический инструмент, какая то команда и на асме пишет