Посоветуйте, пожалуйста, книгу (курс) по C#. Опыт в программировании на C++ есть. Есть поверхностное знание C#. Желательно что-нибудь современное, а не 2012 года.
Здравствуйте, nekoriu, Вы писали:
N>Посоветуйте, пожалуйста, книгу (курс) по C#
Советую хоть немного ТРЕНИРОВАТЬ ПАЛЬЦЫ, ну что, совсем что ли обленились?! Тем более чел из мира С++ — вы отстаёте от C# ну примерно на 20 лет!
Строго говоря, можно брать ЛЮБУЮ книгу по си-диезу, все они более-менее введут в курс дела — вы ж не новичок, чай с С++ разберётесь, что такое проперти!
Что могу посоветовать лично, так это не трогать C# от 9.0 и старше — это полный абзац. Остальное написано в книгах даже 10-летней давности.
B>Строго говоря, можно брать ЛЮБУЮ книгу по си-диезу, все они более-менее введут в курс дела — вы ж не новичок, чай с С++ разберётесь, что такое проперти!
Не вводи человека в заблуждение! C# — это ДОдиез...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, nekoriu, Вы писали:
N>Здравствуйте.
N>Посоветуйте, пожалуйста, книгу (курс) по C#. Опыт в программировании на C++ есть. Есть поверхностное знание C#. Желательно что-нибудь современное, а не 2012 года.
Здравствуйте, nekoriu, Вы писали:
N>Здравствуйте.
N>Посоветуйте, пожалуйста, книгу (курс) по C#. Опыт в программировании на C++ есть. Есть поверхностное знание C#. Желательно что-нибудь современное, а не 2012 года.
Сам я, откровенно говоря смотрел на этот сайт как на базовый, т.е. с курсами "по самым азам", но последнее время убеждаюсь, что здесь очень сжато, без особой воды (по крайней мере в отношении C#/.Net) рассказывается практически всё, что нужно на старте разработчику.
И да, это для тех, кто не начинает с 0, а имеет за спиной опыт изучения других, аналогичных, языков и сред (как тот же C++)
Гм, а есть ли вообще смысл читать книгу на русском?
Всё равно же потом англоязычные варианты всех конструкций языка придется учить.
Иначе ни запрос в google толком не сформулируешь, ни вопрос на stackoverflow не задашь. MSDN толком читать не сможешь (мне встречались грубые ошибки даже в ручном переводе).
Да и коллеги могут не сразу понять, о чем речь.
Даже если очень хочется избегать в речи англицизмов, то я бы все равно сначала знакомился с английской терминологией, как минимум потому что вариантов перевода может быть несколько, что тоже вносит путаницу.
Здравствуйте, m2user, Вы писали:
M>Гм, а есть ли вообще смысл читать книгу на русском? M>Всё равно же потом англоязычные варианты всех конструкций языка придется учить.
А в книгах уж переводят конструкции языка? Вместо "for" прямо пишут "для"?
M>Иначе ни запрос в google толком не сформулируешь, ни вопрос на stackoverflow не задашь. MSDN толком читать не сможешь (мне встречались грубые ошибки даже в ручном переводе).
Читать книгу и читать MSDN — для этого требуются разные уровни знания языка.
Если с английским печально, то книгу будешь полгода читать.
M>Да и коллеги могут не сразу понять, о чем речь. M>Даже если очень хочется избегать в речи англицизмов, то я бы все равно сначала знакомился с английской терминологией, как минимум потому что вариантов перевода может быть несколько, что тоже вносит путаницу.
Можно пример терминологии?
На работе сталкивался только с проблемами русифицированной студии.
Например, модуль для Git там отвратительно переведён и непонятно какая кнопка что делает с репозиторием.
В остальных местах тоже печально, но терпимо (я не знаю почему люди не ставят английскую локаль на студию).
В плане же C#, все как-то друг друга понимают, хотя кто-то книжки на английском читает, а кто-то MSDN с машинным переводом только может осилить.
M>>Гм, а есть ли вообще смысл читать книгу на русском? M>>Всё равно же потом англоязычные варианты всех конструкций языка придется учить.
K>А в книгах уж переводят конструкции языка? Вместо "for" прямо пишут "для"?
модификаторы (видимости и не только) переводят: и если с приватный/публичный все более менее ясно, то я не сразу понял, что частичные это partial.
Но вообще под конструкциями я подразумевал не операторы, а всякие там обобщенные типы (generics), и ограничений обобщений (generic constraints), методы расширения (extension methods).
И речь была не про примеры кода конечно.
M>>Да и коллеги могут не сразу понять, о чем речь. M>>Даже если очень хочется избегать в речи англицизмов, то я бы все равно сначала знакомился с английской терминологией, как минимум потому что вариантов перевода может быть несколько, что тоже вносит путаницу.
K>Можно пример терминологии?
Пример, когда не поймут или пример когда несколько вариантов перевода?
Differences Between C++ Templates and C# Generics (C# Programming Guide)
Различия между шаблонами языка C++ и универсальными шаблонами языка C# (Руководство по программированию в C#).
Общие сведения о сопоставлении шаблонов
Pattern matching overview
При этом в дереве слева на MSDN Pattern matching переведен как регулярные выражения, что вообще не верно в данном контексте.
K>В плане же C#, все как-то друг друга понимают, хотя кто-то книжки на английском читает, а кто-то MSDN с машинным переводом только может осилить.
Это конечно субъективно, но универсальные типы или обобщенные типы на слух я бы не воспринял без пояснения. Дженерики, шаблоны типов, темплейты, параметризованные типы, наконец — это понял бы.
K>Читать книгу и читать MSDN — для этого требуются разные уровни знания языка. K>Если с английским печально, то книгу будешь полгода читать.
Самая короткая книга — "Карманный справочник" двух Албахари (Albahari C# Pocket Reference), регулярно переиздается с обновлениями по новым версиям C#.
На известном трекере есть русское издание по C# 8.0 2020 года.
Также там есть варианты их более толстой книги ("C# in a Nutshell"), английская есть по C# 10 2022 года.
По конкретным направлениям — куча специализированных книг, к примеру:
Mark J. Price — C# 9 and .NET 5 — Modern Cross-Platform Development
Здравствуйте, m2user, Вы писали:
M>>>Даже если очень хочется избегать в речи англицизмов, то я бы все равно сначала знакомился с английской терминологией, как минимум потому что вариантов перевода может быть несколько, что тоже вносит путаницу.
Не ту профессию выбрали, если кому-то хочется избегать англицизмов.
Только я вот ни одной книги на английском не прочитал, а знаю и оригинальные названия на английском и некоторые варианты перевода.
Причём чаще использую именно английские слова.
M>При этом в дереве слева на MSDN Pattern matching переведен как регулярные выражения, что вообще не верно в данном контексте.
MSDN в большинстве своём прогнали через достаточно кривой переводчик. Там и тематику не настраивали и до тупого доходит, когда он имена классов/методов переводит.
Этот ресурс я бы не рекомендовал читать на русском и уж точно нужно внимательно следить за уведомлением об автоматическом переводе.
M>Это конечно субъективно, но универсальные типы или обобщенные типы на слух я бы не воспринял без пояснения. Дженерики, шаблоны типов, темплейты, параметризованные типы, наконец — это понял бы.
А я бы развёл демагогию, что в шарпе нет шаблонов и это печалька.
При работе в команде всё равно у людей свои привычки по названиям и к этому достаточно быстро привыкаешь.
Да и не сказал бы, что часто на счёт этого какие-то разговоры бывают.
Ну, новую версию языка обсудишь, очень редко с кем-то по реализации задачи поговоришь, а чаще по предметной области общение (но может это у меня так и другие люди активно про язык общаются).
С английскими терминами не так уж и лучше дела. Один хорошо знает язык и начинает говорить словечки с правильным произношением, другой — как пишется, так и читается, у третьего своё видение.
Встречал людей, которые MS Word называют "вёрд".
M>Но этот курс от metanit во многом похож на C# programming guide, на который я ссылался выше (https://learn.microsoft.com/ru-ru/dotnet/csharp/programming-guide/). M>Основы языка.
Ну, если с английским беда, то metanit будет получше, т.к. там человек как минимум адаптировал текст и он менее корявый (по крайней мере из того, что я у них глядел когда-либо)
M>P.S. ещё забавное место в курсе от metanit: multi-line strings перевели как многостроковые строки . Впрочем MSDN также переводит. Сложности перевода
Если я на английском языке прочитаю "multi-line strings", мысленно у себя в голове переведу в "многострочные строки", то не сильно легче будет.
Конечно я догадаюсь, что line — это про строки кода, но всё равно нужен пример или описание что это за штука такая.
Какой-то проблемы в переводе тут не вижу, разве что странно звучит, но к такому быстро привыкаешь (хороших переводов мало и многие вещи в принципе непонятно как нормально перевести).
Здравствуйте, nekoriu, Вы писали:
N>Посоветуйте, пожалуйста, книгу (курс) по C#. Опыт в программировании на C++ есть. Есть поверхностное знание C#. Желательно что-нибудь современное, а не 2012 года.
Ну да, корявый машинный перевод. А у metanit весьма сомнительный немашинный перевод.
Как пользоваться документацией/литературой на русском, если термины везде переведены по-разному мне решительно не понятно
Здравствуйте, m2user, Вы писали:
M>Как пользоваться документацией/литературой на русском, если термины везде переведены по-разному мне решительно не понятно
Очень даже понятно как — пользоваться оригиналом на английском.
Здравствуйте, nekoriu, Вы писали:
N>Посоветуйте, пожалуйста, книгу (курс) по C#. Опыт в программировании на C++ есть. Есть поверхностное знание C#. Желательно что-нибудь современное, а не 2012 года.
Принимая во внимание, что программировать в принципе вы уже умеете и даже синтаксис боль-менее понимаете, я бы посоветовал разбить информацию на несколько кусков: Framework Design Guidelines. Очень немного есть в мсдн, но вся книга поможет понять принципы создания библиотек, проектирования и т.п.
Про сам язык C# in Depth Джона Скита или C# in a Nutshell Албахари
Что-то конкретное про область применения (веб, облака, entity framework, может быть даже wpf/winforms)
Детали реализации (Рихтер (всё ещё да), Book of the Runtime, Concurrency in C#, Writing High-Performance .NET Code, Pro .NET Memory Management, …)
Help will always be given at Hogwarts to those who ask for it.