Сколько времени потребуется непрограммисту, чтобы изучить C#, .NET Framework и SQL?

Я не так хорош в программировании. Я получил степень магистра электроники. Я хочу изучить C#, .NET Framework и SQL. Как вы думаете, сколько времени это займет (если у меня есть на это 5 часов в день)? Кроме того, в каком порядке я их учу? У меня Visual Web Developer 2008, этого достаточно для начала?

Скопировано из нового вопроса того же пользователя:
Я должен был указать, что хочу сделать карьеру в .NET Development. Я бы хотел дать себе 2 месяца, чтобы разобраться в «основах». Чего от вас как разработчика ждут в ИТ-компаниях? Какой набор навыков им требуется и каковы обязанности разработчиков младшего или среднего уровня? У меня нет опыта работы в отрасли, смогу ли я почувствовать свои рабочие обязанности дома?

Прежде чем начать отвечать на этот вопрос, люди должны знать несколько вещей в первую очередь: 1) Какой у вас опыт программирования (любой Java? C++? SML?) 2) Чего вы пытаетесь достичь (пытаетесь ли вы создавать веб-страницы, рабочий стол приложения, встроенные системы?)

Juliet 05.01.2009 19:55

Мы с тобой одновременно редактировали, принцесса, поэтому твои правки не приняли. Я только что это видел. Если вы хотите внести правки в мои правки, будь моим гостем. :-)

George Stocker 05.01.2009 20:05

Не проблема, Горток, твои правки в порядке :)

Juliet 05.01.2009 20:22

Дэвид: По крайней мере, отредактируйте его дополнение, чтобы оно не выглядело утомительным. :-)

George Stocker 05.01.2009 20:52

@Original Poster: Воспринимайте это как нечто стоящее: но общение - это ключ к программированию. Я надеюсь, что на вашем магистерском курсе говорили о том, как вам следует общаться. Учитывая ваши сообщения, я бы сказал, что вы не слишком серьезно относитесь к четкому общению; это было бы что-то исправить перед подачей заявки.

George Stocker 05.01.2009 20:55

Поищите в SO похожие вопросы, например, о получении степени. Однако я предполагаю, что вы уже ограничиваете свое будущее, сосредотачивая свое внимание на инструментах, а не на своем мозгу (c2.com/cgi/wiki?ProgrammingIsInTheMind).

Rob Williams 05.01.2009 23:48

Почему вы хотите сделать карьеру на том, о чем ничего не знаете? Худшая идея. Эвар.

BoltBait 07.01.2009 01:33

У вас есть степень магистра электроники. - Я по специальности EE, занимаюсь программированием на жизнь уже более 3-х лет. Что я могу вам сказать, так это то, что это не более захватывающе, чем EE. К тому же его карьера никогда не бывает лучше, чем у EE. Как я недавно выяснил, «у программистов нет капитала знаний, в отличие от других профессионалов». - Пожалуйста, Google, чтобы узнать больше о капитале знаний

antew 12.01.2013 17:59

Давай, мужик! Вы можете делать все, что хотите! Я быстро освоил C#! (Но я уже очень хорошо знал JavaScript, так что это было довольно просто, поскольку они очень похожи)

Ian Wise 08.10.2014 07:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
17
9
107 419
19

Ответы 19

Это действительно зависит от того, что вы подразумеваете под «учиться». Вероятно, вы могли бы потратить неделю и получить пару страниц в Интернете с минимальным уровнем интерактивности для сохранения информации, введенной пользователем в некоторую базу данных, а затем иметь некоторые другие страницы для запроса и отображения информации. Затем вы могли бы потратить следующие 10 лет своей жизни на изучение всех тонкостей среды .Net, SQL и освоение с помощью IDE.

Если у вас есть опыт программирования, вы, вероятно, сможете выучить синтаксис C# за несколько часов и освоить его в течение недели или около того. Однако вы не будете писать сложные структуры, если не напишете с ними много кода. На самом деле это то же самое, что и любой язык: вы можете выучить все слова и грамматику довольно быстро, но для беглости требуется время.

РЕДАКТИРОВАТЬ

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

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

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

Если вы предпочитаете скринкасты (видеопотоки, демонстрирующие, что делать) или учебные пособия, то сразу переходите к источнику: http://www.asp.net/learn/. Есть множество видео и руководств, объясняющих все, что вам нужно для начала работы.

Visual Web Developer 2008 Express должен быть всем, что вам нужно для начала работы. По сути, экспресс-выпуски - это Visual Studio, урезанная до определенного набора функций для достижения одной цели. У них нет некоторых наворотов, необходимых для крупномасштабной разработки, но есть все, что вам нужно.

