План обучения С#

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Приветствую, Хабрачитатели!

Я - SVPRA, и вот уже более двух лет я являюсь программистом на С#. Пришел к идее программировать на шарпе не сразу. Сначала пытался во фронтенд, но как-то не сложилось, потом решил создать игру, и выучил С#. И вот, я до сих пор на нем. Решаю очень многие и разные задачи.

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

P.S. это статья для новичков, поэтому много фактов будут банальными для опытных разработчиков. Просьба не бить. Если что-то забыл - пишите в комментариях. Ну а теперь к статье :)

Итак, когда я начинал учится, я бродил по интернету в поиске нормального и вдохновляющего материала. Первое, что я нашел - уроки Гоши Дударя, но согласитесь, не самый лучший лучший вариант для начала обучения, так как темы у него объясняются крайне обобщенно, и весьма разбросано, пропуская ключевые моменты.

Второй вариант заключался в прохождении курса Sololearn. Sololearn оказался действительно намного полнее уроков Дударя, но как говорится - всё познается в сравнении.

И самый нормальный вариант - книга Герберта Шилдта по С#. Действительно, самое полное, что может быть. 1000 страниц, и после этого, ты сможешь выучить язык. Но я вам скажу, этого мало. Кстати, ссылка на скачивание всех книг из этой статьи, находится тут.

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

Что кроме языка?

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

Итак, SQL вы, предположим, изучили. Нужно как-то это все дело сортировать, верно? И тут нам помогут механизмы сортировки. Их тоже не помешало бы знать, начав, с самого просто - механизма сортировки пузырьком. Это как раз будет подходить для ваших маленьких массивов, и поможет понять, как оно работает, и как его применять. Далее можно будет перейти к более сложным сортировкам, и опять же практиковаться для закрепления знаний.

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

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

  1. Класс должен отвечать за одну задачу. Так код будет легче поддерживать, и не придется изменять всю архитектуру, ради добавления одной фичи, или исправления одного бага. Все будет решаться локально, в рамках одного класса.

  2. Нужно использовать аксессоры для прописания логики доступа к типу.

  3. Не должен выводится null

  4. Проект должен быть потокобезопасным, да и в целом многопоточность- это отдельная тема, которую чтобы понять, недостаточно прочесть главу из книги Герберта Шилдта. Нужно постоянно изучать инструкции от Майкрософт или на Хабре.

  5. Повышайте производительность программы, используйте garbage collector, и постоянно заботьтесь о том, как программа или система будет вести себя на маломощных компьютерах/серверах.

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

Изучайте устройство серверов, и пытайтесь создать свой

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

Изучите нейросети

Но это уже если вы точно уверены в своих навыках и опыте. В создании нейросетей много математики, но не пугайтесь. Если разобраться во всем этом, то создание нейросетей даже будет доставлять вам удовольствие. Я, например, начал изучать нейросети с курсов Анатолия Карпова, даже несмотря на то, что примеры были написаны на Pandas для Пайтона. К тому же, есть мощнейший инструмент для машинного обучения, только на шарпе - ML.Net. И в целом, помимо нейросетей, полезно изучить физику в программировании и технологиях, чтобы понимать процесс программирования более детально.

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

А как же игры?

Для игр не нужно много навыков программирования, но если вы хотите их создавать - создавайте. Занимайтесь в тех областях, которые вам интересны, и мотивация и удовольствие от программирования никогда не покинут вас. Я например, признаюсь честно, учил язык только ради игр. Но потом мне понадобилось организовать работу своего сервера, и мне удалось это сделать на шарпе. Далее я понял, что все мои цели, вплоть до машинного обучения, можно делать на нем, и не уходить на другие языки программирования. Правда, сейчас я учу С++, но вы не должны воспринимать мои слова как закон, и можете начать с любого языка, хоть с Пайтона.

Помните, всё зависит от вас, и программирование - это очень интересно. Так что изучайте, читайте и стремитесь.

Ваш SVPRA.

Источник: https://habr.com/ru/post/587324/


Интересные статьи

Интересные статьи

Всем привет! Сегодня я хочу рассказать про мета-модели в медицине. Обязательно читайте до конца, вас ждёт сюрприз!Под мета-моделями в машинном обучении обычно понимают мо...
Приветствую читатель. Когда я был ребёнком и учился в школе, моим любимым предметом была математика, любимым предметом она была из-за того, что я очень люблю решать задач...
История сегодня пойдёт про автосервис в Москве и его продвижении в течении 8 месяцев. Первое знакомство было ещё пару лет назад при странных обстоятельствах. Пришёл автосервис за заявками,...
Эта картинка, за авторством Артура Кузина (n01z3), достаточно точно суммирует содержание блог поста. Как следствие, дальнейшее повествование должно восприниматься скорее как пятничная история, ...
/ фото Taylor Vick Unsplash В прошлый раз мы говорили о материалах, которые могут заменить кремний в производстве транзисторов и расширить их возможности. Сегодня обсуждаем альтернативные по...