LINUX.ORG.RU

Ответ на: комментарий от netcat

В чем? Си-подобный синтаксис освоят? Не развращай детей. И комбинация Си и ООП - это Object C. Лучше бери как посоветовали SICP и схему. Ну если уж так хочется поизвращаться над мозгами - OCaml или Haskell. А то они у тебя потом скажут, что С++ - это низкоуровневый чистый функционально-объектный язык программирования. Объективно для 90% задач сегодня можно найти более вменяемую альтернативу для С++. Если хочешь системный именно язык, но поновее - почему не Go?

anonymous
()
Ответ на: комментарий от netcat

до][уя. Вы батенька Си не знаете совсем. Это ведь почти asm, есть возможность доступа (прямого) к памяти, а значит извращаться можно как угодно. Сам начало подучи Си, а потом преподавай.

anonymous
()

http://www.flazx.us/covers/large-0072121246.jpg

Если по теме. Если нет - то я бы посоветовaл Tcl/Tk. Легкий в обучении. Есть функциональная парадигма, ООП, императивщина...кросплатформенно+его возможностей хватит для 80% задач.

anonymous
()
Ответ на: комментарий от netcat

Lisp очень простой язык. Вот к примеру книга по лиспу как раз для школьников: http://rutracker.org/forum/viewtopic.php?t=3244459

Не надо жить мифом, что Lisp это нечто сложное и недосягаемое. По правде он проще того же Си. Сложность в лиспе - именно составление эффективного алгоритма программы, а не е*тня с памятью, указателями или борьба с синтаксисом. Ты же хочешь учить тому языку, который не знает хорошо большинство программистов, т.к.: жуткий синтаксис (некоторые проги на си изотеричнее пёрла), необходимость прямой (ручной) работы с памятью (еще тот батхёрт), отсутствия большинства примитивных абстракций (классы, списки, кортеж, лямбды в конце концов...), большие трудозатраты при написании простого ПО, выигрыш в скорости лишь при хорошем знании асмы и работы с памятью, сложность поиска ошибок переполнения в большой программе...Дальше продолжать? Бери интерпретируемые языки: Ruby, Python, Tcl, Lisp,Io или другие, но не задрачивай детей. Они может будут на том же вебе сидеть, тогда твой Си им никуда не уперся.

anonymous
()
Ответ на: комментарий от anonymous

Тут надо еще делать поправку на возвраст. Синтаксис лиспа и Io вероятно будет для них «скучным и непонятным» из-за скобок. Ruby, Python, Tcl более жизненные варианты.

geekless ★★
()

Кстати. Если хочется так низкого уровня, то почему не Asm или Forth? Они как-то «пониже» будут)

anonymous
()
Ответ на: комментарий от geekless

Согласен. Но это лучше гораздо чем Си. ИМХО для обучения идеальны Ruby и Tcl. Python немного искаженно передает некоторые понятия. Если надо чтобы было интересно - идеальная связка Ruby+Rubygame.

anonymous
()
Ответ на: комментарий от geekless

Синтаксис лиспа и Io вероятно будет для них «скучным и непонятным» из-за скобок.

Скобки похожи на смайлы! ООП провалился. Дайте вьюношам альтернативный взгляд на программирование.

le_legioner ★★
()
Ответ на: комментарий от anonymous

Сейчас я попытаюсь донести до тебя свои мысли(это не ты тупой, это я скорее всего неясно выражаюсь). Начнем с того, что я изучил SICP, в связи с чем имею представления о Lisp по Scheme. Но я бы не стал учить ему школьников, ибо слишком уж нераспространенный это язык. Вместе с тем, я лелею мечту выучить профессиональных программистов, которые знают низкоуровневый и высокоуровневый язык и применяют их в зависимости от задачи.

netcat ★★
() автор топика
Ответ на: комментарий от netcat

Начнем с того, что я изучил SICP, в связи с чем имею представления о Lisp по Scheme

Ну это примерно как получать представление о битлах по тому, как тебе «Гоги напел». Изучить SICP значит его понять и уметь применять в любом другом языке. Ты много написал на Scheme? А на Си? Вот когда будет за твоими плечами хотя бы по десять проектов на обоих языках, будешь говорить что Lisp не распространенный/убогий язык. Во-первых: распространенных языков нет. Есть языки ведущие в своей нише. Забудь про универсальный швейцарский нож. В программировании универсальны только алгоритмы (да и то не всегда). Во-вторых: универсальных программистов нет. Жизни не хватит освоить все тонкости. Будешь копать в обе стороны - станешь ненужным. Ты НИЧЕГО не будешь уметь. Сам как ты думал когда-то. Быстро понял ошибки при первой серьезной задаче. В-третьих: языки подбираются под задачи. Так как писать тот же движок уровня Doom3 на чистом Asm ты заебешься. А к примеру CRM для фирмы тем более. Хотя не спорю, работать оно будет быстрее. Только когда ты это допишешь - скорее всего уйдешь на пенсию.