Это все равно что спросить, сколько времени нужно, чтобы выучить французский язык:

  • 1 день, чтобы узнать, что это такое
  • 1 неделя, чтобы выучить его до младенческого / начального уровня
  • 1 год на то, чтобы профессионалы считали новичком
  • Несколько лет, чтобы считаться опытным профессионалом
  • Плюс есть "глубокие" знания по тем предметам, которые простой смертный, такой как вы или я, никогда не выучит.

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

Я согласен - подумайте об этом вопросе как «Сколько времени потребуется, чтобы научиться рисовать». Вы можете научиться красить дом за несколько недель, но рисовать произведения искусства, которые будут продаваться? Создавать искусство музейного качества? ВСЕ зависит от ваших желаний и способностей.

Bill K 05.01.2009 20:12

Плюс к этому тот факт, что ОП («Горток») изначально не непрограммист, так что это также зависит от того, что он уже знает; например, я использовал C# в течение недели, но начал с довольно хороших знаний C++ и Win32 API.

ChrisW 05.01.2009 20:21

Моя ошибка: «Горток» редактировал ОП, но он не был оригинальным постером.

ChrisW 05.01.2009 20:50

Другой вопрос, а как насчет того музейного искусства, которое представляет собой всего лишь пару строк на холсте?

Kibbee 05.01.2009 22:40

Некоторые из линейных рисунков Пикассо находятся в images.google.com/images?&q=picasso+drawing ... сравните их с некоторыми из его ранних картин, в bcn.cat/museupicasso/en/collection/highlights.html ... Пикассо, по крайней мере, изучил свои абстракции после, которые он научился создавать в традиционном искусстве.

ChrisW 05.01.2009 23:09

Пару линий на холсте нужно очень точно продумать и нарисовать, иначе это пара завитушек на заднем плане. Намного проще придумать что-то понятное, используя множество линий и цветов.

David Thornley 05.01.2009 23:51

Что ж, это займет у вас вечность. Можно так много узнать о программировании, что 10 лет недостаточно.

http://norvig.com/21-days.html

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

Вам следует сосредоточиться на определенной области и попытаться привести несколько примеров. Если вы выбираете веб-разработку, начните с веб-страницы hello world, а затем добавьте к ней некоторый код. Узнайте о постбэках, состоянии просмотра и сеансах. Попробуйте освоить if, циклы и функции, вам действительно есть что охватить, нелегко сказать «это лучший способ научиться».

Я думаю, что в конце концов вы научитесь тому, что нужно делать.

Я нажал на этот вопрос, чтобы добавить ссылку. Проголосовали!

AgentConundrum 07.01.2009 01:40

«Я думаю, что в конце концов вы научитесь тому, что нужно делать». Бог с ним. Вы учитесь на практике, потому что если вы попытаетесь усвоить всю книгу без намерения что-то построить, это ничего не будет значить. И если вы получите некоторый опыт за плечами и вернетесь и прочитаете ту же книгу, вы узнаете новое.

Jared Updike 25.03.2009 21:21

Просто сделай это! Не переживайте из-за деталей.

Не могу сказать, сколько времени это займет, это действительно зависит от ваших имеющихся знаний. Мне удалось выучить C# /. NET 2.0 основные основы примерно за 2 месяца. Мое вам предложение: постарайтесь научиться к экзаменам, они обеспечат, чтобы ваше обучение охватило все важные части, а также поможет вам освоить эту новую технологию. См. Microsoft Learning.

Какова длина веревки? Я считаю это субъективным. Я знаю программистов, которые многому научились за очень короткое время, основываясь на собственном опыте.

По сути, запачкайте руки, и вы обязательно узнаете больше.

На мой взгляд, ответ связан с тем, есть ли у вас ощутимая проблема, которую нужно решить, или вы просто хотите научиться, например, чтобы подготовиться к возможной новой работе. Если у вас есть проблема, значит, вы в лучшей форме. Вы можете начать с того, что осмотритесь и увидите, как другие люди решали эту проблему. Языки в целом вы сможете освоить довольно быстро (в конце концов, у вас есть MS в EE, немалый подвиг, IMO).

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

Нырните прямо, сделайте это хобби и получайте удовольствие :)

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

ИМХО корень информационных технологий - электроника.

Например..

Думайте об объектах как о компонентах.

.NET framework - это, по сути, ящики, заполненные стандартными компонентами.

Например, вы знаете, на что способен 7400 (логический элемент NAND). У вас есть таблица данных, в которой показаны выводы и образцы конфигураций. Обычно вы не заботитесь о схемах внутри. Программные объекты такие же. У нас есть входы, и у нас есть методы, которые что-то делают с ними для получения предсказуемых результатов. Как разработчиков, нас обычно не волнует, как был написан объект ... просто он выполняет то, что обещает.

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

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

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

