Як стати .NET розробником. Перші кроки та поради

Categories: DevelopmentSoftwareTechnology

Олексій Глембицький, Senior Software Engineer, GlobalLogic

Мене звати Глембицький Олексій, я .NET розробник в компанії GlobalLogic, а також проводжу вебінари та викладаю курси по мові програмування С#. І в цій статті я би хотів поділитись порадами, які допомагають моїм студентам опанувати мову програмування С# та стати .NET-розробниками.

Про мову програмування C# та платформу .NET

  • C# є об’єктно-орієнтованою мовою програмування, синтаксис якої схожий з C++ та Java, але значно легший за рахунок великої кількості «синтаксичного цукру» (такого як оператор yield, лямбда-виразів, ключових слів async/await), також С# підтримує широкий спектр бібліотек та фреймворків для розробки різноманітних програм.
  • .NET – це фреймворк для розробки програмного забезпечення, який включає в себе середовище виконання, бібліотеки класів та інструменти для розробки та відлагодження. Сама ж платформа .NET містить багато компонентів, основний з них це CLR (Сommon Language Runtime), який виконує код, написаний мовою програмування C# та інших мовах .NET, а також .NET Framework Class Library (FCL), яка містить широкий набір класів для різних завдань програмування.

Поради з навчання

Перш за все, я би хотів виділити основні варіанти, за допомогою яких можна опанувати .NET та мову програмування С#.

Література

Перший варіант — це вивчення за допомогою літератури. Якщо ви тільки починаєте розбиратись в програмуванні і у вас не так багато досвіду, то я би порадив почати вивчення з таких книжок на вибір:

  1. Г. Шилдт, C# 4.0 The Complete Reference (C# 4.0 Повне керівництво), на жаль, в цій книзі не остання версія С#, але тут описані фундаментальні речі, які не змінюються від версії до версії. 
  2. Е. Троелсен, Pro C# 7: With .NET and .NET Core (Мова програмування C# 7 і платформи.NET і.NET Core) в цій книжці описані як фундаментальні речі, так і нові фічі, які додали до С#. 
  3. Д. Шарп, Microsoft Visual C# Step by Step (Microsoft Visual C#. Докладне керівництво. 8-е видання) ця книга містить в собі багато прикладів коду, практичні поради і надає зрозумілі пояснення основ С# та програмування в цілому. 

Всі вищеописані книги однакового рівня складності та підходять для початківців, бо містять велику кількість прикладів, зрозумілу викладку мови С# та основ програмування в цілому. Яку із них обрати – це вже більше справа смаку, тут би я порадив почитати по одному розділу із кожної з цих книг, та обрати ту, яка припаде до душі, але в цілому найкраще комбінувати всю цю літературу, бо однією книгою достатню важко обійтись. 

Якщо ви вже маєте досвід в будь-якій мові програмування, то можна починати вивчення з більш складної літератури. Я би порадив їх читати десь через рік, або мінімум хоча б пів року досвіду в комерційній розробці, чи принаймні після написання домашніх проєктів. Ця література розкриває механізми, як .NET та C# влаштовані під капотом. Тепер детально про кожну з цих книжок:

  1. Д. Албахари, C# 9.0 in a Nutshel. The Definitive Reference (C# 9.0. Довідник. Повний опис мови) ця книга включає більш детальний опис С# та описує останні версії мови та найновітніші зміни в технологіях розробки. 
  2. Ріхтер Дж, CLR via C# (CLR via C# програмування на платформі Microsoft) або як її іноді називають, біблія С# розробника. В цій книзі детально розглядається архітектура та функціонування середовища виконання .NET Framework, відомого як CLR (Common Language Runtime), з використанням мови програмування C#, і вона включає детальний опис CLR. Також тут описуються засоби для розробки програмного забезпечення під платформу .NET, оптимізація продуктивності, взаємодія з пам’яттю, безпека та інші теми, пов’язані з розробкою програм на мові C# та їх виконанням в середовищі CLR. Єдина порада, якщо у вас не багато досвіду, то почніть вивчення з 2-го розділу, оскільки в першому розділі описуються збірки і тема є необхідною, але не самою простою, і її можна відкласти до кінця прочитання. 

Курси

Другий варіант вивчення — це курси. Тут можна обрати або відеокурси, або курси в режимі онлайн. 

