Подтвердить что ты не робот

Как начать программирование с нуля?

У меня никогда не было никакого опыта программирования, мой дядя сказал, чтобы я пришел на этот сайт за помощью от полных незнакомцев, если бы хотел начать программирование. Я знаю имена нескольких языков, но я вообще ничего не знаю. Мне четырнадцать лет, и я могу набирать текст быстро, если что угодно. Один из моих дядей хотел, чтобы я учился на С#. Поэтому мой вопрос заключается в том, что С# - хорошее место для начала, а если нет, то где хорошее место для начала и как его узнать?

4b9b3361

Ответ 1

Возможно, вы захотите взглянуть на получение последней версии Head First С#. Он особенно подходит для новичков - и концентрируется на "веселых" примерах, а не на бизнес-ориентированных. Я лично не фанат такого стиля обучения, но он явно подходит многим другим людям.

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

Ответ 2

С# это хороший язык для начала.

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

Как говорит Джон в своем ответе, Head First С# также является отличной первой книгой (как и все их другие книги, такие как Head First HTML).

Вы можете получить Визуальная среда программирования Studio Express (редактор с подсветкой синтаксиса и IntelliSense, компилятор, отладчик и многое другое) бесплатно здесь - только не забудьте выбрать С# версии.

Ответ 3

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

http://www.w3schools.com/ является хорошей отправной точкой.

Ответ 4

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

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

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

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

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

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

Ответ 5

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

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

Если бы я был вам, и у меня были бы свободные руки, чтобы выбрать то, что я хочу, я бы не выбрал С#, потому что он связывает вас с собственной операционной системой (Mono - шутка, признайте это).

Мой выбор, вероятно, будет Python, потому что он работает практически на любой платформе. И у вас есть два очень ценных учебника для начинающих, которые подходят к обучению программированию из самых разных точек, поэтому вы можете выбрать тот, который вам подходит: официальный учебник Python и Zed Shaw Изучите Python The Hard Way (не бойтесь страшного названия, книга очень ценна для новичка).

изменить:

После прочтения комментариев я хотел бы добавить еще пару баллов.

Сколько из этих программистов на С# код для удовольствия? Большинство программистов, использующих технологии Microsoft, делают это профессионально - это их работа, они делают это за деньги, большинство из них не имеют смелости признавать, что их работа иногда скучна (даже если это так), потому что такое требование противоречит корпоративная политика, которая вписывается в культуру вокруг инфраструктуры, предоставляемой их свободными инструментами (cough!).

Всего через пару лет сообщество пользователей, которые программируют более или менее серьезно, буквально взорвалось. В те времена существовал источник - единственный монстр, который был полностью связан с программистом. Сегодня есть пусковая площадка, битбакет, github (которая в последнее время превосходила 1000000 репозиториев, большинство из которых - небольшие проекты для домашних животных, управляемые бесплатными лицензиями). Сколько из этих проектов использует С#?

Сегодня программирование посвящено повторному использованию или "краже" (в хорошем смысле) кода более чем когда-либо. Где стада проектов С#, небольшие библиотеки общего назначения? Хотя некоторые программисты, которые пишут проприетарное программное обеспечение, не очень полезны для новичков (потому что они рассматривают его как консалтинг, который они могут делать ради денег), а некоторые программисты, которые пишут бесплатное программное обеспечение, также не очень полезны (потому что им не хватает социальных навыков), код более важен. Вы не изучаете программирование только путем чтения книг, вы изучаете его, изучая рабочий код. И экосистема свободного программного обеспечения предоставляет гораздо больше кода для изучения.

Как правило, люди, которые занимаются программированием, имеют два варианта:

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

Ответ 6

Там много программирования, но его можно разбить на несколько ключевых элементов:

  • теория
  • судно
  • диалекты
Теория просто требует много обучения. Книги, классы, проб и ошибок, исследования и т.д.

Ремесло приходит с опытом.

И это оставляет диалекты... или, скорее, конкретный язык (языки), которым вы хотите свободно владеть.

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

Ответ 7

Я бы сказал, немного кусочек на нескольких горячих языках, таких как С#, Python, Ruby. Причина, по которой я говорю это, я считаю, что симпатия к языку немного напоминает разработку вкусовых рецептов. Я знаю многих людей, которые отвратительно кодируют только из-за брекетов и синтаксического сахара. Все, что я хотел спасти, было от запугивания синтаксисом и выброса его.

