Русский язык программирования, а почему бы и нет?

Самый простой и легкий язык программирования

Русский язык программирования, а почему бы и нет?

Какой язык программирования самый простой и легкий? В этой статье мы попытаемся разобраться, можно ли выделить какой-то определенный язык программирования.

Программирование в наше время стало одним из самых перспективных занятий для молодых людей.

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

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

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

Наиболее простые языки программирования для начинающих

Можно по-разному подходить к классификации языков программирования и уровня их простоты.

Если опираться на типичные таблицы рейтингов языков, их вотребовательности и тому подобных параметров, то получится типичный набор из С, С++, Java, Python и других им подобных. Но мы подойдет к вопросу с другой стороны.

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

Basic

Уже довольно устарелый язык, но он все еще активно преподается во многих университетах. Объясняется это просто – данный язык простой в изучении, отлично воспринимается даже людьми, далекими от любого программирования. Разработан он в далеком 1964 году, но и сейчас все еще остается на слуху у многих.

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

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

HTML

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

Разработан язык в конце 80-х годов британским ученым Тимом Бернерсом-Ли в известнейшем научном центре Церн. Написанный на грамотном HTML языке сайт одинаково хорошо отображатеся в разных браузерах, на смартфонах и других гаджетах, отлично взаимодействует с произведениями других языков: скриптами, веб-приложениями и прочим.

Учится очень быстро и легко.

CSS

Формальный язык программирования, который также часто рекомендуют как ответ на вопрос, какой язык программирования самый легкий. Сам по себе он имеет не столь большую цену, но в связке с упомянутым выше HTML способен творить чудеса. Благодаря CSS выполняется оформление внешнего вида веб-страниц в интернете.

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

Его освоение, как правило, происходит в связке с HTML и только в таком соединении считается целесообразным.

PHP

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

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

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

JavaScript

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

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

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

Почему именно эти языки?

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

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

Но что еще более важно – они не только просты, но и актуальны, благодаря чему от освоения языка можно плавно перейти к практику на реальных задачах и зарабатывать на этом деньги (разве что Basic для этого уже вряд ли сгодится).

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