Найбільша перевага онлайн-курсів — це можливість ставити питання викладачу, отримати рекомендації та мати наставника в особі лектора. При виборі курсів я би порадив спочатку пройти перше заняття (зазвичай воно безкоштовне). Після нього ви матимете уявлення про формат, програму, а головне — про лектора, бо більшість курсів, які зараз проводяться, є авторськими. Це означає, що викладач сам готує матеріал та приклади, тому тут дуже важливо обрати експерта, який зможе донести інформацію у зручному для вас форматі. І звісно, важливо, щоб викладач підходив вам ментально. 

Якщо ж ви вирішили придбати відеокурс, це теж гарний варіант, але тут потрібно налаштуватись на самодисципліну та регулярний перегляд відеоуроків, бо при онлайн-курсах вас будуть дисциплінувати принаймні днями проведенням занять, а тут вся надія виключно на вас. При виборі будь-якого варіанту курсів, як на мене, головне це практика, бо якщо ви просто послухаєте лектора чи  подивитесь відеоурок і при цьому вам здаватиметься, що все зрозуміло, через певний час ви все одно забудете пройдений матеріал. Тому порада тут така: більше практики, старайтесь паралельно писати код, який вам показують, модифікувати його та дивитись на результат. Та одне з найголовнішого — завжди робіть домашню роботу, бо чим більше практики, тим краще буде результат. 

YouTube-ресурси

Третім пунктом я би виокремив  YouTube-ресурси, але тут не все так просто. Основна проблема цього підходу — дуже мало структурованого матеріалу, і початківцю без досвіду достатньо важко самостійно скласти собі програму навчання та рухатись за нею. В цілому ж, на YouTube можна знайти велику кількість якісного контенту, але, як на мене, його варто використовувати комбіновано з якимось іншим вище описаним підходом для кращого розуміння деяких тем та для поглиблення знань. Наприклад, якщо ви не до кінця зрозуміли якусь тему з підручника або ж матеріалів відео уроку, то можна знайти кілька відео на YouTube та заглибитись в проблематику.        

Офіційна документація

І останній пункт, це звісно ж офіційна документація, вона містить в собі всі необхідні матеріали для вивчення. Основні пункти які тут можна включити, це  документація по С# та .NET, що містить в собі опис основних концепцій та інформацію по .NET-фреймворку та дані про бібліотеки, які можна використовувати при розробці. Також одним з пунктів є туторіали на GitHub, які можуть бути корисними для набуття практичних навичок. Але, як на мене, цей підхід є більш допоміжний і його можна використовувати для поглиблення навичок, а не як основне джерело знань, через дуже технічну викладку матеріалів. 

Власні проєкти

І наостанок я би радив після проходження курсу чи завершення книги написати свій домашній проєкт, завдяки йому ви зможете набути практичний досвід, а також розібратися з тонкощами тої чи іншої технології. І звісно ж, цей проєкт можна додати до вашого портфоліо.

Висновки

Підсумовуючи все вище написане, я би радив в цілому при вивченні використовувати комбіновані підходи, наприклад за основу взяти той чи інший курс, або онлайн, або в записі та паралельно до кожного уроку читати певний розділ книжки. Таким чином, ви будете закріплювати та поглиблювати знання, отримані на лекції, а коли виникнуть питання, ви зможете звернутись до офіційної документації чи до YouTube каналів за більш детальною інформацією. 

Top Insights

Python: чому вивчати та з чого почати?

Python: чому вивчати та з чого почати?

InsightsSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
Тонкощі CV або Як скласти та куди надіслати, щоб отримати пропозицію мрії про співпрацю

Тонкощі CV або Як скласти та куди надіслати,...

HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
CI/CD для JS розробників. Частина перша – теорія

CI/CD для JS розробників. Частина перша – теорія

DevelopmentSoftwareAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology
Soft and Hard Skills: Що важливіше? Розповідь одного рекрутера

Soft and Hard Skills: Що важливіше? Розповідь одного...

HRAutomotiveCommunicationsConsumer and RetailFinancial ServicesHealthcareManufacturing and IndustrialMediaTechnology

ТОП автори

Volodymyr Nos

Volodymyr Nos

Lead Software Engineer, Engineering, GlobalLogic

Mariia Krapyvka

Mariia Krapyvka

Specialist, GlobalLogic

Dmytro Haidenko

Dmytro Haidenko

Senior Test Engineer, Quality Assurance, GlobalLogic

Dmytro Ryabokon

Dmytro Ryabokon

Director, Engineering, GlobalLogic

Roman Ostash

Roman Ostash

Lead Software Engineer, Engineering, GlobalLogic

Категорії блогів

  • URL copied!