Ответ 8

Что бы вы ни делали, не изучайте VB. Он учит вам плохой синтаксис

Ответ 9

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

Я предлагаю собрать книгу С# и прочитать ее. Следуйте за примерами, когда вы приходите к ним.

Одна из моих любимых книг на С# - Andrew Troelsen: Pro С# с .NET 4.0 - его последняя книга.:)

http://apress.com/book/view/1430225491

Ответ 10

С#, безусловно, хорошее место для начала, и вот одна из причин:

С# - это правильный язык, который в значительной степени заставит вас знать, что вы делаете в качестве программиста. Я начал свою карьеру программирования с PHP, и этот язык настолько свободен, что вы почти не можете испортить. Вы можете создавать классные сайты и такие, но никогда не знаете, насколько они ужасны, пока вы не наняты, чтобы сделать что-то, что требует более сильного языка. В то время некоторые термины и типы данных, которые никогда не используются в PHP, будут широко использоваться вами. Когда я оглядываюсь назад, теперь, когда я знаю много языков программирования, начиная с PHP был довольно плохим способом начать программирование, по крайней мере, на мой взгляд. Я не могу поверить, что у меня есть работа в этой области, зная, где я начал. Java также является хорошим местом для начала. Любой строгий язык компиляции, действительно. Когда вы знаете основы на строгом языке компиляции, свободные, такие как PHP, являются легким дополнением к вашей базе знаний.

Конечно, вы можете захотеть подумать над тем, что вы хотите запрограммировать. Если вы хотите работать в Интернете, С# - хорошая база, но сомневаетесь, что вы будете использовать ее для работы в Интернете, если вы не работаете над чем-то серьезным. Цель C используется для разработки iphone и ipad, поэтому вы не можете ошибиться, узнав об этом.

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

PHP очень прост в освоении и послужит вам неплохо, если вы хотите попасть в веб-разработку. Вы должны знать html, css и познакомиться с по крайней мере mysql для баз данных, если идете по этому маршруту. Просто FYI, разработчики php - это десяток десятков в области программирования, поэтому не рассчитывайте на то, что вы будете делать это, если вы не хотите запускать свою собственную веб-компанию и сами делать сайт.

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

Удачи.

Ответ 11

Нет лучшего подхода, но здесь можно начать одно:

Express Editions

Они свободны, и у вас много вариантов.

Ответ 12

чтобы скопировать сообщение, которое я разместил здесь: https://stackoverflow.com/questions/3430705/3432079#3432079, есть две вещи, на которые нужно разобраться:

Академические знания:

  • Познай теорию - отлично разберись с теорией программирования, теорией языкового проектирования, теорией архитектуры, на которой ты кодируешь
  • Знай математику - все программирование в конечном итоге сводится к математике - знай логику предикатов, триггеры, векторы, геометрию, (базовую) теорию множеств, графы, базовую теорию матриц, небольшой числовой анализ тоже не повредит - а также теорию сложности
  • Знай свой язык - купи книгу, прочитай ее, сделай заметки для справки. Названия Apress хорошо подходят для С#. Http://www.amazon.com/Pro-2010-NET-Platform-Fifth/dp/1430225491/ref=sr_1_1?ie=UTF8&s=books&qid=1281215548&sr=8-1 - это хорошо. Затем читайте блоги и видео, учитесь пользоваться справочной системой Redgate Reflector и MSDN.
  • Знайте свои инструменты - для С# это означает Visual Studio 2010 - http://blogs.msdn.com/b/saraford/archive/2010/06/17/video-101-visual-studio-tips-in-55-minutes. Aspx это отличный способ учиться. Также получите достойного рефакторера - ReSharper мой любимый, но есть и другие.
  • Знай своего Ecosysyem - знай, какие библиотеки есть, узнай, как использовать одну или две из лучших

Навыки:

  • Знать, как определить проект - независимо от того, насколько вы хороши программистом, если вы создадите не то, что нужно, вы потерпите неудачу в эпической ситуации.
  • Знать, как проектировать - изучать теорию объектно-ориентированного проектирования - программные шаблоны Gang Of Four - это классика, и каждый программист должен знать о них.
  • Знать, как документировать код - это важно для продолжительного кода и для хорошей работы в команде. Напишите это, задокументируйте это, протестируйте это => Повторно используйте это
  • Уметь работать в команде - усердно работать, хорошо играть, хорошо общаться.
  • Знайте, какой инструмент использовать, - почувствуйте как можно больше языков, реальных языков, технологий, библиотек и т.д., Чтобы вы знали, какие использовать в каких ситуациях
  • Уметь учиться - у окружающих, из Интернета, из документации и, что важнее всего, из собственных ошибок.