(2

Источник: https://bunkerbook.ru/articls/samyj-prostoj-i-legkij-yazyk-programmirovaniya/

Почему нет русского языка программирования РЯП ?

Для начала давайте разберемся «почему» ни один русский язык программирования так и не завоевал популярности. Все мы прекрасно знаем, что нынешние русские языки никуда не годятся. Главный вопрос «почему»? Какие такие «силы» помешали созданию полноценного РЯП (Русского Языка Программирования).

Некоторым из нас известно, что попытки создания РЯП были предприняты еще в 70-ых годах. Попытки эти, скажу я вам, были не безуспешны. К примеру — Рапира (По поводу нее посмотрите в Wikipedia). Я называю это «Эпохой Рассвета РЯП». Но, к сожалению, в СССР был один недостаток.

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

Но СССР больше нет, и что, же теперь? Почему сейчас ничего не происходит. Где наши молодые Никлаусы Вирты? (если вы не знаете, кто это – в топку вас 🙂 Проблема в том, что за несчастные 20 лет Запад ушел настолько далеко, что у нас началась «Эпоха Подражания». И в этом нет ничего постыдного.

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

Своими фразами они зачастую заявляют что «Все люди, которые до меня этим занимались, недостаточно умны, и не сделали такой простой вещи». Лично я считаю, что если кто-то до тебя занимался этим вопросом, будь добр, хотя бы поверхностно изучи его труд.

Я уверен, что люди создавшие «Паскаль, Си, Смоллтолк» были на порядок умнее нас в данной области. У них учится не стыдно. Но, несмотря на, то что, наши взялись за «подражание», даже это у них не вышло.

Безусловно, какие-то успехи на данном фронте были (РАЯ (aka КуМир aka Ершол, от имени создателя), 1С, Глагол), но, ни массовой любви, ни поддержки они не получили. Почему? Здесь, я думаю, сыграло несколько факторов:

Фактор N 1 — В русском языке нет «культуры сокращений»
Меня поражает Английский язык. Почти все его слова на 1—3 буквы короче Русских аналогов. К примеру:

1 – This is the most longest clause, that I ever seen (39 букв на 10 слов – 3,9)
2 – Это самое длинное предложение, из всех, что я видел (41 буква на 9 слов – 4,5)

И, несмотря на это они зачастую, как в повседневной речи, так и в деловых разговорах сокращают слова и словосочетания. К примеру:

OK – k, That is – That's…

Применительно к программированию, зачастую используются сокращения словосочетаний:

Console In – cin, Console Out – cout, Print Line – println…

В русском языке просто напросто нет, такой культуры. Её нам когда-то пытались привить в СССР 🙂 Вспомните – РСФСР, НарКом, КолХоз и так далее. Но после его распада СССР распалась «культура сокращений».

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

«Сокращения» — как таковые, не закрепились у нас в подкорме, возможно, поэтому нам смешно смотреть на тексты вроде:

алг Сумма квадратов (арг цел n, рез цел S) дано | n > 0 надо | S = 1*1 + 2*2 + 3*3 + … + n*n нач цел i | ввод n; S:=0 | нц для i от 1 до n | | S := S + i * i | кц | вывод «S = «, S

кон

(из языка РАЯ, aka КуМир, aka Ершол)

Для н = 1 По Файл.КоличествоЗаписей() Цикл Файл.Перейти(н); НазвТовара = Файл.NAME; Цена = Файл.PRICE;

КонецЦикла;

(1С)

ОТДЕЛ Привет+; ИСПОЛЬЗУЕТ Вывод ИЗ «…ОтделыОбмен»; УКАЗ Вывод.Цепь(«Привет!»)

КОН Привет.

(Глагол)

Фактор N 2 – Русский язык является Флективным
Если выражаться простыми словами, то в русском языке преобладают «прилагательные». У нас ОЧЕНЬ много прилагательных, но мало существительных. К примеру:

Main — Главный

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

Фактор N 3 – Изобретение велосипеда.
Фактически все созданные в последнее время языки программирования – «изобретают велосипед». Они повторяют простые истины, не предлагая ничего взамен.

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

К сожалению, за всю «Эпоху Подражания» никто не осознал, что занимается пустой тратой времени.

Фактор N 4 – «Мой бог сильнее твоего…»
Посмотрите внимательно на наши современные языки (1С, РАЯ, Глагол), все они заимствуют семантику языков программирования которые даже на западе не завоевали особой популярности. Они заимствуют семантику Basic (1C) Pascal (РАЯ, Глагол). Я не хочу сказать что Basic и Pascal плохи по определению, просто они не являются лидерами.

И какой же из этого всего следует вывод? А такой — ждите 3 части, в которой я расскажу, КАК надо было делать РЯП на реальном, работоспособном примере…

В начале нам необходимо понять, какие пути для создания РЯП существуют. Есть всего 2 пути:

1) Создать свой язык с нуля
2) Создать переводчик, который бы переводил то, что мы написали на уже существующий язык программирования

Для того чтобы реализовать первый способ необходимо написать язык с учетом «приемуществнедостатков» русского языка. Для реализации второго способа необходимо минимизировать недостатки русского языка.

Первый способ самый интересный. Но так как у меня за плечами пока нет опыта написания компиляторов, то речь сейчас пойдет о втором способе, ибо он самый простой 🙂 (Это не значит, что я не занимаюсь первым способом. Просто не люблю когда люди не предоставляют «реальных» продуктов своих фантазий.

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

А покажу «чистый» РЯП, когда у меня будет, чем подкрепить слова)

В любом случаи моя главная цель, на данный момент – доказать возможность локализация языка программирования. Тем более что тем самым мы избегаем Ф № 3
(Изобретение велосипеда)

Сначала хочу ответить на главный интересующий всех вопрос. А как тогда людям работать без использования чужих исходников, и без возможности поделиться опытом с западными коллегами?. Вот мое представление о будущем:

