Как перейти с java на c
Перейти к содержимому

Как перейти с java на c

  • автор:

Переход с Java на С# [дубликат]

Коллеги, подскажите, адекватную литературу, чтобы без воды максимально быстро разобраться в C#, а ещё лучше книга, где показывают как было в Java и как есть в Шарп (ну это наверно малореально, но хотелось бы)! Работал с Java около года, но меня кинули на большой «дотнетовский» проект WPF, а там и структуры и свойства и ещё что-то, просто шок! С технологиями MS встречался очень редко, в основном MS SQL Server 2000 и Windows.

Отслеживать
51.4k 87 87 золотых знаков 267 267 серебряных знаков 508 508 бронзовых знаков
задан 6 янв 2014 в 11:14
Oleg_Samitch Oleg_Samitch
89 1 1 серебряный знак 9 9 бронзовых знаков

Вообще переходы java <->CLR не должны вызывать проблем. т.к. аналогичные это технологии (но в последнем побольше синтаксического сахара: лямбды, события, var. ). Есть там конечно особенности, например, проблемы с classpath успешно заменяются проблемами с подписями сборок и GAC. Но будучи неплохим программистом на java, вы быстро станете хорошим программистом на C#

6 янв 2014 в 12:09

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Попробуй эти книги (сам пару лет назад начинал изучать Шарп по ним, вроде неплохо все раписано):

Нэш Трей — C# 2010. Ускоренный курс для профессионалов

Шилдт Г. — C# 4.0 полное руководство (очень объемная книжка, но зато довольно подробно описано все от самых основ до редко используемых возможностей языка).

Отслеживать
ответ дан 6 янв 2014 в 12:06
2,542 13 13 серебряных знаков 12 12 бронзовых знаков
@MDJHD Спасибо, сейчас попробую .
6 янв 2014 в 12:52

и структуры и свойства и ещё какая-то хрень, просто ШОК ! С технологиями MS встречался очень редко

Да так то это все связано с ООП, и включается в любой нормальный ЯП, в том числе и Java, а не то что якобы какая то приблуда от Microsoft. Я не знаю как вы прошли мимо структур и свойств, изучая его 🙂 По сути перейти бы было проще и вообще почти безболезненно, а так придется наверстывать упущенное.

Из литературы посоветую «Рихтер — CLR via C#»

Сложно ли перейти с Java на C#?

Учу в данный момент Java, но какое то профессиональное (студенческое) выгорание и хочется что то поделать а не просто читать учебник, и решил поделать что нибудь на Unity, но там пишутся скрипты на C#, сложно ли перейти от JAVA (я собираюсь его учить , и не собираюсь останавливаться) к C# ?

  • Вопрос задан более трёх лет назад
  • 6269 просмотров

1 комментарий

Оценить 1 комментарий

C# для Unity несколько отличается от стандартного. Не по синтаксису, а в части построения приложения. Или подходу к этому самому построению. При прочих равных, опыт Java будет скорее полезен.
Удачи.

Решения вопроса 0
Ответы на вопрос 6

Ewintory

Java / Android developer

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

Ответ написан более трёх лет назад
Комментировать
Нравится 4 Комментировать

Что касается языка, то тут много похожих моментов как и различий.В первую очередь в C# в подавляющем количестве случаев вместо геттеров/сеттеров используются автоматические свойства, также в C# вам предстоит освоить библиотеку TPL(async/await , IAsyncResult , Parallel.Foreach(). etc), которая содержит много синтаксического сахара для создания многопоточных приложений и язык LINQ/PLINQ(Parallel LINQ) который используется для создания запросов к коллекциям, XML-кам и Relational базам данных.В C#, в отличие от java для реализации событий используются делегаты (Event) вместо экземпляров обработчиков, также для реализации lambda выражений в C# используются анонимные методы и тут нет функциональных интерфейсов .Что касается самой платформы .NET — вам предстоит увлекательный путь изучения недр CLR и DLR.

Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
Просто люблю качественно работать
где то за неделю перешел с джавы на сишарп от нечего делать
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать

Не сложно, но зачем, когда есть libGDX? Да, вряд ли этот фреймворк будет лучше Unity, но так ли сильно вам нужно изучать другой ЯП ради Unity?

Ответ написан более трёх лет назад
Нравится 2 3 комментария
Loligan @Loligan Автор вопроса
а вот это интересно

Loligan: посмотрите в сторону LWJGL и JMonkeyEngine.Но предупреждаю — java создана не для разработки игр, а для создания распределенных корпоративных приложений.

