18

Изучение C#

Добрый вечер.
В данный момент занимаюсь изучением языка C#, прохожу собеседования и регулярно на них опиздюливаюсь. Хотелось бы поделиться своим опытом и узнать в каком направлении вообще двигаться, чтобы прокачаться до уровня джуна.

Необходимые книги (pdf легко гуглятся, ссылки прикладывать не буду):

1. C# 4.0. Полное руководство | Шилдт Герберт.
Устаревшая, но всё ещё полезная книга, так как новые фичи добавились, но старые никуда не делись. Если вы начинаете постигать программирование с нуля штука необходимая.

2. C# 7.0. Справочник. Полное описание языка | Бен Албахари, Джозеф Албахари.
Можно начать сразу с этой книги. Сложнее первой, но во первых более актуальная, во вторых даёт более полное представление о языке.

3. CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C# | Джеффри Рихтер.
Сложная, но очень полезная книга. Ответы на множество вопросов, которые будут заданы вам на собеседованиях содержатся именно здесь.

Желательно прочитать книги полностью, но для прокачки до уровня джуна хватит первых 200-400 страниц Рихтера или Албахари, но при условии что вы не просто пробежались по ним глазами, а впитали и поняли всю информацию.



Интервью стартер пак:

https://www.hackerrank.com/interview/interview-preparation-k...

Отработка этого курса значительно повышает шансы на положительный ответ



Ресурсы для практики:

1. https://www.hackerrank.com/

2. https://leetcode.com/


3. https://acm.timus.ru/


Хотелось бы узнать у шарящих людей, есть ли ещё какие нибудь удобные ресурсы, как, например, курс по джаве на https://hyperskill.org/, где после каждой темы есть вопросы и практика по ней. И вообще в каком направлении двигаться? Такое ощущение, что мой прогресс остановился, и заваленные собеседования тому пример. Книга CLR не идёт даже после полностью прочитанного Шилдта. На каких темах заострить внимание? Спасибо за внимание

7
Автор поста оценил этот комментарий

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


1. Если бы я сейчас начинал учиться, я бы C# не выбрал. Шёл бы учить Python. Либо смотрел бы на Java/Go/JS - в зависимости от направления. Нет, они мне не нравятся - но по выхлопу они сейчас выглядят в разы лучше, чем C#.

2. Книга Рихтера (CLR via C#) - это очень хорошая книга. Читается тяжело, я помню первую прочитывал где-то на треть и только тогда начинал понимать, о чём же в первых главах было написано - шёл перечитывать. Потом читал вторую (по .net 2.0), имхо там был самый лучший перевод. Последующие русские издания сильно испортились.

3. С Рихтером связана ещё одна большая проблема - 4.5 неактуален. Книга вышла в 2013 году, а сейчас 2021 - в мире IT, где стек технологий радикально меняется почти раз в три года - это пропасть. Сейчас актуален .net core, теперь уже 5-ой версии, он радикально переписан с нуля, если сравнивать с .net framework 4.5. Да, многое из Рихтера актуально, но очень многое изменилось, примерно первую треть книги, где описываются нюансы работы платформы - можно даже не читать, т.к. вы даже не поймёте, что ещё актуально, а что уже нет. Но проблема в том, что именно первая треть наиболее сложная для понимания и на ней строится всё - т.е. всю книгу имхо сейчас уже неактуально читать.

4. Про тесты и ресурсы тут уже высказались. Имхо, самый лучший вариант наработки практики - это взять какой-нить open-source проект и пробовать его дописывать. Добавлять интересные вам фичи, просто разбираться, как оно работает. Как это всё собирать, релизить, настраивать, работать с git, делать pull-request'ы и т.д. Это всё надо.

5. Относительно собеседований и "куда развиваться". Тут нужно для себя понять, что C# - это инструмент, один из многих, работа обычно одним инструментом не делается. Ну т.е. если вы научились в совершенстве работать болгаркой, но не умеете больше ничего - дом вы всё равно не построите.

И тут надо определиться, а в какие именно разработчики вы хотите идти, в зависимости от этого и навыки подбирать для развития. Веб-разработка - это одно, игровая - другое, десктопная мертва, но появилась мобильная - это третье. Наиболее универсальными навыками будут как уже выше писали SQL (без него разве что в игровой можно что-то делать) и минимальные JS/HTML - хотя бы понимать как веб-мир работает. В игровой разработке своих специфических инструментов полно, которые тоже обязательно надо знать.

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

раскрыть ветку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества