Здравствуйте. Введу немного в курс событий.
До поступления в ВУЗ я развлекался с Джавой, месяц-два, ничего серьезного, просто было интересно, на ООП завис. Когда началась учеба мы начали учить Си, относился я к нему с прохладной. А вот во втором семестре начали С++ ООП, что поначалу меня испугало, а со временем безумно начало восхищать. Сразу оговорюсь, что программирование у нас не профильный предмет и многое прошло мимо нас.
Год закончился, на втором курсе программирования не будет. И вот у меня возникает вопрос, а что учить то? То ли продолжить C++, то ли на Джаву вернутся. Джава по не понятным мне причинам нравится больше, а С++ кажется более серьезным языком, единственно что вызывает сомнения по поводу С++ — это сложность разработки, в том числе и под Андроид (сужу по наслышкам).
Ниже опишу в общих чертах, чего я хочу от языка:
1. Попробовать Андроид разработку (не знаю насколько это затруднительно если использовать C++ вместо Джавы);
2. Инди геймдев (безумно восхищен Нотчем и опять таки, не знаю насколько было бы накладно реализовать Майнкрафт на С++);
3. Разработка десктопного софта. В некоторой степени — это моделирование физ. процессов и программ которые считают «большие цифры», вообщем связаны с наукой (вторично и ради забавы);
4. Рассматриваю возможность подработки в ближайшее время.
Хабралюди, вся надежда на вас. Возможно список ожиданий расплывчатый, если будут вопросы — спрашивайте.
Я, конечно, не специалист, и сильно больше, чем на ИМХО, не претендую. Но моё ИМХО — таки JAVA.
1. Под Android'ом JAVA — это все-таки более-менее нативная технология, что снимает массу проблем.
2. В плане инди-геймдева JAVA как минимум предлагает вполне себе жизнеспособную кроссплатформенность.
3. Не берусь, ибо не сталкивался.
4. Корпоративный сектор точно давно и прочно в JAVA заинтересован, так что тоже проблем быть по идее не должно.
Выбор между с++ и java (добавьте сюда .net c# ) это больше не выбор между языками программирования и синтаксическим сахаром, а выбор между фреймворками (библиотеками) которые идут вместе (или для) с этим языком как 'стандарт по умолчанию'.
Тем более эти языки на столько похожи, они вышли то и одного лона 'старого c++'!
А это значит выбирайте то что вам нравится, но будьте готовы просто выучить еще один фреймворк (и чуть чуть языковых конструкций), ведь программист, не готовый изучать что то новое… слабовато выглядит и заранее обречен на провал.
Начните с C++ и С, лучше сразу с C++11 и С11, а потом изучите Java если нужно будет, в обратном направлении слишком сложно будет, как говорится — чтобы хорошо уметь писать на Java\C# нужно знать С.
C++, Java и С# — все это одинаково серьезные языки. Не стоит переживать. Выбирайте, что нравится. Лучше — всего по-немного попробуйте. Добавьте к списку Python и Ruby.
Однако, коллега rPman прав. В реальной жизни важнее фреймворки. Я бы еще добавил важность шаблонов проектирования (паттернов).
Поищите курсы по языкам программирования на Coursera и edX: там очень много вкусного и полезного, часто есть русские субтитры. И кстати, да. Важнее всего — выучить английский! :)
Как по мне, если вы нормально понимаете ООП в С++, то можете смело идти в Java, если вам она нравится, она действительно дружелюбнее по началу. С++ же дает гораздо больше средств работы с компьютером, нежели java. Думаю, Нотча любили бы еще больше, если бы Майнкрафт был сделан на С++. Тогда он бы скорее всего к этому времени, не требовал столько RAM для нормальной игры.
У меня счас хороший знакомый программист который в прошлом ( и настоящем ) — C'шник,
изучает Android — пишет прогу, для моделирования жидкости.
Ещё он игрушку хочет написать на Android,
клон какой-нибудь…
Присоединяюсь к вопросу. Считаю, что неплохо знаю C++11 (использую вместе с Qt) и мне всё интересно, в чём же Java удобнее?
А уж с чем, но с кроссплатформенностью у C/C++ всё куда лучше