Вопросы
Az Az

C# с нуля, для самостоятельного изучения

Здравствуйте!

В последнее время стало интересно разобраться в программировании, а конкретно в языке C#. Нашёл отличную книгу:

Понравилось как в данной книге подаётся материал. Но к сожалению книга эта только в электронном виде (что не очень удобно), в бумажном ни где найти не удалось.

И соответственно вопрос - какие аналоги данной книги, написанные понятным языком для новичка, в бумажном виде можно рассмотреть сейчас?

Естественно Гуглом пользовался, и выбор в том же озоне достаточно обширный, в ценовом диапазоне от 500 р. до 3000 и больше. Но хотелось бы как-то сузить для себя варианты для подбора.

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

0
121 комментарий
Популярные
По порядку
Написать комментарий...

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

Потому я бы посоветовал завести гит, выбрать какую-нибудь практическую задачу и уже после этого по официальной доке учить язык :)

29

Я так Blender додумался учить на реальном боевом примере (заказ на фрилансе). Сроки не сорвал, но в душе поседел) Зато получил интересный опыт

8

Как можно получить заказ без портфолио?

1

Это был далеко не мой первый заказ) Просто первый, в котором я использовал именно Blender. Я вообще больше по 2D-роликам, но иногда делаю и какую-то трёхмерную анимацию. До этого работал с 3DS Max и Maya, но в какой-то момент решил попробовать Blender. Сейчас уже давно с ним и перекатываться куда-то не планирую)

3

Ну я так фреймворки и либы на ++ изучаю. Тот же буст и qt пока не появилось необходимость в кроссплатформенность были до одного места :)

1

Кресты мы с универе проходили, но я уже почти все особенности забыл. Когда наконец дойдут руки до UE, думаю по Культину вспоминать, специально искал что-то с практическими задачами. В идеале бы методичку универскую найти, там всё совсем сжато, но я все удалил давно, и лень снова копаться в недрах университетского сайта, где всё просто и понятно (нет 🙃).

1

Я сейчас скажу крамольную вещь, но у яндекс-практикума внезапно есть бесплатный базовый курс крестов х)))) Некоторыми вещами давно не пользуюсь, либо они не поощряются свежими стандартами, но именно повспоминать самое то)

2

А там практические задания есть? А то мне важны именно краткое изложение теории и небольшие практические задачки по ходу, чтобы не выдумывать что-то своё и не просто читать)

1

Да, всё есть, базовые алгоритмы и типы данных)

2

Хм, спасибо, добавлю в закладки)

1

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

1

Мой опыт работы с программами, написанными как реальные задачи но без самоучителя (говно) говорит о том, что нужно обучаться комплексно

5

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

А по поводу вашего случая - всё зависит от того, кто это писал :)

1

Можно согласиться! И наверное это даже будет верным решением. И я даже так и начал)), сделал приложение которое работает(естественно не из головы, а на основе уроков))), но я совершенно не понимал, что пишу в коде. Поэтому и хочу сейчас освоить базис языка, и набить руку на простых задачах))

1

Ну я бы для примера тебе посоветовал взять что-то не из головы, а сделать условный сервис-приложение для общения с сайтом например. Тут ты решишь на понимание несколько задач:
-Клиент-серверное взаимодействие
-Протоколы общения http/https
-Серилизация и десерилизация сообщений в json/xml
-Работа с потоками
-Структуры
-Отображение данных в приложении.

4

Правильно понимаю?
т.е. создать приложение, которое будет обращаться к сайту например на автомобильную тематику, выбирать представленные на нем авто, и допустим сортировать их по выбранным параметрам?

1

Как вариант, если там есть человеческое апи, иначе запаришься :))))

А так, можешь сделать простенький клиент для того же дтф например)

1

Надо будет подумать над этой темой спасибо!)))

2

На сайтах прогнозов погоды часто бывает API, по которому можно получить данные о погоде в конкретном месте и за конкретный срок. Погугли в этом направлении.

2

Комментарий удален по просьбе пользователя

0

Относительно того, что я видел, у основы ещё человеческое апи, его минус в том, что там хуева туча данных по запросу льётся :)

2

Я бы сказал не так. Нужно хоть ОДНУ книжку прочитать, например, Шилдта, чтоб хоть знать, с какой строчки начинать писать код и что именно писать, а потом уже брать задачи и копаться в них, попутно находя те темы, которые тебе нужны

2

А лучше вместе с книжкой начать сразу творить, чтобы помимо примеров из книжки, был твой живой проект, который вещи из книжки использует. Пользы будет в разы больше, чем просто прочесть книжку и выполнить примеры, а потом браться за свою задачу. 