Чтобы ответить на ваш конкретный вопрос о том, «чему я должен научиться в первую очередь».

1) Возьмите задуманный проект и разбейте его на этапы. Например ... получить число от пользователя, прибавить к числу единицу, отобразить результат. Считайте это своим дизайном.

2) Изучите основы C#. Напишите простое консольное приложение, которое что-нибудь делает. Узнайте, что такое оператор if (это все логическая логика, поэтому она должна быть в некоторой степени знакомой), узнать о циклах, узнать о математических операциях, узнать о функциях (подпрограммах). Играйте с простым файловым вводом / выводом (чтение и запись текстовых файлов). Базовый C# можно рассматривать как проводку и дискретные компоненты (резисторы, конденсаторы, транзисторы и т. д.) К вашим микросхемам (объекту).

3) Узнайте, как создавать и использовать объекты из фреймворка. Вы уже этим занимались, но теперь пора углубиться в подробности. Например ... поиграйте с System.Console еще ... попробуйте заставить динамик пищать. Также начните искать объекты, которые вы, возможно, захотите использовать для работы с базой данных.

4) Изучите основы SQL. Много помощи и примеров в Интернете. Выберите базу данных, с которой хотите работать. Я лично считаю, что MS Access - отличная база данных для начинающих. Я бы не стал использовать ее для многопользовательских или кроссплатформенных настольных приложений ... но это отличная однопользовательская база данных для пользователей Windows ... и отличный способ изучить основы SQL. Доступны и другие простые бесплатные базы данных (например, в Open Office), если вы не хотите тратить деньги на доступ.

5) Расширьте свое приложение, чтобы что-то сделать с базой данных.

Я хотел бы проголосовать за этот ответ более одного раза, но не могу. :-). Я тоже из того же происхождения, и мне нравится, как вы установили связь между этими двумя сторонами. Спасибо за ваши усилия.

Sylca 06.06.2013 17:19

Если вы хотите учиться, ДЕЙСТВИТЕЛЬНО хотите учиться, время не имеет значения. Просто двигайтесь вперед каждый день. Пусть ваша страсть к этому делу двигает вас вперед. И однажды вы увидите, что хорошо разбираетесь в C# /. NET.

По словам Малкольма Гладуэлла, вам понадобится 10 000 часов, чтобы стать действительно хорошим. Так что взламывайте.

Когда я уволился из финансового отдела, я взял 9 месяцев, чтобы полностью изучить C++ по книге Айвора Хортона. Меня очень поддерживал мой лучший друг, который является гуру, и я занимался программированием как хобби со средней школы (мне было 36 в то время).

Проблема не только в синтаксисе. Идея таких вещей, как указатели, передача по ссылке, многоуровневые архитектуры, структуры и классы и т. д., Требует времени, чтобы понять и научиться использовать. И вы добавляете к этому фреймворк .Net, который огромен и постоянно развивается, и SQL, который представляет собой совершенно другой набор навыков, чем C#. Вы также не упомянули различные подмножества фреймворка, которые становятся все более широко используемыми, такие как WPF, WCF, WF и т. д.

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

Простой ответ: намного дольше двух месяцев. Чтобы научиться грамотно программировать, потребуется больше времени, несмотря ни на что. Мне потребовались годы, чтобы научиться быть компетентным объектно-ориентированным программистом, и я хорошо в этом разбираюсь.

Более подробные ответы: не имеет значения, изучаете ли вы сначала C# или SQL, поскольку они очень разные. Я бы, наверное, порекомендовал SQL, так как его легче выучить, и он более полезен независимо.

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

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

Попробуйте найти проект с открытым исходным кодом, который покажется вам немного интересным. Изучите их код. Выясните, почему они делают то, что делают. Посмотрите на список ошибок и постарайтесь найти что-нибудь, что можно исправить как можно более тривиально. Работайте оттуда. Научившись вносить свой вклад, вы научитесь тому, что полезно в рабочем мире, и дадите вам на что указать. Будет намного легче получить первую работу, если у вас есть некоторый опыт, на который можно указать.

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

И чтобы стать хорошим или выдающимся программистом (с использованием шаблонов проектирования и признанных в отрасли стандартов, которые относятся к общим стандартам, определенным стандартом ISO / IEC 9126, таким как тестируемость, ремонтопригодность и т. д.) Программист, требуются годы опыта и часто кодирования .. вы не становитесь "старшим" или «Архитектор» в одночасье, и то же самое верно и для разработчика среднего уровня, который не использует неаккуратный код.

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

