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

     
    Какой язык программирования должен быть первым при изучении в школе?
    • 3%Лого288
    • 1%Scratch57
    • 11%Basic1082
    • 26%Pascal2698
    • 4%Delphi432
    • 33%С или C++3399
    • 14%Python1454
    • 8%Java822

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

    Метки:
    Поделиться публикацией
    Комментарии 1046
    • НЛО прилетело и опубликовало эту надпись здесь
      • +4
        А ты, видимо, очень любишь трупы, раз до сих пор тут.
      • +9
        Да когда уже тебя выпилят…
        • 0
          Уже. Даже не ясно, что произошло.
        • +4
          Ох и настырное школоло пошло!
          • +28
            Блин, тут столько внимания к комментарию выше, который удалили и я теперь понятия не имею, о чем идет речь… жуть как узнать хочется! :)
            • +3
              Школьник писал во всех топиках, которые ему попались под руку — «Хабр уже не торт», «Хабр умер» и тому подобный бред.
              • 0
                Может он написал где Asm
          • +132
            C или C++? Да вы шутите! В стандарте Си более 190 различных undefined behavior, и я более чем уверен что даже среди разработчиков компиляторов не все их могут на глаз распознать в коде (когда это возможно статически).
            • –10
              Си или C++ так как этот язык должен приучить к аккуратности. Слезить за памятью, работа с указателями — это очень сильно закаляет. Да и потом, школьная программа подразумевает лишь основы алгоритмизации, так что дальше работы с указателями врят-ли стоит идти. В школах дают задания максимум на сортировку матриц и т.д. Язык программирования как таковой тут особо роли не играет.
              • +34
                Даже указатели излишни. Язык должен быть динамически типизированным, как минимум.

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

                В некотором роде, язык программирования в школе вообще лишний. Там должна идти речь о работе с техникой и информацией как таковой, а азы программирования лишь на уровне понимания насколько всё сложно и почему в этом мире всё поголовно кривое.
                • +2
                  Я например за то, что бы классы разделяли по будущим специальностям. И те кто выбрал класс с технических уклоном должны ознакомится с программированием. На С и С++ азы можно дать и без указателей. Кому понравиться — будет копать дальше.
                  А кто не смог определится, пусть идет в общеобразовательный класс, и не учит никакое программирование.

                  • +2
                    Си без указателей? Нафига? Чему вы там будете детей учить? Чем, в таком случае, не угодил Паскаль?
                    • +1
                      Это лично мое субъективное мнение. В паскале тоже указатели есть, но не обязательно их использовать.
                      Чему учить? Переменные, условные операторы, циклы, массивы, парочку алгоритмов и хватит. Школа все таки.
                    • +3
                      Простите, какая будущая специальность в третьем классе? А если вы про 10-11, то существуют ПТУ/техникумы.
                      • 0
                        У нас информатики в школе до 9го класса не было. И программирование (на QBASIC) отдельным классом давалось, т.е. только для желающих.

                        А про компьютерный класс с третьего класса вобще никогда не слышал. У всех знакомых с 7-9 класса только.
                        • +1
                          У нас тоже не было. Но у друга сейчас сын в 3-м классе, полистал учебник по «информатике» (точное название не помню) — вполне годный для понимания что такое информация, компьютеры, сети и т. п. Кое-что для меня даже в новинку было, вернее было интуитивное понимание, а тут формулировка простая, а не «академическим» или ещё хуже «юридическим» языком, но тем не менее верная на мой взгляд.
                          • +1
                            у меня информатика была с 1 по 11 класс. в первом классе был пакет Роботландия. Простые алгоритмы типа Ханойских башен и около того. Во втором классе было Лого. Бейсик был в 5 и внезапно в 8.

                            годы обучения 93-2003.
                          • 0
                            То есть вы предлагаете человеку, с развитым логическим мышлением и т.п. идти в ПТУ/техникум для получения знаний по программированию?
                            • 0
                              Если хочет связать свою жизнь с программированием, то да. Когда его ровесники закончат школу, то у него будет и общее среднее, и начальное/среднее профессиональное, а в идеале и уже какой-то практический опыт. Диплом техника-программиста. Может идти работать кодером, может в вуз на инженера (к тому же, вроде, некоторые вузы практикуют приём из техникумов/колледжей на второй-третий курс).

                              Естественно я про нормальное образование, а не про «изучение екселя».
                              • +4
                                Почему нет, коль речь идёт о профориентации? Во всяком случае точно НЕ школа должна давать _профессиональные_ знания. Функции школы совсем другие.
                                • +1
                                  Плюсану. Некоторые после школы имя-фамилию свои без ошибок написать не могут, так зачем им программирование?
                                  • +1
                                    Чтобы программа проверяла орфографию :)
                            • +19
                              Азы программирования — это алгоритмы. Их надо изучать на яызках максимально далеких от железа.
                              • НЛО прилетело и опубликовало эту надпись здесь
                              • +1
                                азы программирования не помогут понять, почему всё кривое.
                                в азах все стройно и чётко.
                                • +2
                                  Когда они научатся писать свои программки и узрят насколько они получаются кривыми по сравнению с ожиданиями, они начнут подозревать что, в принципе, и всякие вконтакты-фейсбуки-ипр тоже кривые вот потому же (т.е. потому что всё шибко сложно даже для умов профессиональных программистов).

                                  Хотя да, я такой наивный…
                                • –2
                                  А лучше статически типизированным, чтобы не было ошибок времени выполнения.
                                  • +3
                                    Благодаря отсутствию ошибок времени выполнения в статически типизированном С на первом курсе у нас даже был «клуб любителей сегфолта».
                                    • +1
                                      Пардон. Должен был сказать, что подразумеваю Haskell и ему подобные языки с выведением типов (type inference).
                            • +138
                              Да чтоб ваши дети в школе учили яву и Си в качестве первого языка, блин.
                              • +76
                                кстати про яву — представил себе урок:
                                Учитель: «А сегодня, дети, мы будем учиться настраивать маппинги через xml для hibernate» :-)
                                • 0
                                  Спасибо!
                                  • +25
                                    Видимо добряки не нашли в списке бреинфак, поэтому и выбрали С\С++.
                                    • +2
                                      Ну вот у меня была Java в школе. И это было очень кстати.
                                      • 0
                                        Что это за школа такая, что Java преподают?
                                        • 0
                                          У меня тоже была. Не первым языком, правда.
                                          • 0
                                            533 лицей в Питере
                                        • 0
                                          У меня первым языком в школе был Си. По книжке Кернигана и Ричи.
                                        • +84
                                          Те кто отвечают «С\ С++» либо психи, либо вундеркинды.
                                          И я так говорю не потому что я ненавижу С\С++(я их люблю ;)), а потому что он слишком сложен для старта.
                                          Паскаль можно, но лучше Лого… Хотя все же нужно уточнять, «в школе» это с какого класса?
                                          Если с 1-ого то Лого однозначно.
                                          Если с 5-ого можно начать с алгоритмического (часто именуемый «кумир»).
                                          А ежели с 8-ого то можно Паскаль\Бэйсик и т.д…
                                          Ну а потом в 10-11 можно и С\С++ дать )
                                          • –24
                                            никогда не понимал паскаль… помоему он выедает мозг!
                                            • +32
                                              А на мой взгляд, он хорошо «ставит руку».
                                              Когда учился в универе на первых курсах от Паскаля плевался. А потом понял, что толковой альтернативы для нормального поэтапного («академического») изучения алгоритмов и структур это лучшее из зол. Это язык, который заставляет собрать мысли в кучу (например, когда нужно банально описать секцию var), даст по рукам средствами сильной типизации и т.п…

                                              Как новичку в программировании объяснить, как работает «Hello world» в C/C++? Либо недоговаривать про классы с объектами, указатели, переопределение операторов, представление строк и т.п., либо сразу съесть мозг. А программированием тут еще и не пахнет. Про грядущие радости отладки с сишными строками на стеке и передачей в качестве результата из функций говорить, думаю, тоже не надо. А это тоже азы. Продолжать можно бесконечно.

                                              Про Java в качестве первого языка и думать не хочется. Все-таки стоит пощупать управление памятью руками и понять, что такое указатели до того, как начать играться с Java (дабы не облениться раньше времени :))
                                              • –29
                                                C++ более чем, нормально пойдет в качестве первого языка.
                                                Да можно не договаривать кучи вещей — всех нас в школе на математике честно обманывают — сначала, что нету отрицательных числе, потом что на ноль никогда делить нельзя, потом что корень из отрицательных чисел корень извлечь нельзя и т.п.
                                                Кстати, детям ни кто не рассказывают в паскале что writeln() это функция, и вообще что такое функция. оО!

                                                В общем я за то что бы с 8-го класса когда начинается информатика детей учили C++.
                                                Python — им будет тяжело учить. А Java слишком изменена для начальных навыков. Против Basic'а я ни чего не имею, но в России им мало пользуются… Про Delphi ни чего сказать не могу, но имхо, это продвинутый Pascal.
                                                • +9
                                                  Вы хотите сказать, что python'у учить тяжелее, чем Паскалю?

                                                  PS. На ноль таки делить нельзя. Деление — это умножение на обратный. У нуля нет обратного, значит и делить на него нельзя.
                                                  PPS. А отрицательных чисел действительно нет (в PA). А вещественных вообще нет (интуиционисты утверждают, что несчетных множеств не существует).
                                                  • –17
                                                    Да python учить тяжелее чем Pascal.
                                                    А ваши PS — просто смехотворны.
                                                    • +4
                                                      Предложите способ измерения сложности изучения, по которому паскаль окажется легче питона.
                                                      • –1
                                                        Банально тем что питон интерпретируемый и это дает пачку уникальных свойств, отличающих его от прочих языков. Если уж учить то чему-то более классическому. Питон очень крут, но это как выше говорилось про джаву — нельзя давать совсем уж новичкам, которые и блок-схему то нормально не составят.
                                                        • +3
                                                          Отличающие и усложняющие — это не одно и то же:)
                                                          • +1
                                                            «Не одно и то же» ещё не означает, что обязательно разное ;)
                                                            • +1
                                                              Если мы до сих пор рассматриваем обучение то как раз практически одно и то же.
                                                              Обучение должно быть ближе к классике. А потом уже когда постиг всего чего надо — иди хоть на перфокартах программируй.
                                                              • +1
                                                                Вообще я считаю что начинать учить программировать нужно блоксхемами и паттернами:)
                                                                • +2
                                                                  Под паттернами, я надеюсь, Вы не GoF имели в виду? )
                                                                  • +1
                                                                    Имел в виду само понятие паттерна. И умение разобраться в степени уникальности проблемы. Если проблема требует оригинального решения — решать. Если же это частный случай некоего множества — посмотреть как решали другие.

                                                                    А сам список названий паттернов то такое дело, для примеров, самые общие можно. Лет через пять то что мы с вами используем уже будет неактуально, придумают что-то еще.

                                                                    Паттерны это как формулы, если знаешь основы и откуда вывели — то тебе они не нужны. Но когда ты уже сам их вывел — то будешь пользоваться формулой, а не выводить каждый раз. И вот до этого людей надо доводить, чтоб не было непреодолимого желания изобретать велосипеды.
                                                                    • 0
                                                                      C такой позиции я согласен, да.
                                                                    • +1
                                                                      И, надеюсь, не те паттерны которые в регулярках? И, надеюсь, не pattern matching в функциональных языках?
                                                                  • +1
                                                                    1. кому обучение должно?
                                                                    2. что есть классика?
                                                                    • +2
                                                                      Так перфокарты и есть классика:)
                                                                      Базовые принципы в любом случае одни и те же. Очень у многих просто проблема в том, чтобы строго представить последовательность действий. Элементарно на уровне «чтобы перемножить матрицы, пишем три цикла». И это на мехмате, а не в школе.
                                                                      Так что, думаю, дополнительные сложности, вводимые языком, будут мешать, даже если есть веские причины для их существования, и в классических языках эти сложности есть. Выучить сначала python, потом С, ИМХО, не сложнее (а скорее проще), чем сначала С, потом python.
                                                                      И на python'е писать простые и средние программы (опять же ИМХО) проще, чем на С. В том числе и за счет отклонений от классики.
                                                                      • +1
                                                                        > Элементарно на уровне «чтобы перемножить матрицы, пишем три цикла».

                                                                        Это не элментарно. Элементарно — это то же самое, только с рекурсией. Если перподавать это в виде мат. функций, все прекрасно объясняется
                                                                        • 0
                                                                          судя по инфе у вас в профиле, вы не в Москве, жаль. А то бы я предложил простой эксперемент — становимся у какого-нибудь выхода из метро, и спрашиваем всех, кто согласится отвитить на несколько вопросов
                                                                          — знают ли они, что такое рекурсия?
                                                                          — знают ли они, что такое последовательность действий?
                                                                          — сколько им лет
                                                                          — чем по жизни занимаются

                                                                          не думаю, что результаты вас удивят, думаю, что где-то там внутри, вы понимаете, что функциональщина — это для специалистов, а тут просто троллите :))

                                                                          • +3
                                                                            Ну да, давайте предложим самый абсурдный эксперимент, который только можно себе представить, и назовем его результаты репрезентативными и соответсвующими теме.

                                                                            Если вы считаете, что в школе не знают, как вычисляется, например, что-то типа: f(x) = f(x-1) + 1 то вы давно не были в школе.

                                                                            Рекурсия, последовательность действий и прочая и прочая успешно объясняются на математике. Потом приходят учителя, ломают детям мозг совершенно другими определениями с тем, чтобы потом говорить, что ФЯ, которые на эту матматику при правильном обучении хорошо ложатся, являются сложными языками для специалистов :)))
                                                                            • 0
                                                                              не важно, что знают в школе. Мы в школе знали, что акое «рекуррентное выражение». Хотя я не уверен, что еще много школ в миллионном городе выпускали учеников с такими знаниями.

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

                                                                              Я не о том, что хорошо ложится на математику, я о том, что «ложится на простую жизнь» важнее.
                                                                              • +3
                                                                                Тогда в школе ничего не ложится на простую жизнь. И тогда вместо программированию лучше основам работы с компьютром, основы компьютерных сетей, безопасность личных данных (самое главное) и логике.

                                                                                Программирование, по большому счету, в школе не нужно.
                                                                              • +2
                                                                                f(x) = f(x-1) + 1
                                                                                Это такой дзенбуддийский коан? «Вещь в себе»?
                                                                                • +1
                                                                                  Нет, больше похоже на задачку с олимпиады. «Для функции f(x) выполняется условие f(x)=f(x-1)+1=f(x/2)*2. Верно ли, что из x>=0 следует, что f(x)>=0»?
                                                                                  • +1
                                                                                    Не обязательно для олимпиады
                                                                                    • 0
                                                                                      Действительно, как дополнительная задача на экзамене тоже сойдет. Спасибо. Предложу кому-нибудь из матанщиков.
                                                                              • 0
                                                                                Так в школе и учат, в том числе что бы на такие вопросы легко отвечали.
                                                                    • –2
                                                                      Ну мне это сделать тяжело.
                                                                      Конечно в чистую голову наверное все равно что забивать, но тем не менее, проблемы могут вызвать следующие факты: поддержка динамической типизации по умолчанию, изначальная работа с объектами, ну и границы на основе отступов (хотя это учит хорошим манерам, тем не менее это напряг для начинающего).
                                                                      • +4
                                                                        > поддержка динамической типизации по умолчанию

                                                                        С чего это вдруг вызовет проблемы? ;)
                                                                        • +3
                                                                          А искать где забыл «end» или "}" — не напряг? Проще ведь сразу приучаться к отступам, не думая ни о чём лишнем, чем сразу следить за тем и другим.
                                                                          • +2
                                                                            В Haskell тоже отступы. Давайте с него начинать — уж он-то разложит всё по полочкам в голове.
                                                                            • +1
                                                                              Зачем же в крайности кидаться? Отступы — не единственное преимущество Питона.
                                                                              • 0
                                                                                как и хаскеля )
                                                                                • 0
                                                                                  Я имел ввиду преимущества для изучающих программирование.
                                                                                  • +2
                                                                                    Блин, да ну я тоже ведь! Haskell рулит, поверьте. Не так он страшен, как его малюют.
                                                                                    • +2
                                                                                      «А вот здесь, дети, пишем стрелочки. Что это такое, мы изучать не будем, просто запомните» ;)

                                                                                      Это ничем не отличается от того же про include'ы и классы.
                                                                                      • –2
                                                                                        Ага, 4 строки на полный парсер обратной польской записи, и еще 20 строк на ввод-вывод результата из/в файл, да-да. Функциональное программирование оно такое.
                                                                                        • +3
                                                                                          Если вы не знаете, что такое ФЯ, не надо об этом всем рассказывать
                                                                                          • 0
                                                                                            Не мне? O'rly? Ну тогда расскажите вы, наиболее удобный способ читать/писать данные из/в файлы в Хаскелле? Можете дать дать куски кода.
                                                                                            • 0
                                                                                              Обязательно в Хаскелле? Других ФЯ вы не знаете?
                                                                                              • 0
                                                                                                import Data.Char(toUpper)

                                                                                                main = do
                                                                                                inpStr <- readFile "input.txt"
                                                                                                writeFile "output.txt" (map toUpper inpStr)


                                                                                                Сомниваюсь, что наивное чтение/запись во многих языках записываются лаконичней. И это пример из учебника, без всяких клёвых штук вроде iteratees.
                                                                                            • 0
                                                                                              bullshit.

                                                                                              readFile "in.txt" >>= return . parseLines . lines  >>= writeFile "out.txt"
                                                                                              

                                                                                    • 0
                                                                                      У нас первым языком был OCaml, вторым — Haskell, третьим — Java.

                                                                                      Reductio ad absurdum? Я не впечатлён.
                                                                                  • +4
                                                                                    И да, обучать основам программирования в Питоне можно без всяких объектов.
                                                                                    • 0
                                                                                      А на Haskell без всяких монад.
                                                                                  • 0
                                                                                    Я теперь стал против того, чтобы использовать языки с динамической типизацией и смесью парадигм в качестве первого языка.
                                                                                • +1
                                                                                  ну а что, на ноль делить и правда нельзя, мы же не про пределы говорим, а про прямое деление.
                                                                                  • –3
                                                                                    Ну а что объектов не существует тоже правда, мы же в конце концов структурное программирование изучаем… Да и существуют только целые числа, мы же только integer пройти успели…
                                                                                    • +1
                                                                                      Да даже в пределах на ноль не делят. Просто отношение 1 к бесконечно малой является бесконечно большой (и стремится к бесконечности). Для удобства это записывают так, что потом до седых бород все думают, что вот де можно на 0 поделить, иногда.
                                                                                  • –5
                                                                                    Нет, с питона потом будет сложнее переучиться при переходе на «серьёзные» языки (тот же С++ к примеру).
                                                                                    • +2
                                                                                      очень правильно слово «серьезные» взято в кавычки, очень!
                                                                                      • 0
                                                                                        Это предохранение от троллей, которые считают иначе и хотят это доказать. Факт остаётся фактом — на питоне драйвера не пишут, да и 3d-движков для игр что-то не встречал.
                                                                                        • 0
                                                                                          Eve Online написана (была?) на python.
                                                                                          • +1
                                                                                            там только GUI на нем
                                                                                            • +1
                                                                                              Both the server and the client software for Eve Online are developed in Stackless Python,
                                                                                              • –2
                                                                                                Врут. Как они рендеринг делают на питоне? Внутри-то он реализован все равно на С, если там OpenGL или на C++ (если DirectX).
                                                                                                • +2
                                                                                                  «Внутри» это библиотеки, python легко позволяет делать биндинги к библиотекам, в частности к DirectX. На каком языке написаны библиотеки python не волнует.
                                                                                                • +12
                                                                                                  Врёте. Как Вы рендеринг делаете на С/С++? Внутри-то всё равно электроны.
                                                                                          • 0
                                                                                            вопрос, вроде о школе, не?
                                                                                            какие, простите, драйвера и 3d-движки?
                                                                                            • –2
                                                                                              Простите такие, что я сказал не о школе, а о переучивании, которое, очевидно, будет после неё.
                                                                                              • +2
                                                                                                откуда взялось переучивание?

                                                                                                Чему нужно будет переучивать человека, который умеет записать алгоритм на языке питон, в институте, в контексте изучения 3d-движков, например?
                                                                                                • 0
                                                                                                  Что вы прицепились к движкам? Не в контексте движков, а в контексте С++.

                                                                                                  Учим питон => решаем написать движок => узнаём, что (внезапно) практически стандарт де факто для таких дел — С++ => начинаем писать на С++, в котором даже for сложнее (зацели вброс, да? :)) => куча траблов из-за того, что мозг привык думать более высокоуровнево.
                                                                                                  • 0
                                                                                                    *заценили
                                                                                                    • +1
                                                                                                      я выделил полужирным то, к чему «перицепился».

                                                                                                      и в каком месте, погружение на более низкие уровни — переучивание?

                                                                                                      Что, вместо того, что-бы циклом перебрать все значения списка, еще нужно понимать, что списки бывают разные, у некоторых есть индексы, которые нужно перебирать и так далее — это прям ужас-ужас и разрыв мозга?

                                                                                                      Какие-то вы странные вещи рассказываете.

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

                                                                                                      Опять-же, в контексте переучивания, ничего, что после школьной математики и алгебры, матан, вышка, дифуры и прочее в вузе читается? Может тоже, сразу школьникам будем критерий Коши объяснять?
                                                                                                      • +1
                                                                                                        Да, я сфейлился. Не пере-, а доучивание. Знатное такое, ага. Ну это не важно.

                                                                                                        По сути, очень спорно вообще, что в школах нужно давать программирование прям-таки сильно углубляясь. Мне кажется, что 11-го класса (ну на крайняк 10-го ещё) должно быть достаточно для того, чтобы дать основы. И то, большой ещё вопрос, а не лучше ли изучать на примере какого-то лиспа к примеру?

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

                                                                                                        В школах лучше бы набирать на клавиатуре вслепую десятью пальцами учили, чтоб потом не тыкались двумя-тремя бухгалтера/секретари/юристы/программисты всякие.
                                                                                                      • 0
                                                                                                        Программирующего на С нельзя научить ассемблеру?
                                                                                                        • 0
                                                                                                          Сложнее, чем наоборот.
                                                                                                          • 0
                                                                                                            Если программирующему на ассемблере объяснить C, но запретить пользоваться goto, ему долгое время будет очень неуютно. Почти как с машины Тьюринга переучиваться на brainfuck.
                                                                                          • –5
                                                                                            0^-1 = 1/0 = Infinity
                                                                                            • +2
                                                                                              Нету такого числа среди вещественных. Да и вообще ни в каком поле (кроме тривиального, состоящего из одного только нуля) у нуля нет обратного.
                                                                                              X*0 = X*(0+0) = X*0 + X*0
                                                                                              X*0 — X*0 = X*0 + X*0 — X*0
                                                                                              0 = X*0
                                                                                              Для любого X. Таким образом, нельзя умножить ноль на что-то и получить не ноль.
                                                                                              • –1
                                                                                                Среди вещественных — нет, но в спецразделах вычислительной математики специально вводят и активно используют такое понятие как бесконечность (например, оно необходимо для операций на эллиптических кривых и других). Как правильно было замечено выше:
                                                                                                всех нас в школе на математике честно обманывают — сначала, что нету отрицательных числе, потом что на ноль никогда делить нельзя, потом что корень из отрицательных чисел корень извлечь нельзя и т.п.

                                                                                                Вам тоже стоит взглянуть шире базового курса математики)
                                                                                                • +5
                                                                                                  Да, например, в комплане бесконечность можно ввести очень гармонично, и она хорошо смотрится на сфере Римана.
                                                                                                  Тем не менее «деление» по умолчанию предполагает поле. А в полях делить на ноль нельзя (см. выше доказательство).
                                                                                                  • 0
                                                                                                    Я не совсем в тему, но не подскажите ли какой-нибудь литературы по математике чтобы можно было популярно изучить и понять её суть во всех подробностях для нематематика. Заранее спасибо.
                                                                                                    • +1
                                                                                                      Николя Бурбаки, «Элементы математики». Однако имейте в виду, что к окончанию чтения нематематиком вы уже не будете. Caution is adviced.
                                                                                                      • 0
                                                                                                        О да, Бурбаки — это как раз то, что нужно для знакомства с математикой.
                                                                                                        Вы бы еще посоветовали… а не знаю, что более жестокое можно посоветовать)
                                                                                                      • +1
                                                                                                        Трилогия Гарднера («Математические новеллы», «Математические чудеса и тайны», «Математические головоломки и развлечения»). Возможно, Перельман «Живая математика». Для нематематиков — в самый раз.
                                                                                                  • +1
                                                                                                    Всякие понятия следует вводить аккуратно. Точка на бесконечности — это точка на бесконечности, возникающая при одноточечной компактификации, к вещественным числам (да и к любому полю в принципе) имеющая крайне отдалённое отношение.

                                                                                                    Есть понятие инфинитов (бесконечно больших) в нестандартном анализе, на расширенной вещественной оси R* — однако, так же как инфинитезималы не вляются нулём, бесконечностью в привычном смысле они не являются.
                                                                                                    • 0
                                                                                                      Но в преобразованиях Мебиуса дополнительная точка ведет себя точно как 1/0. А сами эти преобразования записываются через арифметические операции…
                                                                                                      • 0
                                                                                                        Простите, что это значит? Запись «1/0» не имеет смысла если использовать обычное деление.
                                                                                                        • 0
                                                                                                          Рассматривайте ее как точку на проективной комплексной прямой, если угодно. Пара чисел с точностью до пропорциональности. Если f(z)=(p*z+q)/(r*z+s), то f((a,b))=(p*a+q*b,r*a+s*b). Если b!=0 и r*a+s*b!=0, то f((a,b))=(c,d)эквивалентно f(a/b)=c/d. А дальше по непрерывности.
                                                                                                  • 0
                                                                                                    Тривиальном кольце. Поле из одного элемента (поле характеристики один) F-un — крайне спорная и, вообще гоовря, несуществующая алгебраическая структура.
                                                                                                    • 0
                                                                                                      Зависит от определения.
                                                                                                      Есть определение «существует единица», есть — «существует единица, не равная нулю».
                                                                                                      В частности, на мехмате кафедра алгебры пользуется вторым, а кафедра теории чисел — первым)
                                                                                                      • 0
                                                                                                        Первое определение порождает слишком много противоречий. Конечные поля — достаточно хорошо изученные объекты:

                                                                                                        en.wikipedia.org/wiki/Field_with_one_element
                                                                                                        • 0
                                                                                                          Да, одноэлементное кольцо многими из стандартных свойств поля не обладает. Тем не менее оно удовлетворяет всем аксиомам поля, кроме 0 != 1. И есть некоторые свойства, которые доказываются независимо от этого требования.
                                                                                                          Нам на семинарах объясняли, зачем может понадобиться считать одноэлементное кольцо полем. Но я, к сожалению, этого объяснения уже не помню(
                                                                                                          • 0
                                                                                                            Есть много различных причин для того, чтобы считать F-un существущим объектом — однако же все они так или иначе сопряжены с большими сложностями. До сих пор не разрешёнными сложностями, хотя тема в последние годы весьма популярна.
                                                                                                            • 0
                                                                                                              Безусловно. Поэтому в некоторых разделах математики (наверное даже в большинстве) его не рассматривают.
                                                                                                              Что, тем не менее, не запрещает убрать аксиому 0!=1 из определения и добавить во все теоремы, где она требуется.
                                                                                                • +1
                                                                                                  Необходимость делить на ноль выглядит катастрофой в глазах математика и даже может вызвать лёгкое смущение у физика-теоретика. *joke*
                                                                                                  • +2
                                                                                                    «Делить на ноль» — это примерно то же самое, что «нарисовать красную линию зеленым цветом».
                                                                                                • +3
                                                                                                  Тема в общем-то холиварная, поэтому спорить о языках не буду.
                                                                                                  Но по поводу математики вы не совсем правы. Отрицательные числа есть, но не в тех множествах, с которыми работает школьник. Равно как и с делением на ноль — делить действительно нельзя, но в анализе есть предельный переход, который позволяет обойти эту проблему. Так что тут никакого обмана.

                                                                                                  А по поводу языков мое мнение таково, что язык не должен отвлекать от изучения алгоритмов, структур и парадигм, а именно они являются целью обучения.
                                                                                                  • +1
                                                                                                    Предельный переход не позволяет делить на ноль, он всего лишь позволяет ввести в стандартный анализ бесконечно малые величины (не приндлежащие R вследствие полноты по Дедекинду).
                                                                                                  • +11
                                                                                                    По-вашему Python в изучении сложнее C++? Нонсенс.
                                                                                                  • –1
                                                                                                    >Все-таки стоит пощупать управление памятью руками и понять, что такое указатели до того, как начать играться с Java (дабы не облениться раньше времени :))

                                                                                                    А где вы в паскале видели ручное управление памятью? Он вообще далек от этого.
                                                                                                    Я вообще не понимаю что люди нашли в паскале. Для обучения есть вещи куда получше, чем язык 40-годичной давности с крутяшным иде от борланд.

                                                                                                    Я бы давал учить сразу Си. Он безусловно сложнее паскаля, но и профит от его изучения есть. Плюс мне кажется многое зависит от преподнесения материала, и никто не заставляет преподносить сразу все. Можно дать для начала тоже самое что есть в паскале, потом углубляться в указатели, классы и т.д.
                                                                                                    Вы хоть не будете забивать людям мозг тем, что им не нужно, заставляя в будущем переучиваться.
                                                                                                    Ну а если некоторым людям после долгих стараний все равно будет непонятно, например как работает «Hello world» в Cи значит им с программированием и связываться не нужно.

                                                                                                    На крайняк можно дать школьникам представление о программировании используя какой нибудь скриптовый язык на подобии lua.
                                                                                                    • +10
                                                                                                      Я бы давал учить сразу Си. Он безусловно сложнее паскаля, но и профит от его изучения есть.

                                                                                                      «Он на вкус хотя и крут, и с него, бывает, мрут, но какие выживают — те до старости живут».
                                                                                                    • +3
                                                                                                      > Все-таки стоит пощупать управление памятью руками и понять, что такое указатели до того, как начать играться с Java (дабы не облениться раньше времени :))

                                                                                                      Указатели не имеют никакого отношения к лени или умению программировать.
                                                                                                      • 0
                                                                                                        А вы считаете, разработчик, не понимающий указателей, может считаться программистом?
                                                                                                        • +6
                                                                                                          Да. Потому что знание/не знание указателей никак не влияет на способность программировать. Это вообще — знание, полностью ортогональное умению программировать.
                                                                                                          • +2
                                                                                                            Получил минус, без объяснений.

                                                                                                            Хочется услышать внятное объяснение того, какой отношение указатели имеют к умению хорошо программировать.
                                                                                                            • 0
                                                                                                              Не минусовал, но попробую объяснить свою точку зрения.
                                                                                                              Кто ясно мыслит, тот ясно излагает. Для хорошего программиста важно понимать, как работает вычислительный процесс «под капотом», чтобы писать эффективные приложения.
                                                                                                              Я согласен со Спольски, который говорит, что понимание указателей — это не знание, а навык. И считаю, что этот навык необходим для того, чтобы понимать, как работают динамические структуры данных, как размещаются объекты в памяти, что такое стек и т.д. и т.п.
                                                                                                              Я могу полжизни прожить на языках таких абстракций, где про указатели знать не обязательно, но в таком случае почти наверняка не смогу перейти на язык, где они есть.
                                                                                                              • +3
                                                                                                                > Для хорошего программиста важно понимать, как работает вычислительный процесс «под капотом», чтобы писать эффективные приложения.

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

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

                                                                                                                При чем тут указатели?

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

                                                                                                                Это означает только одно — что вы плохой программист
                                                                                                          • 0
                                                                                                            Да.

                                                                                                            Контрвопрос: а вы считаете, что разработчик, не понимающий теории категорий, может считаться программистом?

                                                                                                            Контрвопрос 2: * логики высшего порядка *?
                                                                                                            • 0
                                                                                                              Приведите хоть один более-менее практический пример использования абстрактной чепухи)
                                                                                                              • +1
                                                                                                                Язык Caml подойдёт? Он как бы Categorical Abstract Machine Language.

                                                                                                                Ну или LINQ. Или Rx Framework. Хотя для меня куда более важным аргументом является, например, то, что понятие локализации кольца на языке категорий записывается раз в пять короче теоретико-множественного варианта.
                                                                                                              • +3
                                                                                                                Ни в коем случае! А рассматривать в качестве первого учебного языка язык, в котором зигохистоморфмные препроморфизмы не являются first-class value, вообще моветон.
                                                                                                              • +2
                                                                                                                Вы, наверное, путаете разработчика, не понимающего указатели и не способного понять.
                                                                                                            • +2
                                                                                                              хорошо «ставит руку»?
                                                                                                              кому? — будущим программистам?

                                                                                                              А зачем «ставить руку» например тем, кто после школы больше ни одной программы не напишет?
                                                                                                              • 0
                                                                                                                То есть не надо изучать программирование вообще?