Но я говорю о своём практическом опыте. Ни универ, ни практика, ни игровые задачи, ни тестовые примеры не ставили передо мной тех дилемм, которые ставят реальные проекты, даже личные. И так учится просто эффективнее. В какой-то момент, твой гит становится твоим справочником, т.к. что-то где-то когда-то уже делал и посмотреть у себя со своими пояснениями даже проще :)

1

Да, идеальная цепочка: идея -> азы -> реализация -> поиск необходимого -> совершенствование

0

Кстати, отличные советы даёшь. Но я всё таки спрошу наперёд: как выбрать "какую-нибудь практическую задачу"? Я уверен, что ты программист и, возможно, сталкивался с такой же проблемой, когда не знаешь что можно сделать.

1

Как и всё, что выбираешь по жизни - к чему душа лежит :))
Но если отталкиваться от полезных знаний и умений которые разрабу потребуются в любом случае, то начать с чего-то вроде этого. Ссылку, чтоб не дублировать ответ)

https://dtf.ru/ask/696348-c-s-nulya-dlya-samostoyatelnogo-izucheniya?comment=10063918

3

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

1

Комментарий удален по просьбе пользователя

16
Параллельный жар

Плюсую. Head First - лучшая серия.

7

Комментарий удален по просьбе пользователя

0

Комментарий удален по просьбе пользователя

1

Спасибо посмотрю!

0

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

Фух, обошлось.

0

не знает английский

Вкатиться в программирование

Лови 1Сника.

1

Есть на русском

0

Так там же большая часть книги про xaml

0

Комментарий удален по просьбе пользователя

0

Многие комменты смотрелись бы намного интереснее, если к ним приложить собственные достижения в программировании, историю так сказать успеха

А то непонятно чем комментарий с одной книгой отличается от другого

–2

Комментарий удален по просьбе пользователя

0

Комментарий удален по просьбе пользователя

0

Комментарий удален по просьбе пользователя

0

Комментарий удален по просьбе пользователя

0

Комментарий удален по просьбе пользователя

0
Параллельный жар

UPD: А, оказывается не меня спрашивали. Извинити ред.

0

То что ты читаешь это уже сильно устарело, многое из того что советуют в комментах - тоже. Актуальная версия языка сейчас 9, читать что то, где описывается ниже 7 не рекомендую настоятельно.

Что нужно читать:
1) Троелсен, Джепикс «Язык С# и платформа .NET”, если владеешь английским, то читай более новую версию, на русском 7я последняя.
2) Рихтер «CLR via C#”, это книга не про язык, а про .NET в целом, его архитектуру и устройство, очень глубокая, может быть сложной, но знать это надо.
3) Албахари «C# in a nutshell”, по русски называется «С# Справочник» (почему то, хотя это не справочник)
4) Скит «С# для профессионалов», или «С# in depth” в оригинале.

Так же читай документацию, а вообще в мире .net очень много хорошей литературы, могу ещё накидать, но это уже уровнем повыше)

12

Все так, еще бы добавил от себя:
5) А.Фриман ASP.NET CORE MVC и тогоже автора про Entitiy Framework, так как там как раз описываются более менее реальные задачи через написание собственного приложения.
6) Макконел Совершенный код - маст хэв. просто маст хэв. тут ответы на все то "что ты хотел знать но боялся спросить, или думал что уже знал или не знал что нужно знать" про программирование. 

5

Благодарю за целый список!!!
Думаю на данном этапе этого списка литературы будет достаточно ))

Хотя можно накидать для других, кто ещё читает эту тему, кому интересно, и кто продвинулся дальше ))

0

Добавлю от себя, что CLR via C# просто обязана быть не первой книгой. Иначе будешь сидеть как той мужик из мема: ничего не понятно, но очень интересно.

5

Была пераой, понравилась :)

1

Ошибка выжившего))

1

А ещё старайся не привязываться к конкретной платформе, например Win7/8, как в книге в посте, потому, что там уже устаревшие не актуальные технологии и изучать такое можно разве что в рамках некромантии (например Win RT). В .NET 5 Майки пытаются в кроссплатформенность, так что много старых штук завязанных на Win API ушли на помойку, многие ещё уйдут в .NET 6.

1

В кроссплатформенность не пытаются, в нее уже попали, .net core уже 5 лет) Просто .NET 5 это унификация платформы, а то сейчас есть .net framework, core, еще был .net standard, в итоге от него отказались. .NET 5 это считай следующая итерацися Core, только без суффиксов, чтобы людей не путать.

0

Ну ну) Кроссплатформенность на .net core/5 просто отличная, вот только захочешь сделать службу (WCF) или программу с UI, то вдруг окажется, что переделано было не всё.

2

Под программой с UI ты понимаешь десктоп? Ну тут да, косяк пока. Думаю, они пилят сейчас новый десктопный фреймворк, чтобы зайти на этот рынок, было бы интересно.

