Как правильно начать изучение C#, ничего не зная в программировании?
Хочу выучить C# для работы в Unity 3D. До этого с программированием ни разу не сталкивался, поэтому не знаю, как правильно начать изучение. Пожалуйста, подскажите книги для начинающего или какие-нибудь видеокурсы. И я хотел бы знать, обязательно ли знать принципы ООП до того, как начать изучение языка? И где можно выучить (узнать) эти принципы?
Начните с синтаксиса, рекомендуют авторов Шилдт и Троелсен.
Изучая ОО язык естественно нужно разбираться в ООП, но сильно не пугайтесь, вначале будет достаточно понимания основных принципов работы с классами и объектами. Умение написать правильную архитектуру придет только с опытом, это естественный процесс.
Olek1, для новичков сложно понять, что это такое, как оно работает, что значит адрес в памяти, как он выглядит и т.д.
пока ИДА не запустят - прозрение не наступает :)
Вот за питон плюсану, а си с указателями сходу не нужен.
Питон с динамической типизацией - не лучший язык для начинающих.
Динамическая типизация скрывает от программиста важнейший аспект программирования - систему типов.
Статическая же типизация, помимо прочего, позволяет получить более внятные сообщения об ошибках от компилятора и более точные подсказки от IDE.
В этом смысле C# - довольно хорош. И ни тебе указателей в повседневности и ни тебе непонятного поведения из-за не того типа в переменной.
Сложным является не сам язык программирования C#, а та обвязка, в которой он существует. В контексте данного вопроса - самой сложной частью будет сама Unity, а вовсе не C#.
А бы начал с классики - паскаль, потом си, си++. А потом бы перешёл к шарпу. После си си решётка и прочие си-подобные языки учатся проще. А паскаль нужен для первого общего знакомства с программированием (потому что он простой и понятный).
MaxLich, а как раньше программировали на си когда толком других языков нормальных небыло, так и кодили, потому что особо и выбирать то и нечего было, по легенде си учить просто изза того, что в нём нет ничего, вообще ничего чтобы хоть както влияло на скорость работы программы, в этом он и хорош, если бы было хоть чтото, что может хоть както тормозить, то это был бы уже не си а чтото другое
Olek1, Ну вообще-то паскаль раньше появился. Но это так, к слову. А вообще, пофигу, что было раньше. Главное, что сейчас доступно. А сейчас есть паскаль, си и ещё куча всяких новых языков. Но как по мне, синтаксис паскаля попроще и хорошо подходит для учебных целей. Да и там нет большинства сложностей си (указатели, работа с памятью и т.д.).
bonyv, ну там есть такая штука как указатель (pointer) тип данных просто такой, которого все почемуто боятся необоснованно, и в Си есть значок & погуглите что он значит, не учите паскаль, нивкоем случае, иначе это будет самой большой ошибкой в вашей жизни как программиста
вы можете с памятью работать блоками, при использовании массивов это часто используется, ничего страшного в этом нет, как многие пугают всех ходят по интернету
многие даже ошибочно думают что си это какойто сложный язык, и сравнивают его с языками ассемблера, но на самом деле Си это язык высокого уровня. Самый классный язык
Докучи - выучить синтаксис шарпа - это одно. Научится на нем программировать - другое. Научится ИСПОЛЬЗУЯ c# работать в Unity - совершенно третье. На каждой итерации сильно меняются задачи и нужен совсем другой объем знаний. Чтобы работать в юнити - надо помимо языка знать еще хотя бы алгоритмы, структуры данных, графику, архитектурные подходы.
Поэтому совет - не учите c#. Учитесь программировать! Язык тут не важен.
pascal уже нигде не используется в реальной жизни, зачем его учить? и конструкции с отдельным объявлением переменных и громоздкие begin-end и чисто паскалевский оператор присваивания...
p.s. и не надо про делфи
Игорь, Затем, что он создан для обучения программированию. И остаётся лучшим для этой цели. 99.9% программистов традиционно путают две вещи: профессиональное программирование и обучение программированию. Это два разных вида деятельности, с разными целями и задачами.
MaxLich, да, кстати, а английский язык обязательно учите начиная с французского, так как там много чего из французского пошло, потом будет легче учить английский.
Французский берет свое начало с латыни, так что, не забудьте для начала выучить и ее...
AVKor, и чем он так принципиально отличается от бейсика например или от js? кроме строгой типизации в голову ничего не прихолит.. что в нем такого "специального" именно для обучения?
И человек хочет конкретного, он хочет программировать на C#, а не получать академически знания о базовых конструкциях языков программирования, которые ВНЕЗАПНО у всех языков (ну кроме брейнфака наверно) одинаковые
и повторюсь ЧТО такого особенного в паскале что именно ЕГО проще изучать?
Игорь, Для начинающего важно усвоить ряд концепций. Pascal для этого подходит идеально.
Кроме того, это довольно компактный язык, что тоже важно для начинающего (не утонуть в изобилии конструкций и возможностей).
И человек хочет конкретного, он хочет программировать на C#, а не получать академически знания о базовых конструкциях языков программирования
- Хочу научиться писать симфонии.
- Отлично. Что уже знаете, умеете?
- Ничего.
- Давайте начнём с освоения нотной грамоты.
- Зачем мне эти академические знания? Я хочу симфонию написать.
Другого языка программирования чем Си компактнее высокого уровня нету, так на Си потом хоть сразу можно писать достойные программы себе и другим, у которых с производительностью всё в полнейшем порядке, а на Pascal очень сомневаюсь, те кто начали изучать программирование с паскаля сомневаюсь что хоть один из них стал какимто именитым программистом
Другого языка программирования чем Си компактнее высокого уровня нету, так на Си потом хоть сразу можно писать достойные программы себе и другим, у которых с производительностью всё в полнейшем порядке
Я уже ранее написал:
99.9% программистов традиционно путают две вещи: профессиональное программирование и обучение программированию. Это два разных вида деятельности, с разными целями и задачами.
C не пригоден в качестве первого языка программирования. Это понятно тем, кто занимался обучением программированию. Аргументацию можно посмотреть тут.
а на Pascal сомневаюсь, те кто начали изучать программирование с паскаля сомневаюсь что хоть один из них стал какимто именитым программистом
А сомневаться можете хоть в чём угодно, это, как говорится, ваши проблемы.
AVKor, нет нет, вы сейчас предлагаете учить нотную грамоту используя для этого гусли "потому что они очень подходят для академического изучения и просты по конструкции"
повторюсь, ЧТО в паскале особенного в синтаксисе? знак присвоения ":=" который нигде кроме паскаля не используется, только вот-вот в питоне появился в другой интерпретации ... или громоздкие обозначения блоков с bigin-end? или операторы языка "как в старом бейсике" типа sin cos?
множество возможностей других языков, даже если взять C# (забудем нетипизированныя языки, это портит людей), никто не заставляет на базовых уровнях учить именно ООП или библиотеки net и прочие вывертоны.... те-же циклы, тоже присваивание, в проекте который студия создает "изкоробки" даже можно "прям как на паскале" программы писать
даже массивы и сортировку можно делать в паскалевском стиле
те кто начали изучать программирование с паскаля сомневаюсь что хоть один из них стал какимто именитым программистом
Ну что вы в самом деле, Паскаль и Бейсик долгое время считались вполне серьезными языками и на них писались серьезные программные продукты... только время их давным давно ушло...и цепляться за старое нет смысла, это как фортран сейчас учить с нуля или какойнить PL/1 и прочий кобол
Игорь, да поэтому и нет вокруг нормальных специалистов по программированию, потому что всех в ВУЗах учат программировать с паскаля, а не с нормальных языков по типу Си
Вот один из его аргументов, в пдф файле который он привёл в качестве "почему не следует выбирать Си как первый язык":
Но, ведь всё же в программировании и состоит из разных костылей, и прочей ерунды в которой нужно разбираться. За это и платят, за понимание значения многих триков и паттернов. Поправьте меня если это не так.
AVKor, зачем мне вообще какойто опыт, для того чтобы прислушаться к другим что Pascal это не айс, ни для чего, ни для обучения, ни для создания программ.
Игорь, У вас комментарий - сплошное непонимание вопроса, вызванное тем, что вы не понимаете (капитально не понимаете) того, что я написал в самом начале. Вы высказываетесь по вопросу, в котором не разбираетесь (образование - это профессиональная деятельность, требующая знаний и опыта, чего у вас нет; обучение программированию != программирование).
Для дурака вообще ничего не надо - ни знаний, ни опыта
Кому нужен ваш опыт в Pascal
Давайте судя из ваших слов учить дворника не заметать, а просто ради того чтобы учить его, или продавца не продавать, а просто учить продажам, но не продавать, абсурд полнейший. Поэтому ВУЗы и не любят так в последнее время абитуриенты. И плюются на них, не удивительно почему!
AVKor, вы что самый умный думаете, что вам можно знать больше чем вашим студентам? Или вы боитесь, что после выпуска они составят вам конкуренцию на рынке. Скорее всего второе. Поэтому и учите их паскальчику. Изверг!
Человеку с таким низким интеллектуальным уровнем
Ещё один минус в вашу условную карму. Никаких аргументов нет больше?
преподавание начал программирования на Си тоже имеет массу проблем и не до конца отлажено, но оно имеет и свои плюсы. Использование Паскаля с переходом на Си нивелирует большую часть этих плюсов, при этом реальное достижение декларируемых ей преимуществ не подтверждается практикой ни нашего ВУЗа, ни в других мне известных случаях. Если у вас есть другие данные о результативности данного подхода (на практике, а не в теории), пожалуйста приведите их - они будут говорить лучше всяких теоретических аргументов.
Часто где попало пишут что после изучения программированию на Pascal они так и не стали профессиональными программистами, зато получили говорят массу удовольствия от прикосновения к паскалю. Так цель какая объясните была, получать удовольствие, или стать профессиональным работником, у них начальная цель была профессия. Конечно же стать квалифицированным специалистом, чего у всех не получается кто сталкивается с программированием начиная с паскальчика. Никого не знаю кто бы любил программировать ещё раз, после паскаля, скрипя зубами развечто, ненавидя свою работу, и то редкость
AVKor, Вы меня, программиста, пытаетесь убедить что раз я не учитель то не могу судить о том как правильно учить программированию?
Я вот программирование выучил полностью самостоятельно в 98 году, не посещая никаких курсов и даже не учился в ВУЗе. как вы считаете, я настоящий свар..кхм программист? могу я судить о других программистах? я же не имею "специальных особых знаний, подтверджденных дипломом"(с)
у меня есть собственный личный опыт изучения программинга, и начался он вообще с мануала на бейсик для atari65xe ...и уже спустя 20 лет я ПОНИМАЮ чтО мне надо было учить тогда, 20 лет назад, чтобы сегодня мне было проще. и уж явно это был не паскаль, я это начал осознавать уже когда сел за нормальный компьютер и взял в руки самоучитель по ассемблеру.
Обучение должно приносить пользу, а не только вкладывать какието абстрактные знания, это как учится ездить на лошади чтобы "правильно понять как ездить на автомобиле" и аргументов чем паскаль лучше бейсика, си, сишарпа, js, java, python вы не привели... языки слабо различаются синтаксисом на самом деле чтобы это было их особой фишкой...и лучше учить людей, которые ПОДЧЕРКИВАЮ, ХОТЯТ стать программистами на языках которые реально используются в жизни, а не те которые проще для учителя (бррр.. до сих пор вспоминаю 1 семестр который я учился в ВУЗе и преподавателья доцента (он это подчеркивал) по информатике, который проверял задания на паскале по конспекту и ставил неуд если решение было не такое какое у него на бумажке ("неважно что работает, у вас не так как должно быть")
Я вот программирование выучил полностью самостоятельно в 98 году, не посещая никаких курсов и даже не учился в ВУЗе.
и
(бррр.. до сих пор вспоминаю 1 семестр который я учился в ВУЗе и преподавателья доцента (он это подчеркивал) по информатике, который проверял задания на паскале по конспекту и ставил неуд если решение было не такое какое у него на бумажке ("неважно что работает, у вас не так как должно быть")
Olek1, я отучился 1 семестр, не потянул одновременно с работой и скотским отношением преподавателей у которых квалификация ниже моей, не думаю что это считается за полноценную учебу в вузе
Игорь, ко мне соседка бегает чтобы я ей решал задачки на этом дебильном паскале, она информатику ненавидит с школы уже, и никогда она даже не захочет стать программисткой после него, лучше бы её языку Си учили сразу