Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Существует множество различных платформ и языков программирования, однако среди них нет более элитного, чем C#. Это поистине язык богов, сочетающий в себе простоту использования с поистине неограниченными возможностями. Знание C# — прекрасный детектор современного, умного и успешного человека. Изучение платформы .NET безошибочно указывает на успешного в будущем человека.
- ITT элита продолжает обсуждает будущее этого прекрасного и современного продукта компании Microsoft. Только в этом треде элитные разработчики ответят на самые острые вопросы индустрии.
- Литература вторым постом
- [b]1. Ресурсы:[/b]
- - http://stackoverflow.com/questions/tagged/c%23
- - http://www.tutorialspoint.com/csharp/
- - http://professorweb.ru
- - http://net-informations.com
- - http://habrahabr.ru/hub/csharp/
- [b]2. Онлайн-компиляторы:[/b]
- - https://dotnetfiddle.net/ - возможно лучший вариант. Встроено немного убогое, но все-таки автодополнение и проверка синтаксиса.
- - http://ideone.com/
- - http://csharppad.com/
- - http://www.tutorialspoint.com/compile_csharp_online.php
- - http://rextester.com/l/csharp_online_compiler
- [b]3. WinForms или WPF?[/b]
- Зависит от задачи. Для небольших проектов, скорее всего, будет достаточно винформочек. В случае, если разрабатываемое приложение достаточно серьёзное, то возможно его стоит писать с использованием WPF. WPF очень хорошо работает с паттерном MVVM ( https://ru.wikipedia.org/wiki/Model-View-ViewModel ), и позволяет пилить очень кастомизированные интерфейсы с помощью XAML, что в случае WinForms, делать намного сложнее.
- [b]4. Мне тут [i]знакомый_нейм[/i] сказал, что C# умирает, это правда? Может не стоит его учить?[/b]
- Неправда. C# довольно активно развивается, недавно вышел новый компилятор, шестая версия шарпа, и уже активно разработывается седьмая. Весь дотнет понемногу становится опенсорсным, а ASP.NET становится независимым от платформы. В некотором смысле понемногу вымирают десктопные приложения с развитием веб-технологий, но в том же энтерпрайзе он еще очень даже востребован.
- [b]5. Какую ИДЕ выбрать?[/b]
- Для Windows самым очевидным вариантом будет [b]Visual Studio[/b] (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx). Студия распространяется в двух редакциях: бесплатная коммьюнити-версия и платный энтерпрейс эдишн. В большинстве случае будет достаточно Community-версии: она поддерживает и C#, C++, VB.NET и F#, а так же имеет возможность установки дополнений
- Для мака и никсов самый юзабельный вариант - [b]MonoDevelop[/b] ( http://www.monodevelop.com/download/ ).
- Для vim можно использовать [b]OmniSharp[/b] ( https://github.com/OmniSharp/omnisharp-vim ).
- Кросплатформенный полуредактор/полуIDE [b]VS Code[/b] ( https://www.visualstudio.com/en-us/products/code-vs.aspx )
- Также существуют плагины для Atom'а и Sublime Text, но функциональность там достаточно сильно урезана.
- Кроме того, в данный момент JetBrains активно пилит свою IDE для шарпа ([b]Project Rider[/b]), вероятно в ближайшее время станут доступны первые EAP. IDE заявлена как кросплатформенная, со всем решарпер-функционалом, поддержкой отладки, моно и .net core.
- [b]SharpDevelop[/b] - еще одна IDE для C#, отличается малым размером (около 20мб) и опциональной портабельностью, при этом имея дизайнер WinForms и WPF, а также интеграцию с FxCop, StyleCop и прочими ништяками. Если хочется что-то по быстрому набросать, а выкачивать гигабйты нет желания, то возможно SharpDevelop будет лучшим вариантом.
- [b]6. С# для мобильной разработки[/b]
- Если нужны инструменты для разработке под мобилы, ставь сразу VS2015 и при установке выбирай все нужные компоненты.
- Больше информации тут - https://msdn.microsoft.com/ru-ru/library/dn771552.aspx
- [b]Из актуальной литературы[/b]
- - Xamarin Mobile Application Development
- - Xamarin Essentials
- [b]7. Дополнительные инструменты для разработки на C#[/b]
- [i]LINQPad[/i] - сорт оф REPL, с возможностью быстрого подключения к БД и удобной визуализацией данных
- [i]dnSpy[/i] - декомпилятор, малоизвестный форк ILSpy, где реализована возможность модификации IL-кода прямо в EXE и DLL файлах, отладка IL-кода и много других фич для reverse engineering'а. Плюс няшные темы как в студии
- [i]dotPeek[/i] - бесплатный декомпилятор от JetBrains
- [i]scriptcs[/i] - для запуска C# кода как скриптов, возможность использовать как REPL
- [b]8. Расширения для студии[/b]
- [i]ReSharper[/i] - одно из известнейших. Рефакторинги, умный автокомплит, настраиваемый стиль кода. Платный, но можно стянуть с торрентов
- [i]Supercharger[/i] - показывает "карту" с классами, методами и всем остальным сбоку от кода с возможностью прыгать по ним
- [i]Indent Guides[/i] - показывает вертикальные линии на каждом уровне отступов.
- [i]Format document on Save[/i] - форматирует код каждый раз при сохранении документа
- [i]Code alignment[/i] - Выравнивает код по указанным символам. Удобно, например, при инициализации словарей или в перечислениях
- Обзор Roslyn: https://github.com/dotnet/roslyn/wiki/Roslyn%20Overview
- Новые возможности C# 6.0: https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6
- [B]ПРИНИМАЮТСЯ ПРЕДЛОЖЕНИЯ ПО ШАПКЕ[/B]
- Код этой шапки: http://pastebin.com/cKKXYArs
- Прошлый тред тонет здесь: ???
- ======= ВТОРОЙ ПОСТ =======
- [b]9. Что почитать?[/b]
- - [i]The C# Player's Guide, второе издание (RB Whitaker)[/i] - отличная книга для ньюфагов в шарпе, все расписывается довольно подробно, очень много примеров кода.
- - [i]C# 6.0 in a Nutshell (Joseph Albahari и Ben Albahari)[/i] - огромнейший справочник, over 1000 страниц, покрывает почти все области, начиная с синтаксиса и базовых типов и заканчивая интеропом и рослином
- - [i]C# 6.0 Pocket Reference (Joseph Albahari и Ben Albahari)[/i] - просто выжимка из справочника, можно всегда держать рукой
- - [i]C# 6.0 and the .NET 4.6 Framework (Andrew Troelsen)[/i] - 1600-страничный учебник по шарпу, покрывает BCL, WPF и ASP.NET, небо и даже аллаха.
- - [i]C# 6.0 Cookbook (Jay Hilyard и Stephen Teilhet)[/i] - книга в формате "проблема-решение", можно пройтись по оглавлению, найти интересные проблемы и попыпаться самому решить, а уже потом посмотреть представленное решение. Книга скорее не для ньюфагов, а для тех, кто уже знаком с шарпом.
- [b]10. Более хардкорный материал[/b]
- - [i]C# in Depth (Jon Skeet)[/i] - написана в виде истории версий C#, начиная с C#1.0. Описываются возможности, которые были добавлены в определенной версии и далее достаточно хардкорно и подробно эти возможности расписываются.
- - [i]Writing High Performance .NET Code (Ben Watson)[/i] - охуенная книга. В основном фокуируется на оптимизации дотнет-говна. Методы оптимизации проложений, профилирование, вот это все. Крутейшая и достаточно детальная глава по GC. Рассматриваются достаточно известные проблемы вроде "for vs foreach", "класс vs структрура", кастинг, боксинг, перфоманс регулярок, коллекций, исключений. Короче все что нужно, [i]чтобы вам перезвонили[/i].
- - [i]CLR via C# (Jeffrey Richter)[/i] - это классика, это знать надо.
- [b]11. Хочу еще хардкорней[/b]
- - [i]C# Deconstructed (Mohammad Rahman)[/i] - введение в CLR, модели памяти и выполнения в CLR, байтоебство, JIT. Книга достаточно коротенькая, менее 200 страниц, можно осилить за пару дней. Желателен опыт работы WinDbg и понимание устройства PE-формата.
- - [i]Expert C# 5.0 with .NET 4.5 Framework[/i] - еще одна книга этого автора, в этот раз намного длиннее. Очень много IL, анализа и разбора стандартной либы (те же коллекции), разбор ивентов, дегегатов, асинхронности etc. на уровне байткода.
- - [i].NET IL Assembler (Serge Lidin)[/i] - ILёбство, во многих местах повторяет документацию MSDN, но при этом имеет много интересных дополнений и заметок. Кроме того все неплохо структуировано и разложено по красивым табличкам
- [b]12. Литература по WPF[/b]
- Из более-менее актуального можно выделить пару книг:
- - [i]Pro WPF 4.5 in C# (Matthew MacDonald)[/i]
- - [i]Windows Presentation Foundation 4.5 Cookbook (Pavel Yosifovich)[/i]
- [b]13. Литература по ASP.NET[/b]
- - [i]Professional ASP.NET MVC 5 (Jon Galloway, Brad Wilson, K. Scott Allen, David Matson)[/i]
- - [i]Pro ASP.NET MVC 5 Platform (Adam Freeman)[/i]
- - [i]Beginning ASP.NET for Visual Studio 2015 (William Penberthy)[/i]
- [b]14. Литература по асинхронности, параллелизму и всему такому[/b]
- - [i]Concurrency in C# Cookbook (Stephen Cleary)[/i] - книга, написанная в формате "проблема - решение". Кроме базовых вещей, вроде асинков и параллелизма рассматриваются TPL Dataflows, Rx (реактивные расширения), тестирование всего этого асинхронного добра, ну и работа этого всего на более низких уровнях абстракции
- - [i]Multithreading in C# 5.0 Cookbook[/i] - в основном ничего интересного, но есть довольна неплохая глава про синхронизацию, пусть и не слишком детальная
- - [i]Pro Asynchronous Programming with .NET (Richard Blewett, Andrew Clymer)[/i] - опять же, интересного немного, но неплохие главы про асинхронность + UI и анализ дампов памяти в windbg
- [b]15. Литература не по шарпу, но так или иначе связанная с языком[/b]
- [i]C# Game Programming Cookbook for Unity 3D (Jeff W. Murray)[/i] - разработка на шарпе под Unity
- [i]Introduction to Neural Networks with C# (Jeff Heaton)[/i] - изучение нейронных сетей с примерами кода на шарпе. Под конец пишем программу для распознавания символов и нейроботов.
- [i]Machine Learning Using C# Succinctly (James D. McCaffrey)[/i] - довольная коротенькая книга на тему машинного обучения с примерами кода на C#. Ничего особого: k-средние, классификация, наивный байес, но с кодом, который всегда можно поразбирать, если что неясно.
- [b]16. Но я не знаю английский, как я буду это все читать?[/b]
- На некоторые из перечисленных книг есть переводы, которые можно найти на том же рутрекере, однако, зачастую эти переводы неактальны, содержат неточности, и не самые понятные варианты перевода. Кроме того, переводы обычно пилятся только для нескольких самых популярных книг, более-менее серьёзный материал не переводят. Всегда можно сесть со словарем и понемногу читать, переводя непонятные фрагменты. Это очень полезно, так как в любом случае в разработке без знания ангельского делать нечего. Если очень хочется, то гуглить по запросам: "C# 5.0, Справочник. Полное описание языка", "C# для профессионалов. Тонкости программирования", "Программирование на платформе Microsoft .NET Framework 4.5 на языке C#"
- [b]17. Что еще нужно знать, чтобы взяли работать за еду?[/b]
- - [i]SQL[/i] - подойдет люая книг по MSSQL/MySQL, базовые запросы, SELECT, INSERT, DELETE, UPDATE. Джойны, индексы, нормализация. В контексте шарпа еще ORM: Entity Framework, Dapper
- - [i]Системы контроля версий[/i] - обычно гита достаточно: add/commit/push, merge, rebase, checkout, remote's, разрешение конфликтов, трехпанельные дифф-менеджеры, cherry-pick
- - [i]Гитхабы-гитхабчики[/i] - issues, организация пулл-реквестов, интеграция с appveyor, теги, релизы, маркдаун
- - [i]Алгоритмы[/i] - сложность алгоритмов, сортировки (пузырек, быстрая, вставками), поиск, рекурсия, алгоритмы на строках
- - [i]Структуры данных[/i] - связанные списки, деревья (бинарные, красно-черные, b-деревья), хеш-таблицы, графы
- - [i]Если идти в веб[/i] - HTML, CSS, JavaScript, веб-сокеты, REST
- - Паттерны проектирования, стиль кода, внедрение зависимостей, MVVM (если хочется в WPF), SOLID
- [b]18. Я не умею читать, что посмотреть?[/b]
- - Programming with C# - https://www.edx.org/course/programming-c-microsoft-dev204x-0
- - Beginning Game Programming with C# - https://www.coursera.org/course/gameprogramming
- - C# Fundamentals: Development for Absolute Beginners - https://goo.gl/meyyxO
- - Коллекция видеоуроков, по всему дотнетовскому и смежным темам (250 часов, на русском) - https://nnm-club.me/forum/viewtopic.php?t=891636
- - Набор курсов по C# от O'Reilly Media (28 часов, на английском) - http://rutracker.org/forum/viewtopic.php?t=5082978
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement