Мне 15 лет, программированием занимаюсь с 13 (что только не учил: C, C++, C#, Lua, JS и т.д.), в прошлом году решил выучить Python (учился по книгам - A byte of Python, First head Python), а недавно решил выучить язык для enterprise - выбрал JAVA (учу по книгам - Thinking in Java, First head Java).
Само-собой знания английского имеются, на уровне Upper Intermediate, соответственно книги тоже читаю на английском
И вроде бы все хорошо, но никак не могу определиться с направлением: что, куда и к чему. Язык выучить одно, но куда вкладывать знания - непонятно. На Python пишу мелкие программы: парсеры, боты, оконные приложения и.т.д., но этого не хватит для нормальной работы
Конкретного предпочтения нету, но интересовался: разработкой игр, андроид приложений (этим сейчас и занимаюсь на JAVA), веб и десктоп приложения. В последнее время часта натыкаюсь на Data Science и Машинное Обучение, но не знаю стоит ли браться.
Подскажите куда идти дальше и если не трудно дать материал для изучения того или иного.
Попробуй стажировку в крупных it компаниях. Там ты увидишь процессы, будешь в них вовлечён, а так же узнаешь кто чем занимается на проекте. + у тебя появятся новые знакомые в этой сфере и контекст вашего знакомства, ты сможешь узнать у них, почему они выбрали ту или иную деятельность и что их устраивает, а что нет. В США многие абитуриенты перед тем как поступать в колледж стажируются в компаниях и после этого уже определяются на кого хотят учится. тут ситуация примерно такая же
Вы уже на практике убедились, что не материал вам нужен для изучения. Вам нужно дело, идея, которая согреет душу и будет мотивировать на творчество. Когда появляется задача - появляются вопросы и начинается развитие. Без практики читать что то бесполезно.
Есть огромный недостаток пользовательских интерфейсов для уже существующих cli утилит.
Веб - тема обширная. Много решений, тут все от фантазии зависит.
Игры - в Линукс их почти нет, а иногда есть желание поиграть.
Есть разница от чего отталкиваться. От финансовой части - нужно смотреть на спрос.
Если отталкиваться от ощущений, то это скорее всего что то из разряда вечного. Тот софт которому все будут благодарны. Такие как ngenx, apache, photoshop, и куча других.
Сфера разработки очень обширна, всего изучить не получится, даже если всю жизнь на это положить. Стоит обратить внимание на идею, реализация которой будет вызывать чувство радости и воодушевления, окупится это точно.
Для дата саенс нужна мат.база хорошая, мат.стат, тер.вер, матан и желательно эконометрику осилить. В этой сфере программирование больше как прикладная вещь.
Нет особого смысла учить кучу языков - основа везде одна и та же. Немного отличаются компилируемые от интерпретируемых, а так же ЯПы с динамической типизацией и статической. Так же отдельно можно выделить еще ЯПы заточенные на функциональное программирование и декларативное, у них свои особенности.
Вы можете менять языки, платформы, проекты, но есть технологии, которые используются в подавляющем большинстве проектов и присутствуют практически на всех платформах в том или ином виде. Стоит начать изучение именно этих технологий:
1.сетевое программирование
2.многопоточность/многозадачность и взаимодействие потоков/процессов.
3.базы данных
Список, конечно, не полный. Но и этого вполне достаточно на следующие несколько лет изучения.
Nazar Tertyshnyi, ага. вот только я не знаю что такое флуттер и какая там последняя версия ангуляра популярна. а джава как умирала, так и умирает. Только версия обновилась с 4 на 11 ( ?, последний раз я работал с 8ой, не особо следил что там с ней происходит дальше). И я вполне уверен что автор вопроса успеет повзрослеть, найти работу и даже несколько раз сменить стек.
Молодому поколению явно неинтересны enterprise тормознутые решения, которые тяжелы в поддержке и жрут много памяти, на Java тяжело найти счастливого программиста, который был бы доволен кодом который пишет.
Это вы, наверное, про сервисы Netflix, удерживающие одновременно десятки тысяч сетевых соединений и прогоняющих через них 40 гигабит в секунду кодируемого на лету видео? Про Blynk, способный обрабатывать миллион конкурентных соединений, работая на VPS'ке за 25 долларов? Может про Apache Kafka, без которой сейчас мало какой высоконагруженный проект обходится?
которые тяжелы в поддержке и жрут много памяти
Видать поэтому enterprise и выбрал Java? Крупные компании любят тратить деньги, да?
Про Java в 2004 написал Пол Грэм.
Netflix не только Java использует еще и Python.
Все в мире относительно, я писал на Java пока не попробовал Python, с тех пор для меня Java мертв.
1. Необходим фокус, что-то выбрать одно и развиваться в этом, наращивать опыт и знания.
2. Всё приходит со временем, главное прикладывать постоянные усилия.
3. Исследуйте другие направления, попробуйте дизайн или делать ролики или написать текст, а вдруг призвание Ваше не прогер, Вы попробуете рисовать и поймете, что это дело Вашей жизни.
Некоторые ищут призвание всю жизнь - это точно такая же работа и труд, опять же нужен фокус и постоянные усилия в этом направлении.