anonymous
()
Ответ на: комментарий от netcat

А ну и да, Scheme != Lisp-family. Ты бы еще сказал, что ты по PHP понял что такое Си (а что - синтаксис похожЪ).

anonymous
()
Ответ на: комментарий от netcat

Но я бы не стал учить ему школьников,

ибо слишком уж нераспространенный это язык.

я лелею мечту выучить профессиональных программистов

Не много ли на себя берёшь? Минус тебе в карму.

le_legioner ★★
()
Ответ на: комментарий от le_legioner

Ну кто BolgenOS изобретает. Кто профессиональных программистов воспитывает без опыта работы.

anonymous
()
Ответ на: комментарий от le_legioner

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

netcat ★★
() автор топика
Ответ на: комментарий от netcat

SICP тогда. Или «Искусство программирования» Д.Э.Кнута. Ну никак не Си. Основы - это алгоритмы+представление о работе компьютера на уровне железа. А не постепенно умирающий язык.

anonymous
()
Ответ на: комментарий от netcat

С(процедурщина)->C++(связывание основ С с ООП)->Python(высокоуровневое ООП). Как-то так я думаю, если подробнее.

А зачем вам, собственно, процедурщина? В наше время процедурщина нигде особенно не используется. То, что сейчас пишется на чистом C, вовсю использует ООП подходы и управление событиями. Исключение составляют только числодробилки, но там свои, более другие методы.

Если уж так хочется, то C++ вам руки не выкручивает, пишите процедурно, но с удобными плюшками из STL, которые вы просто пока не объясняйте, а говорите, что так устроен язык.

А что касается Python, то вообще не понятно нафига он вам. Вам бы с крестами освоиться за год, а там ученики сами сообразят что им надо.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

Ты прав. Но нужно учесть одно: школота юзает винду и ей надо применять свои знания. Скорее всего, она попросит меня научить писать гуевые проги(под винду). На каком языке показывать основы с учетом вышесказанного?

netcat ★★
() автор топика
Ответ на: комментарий от anonymous

Основы - это алгоритмы+представление о работе компьютера на уровне железа. А не постепенно умирающий язык.

люто плюсую

le_legioner ★★
()
Ответ на: комментарий от netcat

http://golang.org/
http://www.haskell.org/
http://flatassembler.net/
И таки да, си.
Для более полного понимания различных парадигм следует быть знакомым с несколькими ЯП. Да и в разработке некоторых приложений несколько ЯП не помешают.

quantum-troll ★★★★★
()
Ответ на: комментарий от no-such-file

Он базы не понимает, а вы за год с крестами...

anonymous
()
Ответ на: комментарий от netcat

это уже не относится к с; создавай новую тему
анонимус предлагает sicp

anonymous
()
Ответ на: комментарий от PolarFox

VB.NET

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

quantum-troll ★★★★★
()
Ответ на: комментарий от netcat

TCL, Ruby, Python + ЛЮБОЙ тулкит. Тулкитов конечто под винду нет...Учи мат часть что ли

anonymous
()
Ответ на: комментарий от netcat

Тогда читай. А потом учи детей.

anonymous
()
Ответ на: комментарий от quantum-troll

Плюсую. Добавь суда Eiffel или Smalltalk. Оба кстати с гуями очень хорошо дружат.

anonymous
()
Ответ на: комментарий от netcat

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

Показывайте им QtCreator, чо.

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

no-such-file ★★★★★
()
Ответ на: комментарий от netcat

запилить у себя в школе факультатив по программированию
Нужна образовательная программа
С для чайников

Наркоманы штоле? SICP в руки и вперёд.

mix_mix ★★★★★
()
Ответ на: комментарий от quantum-troll

Разница между VB.Net и C# в том, что во втором случае надо писать int A;, а в первом Dim A As Integer. Ну и подобные различия, вроде } вместо End If.

PolarFox ★★★★★
()
Ответ на: комментарий от netcat

Если у субъекта есть доступ к компьютеру, интернету, всякой литературе и имеется свободное время, то он уже в группе риска.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Да ты оптимист.

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

no-such-file ★★★★★
()
Ответ на: комментарий от PolarFox

Huge'n'bloated языки вроде Си++, VB.Net и C# совершенно не способствуют овладению принципом KISS и поэтому совершенно не подходят для обучения.

quantum-troll ★★★★★
()

Ещё вопрос — для чего им программирование. Программирование изучают обычно когда есть какие-либо конкретные идеи по написанию чего-нибудь.

PolarFox ★★★★★
()

Может создать отдельный тред а ля «Язык для объяснения школьникам основ программирования»?

netcat ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.