cthulhudx: C# тоже не для геймдева делался. Тем не менее он прекрасно смотрится в Unity.
Насчет JMonkeyEngine — не знаю, не могу судить, не поработав в них, но лично мне libGDX показался «покруче».

Как перейти с Web на Java или C++ ?

Всем привет , такая ситуация мне 18 лет и я работаю веб-дизайнером
в компании UA-Motors (Adobe Photoshop,Muse + ручная верстка) хочу поинтересоваться у опытных разрабов, как перейти с веба на что-то более серьёзное в частности на C++ или Java.

Так как нет возможности и желания продолжать обучение в вебе, из-за отсутствия адекватных курсов в моем городе, а онлайн без базы, усваиваю плохо. Кроме «мегакрутой академии Шаг» по вебу ничего нет. До этого учил веб на проверенных курсах (очно), но к сожалению препода забрали в АТО, а замену адекватную ему не нашли.

В этом же центре мне предлагают перейти на курс по С++ и Java как вы думаете стоит ли попробовать?
Если да, то посоветуйте пожалуйста литературу для понимания общих концепций программирования и насколько быстро можно стать Junior разрабом , и на что делать упор С++ или Java?

Спасибо за внимание!

�� Подобається Сподобалось 0

До обраного В обраному 0

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

40 коментарів

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Podoprigora Alexandr front-end developer в freelace 25.10.2017 15:52

В этом же центре мне предлагают перейти на курс по С++ и Java как вы думаете стоит ли попробовать?

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

Включает , курс рассчитан на 10 месяцев, я попросил чтобы С++ убрали вообще из программы , вместо него поставили Spring или Maven и всякое такое ,плюс свой проект под руководством ментора,спасибо за комментарии и советы.

Spring или Maven и всякое такое

Это «всякое такое» вообще не должно изучаться в Уни. Т.к. попса, на освоение которой хватит пары дней за компом. Сегодня есть, завтра не будет и все о ней забудут.

Arthur Belov Mobile TechLead 25.10.2017 15:13

Крайне не советую учить С++, сложный в восприятии язык, да и многое «прощает», что не самым лучшим образом сказывается на чистоте кода и логики. Лучше начинай с джавы, в ней язык тебе не позволит сделать очень много глупостей, а вместе с этим и привьёт умение правильно писать код + не надо заморачиваться касательно всех вопросов связанных с памятью. А если очень понадобиться — зная джаву выучить С++ намного проще.

Спасибо большое , пришел к выводу что да начну с Java , уже записался на занятия.

Как перейти с Web на Java

Прочитал заголовок как «Как перейти с Web на Web».

Предлагаю ТС хорошо подумать, чем принимать решение перейти на плюсы. Вот вчера пришло предложение

C++ Video Streaming Engineer
Job Summary

You’ll be responsible for the development of an ultra low latency video streaming solution used for bidirectional communication/conferencing, which works reliably in different network conditions.
Qualifications and Skills

Extensive practical knowledge of one or more of the common streaming protocols — RTP/RTCP, RTSP, SIP, SDP
Understanding of multiple media codecs is a plus — H264, H265
Knowledge of Image/Video Processing or GPU programming is a plus
Deep understanding of network programming, VoIP and Video over IP
Experience with Asterisk, WebRTC, Freeswitch is a plus
Experience in developing scalable distributed systems
Problem-solving skills, ability to dive deep to find the root of the problem
Solid knowledge of debuggers, profilers and other tools for the technologies he owns.
Strong foundation in OO Design and multithreaded applications
Experience in network troubleshooting
Fluency in UNIX environment
Embedded development is a plus
Experience with AWS is a plus
English communication skills (speak, read, write)

Это стандартные требования к плюсовику по этому направлению, на других будет аналогично. Как видите о самом языке ни слова, предполагается, что вы знаете его по умолчанию. Основные требования — это знание и опыт технологий и фреймворков. Подумайте , сколько лет вам понадобиться , чтобы все это освоить.

Язык «С» сложней чем Java ?