Если вы просто собираетесь добавлять функции (используя классы, которые ваш руководитель или архитектор выделили для команды), а не добавлять новые классы и т. д., Это проще ... но вы должны позаботиться о кодировании с использованием стандартов, а вы еще нужно знать сложные области ООП. Но это не совсем ООП. Когда вы начинаете создавать классы, интерфейсы и знаете о наследовании, куче, ссылках и т. д. Yada yada ... и ДЕЙСТВИТЕЛЬНО понимание этого требует времени, независимо от того, насколько вы умны или думаете, что можете быть.

Итак, для начинающего программиста. Нелегко. Будьте готовы много писать. А если нет, найдите работу там, где вы находитесь. Все дело в кодировании как можно больше, чтобы вы могли поправиться.

Прочтите эти книги ПЕРВЫМ. Не погружайтесь ни в какие другие, потому что они не предназначены для обучения вас языку таким способом, которым вы можете быстро овладеть:

http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/ref=pd_bbs_sr_4?ie=UTF8&s=books&qid=1231280335&sr=8-4

http://www.amazon.com/Head-First-SQL-Brain-Learners/dp/0596526849/ref=pd_bbs_sr_7?ie=UTF8&s=books&qid=1231280335&sr=8-7

http://www.amazon.com/Head-First-C-Brain-Friendly-Guides/dp/0596514824/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1231280393&sr=8-1

http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1231280393&sr=8-3

они дадут вам быстрый толчок к пониманию, лучше, чем любые существующие книги.

Также игнорируйте эти неубедительные ответы:

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

Они исходят от разработчиков (обычно ведущих), у которых есть какое-то эгоистичное путешествие, которому НЕ нужно, чтобы вы учились. Все учатся по-разному и в разном темпе, и со временем вы станете «быстрым». Я очень устаю слышать подобные заявления старших разработчиков, когда их дерьмо воняет много раз, независимо от того, насколько они хороши. Вместо этого они должны помогать команде добиваться успеха и учиться до тех пор, пока их команда усердно работает, чтобы идти в ногу со временем и делать все, что они могут, в одиночку (не учителями).

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

Самое лучшее в C# - это то, что он очень цепляющий. Легко подобрать, и вы также получите от этого удовольствие.

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

Подавляющее большинство статей, книг или ресурсов по .Net и C# просто концентрируются на объяснении функциональности и фреймворка, а не на том, как избежать причуд, обходных решений или исключительных случаев, как это происходит с другими языками, которые я не хочу называть * cough C++ *), так что, в конце концов, изучение C# и .Net доставляет удовольствие от начала до конца, и то, что вы можете достичь с помощью .Net, также делает его очень полезным.

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

  • 2-3 месяца на изучение основ
  • 1-2 года, чтобы стать опытным разработчиком
  • 5 лет или более, чтобы стать экспертом или, в зависимости от вашей преданности, «гуру».

Но опять же, побить цифры и выйти за рамки заложено в человеческой природе. Можете ли вы сделать это быстрее, чем это? ;-)

5 лет не сделают вас гуру, они просто сделают вас опытным разработчиком, который совершил достаточно ошибок, чтобы не тратить зря время. Некоторые люди (включая меня) никогда не будут гуру по сравнению с такими гуру, как Андерс Хейлсберг, возглавляющий команду C#.

Jared Updike 25.03.2009 21:28

Одни только 5 лет программирования не сделают вас гуру, но если вы являетесь гуру материалом, вам понадобится как минимум 5 лет "или больше", чтобы стать им ... :)

Pop Catalin 26.03.2009 01:41

Андерс не гуру ... он выше этого, он "отец" ...

Pop Catalin 26.03.2009 01:42

2-3 месяца на изучение азов ... никак. Если только вы не собираетесь кодировать спагетти, конечно. То же самое в 1-2 года. Тогда спагетти ..

Вы освоите C# довольно быстро (синтаксис языка не так уж и сложен). У вас уйдет много времени, чтобы В самом деле изучить платформу .NET, но вы довольно быстро освоите наиболее часто используемые части платформы, и вы должны начать видеть шаблоны в структуре.

Мой вам совет: не просто учитесь из книги или веб-сайта. Они научат вас языку и фреймворку, но не научат программировать что-нибудь полезное.

Написание небольших фрагментов кода научит вас решать очень конкретные задачи, но не научит вас писать приложения. Я предлагаю вам подумать о приложении, над которым было бы интересно работать (и выполнимым ... например, не думайте, что вы собираетесь писать операционную систему, crysis или что-то еще через месяц или два). Лично, когда я учился, написал свое собственное полнофункциональное приложение IRC с расширенным текстом, личными сообщениями и т. д.

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

Вам может быть интересен инструментарий .net «robotics».

.Net сейчас слишком велик, чтобы кто-либо мог изучать как WEB, так и Desktop, поэтому вам нужно решить, как вы собираетесь идти. В Интернете гораздо больше рабочих мест, но очень мало людей с хорошими кадрами на рабочем столе.

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