0

То, что они планируют сейчас называется MAUI, для макос и винды все будет в .NET 6, а вот для линухи где-то потом, что сам понимаешь, в случае Майкрософта значит никогда в полноценном виде.

0

Да, кстати, если ты только изучаешь программирование, то тебе нужно учить не только язык, но ещё и фундаментальные вещи.
В первую очередь алгоритмы и структуры данных, фундаментальную информатику, можно зацепить дискретную математику и мат. логику.

0

Мне вот интересно зачем новичку советовать Рихтера? И почему ее пренепременно нужно знать?

1

Чтобы знать как устроен и работает .NET и CLR в целом, как работает сборщик мусора, что такое boxing\unboxing и почему этого следует избегать, чтобы слова "IL-код" и "JIT-компиляция" не звучали, как магия. Примерно для этого)

0

Ну это не отвечает ни на первый ни на второй вопрос.
Я хочу научиться готовить. Ммм, тебе надо изучить молекулярную химию!

1

Эм, ну а как ты собираешься писать хороший код, если
ты не знаешь и не понимаешь подобных вещей? Даже не знаю, что тут еще сказать.

1

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

0

Ну если посмотреть глазами, то можно увидеть, что Рихтер в списке моего комментария стоит вторым. После Троелсена читать его уже можно, потому что база будет хорошей.

0

Мне просто кажется его надо читать не после других книг, а после какого то опыта программирования.

1

Ну вообще как совет из списка литературы - это конечно правильно да. Мой посыл именно в том что не надо рашить с изучением Рихтера.

0

Комментарий удален по просьбе пользователя

6

Комментарий удален по просьбе пользователя

6

Согласен, также пользуюсь ей спасибо) но все таки хотелось бы иметь бумажную книжку на руках )) 

1

Комментарий удален по просьбе пользователя

2

850 листов того пятого издания, многовато будет ))

2

Комментарий удален по просьбе пользователя

2

На самом деле как посмотреть, часто в книгах есть хорошие примеры, хорошо разжёвываются какие-то темы. Например в оф. доках по шарпу информации по async/await кот наплакал, особенно, если хочешь разобраться подробно как оно работает.

0

Для старта документация не катит, это справочник.

0

Ебать совет. Документация учит основным концепциям программирования?

2

Комментарий удален по просьбе пользователя

–1

Нет

1

Комментарий удален по просьбе пользователя

–1

Документация нужна после приобретения какого-либо опыта и с наличием фундамента, а не до
До этого момента — это просто набор технического сухого текста без всякой полезности

2

Комментарий удален по просьбе пользователя

–3

Научись ездить на велосипеде летая на самолёте

0

Комментарий удален по просьбе пользователя

0

И потом получаются говнокодеры, что не способны понять базовые основы алгоритмов.

0

Так работай в 2 окна или на втором мониторе читай
Есть еще отличный 
https://metanit.com/sharp/
Очень доходчиво и есть видео по материалам
+Обновляется всегда, в отличии от книг

6

Второго монитора нет, а за ссылку спасибо! ))

0

Ну так купи, вещь люто полезная и удобная для работы. Я как впервые попробовал с двумя поработать, так теперь пека с одним моником выглядит как дикость какая-то

0

Вот это ресурс хороший, сам по нему шарп ковырял, когда возился с Unity

0

Часть - тупо копипаста с книг, часть в стиле "как делать неправилтно" и автор об этом увы не догадывается. Я бы не стал метания советовать, кроме случаев когда надо очень быстро въехать, а потом исправлять знания нормальными книгами.

0

Вот есть отличный сайт https://ulearn.me/ от СКБ Контур. Там и теория и практика. В магистратуре когда понадобился C# изучал на этом сайте.

4

Из книг можно попробовать Троелсена почитать, для новичков должно быть понятно.

2

Благодарю!

0
Параллельный жар
3

Спасибо!

0
Параллельный жар

Да не за что, 4.0  уже давно устарел, сейчас 8.0 учат. 

1

На том этапе на котором я сейчас нахожусь, мне и той книги 12-го пока достаточно )) но более современное конечно было бы лучше!))

0
Параллельный жар

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

3

Кстати рассматривал эту книгу для покупки )

1
Параллельный жар

Имхо она лучшая что есть в русскоязычном сегменте, отличный старт дает. Если под твои цели подходит то идеальная покупка. 

1

Комментарий удален по просьбе пользователя

0

https://www.ozon.ru/product/c-7-i-net-core-kross-platformennaya-razrabotka-dlya-professionalov-145871271/ - вроде это в своё время читал, но это давно было, по старой версии. 