(«ужасное» будущее неправда ли? 🙂 – прим. Автора) Да вот так вот просто и незатейливо каждый будет писать на своем родном языке, а в результате будет получаться программа, написанная на Английском. Это как раз таки случай, где можно «и съесть и сесть» 🙂

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

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

Сейчас есть, технологии, возможности и прочее…

Подробности я того как проблемы решаются я пока опущу. Если будет спрос, то выложу подробности способов решения проблем в 4 части… (иначе читать будет ну

очень скучно —_-)

Итак, приступим. Для написания переводчика языка необходимо определить для какого языка программирования его можно написать (логично да? 🙂 — прим. Автора). Избегая Ф № 4 (Заимствование семантики непопулярных языков программирования) выведем список
языков потенциально подходящих для перевода:

1) C 2) Java 3) С# 4) Delphi Win32 5) Python 6) Perl 7) Ruby 8) PHP

ремарка – языки распределены от балды 🙂 не ищите подоплеки

Теперь отсеем языки по Ф № 1 (В русском языке нет «культуры сокращений»). Сразу же отпадают почти все. И что же у нас осталось?

1) Java 2) С#

3) Delphi Win32 (с большой натяжкой)

O_О Негусто, правда? Но что поделаешь С , Python, Perl писались без учета того что какой-то псих будет пытаться их «локализовать». Точнее сами языки «в принципе» можно локализовать, но вот «фреймворки» которые поставляются к этим языкам переводить в принципе – глупо. Большинство констант, классов и структур перевести «без потерь» не получиться.

Первый язык, попавший под мой «нож» был С# ибо у него, по слухам, (которые сами знаете кто распространяет 🙂 более лучшая поддержка Unicode чем у Java, а Delphi Win32 вообще Unicode не поддерживает (хотя в скором времени будет поддерживать).

Чтоб не быть голословным, пример КАК НАДО (на примере языка C#) (тавтология – но что поделаешь):

1) Для тех, у кого есть.Net Framework 2,0 или выше. (Желательно 3,5)

http://anzensoft.smtp.ru/1alpha.zip

2) Для тех, у кого не стоит.Net Framework, и ставить его не собирается.

Источник: http://python.rabota-ka.ru/2014/07/ryp.html

Почему нет языка программирования полностью на русском языке?

Дима Патрушев Мастер (2183) 6 лет назад

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

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

ToxiN Мастер (1176) 6 лет назад

было бы круто
нада скачать глагол этот

Night Prowler Мыслитель (9359) 6 лет назад

Вообще то на 1С можно писать как полностью на русском, так и на английском. Но можно и в перемежку. И кстати, автор, в 1С компиляции нет как таковой — она Real-Time. Садись, два!

Flash Forward Мудрец (11584) 6 лет назадЕсть такие языки и довольно много, но смысла в них нет особого. Во-первых, использовать их могут только рускоговорящие товарищи, а во-вторых, из-за особенностей русского языка, довольно сложно представлять целостную структуру команд. В английском языке нет склонений слов и конструкция программы выглядит целостной в сознании, а когда ты видишь набор слов на русском языке без каких-либо склонений, это заставляет прилагать гораздо большие усилия для абстрагирования от собственно языка и представления слов только в виде операторов. Да и вообще, неважно на каком языке написаны команды, важно то, какие преимущества даёт тот или иной язык программирования и ни один русскоязычный не может предложить то, что дают их англоязычные аналоги. Вот тебе к примеру, русскоязычные: Рапира, Аналитик, Глагол (похож на Паскаль) , РАЯ ну и встроенный язык 1С: Предприятие.

Комментарий удален

