C# to Java или Чего стоит выучить новый язык, зная прежний?

Здравствуйте. Я уже наметил свой путь в программирование. Установил прицел на C#. Недавно, ради интереса, просматривал вакансии по запросу "C#". В подборке несколько раз мелькнули вакансии на Ведущего программиста. Практически всегда в этих вакансиях были требования знать не только C#, но и C++, и просто С, и даже Java.
Для себя я это расценил так - наверное если отлично знаешь один язык, то другой (чем-то похожий) будет выучить легче? Тогда сколько времени примерно понадобится опытному программисту зная C# изучить Java?
  • Вопрос задан
  • 5892 просмотра
Решения вопроса 2
pi314
@pi314
Президент Солнечной системы и окрестностей
Требование совершенно справедливое, т.к. зная один единственный язык стать хорошим (тем более, пригодным для должности ведущего) программистом просто невозможно. Как абсолютный минимум нужно знать:
- ассемблер и устройство процессоров,
- минимум один "взрослый" язык (C/C++/Pascal)
- минимум один VM-ориентированный язык (C#/Java)

Зная C#, выучить синтаксис Java - вопрос одного-двух дней, но научиться правильно писать на нем программы - это как минимум один-два серьезных проекта, т.е. годик-другой. Однако, не расстраивайтесь - после третьего языка "изучение" последующих уже практически не напрягает. А потом наступает состояние, когда "новых" языков не остается - есть лишь языки, которые еще не использовал... но если нужно - просто берешь и используешь, "изучая" их, практически, по ходу дела. Вот именно оно и есть признак пригодности для должности ведущего программиста.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ну выучить Java хорошо зная c# не сильно сложно.

Что бы стать крутым .NET-чиком нужно (да и Java-разработчиком и вообще) стоит:
- понимать как работает CLI (или JVM, короче понимать что такое рантайм и как он устроен).
- понимать как работает компьютер (можно почитать например архитектуру ЭВМ Таненбаума). Мол понимать что есть еще такие волшебные вещи как кеши процессора, реордер буферы, векторные инструкции, предсказание переходов, как работают потоки и т.д. Вы должны понимать что все это

Собственно последний пункт говорит о том что вы можете писать на Си. Так сказать практическое применение знаний. Пописать потоко-безопасные lock-free структурки например (это у вас не сразу будет получаться). Ну как-то так...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@codecity
Для себя я это расценил так - наверное если отлично знаешь один язык, то другой (чем-то похожий) будет выучить легче?

Java и Managed C# -- братья близнецы. C# называют клоном Java. Разница между самими языками (если исключить фреймворк) -- не большая. Хотя Java несколько остает от C# сейчас.

В C++ есть прямой доступ к памяти через указатели (в C# тоже есть, но не Managed). К работе с указателями нужно привыкать длительное время, ошибки допустить очень легко. В остально, мало чем отличается от C#/Java.
Ответ написан
Ваш ответ на вопрос

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

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