Как я могу стать лучшим программистом C#?

Когда вы можете создавать классы и делать простые вещи (графический интерфейс, чтение текстовых файлов и т. Д.), Куда мне идти дальше? Я начал читать Code Complete 2nd Edition, и это здорово, но это скорее книга общего программирования. Какие темы я должен изучать дальше?

22 ответа

Решение

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

Люди часто советуют вам найти какую-то нишевую проблему для изучения при изучении нового языка, и это прекрасно, но если есть приложение или функция приложения, которое вам действительно нравится использовать или которым вы восхищаетесь, попытайтесь его построить (или части этого) себя. Тем более, если вы обнаружите, что задаетесь вопросом, Эй, как [это приложение] делает это?! Попробуйте построить это.

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

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

Не для того, чтобы не согласиться с людьми, которые говорят "напишите что-нибудь", но одна тема, о которой вы должны узнать в следующем, это основополагающие основы CLR - работа механизма, который стоит за всеми этими библиотеками. Хороший ресурс для этого - "CLR Via C#" Рихтера.

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

Я согласен с большинством ответов до сих пор, но я думаю, что если вы хотите стать разработчиком, вы можете получить большую выгоду, если не будете работать в одиночку. Попробуйте найти кого-то, кто может вас наставить За эти годы я сделал величайший шаг в глубине понимания, объединившись с программистами, которые были умнее и опытнее меня. (Они все еще есть:-))

Выучите другой язык и примените полученные знания к C#.

F#, Scala, Haskell - много чего выбрать:)

Получить ReSharper, оставить все рекомендации включены и понять их.

Узнайте о лучших практиках и разработке программного обеспечения и о том, как применять их в C#.

Изучите управление версиями, TDD, доменно-управляемую разработку, непрерывную интеграцию, MVC, MVP, несколько шаблонов: фасад, фабрика, хранилище или активная запись и т. Д.

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

Я нашел эту бесплатную электронную книгу от ребят из CodeBetter несколько дней назад: текст ссылки

Я не прочитал все это, но это похоже на хорошее чтение.

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

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

Может быть, построить следующий Facebook или Google:)

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

Посетите http://codeplex.com/ и GitHub.com и найдите проекты с открытым исходным кодом, в которые вы можете внести свой вклад.

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

Практиковаться, смотреть на проекты с открытым исходным кодом, полностью понимать, что он делает и как он это делает, особенно сложные библиотеки, такие как mocking frameworks, ORM и т. д.

Глядя на q/a в стеке потока, тема C#.:-D

Написать хорошие модульные тесты и постараться получить максимально возможный охват кода

  • Работайте в команде с лучшими программистами - работайте
  • Работа над крупными проектами с открытым исходным кодом.

Я не согласен с большинством людей здесь, что обучение, создавая вещи самостоятельно, является лучшим способом.

Напишите код, многое из этого. И не те пушистые маленькие программы типа HelloWorld.

Найдите либо реальный проект, который вас интересует, либо уже написанное вами, которое можно конвертировать в C#, и сделайте это. Только делая (и, к сожалению, делая обильные ошибки), мы учимся.

CLR через C# отличная книга! помогло (все еще помогает) мне понять язык, также вы можете скачать книгу спецификаций языка C#

Если вы хотите стать лучше в C# (замените любым другим языком), работайте с крупномасштабными приложениями, типа, в котором есть определенные функции "musts", и вы знаете, что пока не знаете, как их реализовать. Все простые из этих основных "ореховых крэков" тоже помогут вам... всегда полезно привыкнуть думать о больших, переплетенных зависимостях в проектах, которые заставляют вас продумывать и планировать архитектуру вашего конечного продукта. авансом.

Это не особенно связано с C#, но если вы хотите стать лучшим разработчиком, такие проекты (которые неявно включают в себя много ((c) бережливого) кодирования, тестирования и т. Д. И т. Д.) Являются наилучшим основанием для обучения.

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

Будьте готовы и открыты, чтобы делать "ошибки" (как вы могли бы судить о них впоследствии)... потому что только с огромным количеством ошибок вы увидели тонкий / ветреный путь между ними.

Тем не менее, учитесь не перегружать инженером или слишком рано становиться перфекционистом. Будут сделаны ошибки, ошибки могут даже остаться в конечном продукте с учетом определенных условий воздействия и т. Д., Научиться жить с этим как инженер / разработчик.

Предлагаю вам прочитать C# в глубине. Это глубокое погружение в C#, которое значительно улучшит ваше понимание языка. Автор, Джон Скит, по слухам, скрывается на этом сайте...

С новым языком попробуйте решить некоторые проблемы Project Euler. Улучшение математики и кодирования одновременно!

Другие вопросы по тегам