Алексей Матевосов (AlexM) Просветленный (25524) 6 лет назадБыл такой язык. Назывался Алмир-65 (усовершенствованный и русифицированный Алгол-60). В 1975 году я его изучал и пользовался. Использовался язык на первом в мире персональном компьютере МИР-1 (Машина Инженерных Расчетов) . Такая машина была в институте, где учился — МТИИЛП (Московский технологический институт легкой промышленности) .
Подробнее об Алмире Ev Высший разум (116329) 6 лет назадЯзыков программирования на русском языке очень много: Дракон — визуальный язык блок-схем. Самые известные проекты — написание ПО для Бурана, МБР Тополь, Морской старт. Глагол — нечто среднее между компонентным Паскалем и Модулой. Проект активно развивается уже несколько лет, последний релиз от 7.11.2008г. Лого — язык для обучения программированию детей от самых маленьких до подростков. Профт 5 — интерпретатор с визуальным интерфейсом. Похож на Visual Basic Кумир-язык сделан на основе алгоритмического языка преподаваемого в школе. Проект поддерживается министерством образования Робик — вообще для детского сада (даем команды черепашке, она ползает по экрану) Рапира — преподавался много лет во многих школах и училищах Алмир — ?Акторный пролог — ?Валентина (интерпретатор) Coco/R — генератор Компиляторов

Алгоритм 2 — бесплатная программа для создания программ и игр. Сайт разработчиков http://algoritm2.ru/

РС/Б — Си подобный язык Странник — компилятор Си, Модула, Паскаль с русскими операторами И это еще не все вспомнил! 🙂

Кстати, загляни на [ссылка заблокирована по решению администрации проекта]

там есть информация по языкам с русским интерфейсом и синтаксисом Миоко Таканава Гений (51044) 6 лет назад

Кстати, очень не удобно.
Здесь кому-то на ответах писала программу в КуМире — замучалась раскладку туда-сюда переключать: переменные латинскими буквами, ключевые слова на кириллице.

incvizitor mech_poludennii Знаток (435) 2 месяца назадРусский язык невыразителен? Кто-то явно не знает родного и могучего.Более выразительного, чёткого и многогранного языка не существует.Единственная проблема почему языки программирования на английском, так это его примитивизм и лёгкость для изучения иностранцами.Русский сложен для изучения мировым сообществом и если бы программирование было на великом и могучем, то программисты были бы только в России )))А если интересно по прогить на русском, то советую попробовать систему программирования КуМир.

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

Комментарий удален

Источник: https://otvet.mail.ru/question/60130870

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

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

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

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

При этом увеличивается мощь языка разработки.

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

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

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

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

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

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

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

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

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

Иногда даже недостаточно хороший уровень написания приложения на одном языке заставляет разработчика перейти в определенной части кода программы на другой язык и обратно. И снова проблема — стабильность и скорость подобных «винегретов».

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

В итоге имеется многообразнейший рынок средств и языков разработки, неменьший рынок разработчиков на этих языках, которые пишут программные продукты, применяя все эти средства и вместе, и поврозь, и комбинируя их, и играя на совместимости языков… Опять же, в итоге либо получая максимально оптимизированный готовый продукт (в случае, если изощрялся профессионал), в котором из массы языков было выжато всё, что только допустимо, либо получая «сырой», нестабильный, «тяжелый», неоптимизированный продукт. Это в случае, когда извращался непрофессионал.

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

Источник: https://ShkolaZhizni.ru/computers/articles/11732/

Вопрос читателям: какой язык программирования легче всего выучить с нуля?

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

Поделиться

Поделиться

Твитнуть

А компания Foxconn — крупнейший в Китае производитель электроники — планирует автоматизировать 30% рабочих мест на своих фабриках до 2020 года.

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

Я сам несколько раз начинал и бросал: вроде хочешь выучить какой-нибудь язык, но понятия не имеешь, что тебе это даст в итоге и что можно сделать с его помощью. Однажды я спросил своего друга: «Вот ты хорошо пишешь на Java. Расскажи, для каких случаев подходит, например, Python?»

Поскольку я не разработчик, для меня этот вопрос звучит так же естественно как: «Вот ты — столяр. Можешь делать крутые штуки из дерева. А что может сделать фрезеровщик?»

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

Не то чтобы я переживал, что искусственный интеллект заменит журналистов (хотя прецеденты уже существуют), но мне до сих пор любопытно: в чем сильные и слабые стороны Java? Objective-C? Ruby? Python?