Я уверен, что другие могут добавить в эти списки;)

Ответ 13

Я лично получил отличное начало программирования при запуске на С++ около полугода назад. Мне тоже около тринадцати. С# очень похож на С++ (есть различия, хотя), так что, исходя из опыта, я бы сказал, да, хороший язык для начала.

Что касается ссылок, просто возьмите несколько книг в своем местном книжном магазине и начните прокладывать себе путь через них. Это то, что я сделал. Если вы хотите начать с С++, я точно знаю, что есть отличная ссылка под названием "С++ для чайников". Это где я начал.

Ответ 14

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

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

Ответ 15

Это актив. Вы взяли на себя обязательство по программированию. Обычно выгодно начинать с сильного недоразвития вашей рабочей среды. Задайте основные вопросы, например, какие инструменты уже доступны для ежедневных заданий? Имейте так же весело, как вы можете с ними; и когда они ведут себя необычно, спросите почему? Попробуйте найти решение для них в сети. Позже, возможно, вам может понадобиться базовый html на некоторое время; и полностью перемещаться по c-sharp или другому языку программирования; потому что в конце вы сами поймете связь между программистом и языками программирования.

Надеюсь, что это поможет

Ответ 16

Я бы не выбрал С#, потому что он не полностью свободен, а полная визуальная студия очень дорогая. Взгляните на python, он заставляет вас программировать правильно разными способами, в то же время опуская некоторые из наиболее раздражающих аспектов программирования ({и; s). Если вы решили изучить python, есть бесплатный сайт с учебниками о том, как создавать простые текстовые игры. Я использовал его для ознакомления с языком перед началом моего текущего проекта.

ссылка: http://pythonbook.coffeeghost.net/book1/index.html

Ответ 17

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

Если у вас много времени, вы можете начать изучение следующих тем в порядке:

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

Ответ 18

Наиболее часто используемые языки - это C и Java, согласно Tiobe, поэтому я бы сказал, что вы должны начать там, но у esr есть веские причины рекомендовать Python в качестве первого языка.

Ответ 19

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

Ответ 20

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

Я предлагаю выбрать, основываясь на том, что вы хотите с ним делать сейчас. Например, предположим, что вы заинтересованы в создании нескольких простых игр, пока вы учитесь (подумайте о frogger или, возможно, о 1943 году, и сохраните масштаб). Вы можете сделать 2D-игры довольно быстро, используя интерпретируемый язык, такой как Python или Ruby (у обоих есть бесплатные библиотеки игр). С помощью, возможно, немного больше работы вы можете сделать их на Java или C, и у вас есть место, чтобы перерасти в более мощные игровые возможности. Или вы можете сделать их в Objective-C и Cocoa, что ограничит вас разработкой на Mac, но откройте возможность распространения ваших игр на iPhone.

Если вы хотите заниматься бизнесом или финансировать приложения, вы можете найти большую поддержку на таких языках, как С#, Visual Basic, Java, C и .NET framework (а не язык, но применимый к корпоративному программному обеспечению в целом), Также было бы неплохо практиковать с SQL для взаимодействия с базами данных (где, вероятно, будут храниться данные о бизнесе, такие как продажи, имена клиентов или записи сотрудников).

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

Ответ 21

Хорошо, это только я или никто не задал ему главный вопрос. Что именно вы хотите сделать? Вы хотите играть с аппаратным обеспечением (т.е. Иметь какую-либо плату, подключенную к последовательному/параллельному/USB-порту, и мигать некоторые светодиоды, есть звук, выходящий из динамика и т.д.) Или вы хотите разрабатывать приложения, которые имеют приятный интерфейс пользователя к базе данных или даже к игре?

Ну, для первого, это будет сборка (т.е. для ARM SOC) и C, и это потребует от вас знакомства с аппаратным программированием. Для номера 2 я бы сказал С++/JAVA. Я бы не рекомендовал язык, поддерживаемый только одной ОС (например, С#)...