Комментарии 58
А зачем совсем начинающему объяснять про классы и объкты сразу? просто все будет делать в мейн или статик ф-циях (просто запомнить этот кийворд). А ООП все равно придется объяснять.
Чтобы "что-то вывести на экран, посчитать" не надо объяснять про ООП и всякие статики. Нужно просто сказать: "здесь напишите static". А объяснения сделайте позже, в следующий раз.
По моему опыту — как раз наоборот, это сильно демотивирует тех, кто привык понимать, что делает, а не заучивать.
«Те, кто привык понимать» обычно привыкли разбираться — вооружась гуглом начнуть непонятное расследовать, а не будут сидеть и ныть о том, как всё сложно. Тем более, что все ответы — в первых трех ссылках поисковика.
Для новичка программирование — сплошь необъятная магия из API стандартной библиотеки и синтаксических конструкций.
Вовсе нет.
При правильном объяснении там нет никакой магии. Хотите вывести что-то на консоль — вот есть библиотека для работы с консолью, подключается вот так, там есть такие-то и такие-то функции. Если интересно — вот справка. Мы пока будем пользоваться этим и этим.
Синтаксические конструкции объясняются тоже далеко не все сразу. Сначала — линейное программирование, потом ветвления, циклы, функции, и уже потом — классы.
Три-четыре ключевых слова в начале — это капля в море, едва ли кого-то смутит. Это непонимание не стопорит обучение.
Для определенной категории учеников (подчеркиваю: для определенной) — стопорит очень сильно. Скажем, в том же питоне можно написать хэлловорлд и тут же, построчно и посимвольно, объяснить ученикам, что здесь написано и для чего это нужно.
В джаве так не получится. В джаве придется или говорить, что «это магия, не обращайте внимания, это нужно просто скопипастить, чтобы все заработало», или же начинать втолковывать про классы, ООП и чем статические функции отличаются от нестатических.
«Те, кто привык понимать» обычно привыкли разбираться — вооружась гуглом начнуть непонятное расследовать, а не будут сидеть и ныть о том, как всё сложно. Тем более, что все ответы — в первых трех ссылках поисковика.
Вот оно как все просто-то, оказывается! Просто ученики должны быть замотивированы и должны учиться по гуглу. :)))
То есть, если я вас правильно понял, ученик должен:
— прийти домой с первого занятия, открыть гугл
— изучить ООП (что такое класс)
— изучить модификаторы доступа (и почему нужен public)
— изучить статические функции класса vs виртуальные
— получить просветление и идти спать.
Дело за малым: найти таких мотивированных учеников. Большинству-то и на занятиях учиться лень, не то что дома по гуглу.
Мы пока будем пользоваться этим и этим.
Знаете, я встречал преподавателей, которые ограничивали доступ учеников к средствам, которые «мы еще не проходили». Это очень и очень порочная практика, которая как раз губит мотивацию ученика по очевидным причинам, зато очень упрощает работу преподавателя.
Для определенной категории учеников (подчеркиваю: для определенной) — стопорит очень сильно.
Мы говорим о какой-то странной категории учеников, которые по какой-то причине должны учить программирование, но не способны ориентироваться по обрывочной информации и учить этому мы не имеем права. Если это ребенок, то Java для него может быть сложна, но вряд ли обсуждаемая причина будет единственной. Но взрослому человеку это не должно быть проблемой, иначе самостоятельно искать ответы на вопросы он просто не сможет. А это буквально крест на карьере в любой сфере интеллектуального труда. Хочешь расти быстрее — ломай себя, учись учиться.
если я вас правильно понял, ученик должен
Любознательный ученик задает вопросы и будет в поиске ответов на свои вопросы теребить преподавателя или гугол, получая тонну вещей, которые он пока не может понять полностью. Он будет видеть код других людей (учиться читать), понемногу впитывать терминологию (хотя бы кейворды для гуглинга дальше), обрастать эрудицией. Пока копипастить, да. По мере обучения среди разрозненной информации начнут появляться логические связи. Начнет формироваться обширная база знаний будущего программиста.
Если ученик этого делать не будет желать, то смена языка никак не поможет и высот в учении он не добьется (по крайней мере до тех пор, пока что-то не изменится).
Просто ученики должны быть замотивированы и должны учиться по гуглу.
Вот вообще не понимаю этого сарказма. Да, можно рубать деньги на войтишниках полгода объясняя нажатие последовательности кнопок для получения узкоспецифичного результата. Но качество такого обучения всем известно.
Большинству-то и на занятиях учиться лень, не то что дома по гуглу.
Зачем учить тех, кто не хочет учиться? Это же совсем не языков проблема. Либо аудитория людей, которым это даром не упёрлось, либо методика такая, что глаза у любого погаснут.
По моему скромному мнению, самое главное — это желание. Не боги горшки обжигают, а программирование — это не та область, где для старта нужны связи, деньги, удача или гениальность. Достаточно желания, времени и доступа в интернет. Тем временем, сотни тысяч людей даже сегодня становятся программистами, начиная с паскаля, VB6/QBASIC, древней версии C++, где-то с помощью, а где-то и вопреки. Потому что им просто нравится изучать программирование.
Но если не будет желания, то вы никогда не найдете подходящего языка.
Знаете, я встречал преподавателей, которые ограничивали доступ учеников к средствам, которые «мы еще не проходили». Это очень и очень порочная практика, которая как раз губит мотивацию ученика по очевидным причинам, зато очень упрощает работу преподавателя.
Разве я где-то говорил, что преподаватель должен ограничивать доступ к средствам? Вовсе нет. Я имел в виду, что объяснять подробно всю системную библиотеку, функция за функцией, преподаватель не должен — это пустая трата времени и сил. Особенно тогда, когда изучаются совсем другие темы.
Мы говорим о какой-то странной категории учеников, которые по какой-то причине должны учить программирование, но не способны ориентироваться по обрывочной информации и учить этому мы не имеем права.
Выделенное вы, я так понимаю, мне приписываете? Так вот, я этого не говорил. Собственно, я и про остальное упомянутое не говорил («ориентироваться по обрывочной информации»).
Если вы не понимаете, о какой категории я веду речь, так ведь можно же просто спросить, не так ли? Зачем выдумывать какие-то странные критерии и приписывать их мне?
Есть ученики, которые предпочитают заучивать разрозненную информацию, и есть те, кто пытается понять общие принципы и увязать их в какую-то систему. Вот про вторую категорию я и говорю: когда их просто заставляют заучить некую «магию» без объяснений, это может их сильно демотивировать. Многое тут зависит от подачи материала преподавателем: хороший преподаватель сгладит негативный эффект.
Но взрослому человеку это не должно быть проблемой, иначе самостоятельно искать ответы на вопросы он просто не сможет. А это буквально крест на карьере в любой сфере интеллектуального труда. Хочешь расти быстрее — ломай себя, учись учиться.
Да, здесь вы очень правильно рассуждаете. Но есть нюанс: ученики и студенты далеко не всегда точно знают, чего хотят. Даже скажу резче: они вообще редко когда знают, чем хотят заниматься после окончания школы или вуза. А для того, чтобы расти в какой-то области, нужно прежде всего хотеть в этой области работать.
Я неоднократно видел, как ученики (да и студентны тоже) «загораются» энтузиазмом, когда понимают, что как устроено. И также неоднократно видел, как приходят на занятие с интересом и надеждой, а уходят потухшие — потому что ожидали понять «систему», а их заставляют записывать формальные определения. Именно поэтому я и говорю, что наличие магических строчек, которые никак не объясняются — это не очень хорошо.
Любознательный ученик задает вопросы и будет в поиске ответов на свои вопросы теребить преподавателя или гугол,…
(скип)
Если ученик этого делать не будет желать, то смена языка никак не поможет и высот в учении он не добьется (по крайней мере до тех пор, пока что-то не изменится).
Черно-белый подход, понимаю. Ученик или активен и любознателен, или пассивен, безволен и нафиг не нужен — отчислить без раздумий.
К сожалению, жизнь гораздо разнообразнее. На одного активного ученика приходится десяток-другой «полуактивных» — тех, кто не будет сам что-то искать, если ему не интересно. Но есть хорошая новость: многие из них могут стать активными, если им станет интересно. :)
Зачем учить тех, кто не хочет учиться?
Хороший вопрос.
Дело в том, что программирование в том или ином виде есть в программе множества вузовских специальностей. Многие из них вообще мало связаны с айти — технологи, например. Понятно, что для студента эта дисциплина — далеко не основная, свою жизнь он с ней не связывает, а следовательно, ожидать от него неугасимого энтузиазма, любопытства и гугления не очень разумно.
Про школу я вообще молчу. В старших класса вполне могут быть занятия по программированию, но ожидать от основной массы учеников неземной активности не стоит. Это в конце 1980-х уметь писать программы на компьютере было мечтой советского школьника. Сейчас энтузиазм поутих. :)
По моему скромному мнению, самое главное — это желание.
Правильная мысль.
Так вот, задача преподавателя — разжечь это желание в тех, до кого дотянется. А задача языка программирования — не слишком мешать процессу обучения своими особенностями.
Но если не будет желания, то вы никогда не найдете подходящего языка.
Вы говорите о желании изучать как о неизменном качестве ученика.
Я говорю о том, что желание изучать предмет может как появиться, так и угаснуть. И, к сожалению, сам был свидетелем того, как неудачно выбранный язык программирования плюс нежелание преподавателя разъяснять мутные детали — намертво отбивали желание учиться.
Разве я где-то говорил, что преподаватель должен ограничивать доступ к средствам?
Выделенное вы, я так понимаю, мне приписываете?
Вы утверждаете, что некоторым ученики разобраться не смогут, а мои предложения их этому обучить вы отвергаете. По сути — да.
когда их просто заставляют заучить некую «магию» без объяснений, это может их сильно демотивировать.
Вы всегда можете давать ссылку, где эта магия раскрывается. Тот, кото это останавливало удовлетворил бы интерес.
ученики и студенты далеко не всегда точно знают, чего хотят.
Это проблемы воспитания и ограниченности кругозора (вклад в который в немалой степени дают учителя, проводя за ручку и уберегая от трудностей).
Именно поэтому я и говорю, что наличие магических строчек, которые никак не объясняются — это не очень хорошо.
Программа должна просто работать. Ученик должен понять, что он управляет ее работой. Очевидно, что от ключевых слов это не зависит для хэловорда, важен алгоритм и те примеры, которые дают ученику: «Повторяй за мной, потом попробуй внести изменения и поэкспериментировать». Поэтому я и говорю, что обучение это не стопорит и не сбивает мотивацию.
Ученик или активен и любознателен, или пассивен, безволен и нафиг не нужен — отчислить без раздумий.
На самом деле это разумный подход. Иначе получается как в реальной жизни: преподаватель ни бестолкового не научит и студент «с горящими глазами» демотивирован бесполезными занятиями, программу которых он уже далеко обогнал.
Дело в том, что программирование в том или ином виде есть в программе множества вузовских специальностей.
Это не ответ на вопрос, вы описываете обстоятельства.
сам был свидетелем того, как неудачно выбранный язык программирования плюс нежелание преподавателя разъяснять мутные детали
Готов поспорить, что удачно выбранный язык никак не перекроет нежелание преподавателя качественно трудиться. Ставка на то, что менее мотивированный студент сам сможет разобраться. Так с болезнью мы тут боремся или с симптомом?
Вы утверждаете, что некоторым ученики разобраться не смогут, а мои предложения их этому обучить вы отвергаете. По сути — да.
Где я утверждал, что ученики разобраться не смогут — нельзя ли точную цитату? Не захотят — это да, вполне.
И где это я отвергал ваши предложения их обучить — тоже с цитатой, пожалуйста.
Вы всегда можете давать ссылку, где эта магия раскрывается. Тот, кото это останавливало удовлетворил бы интерес.
Вы ведете речь об идеальном мире, где ученики хотят учиться, а преподаватель точно понимает сложности преподаваемого предмета и заранее стелит соломку.
Я веду речь о мире реальном, где ученики вовсе не так яро мотивированы и где преподаватель частенько сам не очень хорошо ориентируется в тонкостях своего предмета.
Вот между ногами и разница (ц).
Это проблемы воспитания и ограниченности кругозора (вклад в который в немалой степени дают учителя, проводя за ручку и уберегая от трудностей).
Эвона как вы лихо ставите диагнозы системе образования. :)
Программа должна просто работать. Ученик должен понять, что он управляет ее работой. Очевидно, что от ключевых слов это не зависит для хэловорда, важен алгоритм и те примеры, которые дают ученику:
Кому очевидно? Вам? Мне вот не очевидно ни разу.
Если классический хэлловорлд вместо одной строчки занимает десять (из которых девять — магический бойлерплейт), то порог вхождения для неподготовленного ученика выше. Мне вот такое очевидно — о чем я, собственно, и сказал в первом сообщении.
На самом деле это разумный подход. Иначе получается как в реальной жизни: преподаватель ни бестолкового не научит и студент «с горящими глазами» демотивирован бесполезными занятиями, программу которых он уже далеко обогнал.
Подход, может, и разумный, но система образования у нас построена по-другому. Можно сколько угодно рассуждать, что в идеальном черно-белом мире нет никакой разницы, какой обучающий язык выбрать: питон, джаву, паскаль или ассемблер. В реальном мире разница все-таки есть, хоть и не настолько большая.
Это не ответ на вопрос, вы описываете обстоятельства.
Да.
Потому что я — не государство, чтобы давать вам компетентный ответ на вопрос «зачем учить всех пришедших в вуз».
Ставка на то, что менее мотивированный студент сам сможет разобраться. Так с болезнью мы тут боремся или с симптомом?
Да, ставка именно на это (плюс поправка на то, что преподаватель тоже неидеален).
Насчет того, с чем вы боретесь — я, честно говоря, затрудняюсь ответить. Я вам свою точку зрения высказал.
Где я утверждал, что ученики разобраться не смогут
Читайте везде, где упоминается особая категория учеников, которым это не подходит.
Я веду речь о мире реальном, где ученики вовсе не так яро мотивированы и где преподаватель частенько сам не очень хорошо ориентируется в тонкостях своего предмета.
Я говорю о том, как это делать нужно максимально продуктивно, с моей точки зрения.
Вы в своей разноцветной реальности забываете о том, что идеальных языков, которые чудесным образом решат все проблемы, не бывает.
Эвона как вы лихо ставите диагнозы системе образования.
Не обобщайте, даже в существующей системе образования встречаются прекрасные кадры.
Если классический хэлловорлд вместо одной строчки занимает десять (из которых девять — магический бойлерплейт), то порог вхождения для неподготовленного ученика выше.
У вас подопытный то расширяется до неподготовленного ученика, то сжимается до «определенной категории». Определитесь уж.
Строки, которые ни на что ощутимо не влияют, не препятствуют обучению.
система образования у нас построена по-другому.
Плохо, могло бы быть лучше. Дело тут совсем не в языках.
с чем вы боретесь — я, честно говоря, затрудняюсь ответить.
Нет нужды, такой вопрос не ставился.
Я говорю о том, как это делать нужно максимально продуктивно, с моей точки зрения.
А ваша точка зрения подтверждена каким-либо практическим опытом преподавания, или так — плод абстрактных рассуждений? Что-то мне подсказывает, что второе.
У вас подопытный то расширяется до неподготовленного ученика, то сжимается до «определенной категории». Определитесь уж.
Ничто ни во что не расширяется и не сужается — это два пересекающихся множества.
Речь шла о начальном этапе обучения — отсюда «неподготовленный ученик».
Речь шла о тех, кто берет не зубрежкой, а поиском системы в знаниях — отсюда «определенная категория».
Плохо, могло бы быть лучше. Дело тут совсем не в языках.
Так что же вы сюда-то пишете? Пишите сразу в Министерство образования, пусть исправляются. :)
На сем позвольте откланяться — я вам свою позицию объяснил уже несколько раз, а читать в десятый раз ваше «не, ну не понял» я сегодня не в настроении.
news.rambler.ru/other/43207169-microsoft-usomnilas-v-professionalizme-rossiyskih-programmistov
Паскаль хотя бы откровенный быдлокод не даст скомпилировать
А про быдлокод… ну чот хз, это весьма странное утверждение. Вам бы посмотреть на мой код пятнадцатилетней давности на паскале, когда я не знал ещё про циклы и организовал интерактивный интерфейс в консольке на goto. Вот где был быдлокод:)
Кроме того, на Python можно писать сразу реальные вещи, что-то для веба или десктопа, даже выступать на олимпиадах школьного(не международного) уровня.
Вторым языком можно брать Си, побыть немного ближе к железу. Между ними ещё можно воткнуть практику на каком-нибудь простеньком ассемблере, чтобы переход на Си был поприятнее. Си как первый язык не годится совсем, чтобы на нём Hello world написать, надо столько магии применить, что я даже не знаю, что может быть хуже.
Брать ли после Си С++ — вопрос, на мой взгляд, открытый. Для олимпиад — брать. Для общего развития — вряд ли. Лучше дальше взять какой-нибудь нормальный язык(Java, C#, Kotlin). После — что-нибудь функциональное.
Да в смысле не основы. Как раз основы и есть. У нас в МГУ тоже был Паскаль. Изучали на нём алгоритмы, писали сортировки, деревья (Исходник АВЛ-дерева у меня до сих пор есть), графы, численные методы. Да, язык хороший для обучения, но потом его знание никакой пользы не несёт. И всё то же самое можно было бы писать на питоне, и это в дальнейшем было бы сильно полезнее, имхо.
Возможно, если давать актуальный язык, то потом люди смогут на нём автоматизироваь типовые задачки. На том же паскале это намного сложнее, чем на питоне.
Но это моё предположение, у самого первым был паскаль, особо не жалею.
10.3 Release 3 is here!
Enjoy Delphi Android 64-bit Support, RAD Server Docker Deployment, And Much More!
We are pleased to announce the General Availability of RAD Studio 10.3 Release 3 (10.3.3). 10.3.3 expands upon 10.3.2 features, including support for Delphi Android 64-bit, iOS 13 and macOS Catalina (Delphi), RAD Server Linux enhancements and much more. Delphi 10.3.3, C++Builder 10.3.3 and RAD Studio 10.3.3 are available to download to any active Update Subscription customer.
NEW in 10.3.3
10.3.3 includes the following key new features:
● Delphi Android 64-bit Support
● iOS 13 and macOS Catalina (Delphi) Support
● RAD Server Docker Deployment
● Enterprise Connectors in Enterprise & Architect Edition
● And Much More!!!
И уж вот что-что, а его точно изучать не надо.
pascalabc.net
Оптимальный вариант сейчас для первого языка — Julia. Простая, современная, без ООП, но с типизацией. При этом синтаксически гибкая и быстрая в исполнении. Самое замечательное то, что на Julia очень легко учить алгоритмам. Хочешь — сортировку пиши, хочешь — кластеризацию векторов, хочешь — операции над тензорами. И всё чисто на Julia. И это не код "только для демонстрации", как в интеграционных языках, а код, который можно реально использовать. Для школьников и студентов она хороша тем, что любые расчётно-иллюстративные работы могут быть сделаны именно на Julia. Причём, переход с неё на низкоуровневые языки не будет вызывать когнитивный диссонанс, как в случае чистых интеграционных языков в качестве первого.
На мой взгляд Java отличный ЯП для обучения, единственный косяк, который ломает мозг новичкам — это генерики с отдельными типами-клонами для примитивных типов — придется сразу грузить про кучу, стек и боксинг (напрмер в C# это объяснять бы не пришлось из-за refined generics).
единственный косяк, который ломает мозг новичкам
А как же маниакальная страсть к именованию неймспейсов, так что необходимо объявлять класс в самом первом хеловорлде? «Сначала запомните этот бойлерплейт, про классы узнаете как-нибудь потом» − это просто краеугольный камень в обучении Java как первому ЯП. Мне кажется, трудно придумать что-то более мозголомное.
А как насчёт отсутствия беззнаковых целых? Знаковый
byte
разве мозг не ломает?Я имею в виду чисто для обучения синтаксису, управляющим конструкциям, циклам и т.п. Понятно что интернет-магазин так не получиться написать.
$ jshell
| Welcome to JShell -- Version 11.0.5
| For an introduction type: /help intro
jshell> System.out.println("hi")
hi
jshell>
openjdk.java.net/jeps/222
Брать ли язык, работающий на JVM? Ну на мой взгляд — да, потому что скажем с подключением зависимостей из репозиториев есть ряд явных преимуществ, это делать просто, и не нужно писать свои велосипеды — готовых навалом.
Брать ли вместо Java скажем c#? Не исключаю — смотря чего вы хотите в итоге добиться. Экосистема .Net сопоставима, где-то даже лучше, другие языки типа F# в ней тоже есть, стоит посмотреть и в эту сторону.
Кому лучше?
Можно на питоне вообще оставаться. Зарплаты не отличаются, там много всего интересного можно делать… также как и на скрипте. Зависит от того, что человек хочет. Но если хочется типы, то можно начать с javascript и подключить typescript. Будут и типы и классы и все остальное, но зато постепенно....
Ну, это еще большой вопрос. И с очень неясным ответом.
Можно ли на питоне делать много всего интересного… напомню, что поскольку мы сравниваем с Java, то мой ответ был бы скорее нет, чем да. Ну то есть, можно конечно, но в сравнении тут питон скорее проиграет. Не для начинающих, возможно, но в перспективе почти наверняка.
В сравнении с новой версией Java, скажем где-то с 11 — уже не будет сильно проще. В сравнении с груви и котлином — проигрывает и для начинающих сразу, потому что вся та же простота питона там есть, а некоторых лишних заморочек уже нет, так как оба языка более новые.
Кто вам сказал? У меня вот большая часть проектов, даже если имеют какой-то веб, но таковым ни разу не являются. Ну в общем это далеко не факт. Все применения, что вы назвали, так или иначе имеют место и для Java. И даже embebbed в какой-то степени. Причем если вспомнить JavaME — то даже и давно. Это конечно не совсем честная Java, но все-таки.
>Python применяется и в машинном обучении, и в работе с данными
Ага, ага. То-то у нас модели иногда сначала на питоне пишут, а потом на java/scala переписывают — чтобы хоть более-менее вменяемо по скорости работало.
>Python в этом плане не уступает
А я не говорю, что он уступает. Он вполне применим, без вопросов. Вы вполне можете прожить жизнь, ни на чем больше не разрабатывая. Это полноценная экосистема. Но некоторые тонкости все же есть…
Если вспомнить весеннюю кажется статью на примерно эту тему «зачем писать на Java, когда есть такой замечательный питон», то я тогда еще отвечал, что вменяемые люди в общем-то не пишут «на Java», а пишут они в экосистеме JVM. Которая одним языком не ограничена, в отличие от экосистемы питона, где только он один — а чуть что, нужно расширение на C.
Например, груви — я его люблю самого по себе, но это еще и основной язык разработки в случае если вы используете gradle или jenkins — т.е. для энтерпрайза если и не близко к 100%, то очень много. Так что насчет «меньше применений» — ну да, если gradle не считать за применение, то совсем-совсем никто и не пользуется ;)
Ну то есть, если вы выбираете себе для начала экосистему JVM, то вы в общем-то сразу (или потом) можете выбирать из множества имеющихся весьма приличных разных языков. Кложа, скажем, чем не выбор даже и для начального обучения? При этом экосистема у вас остается таже самая, и зная, как подключать зависимости (которые по большей части все в репозиториях maven), вы уже знаете это для всех языков.
Ну опять же — мы же изначально про начинающих, не? То есть, я говорю скажем груви, и имею в виду вот что:
def arr= [1, 2, 3]
def map= [1:"one", 2:"two"]
т.е. простой синтаксис, без заморочек Java, с константами для массивов и коллекций. Без обязательного указания типов (но с возможностью их указания). То есть, по простоте тут у конкурентов примерно так же все (или иначе говоря, груви, котлин, современный javascript или питон тут эквивалентны, с точностью до вкусов).
А машинное обучение… все равно ведь большинство тех, кто в этом направлении работает, не пишут сами библиотеки, а пользуются готовыми. И даже если вы планируете в этом направлении развиваться, начинают-то все равно не с ML, а с чего попроще.
Рано или поздно все сведется к С:-)
Начинать обучение лучше с того, на чем ученику интересно что-то написать. Занимается он моддингом NWN/Ведьмака — значит с NWN script. Занимается моддингом TES-ов — MWScript. И так далее. Любит копаться в экселе? VBA (прости господи).
После того, как освоит базовые вещи (переменная, выражение, условие, цикл, функция, вызов функции) уже можно писать практически на чем угодно, лишь бы в кайф было и тривиальные вещи было несложно делать.
И Ассемблером подпереть потом (чтобы вообще никаких вопросов не оставалось по «шойтан-машинам»).
Всё остальное — тюнинг.
PS. И книжки почитать — Кнута, Буча. Без привязки к ЯП которые.
Кто-то очень странно пошутил.
Для начинающих, первым языком? Которые не знают, что такое функция и переменная? Не говоря уж о классах...
Это сколько же времени пройдёт, прежде чем они сумеют написать
public static void main в своем Hello World
и понять, что это и зачем вообще нужно? А почему public? А почему void? Я себе предоставляю школьников классе так в 5-м, которые путают ООП с ОПГ...
В общем, кроме магии повторения заклинания "хорошая вещь, надо брать. очень хорошая вещь. ведь хорошая очень, брать надо", аргументов в статье и нет.
Управление памятью – это большое дело в начале обучения программированию.именно поэтому и надо начинать с си/плюсов а не с языка с GC
Сначала надо человека думать алгоритмически научить. А памятью и потом можно поуправлять. И если уж учить плюсам, то более-менее современным, а не 97 года.
Кому как. Но я считаю что лучшим способом начать осваивать программирование - это изучить excel. Мало того что само умение хорошо работать с таблицами пригодится в любой области ИТ, там сама робота с таблицами даёт наглядное представление работы с алгоритмами, выводом, ссылками, проведением расчётов, построением графиков, и самый главный жирный + - это вижуал бейсик, работа с макросами.
Человек который изучит обширнейший функционал excel в дальнейшем с лёгкостью воспримет любой другой язык, так как главные навыки уже будут освоены.
print *, "Hello"
type, public :: customer
integer :: id
character(:), allocatable :: first_name
character(:), allocatable :: last_name
type(nightmare_data_structure), dimension(MANY) :: fig_znaet_cho
end type
(Да и есть frepl, убогий, но для начального обучения самое то:)
Является ли Java лучшим языком программирования для начинающих?