Заодно расскажите, какой язык программирования вы начали учить первым?

  • Сколько времени это у вас заняло?
  • Какой язык вы порекомендуете выучить человеку без математического образования?
  • Его лучше учить самому или в специальной школе?
  • Какие школы существуют в Москве и в Санкт-Петербурге? Есть ли похожие школы в регионах?
  • Эффективно ли учить язык с помощью Udemy, Coursera, Udacity или других онлайн-курсов?
  • Какие сайты, блоги или книги вам помогали?

#обсуждение

Источник: https://vc.ru/28726-vopros-chitatelyam-kakoy-yazyk-programmirovaniya-legche-vsego-vyuchit-s-nulya

Blogerator.org

Blogerator.org

Просмотров: 18268

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

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

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

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

Под катом два небольших видео (каждое по 5 минуту) частного мнения программиста Николая Ясинского (Екатеринбург) о том, почему учиться программированию по книгам — не самая хорошая затея. И хотя аргументы у него иные, суть получается аналогичная. В заключение я подвожу итог примерной схемой погружения в программирование для новичка, которую я считаю предпочтительной.

Почему книги не должны подменять навык самостоятельного, заинтересованного в результате, практического навыка поиска?

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

Не учите программирование по книгам! часть 2 (7 мин.)

Выковырял из-под видео вот такой вот суммирующий комментарий-отзыв:

Подводя промежуточный итог

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

Полезное дополнение можно отыскать в комментариях:

Очень важно, что при таком алгоритме вы ищите в книге или гуглите информацию целенаправленно, под конкретную задачу-проблему.

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

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

Книга при таком «продвижении боем» по реальному коду выполняет своего рода вспомогательного справочника, который лежит подле правой руки и используется только по мере надобности в узком интервале каждой конкретной обнаруженной проблемы. Ещё раз — мы учимся не чтению абстрактных книг и надуманных примеров, мы изначально учимся решению и пониманию реальных проблем/кода.

Байка о попаданце на Github

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

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

Теоретик может годами прилежно изучать иностранный язык за букварём, старательно заучивая бесконечный свод правил, в результате так и не научившись толком говорить в реальной жизни — знакомая картина? А такой попаданец станет говорить как миленький, сначала криво и с акцентом, но потом всё лучше и всё увереннее, просто подражая носителям языка, постоянно соприкасаясь с ними в бытовых ситуациях + сразу запертый в безальтернативном варианте — учиться практике или умереть.

В первом случае («теоретик») книга-справочник нужен чтобы учить язык, для того, чтобы «когда-нибудь выучить его»; во втором же варианте он нужен банально для того «чтобы выжить», т.е. решить здесь-и-сейчас вереницу конкретных задач и проблем.

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

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

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

Впрочем, в последнем случае чаще всего новичок будет отравлен такими объемами новой для него информации-сложности, которые даёт ему современная книга-талмуд, что приведет в итоге к тому, что изучение-постижение профессии будет отложено «до лучших времен».

Короче говоря, всё сводится к банальному —

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

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

Наши вузы — видео-бонус

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

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

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

С другой стороны я бы не рассуждал на эту тему столь категорично и лихо, как это делает Николай — позитивные примеры, я бы даже сказал что легендарных вузов всё-таки у нас есть, до сих пор в России продолжают готовить штучных продвинутых специалистов в области ИТ.

Тот же ИТМО известен своей сильной школой программирования; например, в 2015 году этот университет из Питера стал шестикратным чемпионом мира по спортивному программированию ACM ICPC-2015.

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

Институты для программистов это п***ц. 18+

Таким образом, на книгу и вуз у новичка нынче почти никаких серьёзных надежд. Спасение — дело рук самого утопающего.

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

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

Альтернативное мнение

А вот ещё одно мнение на эту же тему по следам моей статьи:

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

Где скачать курсы и книги для программирования и обучения ИТ? Как обучаться и научиться программировать на языке? Схема и алгоритм постижения профессии кодера. Как начать читать код, научиться понимать написанное в листинге программы.

Где учат и готовят на программиста или на айтишника в России? Как стать настоящим айтишником и настоящим хорошим программистом, как получить опыт и начать читать чужой код.

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