Доброй ночи ! Коллеги так вышло что сам я пишу на Java но нам кидают очень различные проекты, и в понедельник должен прийти проект (связан с сетевой защитой) для долгосрочной поддержки и баг-фикса который написан на чистейшем «Си» (так нам сказали) типа вспоминайте «Си-шку», а я хоть и окончил ВУЗ но изучал с самого начала php потом Java (даже немного C# после Java), а вот с чистым «Си» как-то не приходилось встречатся и вот дкмаю занятся изучением этого «Си» или идти работу искать так как пока проектов на Java у нас нет !
На первый взгляд вроде простой язык без ООП, а там кто его знает .
Всем большая благодарность кто осмелится ответить хоть строчкой .

Отслеживать
4,730 3 3 золотых знака 29 29 серебряных знаков 46 46 бронзовых знаков
задан 17 янв 2014 в 17:16
Oleg_Samitch Oleg_Samitch
89 1 1 серебряный знак 9 9 бронзовых знаков

Более опытные коллеги меня отговаривают от этой идеи с «Си», говорят что человеку познавшему ООП и автоматическое управление памятью, чистый «Си» будет большой проблемой .

17 янв 2014 в 17:37

Си более низкоуровневый, значит проще выстрелить себе в ногу (особенно если начинал с высокоуровневых ЯП). С другой стороны это позволяет в некоторых случаях писать более оптимальный код (если ты джедай :). С ещё более другой стороны Java, если ещё неправильно готовить (а знающие люди утверждают что правильно её готовят редко), превращается в адового, сводящего с ума, монстра. А с совсем уж другой стороны жабакодеров гораздо больше чем сишников, можно предположить что спрос на адекватных сишников выше. В общем есть смысл попробовать, хотя-бы для расширения сознания, а вдруг получится.

24 мая 2014 в 12:15

6 ответов 6

Сортировка: Сброс на вариант по умолчанию

Ещё одна проблема — указатели, массивы и строки. Они очень похожи в C синтаксически, что часто приводит к недопониманию.

Отдельный пункт — ручное управление памятью и понимание того, что указатель в C (в отличие от ссылки в Java) может указывать на невыделенную, неинициализированную или освобождённую память.

Ещё одно серьёзное отличие: у ресурсов в отсутствие GC появляется владелец — сущность (код), ответственная за своевременное освобождение ресурса.

Отслеживать
ответ дан 17 янв 2014 в 19:22
207k 29 29 золотых знаков 294 294 серебряных знака 528 528 бронзовых знаков

@VladD Наличие/отсутствие арифметики указателей. В Си это естественное следствие его низкого уровня. Других различий пока не вижу (кроме именно синтаксических — нет операций & и * ) указатель в C (в отличие от ссылки в Java) может указывать на невыделенную, неинициализированную или освобождённую память. А в отличие от WeakReference?

17 янв 2014 в 23:56

@alexlz: Ну, да, естественное отличие, конечно. Однако адресная арифметика всё же специфична для C, соотношения типа &a[i] = a + i довольно специфичны и не присутствуют, например, в ассемблере. Отличие от WeakReference состоит в том, что вы не можете, имея указатель, гарантировать его валидность «локально»: вам нужно знать всю логику программы, чтобы уметь доказать/опровергнуть этот факт. С WeakReference же ситуация другая: если из него получилась сильная ссылка, то она гарантировано валидна, вам не нужно анализировать program flow, чтобы это выяснить.

18 янв 2014 в 0:26

@VladD Разумеется слабые ссылки — они везде слабые ссылки (и созданы для взаимодействия программы с GC, которого в Си изначально не было предусмотрено). Адресная арифметика — красивое и машинно-эффективное обобщение индексации (которая появилась в конце 50х вроде). В ассемблере не присутствуют потому, что там все эти механизмы должны быть расписаны до инструкций. Кстати, &a[i] == a + i &i[a] == a + i И ещё никто не вспомнил про селекторы структур в K&R C (там вроде селекторы полей не привязывались к структуре, хотя могу и перепутать за давностью).

18 янв 2014 в 1:15

@alexlz: Угу, меня всегда удивляло, что i[a] компилируется. Как мне кажется, это нужно лишь для того, чтобы сказать «а вы знали такое?», и не имеет вообще никакого практического применения. Впрочем, в остальном C очень милый и изящный язык. А что такое селекторы структур? Какой синтаксис и что это даёт? (Я правда не в курсе.)

18 янв 2014 в 1:20

@VladD ну термин скорее из другого языка (хотя, может, и в Си применялся). Имена полей. struct a ; b = a.a1; Ежели не путаю, в K&R Си имена a1, a2 должны быть уникальны и могли применяться к любым структурам. Но дальше — не помню. Откуда ноги растут понятно — «фиктивные секции» ассемблеров для архитектур с базовыми регистрами, где имена задавали смещения относительно базы. Сейчас такой подход используется в haskell.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *