Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

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

ПрограммированиеЯзыки программирования+2
Иван Иванов
  · 84,8 K
программист, тренер  · 9 июл 2020

Pascal - точно нет. Сам язык считается очень хорошим для обучения, но увы, уже лет 20 как мёртв. Базовые концепции программирования вы на нём освоите, а вот все знания по синтаксису потом придётся выкидывать на помойку и учить заново.

По той же причине не стоит начинать изучение с Basic и ему подобных.

Есть семейства языков со своим "уникальным" синтаксисом, типа Pyton, Lisp и т.д., но если нет твёрдой уверенности, что дальше будете работать именно с ними, то тоже не советую. На начальном этапе цена переучивания синтаксиса очень высокая.

В общем, я бы рекомендовал начать с С-подобных языков. Из основных тут, собственно C, C++, C#, Java, JavaScript и PHP. Есть ещё ряд других, но они не на столько распространены.

JavaScript - отметаем сразу. Он делался "на коленке" и содержит в себе множество нелогичных конструкций с которыми приходится мириться современным разработчикам. Плюс это язык с так называемой "динамической" типизацией. Как язык для изучения основ использовать его точно не стоит.

Также, по причине "динамической" типизации, отметаем PHP.

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

С++, который ещё называют "C с классами" - то же самое, но добавляются концепции объектно ориентированного программирования. С точки зрения обучения основам принципиальной разницы нет.

Остаются C# и Java. Они "одноклассники", созданные прямыми конкурентами для решения бизнес-задач. Java больше распространён, у C# чуть более понятный и логичный синтаксис.

Дальше имеет смысл отталкиваться от задач. Если есть желание заняться, например, написанием игр, то всё-таки стоит начать с C/C++ и сразу развивать в себе навыки контроля памяти и прочих специфичных для C/C++ нюансов. Если же больше привлекает решение бизнес-задач, то смотрите, какие свзанные с этим конторы есть в вашем городе и целенаправленно затачивайте свои знания под это. Если у вас в городе, допустим, никто C# не практикует, то и изучать его смысла особо нет.

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

Anani Bareyan, а дальше что? У новичка через несколько месяцев обучения в голове будет 50% знаний по алгоритмике и прочим нужным вещам, а ещё 50% - по синтаксису. Это у матёрых спецов, которые в типовых ситуациях нужные алгоритмы уже на подсознании применяют, расклад может быть и 80/20, и 90/10 и даже больше, а новички хорошо, если те самые 50/50 распределение получат.

И после этого у них два расклада. Либо дальше сидеть на синтаксисе Basic'a, но нормальных языков промышленной разработки, по сути, нет (я в курсе про VB.NET, но про хоть сколько-нибудь массовое использование его на проектах даже близко не слышал), либо менять язык.

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

Меня самого в своё время хорошо так помотало по пути Basic/Pascal/C в самом начале изучения программрования. И могу точно сказать, что с без этих перескоков всё было бы значительно легче. Можно было бы спокойно идти вперёд, не откатываясь назад каждый раз на несколько недель.

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

Алексей Шмелев, в целом, да, но тут уже начинается беда с компиляторами. Из моего опыта, после самых первых заданий на циклы/массивы самым лучшим заданием, которое толкает новичков активно расти дальше, является игрушка. На ней и кучу алгоритмов можно объяснять не абстрактно, а на практике показывая, зачем оно нужно, и у студентов мотивация очень сильно подпрыгивает по сравнению с условным перемножением матриц для решения абстрактных дифуров. И вот тут всё и встаёт колом. Старые добрые досовские компиляторы графику поддерживают только через прямое обращение к видеопамяти, что современная винда сильно не любит. По крайней мере лет 10 назад, когда эта проблема была актуальна для меня, я так и не смог найти компилятор с нормальным стартом досовской графики под виндой, который можно было бы спокойно отдать студентам-новичкам, не рассказывая им кучу всего про эмуляторы, виртуалки и иже с ними. А делать графику уже под Windows на том же Visual C++ - мрак полный, в плане того, что я знаю гораздо менее затратные способы отчислить большую половину потока.

У шарпа с этим, кстати, сильно проще и лет 10 назад было, и сейчас, с активным развитием того же Unity.

Вас спрашивают с чего начать и вы пишите "Также, по причине "динамической" типизации, отметаем PHP.". Так может он сначала принципиально разберется что к чему, а потом пихать ему Си. Дальше ""уникальным" синтаксисом, типа Pyton". Именно с питон, javascript, php начать проще всего.

Вы бы еще ассемблер посоветовали.

Punk Print, я не раз и не два слышал, что у человека, который пишет на языке со статической типизацией, переход на динамическую проблем не вызывает. А вот наоборот часто бывает очень больно. И наглядных примеров тоже хватало. Лично мне, в своё время, повезло - переход легко прошёл (я с бейсика начинал, потом паскаль, C, C++, немного PHP, C#, JavaScript), но примеры того, как PHP-шник пытался выучить C# я видел не раз, и очень часто это тяжело было.

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

Если действительно с нуля, однозначно Visual Basic. Он (Visual Basic for Aplication - VBA) встроен во все приложения Microsof Office: Word, Excel, Accses - это само по себе уже полезно, особенно для технарей, вынужденных вести расчёты. Один мой знакомый пишет вспомогательные программы для бухгалтеров. 30 тыр в месяц не напрягаясь, поскольку всё им давно уже написано.

Агдамов Александр, даже не знаю, как реагировать. Access, по факту, не используется практически нигде (я знаю, что есть отдельные организации, но я говорю именно про массовое использование), Excel ценен именно тем, что в нём можно кучу всего сделать без программирования, а макросы для Word давно уже стали притчей во языцах как способ распространения вирусов. Я уж не говорю о том, что макросы не переносятся в облачные документы, или в OpenOffice, блокируются большинством антивирусов по уже озвученной причине, да и сам Microsoft их использование настоятельно не рекомендует. Нет, я не спорю, что есть определённые узкие ниши в полузакрытых организациях, и я очень рад за вашего знакомого, который смог найти себе место под солнцем, но с точки зрения начала изучения программирования вы даёте людям очень плохую рекомендацию.

Веб-разработчик, геймер, специалист по этике  · 6 мар 2023
Я повторю совет, который уже давал минимум шесть раз в точно таких же вопросах здесь. Хотя с другой стороны, этот конкретный вопрос, возможно, старше их всех. Вам нужно выбирать не язык, вам нужно сначала определиться с тем, какие программы вам интересно будет делать, потому что первична сфера разработки, а языки, которые вы будете использовать, полностью зависят от... Читать далее
2 эксперта согласны
Блестящий ответ Марка Сафронова показывающий его профессионализм. Согласен полностью. Не язык, а направление... Читать дальше
Работа - в сфере IT. Увлечения - книги, финансы, иностранные языки, здоровье.  · 9 апр 2021  ·
id
Недавно на эту тему слушала один подкаст - прям очень понравился. Подкаст Polodka, тема про изучение языков программирования. Гость знает и преподает очень много языков программирования и как раз разбирает вопросы, с каких языков стоит начинать учить, с каких не стоит и как это делать правильно. И тут основной критерий - как много времени вы готовы выделить на обучение... Читать далее
Заходите в Яндекс.ДзенПерейти на bit.ly/3w79GNg
1 эксперт согласен
Рациональное зерно в ответе есть. Поэтому с ним соглашусь.
Образовательная платформа Хекслет  · 19 апр 2021  · ru.hexlet.io
Зависит от сферы. Я отвечу по части веб-разработки, что рекомендовал бы учить первым языком PHP по нескольким причинам: * Одним языком программист не обходится. Позже так и так понадобится изучить Javascript, а к нему обязательно потом где-нибудь прилипнет Typescript (TS - не язык, если что). * Язык с динамической типизацией и довольно простым синтаксисом. Свой первый... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars
Если он хочет вэбчиком заниматься, то пусть HTML изучит сначала... В вэбчике можно особо и не уметь программмироват... Читать дальше
Привет, на связи Татьяна из HTML Academy! Я знаю всё о том, как стать веб-разработчиком и...  · 19 окт 2020  · htmlacademy.ru
Я советую вам начать с JavaScript. Он отлично подходит для того, чтобы стать первым языком программирования. Для написания кода нужен только текстовый редактор, программы не нужно компилировать (они работают прямо в браузере), а результат работы виден сразу. Главные преимущества JavaScript: - JavaScript имеет низкий порог входа. Это достаточно простой язык, понятный... Читать далее
Знакомство с вёрсткой, JavaScript и PHP — бесплатные тренажёры 🎮Перейти на htmlacademy.ru/courses/intro-to-web-development
Пофигист с большим жизненным опытом, обремененный образованием и личной жизнью... ;)  · 20 мая 2022
Языки программирования все разные, но у них есть общее - а именно «заточенность» под решение какого-то круга задач. В одном языке какие-то задачи решаются проще, а в другом - сложнее. Однако в большинстве языков можно решить любую из них — вопрос только в трудозатратах. Поэтому вам в первую очередь нужно определиться с тем, какие задачи вы собираетесь решать (в какой... Читать далее
Senior fullstack developer (c#, Java, php, js).  · 10 июл 2020  ·
gamedevpub
Я начинал с PHP, затем начал параллельно учить c++ и Delphi. В уже опубликованном ответе Александр расписал очень много нюансов плюсов и минусов разных языков, но как результат оставил Шарп и Джава. Но тут я бы поспорил. Оба этих языка прекрасны и элегантны, однако, они на 100% ООПэшные, а, как по мне, прежде чем переходить к такой сложной вещи, как ООП, нужно научиться... Читать далее
Разрабатываем игры и хотим, чтобы таких как мы было больше.Перейти на vk.com/gamedevpub

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

Сравниваем 2000+ онлайн-курсов и рассказываем об этом в своём блоге :)  · 3 февр 2021  · checkroi.ru
Отвечает
Ivan Buyavets
Тут может быть два подхода: Начать с самого простого, а потом перейти к более сложным Начать с самого перспективного/универсального, а значит, не самого простого. Первый вариант хорош для новичков тем, что вам будет легче учиться. PHP, С# и С++ дают хорошую основу и понимание синтаксиса. Второй вариант подойдёт тем, кто настроен серьёзно. Изучать языки вроде Python и... Читать далее
Посмотрите актуальные онлайн-курсы в digital 2023 года!Перейти на checkroi.ru
1 эксперт согласени3 эксперта не согласны
Нельзя сказать, что языки С# и особенно С++ гораздо проще, чем Python и JavaScript (скорее даже сложнее), и что... Читать дальше
Хороший парень.. веселый такой  · 24 нояб 2021
Могу посоветовать C#... Он не очень сложный... Но если хотите действительно понимать программирование, то C++. Да, он сложный... Но поняв его, вы действительно поймете программирование
1 эксперт согласен
Про типизацию верно
Программист. В бывшем военный. Интересуюсь историей и естественными науками  · 7 мар 2023
Программирование - это вообще не про языки, а прежде всего - про умение строить под задачу эффективный и оптимальный алгоритм и писать понятный другим разработчикам и удобный для дальнейшей доработки код. А знание конкретных языков - это уже вторично. Есть хорошее выражение: "Программируйте с использованием языка, а не на языке".  Прежде всего стоит стремиться к умению... Читать далее
1 эксперт согласен