А вообще возьми для примера куски почитай из разных книг - там же обычно важно баланс воды/фактов - чтобы лично тебе подходило. По кускам поймёшь - подходит тебе или нет) ред.

2

Благодарю! 

0

11 лет назад мне очень зашла книга Троелсена: "Язык программирования C# 7 и платформы .NET и .NET Core | Джепикс Филипп, Троелсен Эндрю" (естественно, более старое издание). Именно после нее в голове что-то щелкнуло, и я понял как устроено ООП, как писать программы осмысленно (до этого чуть ли не копипастом собирал, как Франкенштейн).

За эти годы многое могло измениться, появились новые книги, интерактивные курсы, вот это вот все. Но если хочется плавного и понятного захода в тему C#, то Троелсен прям то что надо. 

2

Спасибо! По Троелсена сообщением выше написали, посмотрю что на полках имеется )

0

Только 11 лет назад это был не c# 7, я так понимаю, а какой нибудь c# 4

0

Купи электронную книгу :)

1

Электронная есть, и это не всегда удобно))

0
Параллельный жар

Ебать, у них и по шарпу книга есть.
Кажется, Дейтелы охуенно любят семейство С.

0

А что, Рихтера уже не модно нынче читать?

0

Может и модно, не знаю)
Только мне как человеку новому в программировании, это имя пока ни о чём не говорит)). Но если у него действительно есть что-то стоящее я бы это рассмотрел )) ред.

0

Ну я в своё время прочёл эту книжку (вру, прочёл более раннюю, спиратив, но купил именно эту уже). Всё, что в ней, актуально до сих пор. И понятие сборки, и взаимодействие с ОС, синхронизация потоков, асинхронное программирование. Разве что синтаксического сахара нет, что появился в последних версия C#. Но мне в своё время понравилось, пишет подробно.

0

Отличная книжка, но как по мне для новичка сложновата, слишком много подробностей. Я бы за нее взялся только с базовыми знаниями.

0

Это совсем не для новичка.

0

Его модно читать если ты на уровне мидла. Джуну-то рано, не говоря о новичке. Это как советовать C++ со Страуструпа учить.

0

"к сожалению книга эта только в электронном виде (что не очень удобно), в бумажном ни где найти не удалось"
Вот как раз электронный вид - это удобно, но для продуктивной работы нужен второй монитор (для начала хотя б старый квадратный сойдет). На одном открываешь pdf, на другом Visual Studio - и вперед

0

Примеры для самостоятельного решения - это не "здорово", это необходимость, если ты хочешь хоть что-то понять. Из всего, с чем я сталкивался, лучше javarush для вникания в тему ничего не видел. Минусы - это не до-диез и, конечно, разрывающая жопу сложность заданий для новичка, а еще нужно параллельно все темы сверху полировать книгами. Плюсы - идеологическая схожесть платформ, системность подаваемых тем и таки разрывающая новичку жопу сложность заданий. Если сам будешь вникать в решение задач, а не копипиздить с форума, прогресс будет. Современный кодинг в любом случае требует знание какой-то экосистемы/фреймворков/библиотек выбранного языка. Тут хотя бы отдаленно цель желательно для себя понять, куда ты знания применять будешь, а не быть самураем, у которого путь и есть цель.

0
Параллельный жар

Если тебе заходит видеоформат и академический стиль изложения, то попробуй посмотреть первые несколько уроков: https://itvdn.com/ru/video/procedural-programming-csharp. Если поискать, можно найти эти уроки в "свободном доступе". 

0

Самоучители - это исключительно для кругозора. Так же как уроки онлайн для развлечения. Нужно не читать тонну всего и смотреть с пельмешами ютюб, а нарабатывать свою базу, типа умеешь создавать калькулятор. Так надо научить себя создавать идеальный калькулятор и так понемногу к сложным проектам. А книга я хз, как по ней быстро найти нужную формулу, алгоритм, пример... Гуглить всегда быстрее. Ну дело вкусовщины конечно. Просто на опыте рассуждаю.

0

Чтобы подобрать/составить список литературы для изучения, необходимо ответить на вопросы "...какие цели?.." 
В комментариях очень много предложено литературы. Часть книг является общими для начинающих, часть прям уже для "среднего класса", а часть для специфики задач...
Поэтому позвольте вам дать один совет. Если вы решили учить язык, начинайте его учить в связке с вашей целью, будь то геймдев, бэкэнд, корпоративные приложения и прочее. 

0

А что скажете насчёт курсов на Udemy, Coursera и и.д.? Кому-нибудь помогло? Просто действительно без практики теория бесполезна, как многие уже отметили

0

Настолько устаревшая книга уже не нужна, ищи свежее. Лучше к примеру от Apress.

0
Читать все 121 комментарий
null