Источник: http://blogerator.org/page/knigi-sovety-nachinajushhemu-programmistu-ucheba-obrazovanie-it

Какой язык программирования лучше выбрать первым для изучения новичку?

Один из самых популярных вопросов в нашем сообществе от начинающих программистов звучит так: «С какого языка мне начать?» Для ответа мы привлекли наших экспертов.

Все зависит от того, какую область вы выберете. Если вы хотите работать непосредственно с железом, писать драйверы и различные приложения, для которых требуется максимальная производительность, — тогда подойдут только C или C++. Если ваша цель — приложения для мобильников, стоит изучить Java или Objective C, C#. Для веб-серверов необходимы go, python и php; для веб-приложений — JavaScript.

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

На мой взгляд, настоящий программист никогда не ограничивается знанием только одного языка. И даже если в будущем вы собираетесь писать драйвера и системные приложения, вам всё равно пригодится какой-нибудь из скриптовых языков, таких как perl или python. Более того, знание скриптовых языков сейчас просто необходимо для любого программиста, несмотря на его специализацию.

Рейтинг полезности ответа: 42

Python вполне подойдет для изучения общих концепций программирования. Это очень популярный язык, у него много библиотек, синтаксис легко читаемый и довольно аккуратный код. Основными преимуществами Python для новичков является то, что он довольно распространен и его легко выучить.

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

Если вы разрабатываете корпоративное приложение (информационные системы предприятий), то это С# или Java.

Рейтинг полезности ответа: 42

Я в своё время начинал с Фортрана и Паскаля, так как они были у меня в институте. Потом был С/C++, Visual Basic Script, PHP и Visual Basic, потом C#, потом немного F#.

Если опираться на свой опыт и иметь возможность выбирать, наиболее комфортно мне было разрабатывать на С#, и с него бы я и начал. Больше всего в плане понимания алгоритмов и механизмов работы ОС, под которые я писал, дал мне C++.

Рейтинг полезности ответа: 42

На примере C++ и Java изучить основу основ ООП, а потом определиться в предметной области и изучить родной для неё язык.

Рейтинг полезности ответа: 42

Полагаю, лучше всего начать обучение с JavaScript. Благодаря веб браузерам, этот язык программирования является стандартом де-факто при создании веб приложений, одной из самых быстрорастущих областей разработки. Также по нему есть великолепная бесплатная книга, «Eloquent JavaScript», переведенная на русский.

Рейтинг полезности ответа: 42

Все зависит от задачи, которую вы хотите решить. Однако если это ваш первый язык, я бы порекомендовал язык со строгой типизацией общего назначения (C++, Java, .

NET): с ними в любом случае не пропадете и будет легко перейти на любой другой.

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

Рейтинг полезности ответа: 42

Здесь всё зависит от возраста. Если вы решили действительно смолоду учиться программировать, и вам еще нет 12 лет – лучше начинать с простых графических языков, типа Kodu Game Lab или Scratch.

Считается, что традиционные языки программирования стоит осваивать после 12-ти. Из традиционных языков мне всегда был близок C# – для него есть хорошая среда разработки, а программировать можно всё: от игр в Unity, до веб-сайтов на ASP.NET или электроники.

Для обучения можно посмотреть видеоуроки, или почитать книжку C# для школьников.

Рейтинг полезности ответа: 42

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

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

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

Но вместе с тем это и не язык ассемблера, что даёт возможность сосредоточиться на общих вещах, не тратя большую часть умственных усилий на запоминание всех названий jump’ов и значений регистров. В качестве литературы рекомендую классическую K&R.

Также можете обратить внимание на Python, который автоматически приучит вас к некоторой структуре и стилю оформления кода, что тоже полезно для новичков. Да и исполнение интерпретатором вместо полноценной компиляции даст чуть более быструю обратую связь, что важно при обучении.

Рейтинг полезности ответа: 42

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

Рейтинг полезности ответа: 42

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

Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на [email protected], мы расскажем, как это сделать.

Источник: https://tproger.ru/experts/16/

Ссылка на основную публикацию