singlepost

С какого языка лучше начинать изучать программирование?? << На главную или назад  

Товарищи!!пишите пожалуйста сюда
те языки коорые вы учили в самом начале..
Лично я начал с VB 6.0.. Потом (в школе) Pascal,,
а затем HTML.. Сейчас учуC++.. А вы??

304 ответов в теме “С какого языка лучше начинать изучать программирование??”

  1. 259
    Любомир Семків ответил:

    pascal

  2. 258
    Виталий Борисок ответил:

    Дмитрий Nullity Фомичёв, прикольно. Никогда раньше не слышал про него. =)

  3. 257
    Николай Корякин ответил:

    Я начинал с асемблера, а потом перерешел на бейсик, заним были Foxpro и Clipper, сейчас Аляска XBase++, Delphi,C++,php,совсем чуть чуть java просто внем нет необходимости, а в целом все я зыки одинаковы если понять саму суть пирограмирования.

  4. 256
    Dele Ted ответил:

    #256
    обана. и что, эта шняга до сих пор используется в windows?

  5. 255
    Дмитрий Фомичёв ответил:

    //ru.wikipedia.org/wiki/HTML_Application
    //www.script-coding.info/HTA.html

  6. 254
    Саша Кошелев ответил:

    ога…буду рад по ним пройти!!!=)

  7. 253
    Дмитрий Фомичёв ответил:

    hta – приложения под windows,
    написаные на этом самом html'е. они не компилируются. используют их чаще всего на разных cd/dvd с софтом. с удовольствием подкреплю ссылочками как только буду с компа.

  8. 252
    Саша Кошелев ответил:

    что за hta?! O_o

  9. 251
    Дмитрий Фомичёв ответил:

    Виталий Mone Борисок, а как же приложения *.hta?

  10. 250
    Виталий Борисок ответил:

    Дмитрий Nullity Фомичёв, HTML – это язык разметки, а не язык программирования. Какую программу можно на ХТМЛе написать? :)

    Хакер Stirlic Онлайн, а дальше уже лучше. Но лучше начать с PHP и java, а HTML уже взять как параллельное изучение.

  11. 249
    Дмитрий Фомичёв ответил:

    Хакер Stirlic Онлайн, всё бы хорошо, но с таким набором дальше разработки сайтов сложно пойти. я думаю, не каждому дано осваивать на профессиональном уровне десятки ЯП, да и мотивация должна быть. а чем не стимул – хорошо написанная рабочая программа?

  12. 248
    Виталий Борисок ответил:

    )))))))))))
    HTML – не язык программирования. Да и чему там учиться? :)

  13. 247
    Хакер Онлайн ответил:

    затем java и php

  14. 246
    Дмитрий Фомичёв ответил:

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

  15. 245
    Хакер Онлайн ответил:

    HTML

  16. 244
    Людмила Уланова ответил:

    Ну, я начала с Pascal'я. Не жалуюсь, но, пожалуй, лушче бы было сразу на С-подобном.. Чтобы к синтаксису привыкать..

  17. 243
    Андрей Коряковский ответил:

    pascal C++, и хватит с мне программирования

  18. 242
    Влад Null ответил:

    Хз… С,С++ имхо лучшее.. А к паскалю и бейсику у меня личная "неприязнь" :)

  19. 241
    Жека Кирпичев ответил:

    Комментарии – обычно все-таки читаешь код со включенной подсветкой синтаксиса, и комментарии сразу видно.

    Если код плохо оформлен, то ничего непонятно и в других языках. И мне кажется, на паскале как раз куда труднее плохо оформить код, нежели на C – сплошной мешанины из ASCII-символов все равно не получится.
    А если код оформлен хотя бы как-то более или менее культурно, то паскаль по-моему вполне понятен.

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

  20. 240
    Сергей Бутаков ответил:

    Жека jkff Кирпичев, я ток что нарыл то что я бы точно не сразу понял, это комменты в фигурных скобках. если бы я знал что они тут есть, или явно было видно что это коммментарий, то да, можно это понять. но если комментарии редкие и неочень понятно что это комменты…

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

  21. 239
    Сергей Бутаков ответил:

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

  22. 238
    Сергей Бутаков ответил:

    так же там нету print, вместо него WriteLn, зато есть begin и end

  23. 237
    Жека Кирпичев ответил:

    А я не по делу и не баню; пока что этой чести удостаивались только спамеры с увеличением пениса и легкодоступным заработком в инете. Но "убивать надо за такие слова" – это неадекват.

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

    if apples >= 5 then
    begin
    writeln("There are at least 5 apples");
    else
    writeln("There are less than 5 apples");
    end;

    Ок, что еще тебе не нравится в синтаксисе паскаля?

  24. 236
    Жека Кирпичев ответил:

    print и writeln – какая разница? А в С++ – cout. Разве cout понятнее чем writeln?
    Begin и end – многословны, но ни в коем случае не непонятны.

  25. 235
    Сергей Бутаков ответил:

    Жека jkff Кирпичев, во-первых, будь адекватнее и бань только по делу
    во-вторых, if then else ещё дохрена чего-то, это идиотизм. нет чтобы нормально скобками оградить, как в PHP, C++ и других.

  26. 234
    Жека Кирпичев ответил:

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

  27. 233
    Сергей Бутаков ответил:

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

  28. 232
    Жека Кирпичев ответил:

    Леонид, логика хромает. То, что любой язык транслируется в ассемблер, никоим образом не означает, что любой язык можно понять, поняв ассемблер. Возможно, это было бы верным, если добавить "и поняв правила трансляции с этого языка на ассемблер" – но боюсь что понять правила трансляции с J, Haskell или тем паче Epigram на ассемблер практически нереально – или, во всяком случае, это неизмеримо сложнее, чем выучить эти языки с нуля.

    Кстати, J в ассемблер не транслируется – он интерпретируемый.

  29. 231
    Леонид Нечаев ответил:

    Жека jkff Кирпичев: Хорош язык, правда весьма странный (особенно _5 и обилие операций), но понимаемый.
    Андрей Куликов: Что не так в этом высказывании? Компилятор с ЛЮБОГО языка программирования переводит программу в код, понятный процессору. Машинный код однозначно соответствует ассемблерному коду, построенному на основе компилированного.
    Всё-таки есть соотвествие между
    int main (int argc, char** argv) {return argc;} и
    pushq %rbp
    movq %rsp, %rbp
    xorq %rax, %rax
    movl %edi, %eax ; EDI is argc
    leaveq
    retq
    По аналогии с более сложными программами и даже с MSIL и Java кодом.
    Интерпретаторы (бэйсик и SH) в расчёт не беру, у них своя специфика.

  30. 230
    Жека Кирпичев ответил:

    Хехе. Леонид, я думаю, тебе не составит труда понять язык J ( //en.wikipedia.org/wiki/J_programming_language ), не так ли?

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

  31. 229
    Андрей Куликов ответил:

    >> Assembler для нужной платформы. Все остальные языки – производные от него: понял Assembler – поймёшь и остальные.

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

  32. 228
    Леонид Нечаев ответил:

    Assembler для нужной платформы. Все остальные языки – производные от него: понял Assembler – поймёшь и остальные.

  33. 227
    Леонид Нечаев ответил:

    Главное: писать комментарии в коде – чем больше, тем лучше, тогда никто нигде не запутается, и самому жизнь облегчится, а также можно будет куски комментариев вставлять в руководство пользователя на прогу :-)

  34. 226
    Алексей Аксёнов ответил:

    Турбо Паскаль создавался как компилятор и IDE.

  35. 225
    Дмитрий Кожин ответил:

    Люди о чем речь. Turbo Pascal ведь он и создавался как учебный язык.
    Для начало самое оно. Синтаксис простой и удобный, для постижения азов программирования и алгоритмизации подходит идеально.

  36. 224
    Дмитрий Кожин ответил:

    Люди о чем речь. Turbo Pascal ведь он и создавался как учебный язык.
    Для начало самое оно. Синтаксис простой и удобный, для постижения азов программирования и алгоритмизации подходит идеально.

  37. 223
    Жека Кирпичев ответил:

    //www.kx.com

  38. 222
    Саша Кошелев ответил:

    чё это за язык,я такого даже не знаю.?

  39. 221
    Жека Кирпичев ответил:

    Самый быстрый интерпретируемый язык программирования – это K.

  40. 220
    Сергей Бутаков ответил:

    про питон будто бы забыли.
    самый лучший интерпретируемый язык программирования.
    с него и начинать. ОЧЕНЬ простой в освоении :)
    а из компилируемых – хз… си или с++ наверное, больше ничего стоящего имхо нету… а, ну ещё есть ява… только она не простая…

    короче, интерпретация рулит, питон как самый быстрый и простой интерпретируемый язык программирования тоже :)

  41. 219
    Дмитрий Гайдамович ответил:

    Тимур, хорошо, постараюсь больше не "умничать". А то, что люди пишут – дочитываю. И всю глубину Вашей фразы про "отвязанность С++ от конкретной парадигмы" оценил по достоинству. Чего и Вам желаю.

  42. 218
    Тимур Багаутдинов ответил:

    Дмитрий Гайдамович.
    Я гляжу, Вы тут из себя умного строите. Спасибо за Вашу фразу, тока дочитывайте, пожалуйста, что люди пишут.

  43. 217
    Тимур Багаутдинов ответил:

    Дмитрий Гайдамович.
    Я гляжу, Вы тут из себя умного строите. Спасибо за Вашу фразу, тока дочитывайте, пожалуйста, что люди пишут.

  44. 216
    Жека Кирпичев ответил:

    Лаконично? Особенно begin, end?
    Удобно? Объявления переменных перед телом процедуры?
    Строго? Поясни.

    Дисциплинирует? Каким образом? Обязательной индентации нет; вот разве что хорошо, что есть какая-никакая типизация.. Но она и в си есть.

  45. 215
    Влад Иванов ответил:

    216:полностью поддерживаю!

  46. 214
    Евгений Морозов ответил:

    Pascal однозначно, все очень строго, лаконично и удобно!!! Прекрасный язык который дисциплинирует программиста!

  47. 213
    Дмитрий Гайдамович ответил:

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

    >> По поводу переносимости, рекомендую Ruby (это интерпретируемый язык)
    – переносимость никак не связана со способом построения компилятора, главное чтоб этот компилятор вообще был;
    – в плане переносимости Руби ничем не лучше С, Java, да того же Pascal, так что не надо мне его рекомендовать в этой связи, если хотите сойти за знатока;
    – теперь по поводу интерпретируемости Руби. Коллега, различаете ли Вы два понятия: сам язык и способ организации транслятора? Или для вас "интерпретируемость" или "компилируемость" – это свойства самого языка? Слышали ли вы что-нибудь о компиляторах Руби? Видимо, нет, а зря.

    #213 >> Ну то что С++ – это объектно-ориентированный язык – неправда.
    – неправда, это правда. С++ хорошо поддерживает ООП, а следовательно, он объектно-ориентированный. Он поддерживает ещё обычный процедурный подход и метапрограммирование в виде template-ов, но от этого он не перестаёт быть ООП-языком.

  48. 212
    Arcade Player ответил:

    Дурацкий вопрос:
    Для того чтобы программа работала надо её исходный текст скомпилировать в машинный код. А тогда как называется то, что на Паскале можно нажать СTRL-F9 и протестировать прогу? Разве нажав эти клавиши мы её уже не скомпилировали?

  49. 211
    Тимур Багаутдинов ответил:

    Ну то что С++ – это объектно-ориентированный язык – неправда. Что выделяет С++, то что он ни к какой парадигме не привязан.

  50. 210
    DELETED DELETED ответил:

    Я советую не тратить время на паскаль!

  51. 209
    Arcade Player ответил:

    Ну тогда извиняйте:)

  52. 208
    Данила Сергеев ответил:

    Любое изучение дает какой-то навык. И кстати не такие уж они и разные. В паскале то же есть обьекты. И ты сравниваешь неправильно.
    Надо либо Pascal и C, либоDelphi и C++. (иначе ты сравниваешь Dos и Windows).

    Вопрос который к теме не относится,
    Какой у тебя текст программы? (лучше кинь в личку)

  53. 207
    Arcade Player ответил:

    У меня тут вопросик один:
    Принципы программирования на Паскале и Си++ разные? Ну в смысле, что на
    Паскале вроде структурное, а на Си++ объектно-ориентированное. И значит как программирование на Паскале, поможет перейти на Си++?
    Я просто думаю, зря ли тратиться время на изучение Паскаля или это даёт какой-то навык?

    И ещё один вопрос, который к теме не относится, но просьба ответить:
    что значит в Паскале ошибка " Ошибка 105 по адресу 0001:0063"? Она выскакивает, когда я нажимаю CTRL-F9.

  54. 206
    Данила Сергеев ответил:

    #198:класс это сложный тип данных, а не простой.
    По поводу переносимости, рекомендую Ruby (это интерпретируемый язык)

    #199:Сори, до этого смотрел в каком-то источнике там про это нечего небыло сказано. Тока щас в википедии посмотрел.

    #206:Это смотря кому

  55. 205
    DELETED DELETED ответил:

    А что сложного в начинании учить Си?

  56. 204
    DELETED DELETED ответил:

    По моему нормальный старт!

  57. 203
    Влад Иванов ответил:

    2Егор. Изучив делфи, программист любитель не будет нуждаться в изучении си. Для начинающего, любителя, даже для профи возможностей будет более чем достаточно.

  58. 202
    Влад Иванов ответил:

    2Егор. Изучив делфи, программист любитель не будет нуждаться в изучении си. Для начинающего, любителя, даже для профи возможностей будет более чем достаточно.

  59. 201
    Влад Иванов ответил:

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

  60. 200
    DELETED DELETED ответил:

    Да, на счет 2+2. Вы же не собираетесь учить язык для написания программ такого рода?!)))

  61. 199
    DELETED DELETED ответил:

    Я настоятельно рекомендую С! Потом проще будет!
    Язная С нетрудно выучить Java и C#. А зная паскаль это уже затруднительное действо!

  62. 198
    Дмитрий Гайдамович ответил:

    >> Да еще Паскаль был написан не как язык для обучения, т.к. в то время обучали на бейсике. Это в наши дни стали обучать на нем…
    – интересная история, жаль что господин Вирт об этом ничего не слышал. Он-то, дурак, считал, что создал язык для обучения. Бедняга, не учёл, что обучают-то на бейсике, и зря он из кожи вон лез. Натурально, лоханулся простодушный Николаус.

  63. 197
    Дмитрий Гайдамович ответил:

    >>Я скажу вы не правы, по поводу паскаля…
    – я не говорил, что на Паскале нельзя чего-то сделать, я говорил об удобстве
    – насчёт ассемблера и "всего, что захочешь": вот, к примеру, я бы захотел написать переносимую программу, и чем мне тут поможет ассемблер?

    >>недавно нашел как реализовать XMS-память на паскале
    – искренне поздравляю

    >> В Паскале если переменные одного типа, то их можно и приравнивать друг к другу.
    – это действительно мощная возможность паскаля, конечно же её нет в Си, и не ищите:)

    >> Мы нашли как можно вывести звук на колонки
    – блин, ребята, да вы круты! где можно посетить ваш мастер-класс?

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

    >>И примое обращение к портам через массив port
    – примое?!! вот это тема!

    >>Так что не надо говорить, что все что угодно можно написать только на Си, когда это не правда.
    – может это всё-таки не по мою душу? я вроде такого и не говорил…

    >>Вот еще одно приемущество паскали:
    >>Можно напрямую вставлять код на машинном языке,
    >>в любом месте программы.
    – на машинном??? Ни хрена себе! Всё, учу Паскаль, деваться некуда. Раз там такие приемущества. Правда, я его и так знаю, вот неувязочка-то…

    >>Немного покопавшись в паскале можно найти еще много интересного.
    – в детстве у меня был программируемый калькулятор, вы не представляете, сколько там было всякого интересного!

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

    >> Да строка в паскале то же отдельный тип данных, а не обьект, как в Си
    – STL-вский string-то? Коллега, а что по-вашему есть класс, как не тип данных? Ладно, шучу, шучу.

  64. 196
    Данила Сергеев ответил:

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

  65. 195
    Данила Сергеев ответил:

    К стати небольшой пример про 2+2, к тому что уже было написано, конечно чтобы было проще сравнить впишу их сюда:
    ===========Pascal:===========
    begin
    writeln('2+2=',2+2);
    end.
    {кстати вместо \n из Си в паскале можно просто прибавить к write приставить ln (writeln)}
    ===========C:===========
    #include<stdio.h>
    main(){
    printf("2+2=%d\n", 2+2);/*в том описании забыли вписать это "2+2="*/
    }
    ===========Basic:===========
    print "2+2=" 2+2
    ===========Ruby:===========
    p "2+2=#{2+2}"
    #конечно это всего один из вариантов
    ===========J:===========
    "2+2=" 2+2
    ===========Fortran:===========
    print *,'2+2=',2+2
    end
    !Ну чето в этом роде
    ===========================
    Я бы написал как вывести на ассемблере, да вот не помню простой способ.
    А другой просто будет не в пример.

  66. 194
    Данила Сергеев ответил:

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

  67. 193
    Данила Сергеев ответил:

    Я скажу вы не правы, по поводу паскаля. Да и вообще нет такого языка, где встроен ассемблер, на котором нельзя сделать все что захочешь.
    С памятью паскаль тоже может работать, к примеру недавно нашел как реализовать XMS-память на паскале.
    Работа с данными на паскале (как и на делфи так как это один и тот же язык, с небольшими доработками) гараздо проще, как в скомпилированной программе так и в описании (чего не скажешь о Си, хотя это не всегда и заметно). В паскале если переменные одного типа, то их можно и приравнивать друг к другу. В Си такого не замечал (кроме обьектов и классов)
    Мой друг щас пишет 3D-движок на паскале, кое-что уже готово может пока еще не совсем быстро (немного лягает), но уже есть возможность включать хоть 2048х1024 пикселей экрана и 32 бита цветов. По мимо того мы нашли как можно вывести звук на колонки, а это уже достаточно много. К томуже в паскале есть возможность обращаться к выделенной памяти через абсолютные коды, можно еще и с помощью массива mem встроенного в него. И примое обращение к портам через массив port.
    Так что не надо говорить, что все что угодно можно написать только на Си, когда это не правда.

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

    Немного покопавшись в паскале можно найти еще много интересного.

  68. 192
    Тимур Багаутдинов ответил:

    Ну уж на Си не только системные вещи… Есть и область связанная с hpc (high perfomance computing)
    А чтобы что-то подобное на Паскале да и на Делфи было, я не знаю

  69. 191
    Arcade Player ответил:

    Значит паскаль для создания алгоритмов к задачкам, уравнениям и всяким простеньким программам? А что ещё можно создать с помощью паскаля?
    Кроме "2+2"? Вопрос чисто так, для интереса.

  70. 190
    Влад Иванов ответил:

    В области основных системных функций делфи с си одинаковы. SetWindowsHookEx, GetMem, FindWindow, SendMessage – и там и там это правильно.

  71. 189
    Дмитрий Гайдамович ответил:

    Полностью поддерживаю. Для того, чтобы складывать числа, Паскаль больше подходит. Для системных вещей больше подходит Си – для них он и делался. Попробуйте реализовать какой-нибудь алгоритм управления памятью на Паскале и на Си, и почувствуйте разницу. Я, например, ничего не слышал про то, чтобы ядра СУБД делались на Паскале. На Си – сколько угодно. Так что, чем сложнее и "системнее" программа, тем выгоднее использовать Си, так что Ваше заключение "по индукции", боюсь, здесь неприменимо. А для 2+2 – вопросов нет, только Паскаль! Если же мы углубляемся не в сторону системных вещей, а, например, в сторону искусственного интеллекта – тогда диалекты Лиспа, Пролог и т. п. Перечень таких областей применения можно продолжать. Паскаль, насколько я знаю, разрабатывался для обучения программированию. В этом качестве он достаточно хорош, хотя SICP в качестве учебника не может не привлекать.

  72. 188
    Влад Иванов ответил:

    Дело даже не в писанине а в её читабельности и структуре.

  73. 187
    DELETED DELETED ответил:

    Паскаль:
    begin
    wiriteln('2+2=',2+2);
    end.
    Си
    #include<stdio.h>
    main(){
    printf("%d\n", 2+2);
    }

  74. 186
    DELETED DELETED ответил:

    а теперь посчитаем a+b
    паскаль
    var: a, b:integer;
    begin
    readln(a, b);
    writeln(a, "+", b, "=", a+b);
    end.
    си:
    #include<stdio.h>
    main(){
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d+%d=%d", a, b, a+b);
    }

  75. 185
    DELETED DELETED ответил:

    а если программа еще больше усложняеться то результат очевиден где писанины больше)))

  76. 184
    Жека Кирпичев ответил:

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

  77. 183
    Дмитрий Бородин ответил:

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

    хочешь в бэйсике сосчитать 2+2? пишешь : print 2+2
    В Паскале – придется уже больше написать
    А в СИ – еще больше, и программа выглядит уродливо. Это- на любителя

  78. 182
    Юрий Чистяков ответил:

    3 вечных вопроса:
    - Кто виноват?
    - Что делать?
    - Какой язык лучше? ;) ))))

    Паскаль может и логичнее, но в Си больше возможностей да и к тому же большинство языков похожи на Си. Да и покрасивше Си будет: #include вместо юзеса, \n вместо бреда всякого, {} вместо begin..end. Я сам с Паскаля под DOS начинал и долго не хотел мириться с тем, что Си объективно лучше.

  79. 181
    Данила Сергеев ответил:

    Это больная тема была и будет всегда.

  80. 180
    Arcade Player ответил:

    По-моему это вечный вопрос: одни советуют Питона, другие Паскаля, третьи предлагают начать сразу с С++…Сколько форумов облазил, нигде не приходят к единому мнению.

  81. 179
    Влад Иванов ответил:

    А каковы могут быть причины перехода на си?

  82. 178
    Влад Иванов ответил:

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

  83. 177
    Тимур Багаутдинов ответил:

    Ясен пень, что без теории никак.. Но алгоритмы не в голове ж трассировать
    >> остальные основываются на них
    Думаю некорректно сказано, все-таки взяв Java или C# к примеру, то философия у них иная, чем у С++…
    А синтаксис – да, похож

  84. 176
    Денис Якушев ответил:

    C++ давайте уточним? это тот который с библиотекой MVC или gcc или Borland C++ , там у всех есть значительные отличия, не говоря уже про Borland CBuilder

  85. 175
    Денис Якушев ответил:

    а начинать лучше с теории как делать, а язык на самом деле не важен сильно… тут выше примеры подходящих есть:
    Pascal,
    C++

    остальные основываются на них, в большинстве случаев на Си, PL/SQL и прочие серверные языки манипуляции данными на паскаль…

  86. 174
    Тимур Багаутдинов ответил:

    А чем так С/С++ сложен для начинающих?
    В дебри никто сходу не заставляет лезть

  87. 173
    Юрий Чистяков ответил:

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

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

    ВЫВОД: Начинайте программировать на Turbo Pascal for DOS, а как освоитесь, переходите на C++.

  88. 172
    Серж Андреев ответил:

    Влад, мы в свое время при упирании в ограничение, учили АСМ и вставляли АСМ в бейсик. В итоге все летало )))

  89. 171
    Влад Иванов ответил:

    Возвращаясь к названию темы. Легче всего по моему начинать с бейсика, как начинал я еще в третьем классе на дреевнем таком компе.В пятом классе я уперся в ограничитель возможностей бейсика в области графики и системы. И мне порекомендовали делфи… После бейсика вначале было трудно, но это только в начале…

  90. 170
    Дмитрий Гайдамович ответил:

    С этим у нас всегда были проблемы.

  91. 169
    Серж Андреев ответил:

    Дмитрий, математика – нафиг кодеру не нужна. Особенно, если есть четкое описание задачи )))

  92. 168
    Дмитрий Гайдамович ответил:

    Я, например, кодер :) За всю жизнь не изобрёл ни одного алгоритма. Или по крайней мере не заметил этого факта. В последнее время работаю как ведущий программист, стараясь всячески скрывать тот факт, что я ненастоящий программист, а всего лишь кодер. Пока вроде никто не догадался :) Или из вежливости не говорят.Я начинал с Бейсика. Канонический случай: начал с Бейсика и кодер на всю жизнь! Мне всегда не хватало математики. В политехе ходил на курсы повышения математической квалификации, но моим мозгам это сильно не помогло.

  93. 167
    Тимур Багаутдинов ответил:

    Так кто же такой кодер? Что-то куда не сунешься, одни программисты, и все говорят про неведомых зверей кодеров.

  94. 166
    Леонид Максимов ответил:

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

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

  95. 165
    Тимур Багаутдинов ответил:

    >> Вот из-за таких людей как Вы, компьютеры становятся все быстрее, а программы все медленней.
    Эт т.е. кто пользуется активно библиотеками, неполноценные что ли… Странно. Тут очевидно уже идет разделение обязанностей. Есть класс людей, которые будут делать эти библиотеки и они же будут их доводить до совершенства. Есть другой класс, которые ими оперируют и делают что-то новое. гораздо шустрее, легче и приятнее.

  96. 164
    Arcade Player ответил:

    Ребята, прочитайте название темы. Нафлудили тут.

  97. 163
    Qwerty Qwerty ответил:

    ЗЫ:
    >возможно вы еще руками байты по памяти перекладывали на компах размером с холодильник поэтому мне понятен ваш подход …

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

  98. 162
    Qwerty Qwerty ответил:

    2Сергей Гузев
    Вот из-за таких людей как Вы, компьютеры становятся все быстрее, а программы все медленней.
    К тому же существует большое количество областей науки/работы, где постоянно ведутся исследования чего-то нового и понятия "стандартный алгоритм" там практически не существует. Что же вы будете делать там со всеми своими знаниями "технологий"? Ничего! Можно конечно не соваться в эти области, но тогда вы исскуственно ограничиваете себя в своем развитии. ИМХО, это неправильно.

  99. 161
    Жека Кирпичев ответил:

    > Все стандартные алгоритмы 1000 раз переписаны
    Говори за себя. "Все алгоритмы, требующиеся мне на моей работе, есть в стандартной библиотеке".
    Про свою работу я лично такого сказать не могу – мне постоянно приходится придумывать новые алгоритмы.

    Ты утверждаешь, что эпоха науки в программировании уже закончилась?Тогда попробуй как-нибудь зайти на scholar.google.com, acm.org или springerlink и поискать там по <вставить свою любимую тему в программировании>.

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

  100. 160
    Сергей Гузев ответил:

    Павел Борзенков , позвольте с вами немного не согласиться )))
    В наше время с обширным использованием новых языков высокого уровня таких как (С-Пошарпаный,Ява, С++) такое понятие как кодинг и программирование сливаются воедино ….
    Как я представляю себе у вас не один год опыта за спиной , возможно вы еще руками байты по памяти перекладывали на компах размером с холодильник поэтому мне понятен ваш подход …
    Но надо зрить в будущее !!! Все стандартные алгоритмы 1000 раз переписаны и собраны в библиотеки , появляется такое понятие как Time To Market programming , на многие вещи закрываются глаза так как возможности новых компов позволяют принебрегать аккуратной работой с памятью итд.итп… И все должно делаться быстро !!!!
    Я не утверждаю что сейчас программист не нуждается в обширных знаниях математики … Просто это постепенно отходит на второй план , знание методики программирования , знание построения дизайна в наше время более актуально …..

  101. 159
    Messe Minuit ответил:

    Компилятор умный, примеры программ.
    А можно поставить турбо С, на простых консольных приложениях тренироваться.
    В принципе там много интересного, но основной плюс – то что работы с указателями нет. Безопасный код.
    Короче для изучения объектно ориентированного программирования Номано.
    А если с нуля, то borland c for dos. Синтаксис осваивать…

  102. 158
    Messe Minuit ответил:

    C# .net

  103. 157
    Жека Кирпичев ответил:

    Ну так это значит только то, что **в С++** нет математики.

  104. 156
    Тимур Багаутдинов ответил:

    Хе, открыть можно книжку двух Уильямов "СД на С++"… Там математики нет почти… ))

  105. 155
    Умник Прокудин ответил:

    Че спорить… мне кажется, программирование изначально основано на математике. Программирование по сути дела – реализация какого-либо алгоритма. Теория алгоритмов, и все с ней связанное – раздел математики.
    Откройте томик Кнута и посмотрите СКОЛЬКО там математики. и не спорьте больше, а книжки хорошие почитайте :-) )))

  106. 154
    Тимур Багаутдинов ответил:

    Так что же за звери такие все-таки программисты и кодеры? Так и не врубился.
    С одной стороны, сижу внушительное время выводу граничные условия к колебаниям струны и решаю методом Фурье уравнения матфизики. Что-то подсказывает, что программированию не больно способствует.
    С другой, взять такую область как компьютерную алгебру, там без математики никак. Особенно без алгебры с геометрией. Или параллельное программирование, все таки это hpc и на эту область направлены.
    И не в математике дело. А дело в подходах, методах, действиях. Математика – хорошо, но ее недостаточно. Нужно и в гуманитарной области хорошо соображать, а конкретно, среди огромного массива информации выбирать нужное, структурировать, отсекать и т.п. Так что пробовать нужно все, и интересно, и полезно. А программирование лишь средство, чтобы реализовывать свои идеи.

  107. 153
    Жека Кирпичев ответил:

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

    Леонид, вроде же решение за 2n. Имеется в виду решение с двумя указателями, где один обгоняет другой в 2 раза?

  108. 152
    Леонид Максимов ответил:

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

    вот вам задачка – определить, не зацикливается ли односвязный список, обладая крайне ограниченным объемом памяти. требования к алгоритму: список на выходе должен быть в неизменном состоянии, сложность в худшем случае менее, чем $O(n^2)$.

  109. 151
    Александр Силкин ответил:

    Не… конечно до спеца мне, как до Луны пешком,но всё приходит со временем,тем более я пока молод и есть и другие прекрасные вещи,например девушки- жизнь она прекрасна.Да ,но вернусь к теме,рассмотрите жизненную ситуацию человек не любит матику,а мечтает быть программером, и что мне мешает ему им стать,просто нужны оригинальные идеи,экстравагантный подход, и много много упорства… конечно с ним ,то как раз проблемы:) ПРЕЖДЕ ВСЕГО НАДО ЛЮБИТЬ СВОЮ ПРОФЕССИЮ!!!!!!А всё остальное придёт непременно!

  110. 150
    Жека Кирпичев ответил:

    Что ты хотел этим сказать?

  111. 149
    Серж Андреев ответил:

    Немного мозгов – и ты математик. Или программист. Что-то не все математики – программисты.

  112. 148
    Жека Кирпичев ответил:

    //it.slashdot.org/article.pl?sid=05/03/30/1655238 и в частности //it.slashdot.org/comments.pl?sid=144281&ci...

  113. 147
    Жека Кирпичев ответил:

    Я уже определился: Для создания (уточню – хорошего) оптимизатора запросов нужна безумно сложная математика.
    У MySQL оптимизатор запросов так себе.
    У PostgreSQL он тоже не идет в сравнение с оптимизатором MSSQL и тем более оракла.

    Насчет "не особо парясь" – ты читал исходники MySQL и PostgreSQL и можешь точно сказать, что там все ужасно просто, и что все это прекрасно можно было придумать, будучи ни в зуб ногой в области математики?

    Читать из DBF – невелика хитрость, я говорю про оптимизатор, а не про читалку.

  114. 146
    Андрей Куликов ответил:

    Серж Андреев, а еще раз перечитать предыдущий пост и попробовать вникнуть? )

  115. 145
    Серж Андреев ответил:

    Жека, ты со всем твоим математическим аппаратом 1/1000 часть MS SQL наверное не сделаешь. А народ не особо парясь накатал PostgresSQL и MySQL. И все работает. А мои программы читают напрямую с DBF-а быстрее, чем MS SQL и никакой математики. Ты уж определись, родимый, что ты сказать-то хочешь…

  116. 144
    Жека Кирпичев ответил:

    Про СУБД – это полный бред, извини. Для создания оптимизатора запросов нужна безумно сложная математика. Почитай как-нибудь статью, посвященную только одному компоненту оптимизатора запросов в MS SQL Server – оценщику числа результатов джойна. Там 50 страниц жуткой математики, которую невозможно читать, если ты не задался целью во что бы то ни стало прочитать эту статью. Я не осилил.
    Для создания по-настоящему надежной – доказанно надежной! – системы управления транзакциями нужны формальные модели для описания параллельных процессов.
    И т.п.

    Насчет окружности с целочисленной арифметикой – разумеется, могу; и в 9 классе мог. А что, разве это сложно? И математика тут не причем, просто немножко мозгов надо.

  117. 143
    Серж Андреев ответил:

    Жека, не нужно так категорично заявлять. Для всего есть алгоритмы. Вот можно. как вы считаете, написать программу, рисующую круг, без знания математики? И что понимать под "математикой"? Если вы прошли курс средней школы, то вы знаете математику или нет? Для построения круга достатосно иметь образования классов семь. Для создания СУБД – 10 классов за глаза. Вы уж определитесь, в каком объеме нужно эту "математику" знать. А потом уж и будем дискутировать.

    Для справки. В 7-м классе на компьютерном кружке я написал программу "часы", где минутная, часовая и секундная стрелки двигались по окружности. Для этого нужно глубокое знание математики или нет? В 9-м классе на ассемблере написал программу для построения окружности. Использовал лиш целочисленную арифметику. Для этого нужна математика? И в каком объеме? Все расчеты были выведены из X=SQRT(R2-Y2). Жека, вы сможете сейчас повторить мой опыт, но уже с более глубоким знанием "математики"? не обязательно на асме, достаточно на С/С++.

  118. 142
    Дмитрий Бородин ответил:

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

  119. 141
    Серж Андреев ответил:

    Все верно. Стрелки через синусы/косинусы и рисовались. А вот с целочисленными вычислениями нарисовать круг без знания вышки можно? Я – рисовал.

  120. 140
    Жека Кирпичев ответил:

    Это не программисты, а кодеры (да, я ханжа и сноб :) ).

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

    Но я в понятие "хорошего программиста" вкладываю еще и умение создать что-то _принципиально_, _научно_ новое.
    А в науке без математики никуда.
    Человек, у которого плохо с математикой, никогда не сможет придумать оракл, или изобрести язык Erlang или J, или изобрести MapReduce, или написать ядро системы Mathematica.

  121. 139
    Дмитрий Бородин ответил:

    ну тема была про начало программирования, с чего начать,а не как стать гением:)

  122. 138
    Жека Кирпичев ответил:

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

  123. 137
    Дмитрий Бородин ответил:

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

  124. 136
    Дмитрий Бородин ответил:

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

  125. 135
    Андрей Куликов ответил:

    Дмитрий БЕОВУЛЬФ Бородин
    А это тоже из математики. )
    По крайней мере развивает. И матлогика в том числе.

  126. 134
    Леонид Максимов ответил:

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

  127. 133
    Жека Кирпичев ответил:

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

  128. 132
    Дмитрий Бородин ответил:

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

  129. 131
    Серж Андреев ответил:

    Дмитрий, +1!!! Котлеты отдельно, мухи отдельно. Я считаю себя хорошим программистом и плохим математиком. Энштейн был Великим физиком и очень плохим математиком. Тем не менее…

  130. 130
    Андрей Куликов ответил:

    Александр Силкин, а что ты тогда здесь делаешь?

    Димас Кирсанов, шутник блин нашелся. Ассмемблера для какой архетектуры?
    Скажи ты и правда веришь что с этого надо учить программированию? )

  131. 129
    Dimka Dimka ответил:

    С ассемблера полюбому !!!Сам учу и всем советую, красивый и мощный язык))…

  132. 128
    Александр Силкин ответил:

    Господа,большинство из Вас утверждает,что без Высшей математики не овладеть искусством программирования,я лично считаю так:можно неплохо разбирать и кодить.Я НЕНАВИЖУ эту гребанную математику,несмотря на это кодерствую по-маленьку…
    Конечно тяжеловато,долго разбираюсь,да и алгоритм не всегда рациональный(а у кого он сейчас вообще рациональный ).

  133. 127
    Андрей Куликов ответил:

    Еще один. )

  134. 126
    DELETED DELETED ответил:

    мое мнение — C#
    с него я и начал

  135. 125
    DELETED DELETED ответил:

    ну зачем же вырубать-то…достаточно просто клаву отсоединить

  136. 124
    Тимур Багаутдинов ответил:

    Ну если в Виндовс, то можно просто залочить его… <Windows>+<L> клавиши

  137. 123
    Кирилл Михайлов ответил:

    ПРОШУ ДОЧИТАТЬ ДО КОНЧА!!!Люди помогите пожалуста,я новичок!!!Уменя маленький ребёнок,постоянно лезит в КОМП чтонибуть нажать.Чтобы отлучится на пару минут.постоянно приходится вырубать компьютер.Подскажите есть ли какаянибуть программа для блокировки клавиатуры, как на сотовых телефонах.Зарание огромное спасибо!!!Пишите в контакт!

  138. 122
    Дмитрий Фомичёв ответил:

    >>А как в gentee обозначить функцию, которая ничего не возвращает?
    именно так…

    func uint hello_world()
    {
    print("hello word!")
    return 0
    }

  139. 121
    Алексей Аксёнов ответил:

    Данила CDNM Сергеев
    //en.wikipedia.org/wiki/BASIC
    Учи матчасть, сынок. Раз уж мы теперь на ты.

    >По этому я и написал "C/C++"
    Если ты ставишь плюсы, то это предполагает определенный стиль. В любом случае, в программе было столько ошибок, что она ни разу бы не скомпилировалась, поэтому дальнейший флейм считаю излишним.

  140. 120
    Андрей Куликов ответил:

    Ааа, вот оно что. Ну тут кстати основная суть беседыкак раз пропогандирует обратное. )

  141. 119
    Данила Сергеев ответил:

    К тому, что многие зацикливаются на одном языке презирая другие, и при этом говорят что лучше этого языка не чего нету (опираясь на услышанное или прочитанные сведения).

  142. 118
    Андрей Куликов ответил:

    Юрий Воронцов, это к чему было сообщение? ))

  143. 117
    Мей Брагинский ответил:

    омг… я начала с Basic'a.
    Обалденный был учитель ^^

  144. 116
    Arcade Player ответил:

    А я начал изучать, совсем недавно правда (вчера:) ), Паскаль.
    Буду с ним разбираться.

  145. 115
    Юра Воронцов ответил:

    Вапче то очень удручает что Агромное количество народу имеющее к программированию отношение постольку поскольку причисляет себя сразу к чуть ли не к гениозам Ентого Мира.Это не относится к предыдущим постерам просто Мысли НАБОЛЕВШИЕ вслух :) ))
    Я сам токо начинаю писать программы и голова лопается от количества языков (просто тупо их количества) И попрошу не забывать что наст программист обязан в совершенстве знать 2-3 языка и еще уметь писать на 10 иметь представление об этом. А УЖ потом что то советывать.
    А то люди пишут проги типа Хеллоу Ворлд на Си С всеСАмоделающимВизуал Майкрософтом,и потом советывают :) .

  146. 114
    Данила Сергеев ответил:

    >>Мне казалось, что бейсик и вижуал бейсик – разные языки.
    Тебе это действительно показалось

    >>Что касается С++, то он родимый все поймет
    По этому я и написал "C/C++"

  147. 113
    Жека Кирпичев ответил:

    Ну, если у тебя вызывает затруднение понятие пустого типа, то я не уверен, что ты можешь корректно и точно объяснить, что такое тип в общем понимании этого слова :) Может, попробуешь? То определение, которое дал я – очень грубое и не особо правильное.

    А как в gentee обозначить функцию, которая ничего не возвращает? Заставить ее возвращать какое-нибудь ненужное значение, например 0?

  148. 112
    Дмитрий Фомичёв ответил:

    ну, чё такое тип я и так знаю… эх мудрёный больно этот язык С++… Вот в gentee! str – строчка, uint, int – числа, arr – массив, и т д…. Всё легко, и никаких пустых типов… Тока функций пока мало, с картинками и музыкой не сильно хорошо умеет работать…

  149. 111
    Дмитрий Шалхаков ответил:

    Че-то в предыдущих постах нафлеймил. =)
    Полагаю, начинать нужно со Scheme, потом переходить на OCaml. Окемл прост (по-сравнению с C++), практичен, поддерживает и императивный стиль, и функциональный, и ООП, и модули (они и в Scheme есть, но все implementation-specific, что не радует. R6RS должен это исправить).

  150. 110
    Дмитрий Шалхаков ответил:

    2 Алексей svchost.exe Аксёнов
    > Что касается С++, то он родимый все поймет, т.к. является
    > надмножеством Си.
    Поймет, да не все. C89 является подмножеством C++, а C99 — нет.

  151. 109
    Николай Галушка ответил:

    блин, а кряк есть у когонить на Visual Studio 2008 Professional Edition ? народ, поделитесь

  152. 108
    Андрей Куликов ответил:

    >>Что касается С++, то он родимый все поймет, т.к. является надмножеством Си.

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

  153. 107
    Microsoft Corporation ответил:

    Мое первое знакомство с миром битов и байтов началось смешно.Дело было классе в 7-ом.Компа своего не было, мамке дали с работы старую рухлядь и я начал винду осваивать(удалять системные файлы :) и пр. )Затем как-то копаясь в Word'е набрел на встроенный редактор VB и поперло(купил книжку по VB6 нашел дядьку хорошего,он мне компиляторов целый сидюк дал и я стал пытаться кодить,но потом пришлось уехать в другой город,без компа ;(((.Но не все так плохо :) в новом городе я начал кодить на С++ и по сей день на нем пишу,или пытаюсь писать :)

  154. 106
    Алексей Аксёнов ответил:

    >Вобще то нельзя – запрещено стандартом

    Погорячился, был неправ.=)

    >такое описание на всех бейсиках одинаковое

    Мне казалось, что бейсик и вижуал бейсик – разные языки.

    Что касается С++, то он родимый все поймет, т.к. является надмножеством Си. А stdio.h (cstdio) нам нужен для ввода/вывода, а не генерации псевдослучайных чисел. rand() и srand() объявлены в cstdlib. Так же неплохо бы подключить время ctime для "случайности", но это уже мелочи…

  155. 105
    Дмитрий Шалхаков ответил:

    Интересный топик.

    Что я изучал:
    C, C++, Pascal, Delphi, ABAP/4, OpenSQL, XML, D, JavaSсript, Java, Erlang, Common Lisp, Scheme, Smalltalk
    Много программировал только на C, C++, D, ABAP/4.
    Недавно заинтересовался ФП (с января где-то). Начал со статьи на RSDN (//rsdn.ru/article/funcprog/fp.xml).

    Касательно того, с чего начинать. Я думаю, теория с практикой должна идти рука об руку, как уже было озвучено. Однако не у всех с математикой лады, и хотелось бы решать практические задачи. Ибо математика без приложения к чему-либо не имеет никакого смысла (жирное ИМХО).

    Касательно необходимости математики программисту есть интересная статья //cylib.iit.nau.edu.ua/Mirrors/ask.km.ru/unics/...
    Математика научит думать, но писать хороший код — сомневаюсь. Под хорошим имею ввиду — поддающийся тестированию, отладке, поддержке, переносимый, читаемый, эффективный (ну вот тут да, поможет).

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

  156. 104
    Данила Сергеев ответил:

    >>Basic, тогда как это Visual Basic
    Вобще-то такое описание на всех бейсиках одинаковое и будет одинаково работать.

    >>С/С++, тогда как это Си
    В C++ будет то же самое, только вывод будет другим, хотя и такой он должен понять

    >>пока вы не инклюдите stdio.h
    Я просто не вспомнил какой файл подключается для вычисления случайных чисел когда писал

    >>некрасиво и обидно сравнивать синтаксис компилируемых и >>интерпретируемых языков.
    Здесь небыло указано какие именно языки интересуют, поэтому я и решил показать язык Ruby.

    А может пускай каждый выложит как он решает задачу (да же не эту а че-нить по тяжелее) на каком-нибудь языке?

  157. 103
    Жека Кирпичев ответил:

    Тип – это, грубо говоря, какое-то множество значений. Например, тип int – это множество, состоящее из всех целых чисел от -4млрд до 4млрд, а тип char* – это множество, состоящее из всех адресов в памяти, а тип struct S {int a; float b;} – это множество, состоящее из всех пар, где первый элемент принадлежит int, а второй – float.
    Также можно интерпретировать тип как функцию (значение –> принадлежит ли оно типу). Тогда можно ввести, например, тип "четное число".

    void с первой точки зрения выглядит как пустое множество – в нем нет ни одного значения.
    А со второй точки зрения – как функция, всегда возвращающая false.

    Применяется он:
    В виде просто void – для обозначения "функция ничего не возвращает": void f().
    Поскольку в нем нет ни одного значения, то бессмысленно объявлять переменную типа void или член структуры типа void (все равно с ними ничего было бы нельзя сделать) – поэтому это делать запрещено.

    В виде void* – для обозначения "указатель, но неизвестно на что именно". Это совершенно нематематично, но все же.

    Стало понятнее?

  158. 102
    Дмитрий Фомичёв ответил:

    я с gentee начал, теперь мучительно пытаюсь перейти на С++… (до учебников ещё никак не доберусь, пока ломаю голову чё за тип такой void))))))))))

  159. 101
    Андрей Куликов ответил:

    >> В С++ можно опускать тип, возвращаемый функцией
    Вобще то нельзя – заперещенно стандартом и на современном компиляторе не соберется.
    Ну и еще по стандарту main должна иметь тип только int.

  160. 100
    Алексей Аксёнов ответил:

    Данила CDNM Сергеев, некрасиво и обидно сравнивать синтаксис компилируемых и интерпретируемых языков. Еще не пристало писать Basic, тогда как это Visual Basic, и С/С++, тогда как это Си. И все равно это чудо не скомпилится, пока вы не инклюдите stdio.h и не поставите хотя бы пустой список формальных параметров функции main().
    В С++ можно опускать тип, возвращаемый функцией и объявлять счетчик внутри цикла с параметром. Это к вопросу о краткости.

    А в целом для рекламы Руби очень неплохо! =)

  161. 99
    Жека Кирпичев ответил:

    Нет, не только – скачай интерпретатор и посмотри примеры (меню – Studio -> Demos).

  162. 98
    Данила Сергеев ответил:

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

  163. 97
    Данила Сергеев ответил:

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

  164. 96
    Жека Кирпичев ответил:

    //www.jsoftware.com

    Будет ОЧЕНЬ трудно, но ты держись :)

  165. 95
    Жека Кирпичев ответил:

    Мне совершенно понятно, что начинают в наших вузах с си; я сам с него начинал, и ФП заинтересовался только где-то 2 года назад. Шло очень туго, шокировало, отторгалось. Но я узрел искру и продолжил :)

    Это не нравится мне тем, что в итоге 99% студентов не знают ни о чем кроме си и не представляют, что есть что-то еще. А языки семейства си не позволяют оперировать большинством абстракций, кроме самых простых; многие идеи в них вообще нельзя выразить.
    Что не лучшим образом сказывается на их знаниях, умениях, стиле кодирования и т.п., и вообще, так сказать, на ситуации с программистским образованием в России.
    Преподавать из программирования только языки семейства си, и начинать с него – все равно что начинать преподавание литературы с Достоевского, и ничего не проходить кроме него.

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

    Я совершенно согласен, что новичку проще освоиться с си или паскалем, потому что их все вокруг знают. Но это значит не то, что им надо с них и начинать – а значит то, что тем, кто знает больше, следует подталкивать новичков к другим языкам, которые сделают из них более хороших программистов, и помогать им с освоением этих языков, делиться информацией, преподавать… Именно поэтому я тут и веду пропаганду, и именно поэтому веду курс SICP в литмо :)

  166. 94
    Жека Кирпичев ответил:

    Про хаскелл очень много всего на haskell.org – заходишь в вики и…
    Про эрланг – напиши мне в личку, кину тебе свою презентацию про него, там много ссылок.

  167. 93
    Данила Сергеев ответил:

    вот часть синтаксиса языков, описывающую программы:
    Дан массив из 51 элемента, заполнить его случайными числами и вывести результат на экран
    =========Pascal/Delphi:============

    var ar:array[0..50]of integer;
    i:byte;
    begin
    for i:=0 to 50 do begin
    ar[i]:=random(200);
    write(ar[i],' ');
    end;
    end.

    =========C/C++:=========

    void main{
    int ar[51];
    int i;
    for(i=0;i<51;i++){
    ar[i]=rand(200);
    printf("%i ",ar[i]);
    }
    }

    ========Basic:=======

    dim ar(51);
    for i:=0 to 50
    ar(i)=rnd(200)
    print ar(i)
    next i

    ========Ruby:========

    p Array.new(51){rand(200)}
    __________________________
    Это конечно не весь синтаксис, но все же сравнить реализацию этой задачи можно

  168. 92
    Жека Кирпичев ответил:

    А вот J:
    51 ? 200

  169. 91
    Степан Ерофеев ответил:

    Жека, я из твоих постов понимаю, что тебе не очень понятно(а может и не очень нравится), что большинство начинает свое обучение с языков си, паскаль … Чем тебе это не нравится? Понятно что существует много языков, много подходов к программированию, но во-первых вопрос ставится так: с какого языка начать изучение программирования, обычно новичек старается освоить самые распрастраненные языки, а что это – если не Си или Паскаль зарекомендовавший себя как язык для обучения уже долгое время. Ведь идея простая, банально по ним больше документации, чем по какому либо другому языку, а что еще нужно новичку. Например я начинал программировать на Паскале, ибо про другие мало знал, а по этому было до фига документации. Я согласен с тобой что может это и не лучший выбор, но просто надо остальные языки сделать более распространенными в массах и тогда все изменится. Я например щас пишу в основном на Jave, но недавно увидел такие интересные языки как Эрланг и Хаскел. Жалею что не узнал их раньше, сейчас помаленьку изучаю вообще класс, кстати если есть какие интересные статьи по ним иликнижки, был бы рад))))

  170. 90
    Данила Сергеев ответил:

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

  171. 89
    Тимур Багаутдинов ответил:

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

  172. 88
    Жека Кирпичев ответил:

    Права. Так как учиться-то?

  173. 87
    Вера Кузнецова ответил:

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

  174. 86
    Дмитрий Бородин ответил:

    теориъа и практика должны идти рука об руку

  175. 85
    Жека Кирпичев ответил:

    Слова, слова… И каким же образом натренировать программистское мышление, не имея дела с языком?

  176. 84
    Вера Кузнецова ответил:

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

  177. 83
    Жека Кирпичев ответил:

    Любым другим – это каким? Или это все-таки означает "с любым другим из семейства си" – т.е. java, C#, fortan?

  178. 82
    Жека Кирпичев ответил:

    Кстати если уж начинать с простого – то неужели Scheme сложнее си?

  179. 81
    Александр Скоробогатько ответил:

    >Александр, из твоего сообщения следует, что в жизни программиста есть только два языка и две ступени: Паскаль и Си. Так?<
    Вовсе нет, но начинать все-таки лучше с простого. Усвоив основы, потом уже не составит особого труда разобраться с любым другим языком высокого уровня.

  180. 80
    Жека Кирпичев ответил:

    Игорь, а через какие языки, по-твоему, нельзя?

  181. 79
    Igor Glushakov ответил:

    По любому Pascal. Только через него можно нормальную логику выработать.

  182. 78
    Жека Кирпичев ответил:

    Популярность это очень странная оценка языка, вообще непонятно, что она оценивает, кроме собственно популярности и, возможно, простоты и универсальности языка – и исторических обстоятельств.

    Однако суть SICP не в том, чтобы научить писать на Scheme – этому там учат в первой главе, а в видео – в первой лекции, а в том, чтобы научить _мыслить_ программистски – этому посвящены остальные 10 глав и 20 лекций.
    SICP – это НЕ учебник по лиспу. Это учебник по программированию.

    На псевдокоде тоже никто проекты не пишет – однако тебе же не придет в голову говорить, что книга Кормена – это "штучка". Аналогично MIX и Кнут.

  183. 77
    Антон Непомнящих ответил:

    я еще только начал читать, так что пока "штучка" ;) Тебе не кажется, что схема – мертвый язык? :) Я в инете не нашел нормальных проектов на схеме. Меньше чем на смолтолке :(

  184. 76
    Жека Кирпичев ответил:

    Математика важна потому, что приучает к абстракции, точным формулировкам и т.п., и дает понять, насколько важна нотация. Не готов сейчас очень подробно рассуждать на эту тему.. Наверняка в интернете тысячи статей "Зачем программисту математика" (кстати, надо бы поискать-почитать)
    Мне математика нужна довольно регулярно, хотя в основном простые разделы статистики или анализа – но я согласен, что в плане практики она нужна далеко не всем.
    В плане терминологии чрезвычайно важна абстрактная алгебра – там есть множество понятий, очень важных именно в программировании – свойства бинарных и унарных операций: идемпотентность, инволютивность, ассоциативность и т.п.; такие вещи как изоморфизм или гомоморфизм, и т.п.; группы, моноиды.

    SICP – это не "интересная программистская штучка", а настоящий фундаментальнейший учебник программистского мышления и всех основных концепций программирования, причем с полного нуля! По ней учат на первом курсе! Очень странно, что ты ее так назвал – я ведь тебе ее присылал. Неужели по прочтении какой-то ее части у тебя сложилось именно такое впечатление?

  185. 75
    Антон Непомнящих ответил:

    Мне кажется, что почти никто из программистов чисто с математики не начинал :) Ни одного не видел, кто бы сначала выучил универский курс, а потом начал программировать ;) Я слышал, индусов так только учат – 2 месяца на последнем курсе дают C#.

    Потому что если обучать чистой математике, то и человек получится – научный работник. И пойдет он скорее всего в науку – математику. А программировать будет только алгоритмы, чтобы подтвердить свои исследования.

    А вот чтобы получить программиста, то надо изначально привить интерес к самому этому делу. А как привить, кроме как не дав попрограммить на каком-нить языке чего-нить интересное? :) Я помню стал программистом 1) потому что хотел сам программить компьютерные игры 2) потому что мне показали как рисовать простенькую анимацию в бейсике на корвете ;)

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

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

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

    Сейчас, чтобы увлечь человека идеей программирования, есть более интересные языки, чем пресловутый бейсик или паскаль. И ни в коем случае второй том Фаронова (практика программирования) нафик не нужен . Я в нем разобрался, но он уже десять раз устарел – ничего полезного для современного программера ни осталось. Кому нужен свой собственныый драйвер защищенного режима или драйвер мышки под DOS?!

    Да и современные языки намного проще в освоении. Ну, бейсик-то почти не изменился, итак простым был ;) Но зато щас можно писать сразу настоящие программы – с графическим интерфейсом и т.д. Например, для родителей своих чего-нить красивое и полезное ;) А парадигме ООП, например, математика не научит. Только помочь ее понять может.И то не слишком, если положить руку на сердце. Интересные программистские штучки типа шаблонов проектирования, рефакторинга, SICP и т.д. можно научиться только посмотрев соотв-ую литературу.

  186. 74
    Жека Кирпичев ответил:

    Кстати да, про математику абсолютно согласен – она жизненно важна.
    А вот библией программиста я бы назвал не Кнута, а SICP.
    Игорь, Вы все правильно говорите, однако у меня опять ощущение, что для Вас множество языков программирования исчерпывается семейством си – бейсик, паскаль, си, С++, java, C# итп..

  187. 73
    Дмитрий Гайдамович ответил:

    Игорь, пять баллов! Вы окунули меня в атмосферу школьных олимпиад по программированию конца 80-х годов.

  188. 72
    Игорь Еропкин ответил:

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

    являясь преподавателем специальных дисциплин для специальность -программирование- могу сказать:
    изучать программирование лучше всего не с конкретного языка (как было сказано выше – если рассматривать программирование как искуство создания программ, а не как "ТУПОЕ" перекладывание известных алгоритмов на код конкретного языка), а с изучения математики (всех разделов) физики, архитектуры ПК и др. специальных дисциплин.
    если изучать самостоятельно то можно порекомендовать – начать программировать с языка BASIC.
    разобравшись с простейшими программами перейти на ПАСКАЛЬ (т.к. было обсолютно правильно сказано – этот язык создавался для обучения студентов, и он достаточно хорошо прижился).
    для теоритической подготовки можно порекомендовать библию программиста – ИСКУССТВО ПРОГРАММИРОВАНИЯ писатель КНУТ, для изучения ПАСКАЛЯ – учебник ФАРОНОВА в двух частях.
    кроме этого, естественно если хотите стать ПРОГРАММИСТОМ с большой буквы а не простым кодировщиком, пойти учится по данной специальности.
    после освоения простых языков можно переходить к более сложным языкам программирования.

    готов выслушать замечания.
    спасибо за внимание

  189. 71
    Тимур Багаутдинов ответил:

    Да и то что можно делать на Паскале – прекрасно делается на Си… Никто же не заставляет лезть раньше времени в указатели )) И делать наркоманские выкладки в стиле a += ++a % –(++b);

  190. 70
    Жека Кирпичев ответил:

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

  191. 69
    Александр Скоробогатько ответил:

    По-моему, однозначно лучше начинать с Паскаля. Паскаль писался профессорами для студентов, а Си – программистами для себя)) В Паскале все проще и логичнее и новичку будет проще разобраться и усвоить основы. А после можно уже переходить и к Си.

  192. 68
    Екатерина Макуц ответил:

    мы дак для начала изучали QBasiс, потом постепенно перешли на Visual Basic 6.0…потом поехали HTML,ASP,PHP…

  193. 67
    DELETED DELETED ответил:

    Нет. Изучаем си, а потом исходя из того какие задачи перед нами стоят изучам библиотеки!

  194. 66
    Жека Кирпичев ответил:

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

  195. 65
    DELETED DELETED ответил:

    Я имел ввиду что учить!

  196. 64
    Жека Кирпичев ответил:

    Нифига себе остальное.
    Ты фактически сказал "Знаешь си – и можешь пользоваться библиотеками для си". Мир программирования, мягко говоря, значительно шире.
    Загляни, например, в тему //vkontakte.ru/board.php?act=topic&tid=2598713

  197. 63
    DELETED DELETED ответил:

    То с чем бу область действия связана то ли БД толи OpenGL(DiretX) толи сетевые технологии? WinAPI, MFC, Qt. И в зависимости от решаемых задач будут изучаться уже необходимые алгоритмы.

  198. 62
    Жека Кирпичев ответил:

    Егор, остальное – это что?

  199. 61
    DELETED DELETED ответил:

    Я бы сказал что начинать надо с Си. Знаешь его и остальное понятно. Паскальтакой возможности не особо представляет! Да он и не нужен. А что являеться базовым так это вопрос философский! Лучше начть с малого а там дальше определишься и уже станет картина проясняться.

  200. 60
    Тимур Багаутдинов ответил:

    Неее, базовое эт философия… Ведь в основе всего лежит вопрос, что же первичнее – сознание или материя?

  201. 59
    Qwerty Qwerty ответил:

    2Михаил Лавреев
    Базовым для чего? Базовым где? Является ли Паскаль базовым для изучения алгоритмов? Или может быть для изучения ОО-программирования? Или быть может для изучения функционального программирования?
    Язык не может быть базовым. Базовое – это математика.

  202. 58
    DELETED DELETED ответил:

    С русского ? … А вообще если серьёздно то наиболее базовым является паскаль – знаешь паскаль с остальным проблем не будет …

  203. 57
    Андрей Куликов ответил:

    Да уж, Олег отжог. Особенно 3-им пунктом. Остальные еще как то можно попытаться логически понять. )))

  204. 56
    Паша Песецкий ответил:

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

  205. 55
    Жека Кирпичев ответил:

    Олег, почему?

  206. 54
    Олег Муковоз ответил:

    НАчинать нада с индусского кода :-)

    Ну а если по теме:
    1. Pascal
    2. C\C++
    3.php.
    4. Java.

  207. 53
    Дмитрий Гайдамович ответил:

    я подозревал, что в бусте они есть :)
    известный монстр-расширитель С++

  208. 52
    Жека Кирпичев ответил:

    Ну, зато есть boost::lambda – хоть и извращение, а однако же замыкания там пишутся даже проще чем в хаскелле.
    Примерно как в Mathematica – там Sin[#+5]&, а в boost::lambda, насколько я понимаю, было бы типа sin(_1 + 5). Не представляю, как они это реализовали..

  209. 51
    Дмитрий Гайдамович ответил:

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

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

    разумеется, Лисп мощнее "плюсов", поэтому знание С++ никак не поможет при изучении Лиспа

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

  210. 50
    Антон Непомнящих ответил:

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

    Проблема в том, что заказчики требуют: C++/ C# / java / PHP / Ruby :(
    (Насчет Ruby – лично не знаком, знаю только, что щас часто его просить стали)
    Еще год назад было тяжело убедить С++ вый проект на C# писать, т.к. быстрее, а на не-мейнстримовых вообще убедить нереально :)

  211. 49
    Жека Кирпичев ответил:

    > учиться программировать с низкоуровневых языков не очень хорошо
    Учиться программировать ТОЛЬКО на них – вот это действительно не очень хорошо. Но знать си и ассемблер – все равно необходимо, иначе никогда не будешь в состоянии адекватно оценить эффективность своей программы или понять причины ее неэффективности.

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

  212. 48
    Антон Непомнящих ответил:

    прошу прощения за С++ ;) Просто я исхожу из своего опыта, не претендую на абсолютную истину :) Да и С++ очень распространен и всегда найдутся знакомые, готовые помочь с освоением. Но ты прав – мне пока довелось программить в-основном только на императивных языках :( .

    Надо покопать про лисп ;) Что-то много тут областей применимости перечислено ;)

    Smalltalk мне ужасно понравился своей виртуальной машиной. Ужасно оптимизированы полиморфные вызовы и стековые операции :) Точно не помню цифры, но факториал 1000 обычной рекурсией считает мгновенно :) Вот этим я и был очень удивлен. Удивлен его масштабируемостью – что делать большие штуки (операции с длинными числами как здесь или какие-нить огромные навороченые системы, где полиморфизм на каждом углу), что маленькие (тупо целочисленные тесты ;) ) – одинаково. Ес-но на обычных числовых тестах маленького порядка он проиграет java, но как только начинаем пользовать ООП, java или C# нервно курит в сторонке ;) Короче – smalltalk.ru.

  213. 47
    Жека Кирпичев ответил:

    Хм, скажу по секрету, 1000! считает мгновенно любой язык со встроенной поддержкой длинной арифметики – дело нехитрое :)
    Странно, что ты оцениваешь его по скорости вычислений; у него же главное не в этом.
    Если уж так нравятся вычисления – посмотри на J.

    На smalltalk.ru погляжу.

  214. 46
    Жека Кирпичев ответил:

    Антон, это не язык для разработки искусственного интеллекта. Лисп знаменит в таком качестве лишь потому, что это самая известная из задач, которые ни на чем кроме лиспа писать невозможно :) )
    Все остальное на scheme тоже можно писать, и тоже будет получаться лучше, чем на многих других языках.

    Please don't assume Lisp is only useful for Animation and Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring just because these are the only things they happened to list.
    (с)Kent Pitman

    Насчет "после С++ любой язык прост" – не согласен. Прост любой язык, почти ничем не отличающийся от С++ – например, си, паскаль, джава, и т.п. Почти ничем – по сравнению с действительно _другими_ языками.
    Рекомендую посмотреть на языки J и K – это настоящий взрыв мозга и сдвиг парадигмы даже по сравнению с хаскеллом или Scheme. Тут уж я был в чрезвычайном шоке. Совершенно безумные языки; программы невероятно короткие (пример: арифметическое среднее – +/%#), очень быстрые (трудно написать на си программу, которая будет работать быстрее, чем программа на К – он оптимизирован по самое-самое) и невооруженным глазом практически нечитаемые – но люди, которые умеют на них писать, творят на них чудеса.

  215. 45
    Жека Кирпичев ответил:

    Кстати, чем тебя шокировал smalltalk? Я к нему все присматриваюсь, но пока издали не вижу, что он может мне дать.

  216. 44
    Антон Непомнящих ответил:

    я в 7-9 классе программировал сначала на GWBasic, потом на QBasic ;) Потом год на Паскале.
    В 11 классе на Turbo Pascal for Windows (кто-нить помнит такой? ;) )
    Потом на Delphi 6, C++ Builder 5.
    В универе, на первом курсе на Паскале.
    На втором – семестр на ANSI C (GCC & MS VS 6.0), семестр – на С++ и асме (fasm, в том числе и под Линукс).
    На третьем курсе как начал программить на C#, так продолжаю ;) На третьем же курсе познакомился с Design Patterns (был в шоке!).
    Год назад с рефакторингом (был в шоке опять! ;) ) )
    Пол-года назад еще недельку поковырялся с Dolphin Smalltalk (был шокирован как никогда! ;) Жаль, что smalltalk не используется щас почти :( , потом GNU Smalltalk.
    Щас вот еще Жека SICP кинул, так что надо посмотреть что такое Scheme ;) )) Прельщает, что это язык для разработки искусственного интеллекта :)

    Мой совет – начинать УЧИТЬСЯ – с С++. Проблема, что красивости на нем очень тяжко пишутся :( Зато, если поймешь С++, то потом любой язык покажется медом ;) Особенно C#

    Это не пропаганда! ;) ))

  217. 43
    Жека Кирпичев ответил:

    //users.livejournal.com/_adept_/13336.html Вот еще в кассу – это к вопросу о том, какие абстракции на си (и даже джаве) описать вообще невозможно, никак.
    Да в общем можно найти достаточно примеров, если погуглить "(haskell | lisp) vs <your favourite language here>" :)

  218. 42
    Жека Кирпичев ответил:

    Вообще да, насчет текучести абстракций я погорячился – их там просто нету ;)
    Да, и на си тоже есть превосходно спроектированные вещи – мне, например, очень нравится архитектура OpenGL (уж не знаю, на чем его изначально писали, но он предназначен для использования из низкоуровневых языков, это почти ассемблер – но какой!).
    Однако надо быть настоящим виртуозом, чтобы из одних неполиморфных функций нулевого порядка, массивов и циклов выстроить что-то красивое и в то же время понятное. А в большинстве случаев тут не хватит и виртуозности, и все-таки понадобится другой язык :)
    В общем, это все довольно голословные утверждения; надо брать какую-нибудь конкретную задачу (не олимпиадную и не что-нибудь вроде планировщика задач для ядра – а такую, где требуется именно проектирование, а не просто виртуозная техника и алгоритмы) и сравнивать ее решение на си и на другом языке.

    Вот, кстати, пример такого сравнения, хоть и не очень удачный – //www.haskell.org/papers/NSWC/jfp.ps :)

  219. 41
    Данила Сергеев ответил:

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

    по теме:

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

  220. 40
    Виталий Борисок ответил:

    *остался при своем мнении в отношении олимпиадных задач, что они оттачивают технику.

    По-моему, Жека, ты немного недооцениваешь си… Очень хороший язык. Кто сказал, что абстракция начинает течь?

  221. 39
    Жека Кирпичев ответил:

    Александр, низкоуровневые детали – это лишь одна грань. И это ЕДИНСТВЕННАЯ грань, с которой си хорош.

    Си абсолютно не учит проектировать, строить абстракции, писать красивый код. Напротив, он наказывает за попытки так делать – потому что то и дело какая-нибудь абстракция начинает "течь".

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

    Вера, остальные это какие?

  222. 38
    Александр Масалов ответил:

    Согласен, что язык с которого ты начинаешь кодить решает очень много,т.к. остальные языки будут легче пониматься по аналогии с 1м. и чтобы действительно считать себя программистом нужно не только уметь циклы запускать или иф-кейс уметь использовать, но и понимать как работает платформа, как выделяется память для объектов и т.п. Не зная этого, речи о качественном программировании быть не может!
    Посоветовал бы тебе начинать учить С, прочувствовать его изнутри, помучаться над выделением памяти. А потом обратить внимание на разработку под .НЕт платформу, а там уже решай сам какой язык выбрать, т.к. это неважно (если конечно ты не будешь писать на IL'e, то ты почувствуешь расницу между языками высокогои языками более низкого уровня)

  223. 37
    Вера Константинова ответил:

    Начала с С! Логичный и понятный! И после него все остальный языки как-то легко даются…=)

  224. 36
    Жека Кирпичев ответил:

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

  225. 35
    Qwerty Qwerty ответил:

    2Жека jkff Кирпичев
    Видимо товарищ считает, что кроме низкоуровнего программирования ничего не существует. Я бы не стал советовать C в качестве первого и единственного языка. Он конечно хорош, но только в узком круге задач.

  226. 34
    Жека Кирпичев ответил:

    > only C
    Это еще почему?

  227. 33
    DELETED DELETED ответил:

    only C

  228. 32
    Степан Ерофеев ответил:

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

  229. 31
    Тимур Багаутдинов ответил:

    Все-таки, вряд ли олимпиадное программирование отточит технику программирования. Ведь это спорт, придумать, точнее скомбинировать из того, что уже придумали заранее и реализовать… Коротенькая программа, написал – убрал… Хотя ничего против не имею, отличный способ поморщить лоб ))
    А программирование с промышленной точки зрения – эт сложные, боольшие системы, с морем кода и различных технологий.

  230. 30
    Жека Кирпичев ответил:

    +1000.

  231. 29
    Андрей Запышный ответил:

    //newstar.rinet.ru/~goga/sicp/sicp.pdf

  232. 28
    Виталий Борисок ответил:

    Олимпиадные задачи не угрожающе звучит. Я имел ввиду начать со школьных олимпиадных задач, как я в свое время. Причем начать с архивов 1995-1998 года. Они достаточно легкие… И решать дальше…
    Хорошая база задач есть на //dl.gsu.unibel.by/там же можно протестировать задачу на наборе тестов. Есть большое колличество компиляторов.
    Может вы слыхали про такого школьника Короткевича Гену… Он в 7 классе и тем не менее победитель крупнейших олимпиад для школьников. Вроде как хотели в книгу рекордов Гинесса записать его. Так он начинал с этого сайта, по-моему.

  233. 27
    Жека Кирпичев ответил:

    Кстати насчет питона и хорошего стиля оформления недавно Крис Окасаки писал: //okasaki.blogspot.com/2008/02/in-praise-of-man...

  234. 26
    Евгений Князев ответил:

    Я рекомендую начать с питона!

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

    Писать можно на чем угодно и под чем угодно. А начинать с того, на чем сможешь писать, и есть друг-консультант, если что…

  235. 25
    Жека Кирпичев ответил:

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

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

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

  236. 24
    Дмитрий Бородин ответил:

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

  237. 23
    Виталий Борисок ответил:

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

  238. 22
    Жека Кирпичев ответил:

    Не то что на каком-нибудь еретическом хаскелле или лиспе, или – не приведи господи – J или K :)

  239. 21
    Дмитрий Бородин ответил:

    так вопрос то был с чего начинать изучать
    это все равно как новичку в секции бокса объаснъать как против Тайсона дратса :)

    длъа решениа физических задач и длъа управлениа самописцами и вольметрами красивого кода не надо. бэйсик изначально между прочим давал большие возможности по управлению железом.и вирусы даже на нем убойные писались :)
    а программирование Систем и ПО – это уже совсем другой уровень, многие до него никогда не дойдут и в жизни это им не надо просто
    это длъа проФи

  240. 20
    Жека Кирпичев ответил:

    Начинать изучать программирование лучше с лиспа по SICP, только потом паскаль или си.

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

    Заинтересовавшимся лицам с удовольствием пришлю PDFку на русском языке, но лишь под залог того, что эта PDFка не останется лежать у них на винче бренным грузом, а они осилят хотя бы первые 3 главы. Этого уже достаточно для кардинального выбивания императивной дури из головы и наступления просветления :) Пишите на ekirpichov@gmail.com.

  241. 19
    Жека Кирпичев ответил:

    Даа, вот уж на асме-то код будет красивый – закачаешься!

  242. 18
    Евгений Князев ответил:

    2Дмитрий БЕОВУЛЬФ Бородин

    стоп.я говорю о разработке менее-более крупной программной СИСТЕМЫ, а не программки, шлющей чо-то там в порт.

    С указанными системами я имею весьма близкое знакомство:)

    Мне, к примеру, их дос-возможности и нафик не нужны…dos rip!

    Бейсик, изначально, АКАДЕМИЧЕСКИЙ язык.
    Паскаль — тоже.
    —————————-
    сухой остаток — писать можно, но красивого кода — не будет. Компиляторы — медленные. Вот и всё.

    Асм наше всё :)

  243. 17
    Дмитрий Бородин ответил:

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

  244. 16
    Дмитрий Бородин ответил:

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

    В школе лучше всего давать алгоритмический ъазыкс практическими задачами, чтоб они вообще понимали длъа чего это нужно. есть обучающие программы, где показываетса понъатие алгоритма, есть неплохие учебники, где это очень хорошо иллюстрируетса, и конечно, заставлъать человека делать это на практике
    Длъа школьника очень хорош турбобэйсик, многие задачи на нем блестъаще решаютса
    Маниъа давать сходу кучу массивов – тоже показатель что человек не понимает как преподавать и вообще длъа чего все нужно. Массивы вводъатса уже после ознакомлениъа с ъазыком и его возможостъами

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

  245. 15
    Дмитрий Гайдамович ответил:

    обратите внимание, тут уже есть такая тема:
    //vkontakte.ru/board.php?act=topic&tid=1121736

  246. 14
    Александр Ренев ответил:

    Евгений Diogen Князев, судя по тому что вы пишете все эти слова вы просто слышали и не представляете что они значат)
    qt например ни разу не язык программирования а платформа)
    html, css языки разметки, к программированию имеют весьма слабое отношение
    delphi среда разработки для языка object pascal. c++ builder аналогично для c++
    linux – нормальная ос для программиста вообще жесть. под windows думаете никто программы не пишет? ) или их мало? )
    то что языки учатся быстро это вообще весело. как думаете почему большинство работодателей требуют опыт программирования _на_конкретном_языке. изучить непосредственно синтаксис языка конечно просто а вот понять функционирование платформы, тонкости работы библиотечных функций и прочее это процесс весьма долгий.
    составление дизайна проекта это вообще не программирование, и занимаются этим не программисты.
    поиск в больших объемах данных – пузырек это вообще жесть. знаете что метод пузырька это метод сортировки а никак не поиска.
    плюс к тому поиск в больших объемах данных как правило делается с помощью СУБД. писать это самому это изобретать велосипед.
    дальше комментировать лень)

  247. 13
    Василий Степанов ответил:

    Я начал сразу с С++, и вполне успешно)) До сих пор с удовольствием им занимаюсь) На мой взгляд, язык очень красивый и логичный)
    Хотя нет, самую первую программу мы с другом написали на VBA в Excel, это был бесконечный цикл, прибавлявший 1 к переменной=))) Правда с программированием мы тогда были знакомы очень отдаленно=)
    2 Евгений Толмачев: имхо начинать с псевдокода – не лучший вариант. Так можно загубить весь интерес к программированию – ведь в начале больше всего хочется видеть результат) А потом можно и псевдокод писать для более сложных программ.

  248. 12
    Тимур Багаутдинов ответил:

    Павел,
    >> В чем разница между произведениями Шекспира и сочинением 10-ти классника, по одному из этих произведений.
    Дык, если 10-к подошел с чувством юмора и душой, то с удовольствием почитаю

    >> нестандартный подход к решению
    Когда есть стандартная реализация – это ПОПОМОРЩЕСТВО… Да и по кой черт придумывали всякие парадигмы, от хорошей жизни, значит, следовать им, техническая сторона

    >> поиск новых изящных решений
    И часто этим занимаешься? )) И в чем искусство?

    Вопрос остался открытым. В чем искусство то?

    Евгений,
    >> Программирование — составление дизайна проекта (не графики, а плана, схемы взаимодействия и пересечения частей проекта), детализация отдельных его частей, поиск решений по оптимизации имеющегося алгоритма, составление новых, высокоэффективных решений.
    А в чем тут исскуство… Наловчиться тут не сложно. Следовать уже, наступавшим на грабли, тоже можно… Появляется методология и техника.

    >> программер — "полбу" (на сбаллансированных деревья, хешах и т.п. структурах с оптимизацией…)
    Изучить это тоже не проблема, и решать "все в лоб", по-вашему…

  249. 11
    Евгений Толмачев ответил:

    Лучше всего начинать писать на псевдокоде. Самое интересное из написанного потом переведёте на какой-нить язык…

  250. 10
    Евгений Князев ответил:

    Присоединяюсь к "Павел Борзенков".
    Кодинг — выполнение готовых алгоритмических решений на языке программирования.
    Программирование — составление дизайна проекта (не графики, а плана, схемы взаимодействия и пересечения частей проекта), детализация отдельных его частей, поиск решений по оптимизации имеющегося алгоритма, составление новых, высокоэффективных решений.

    Или, скажем, так:кодер решает задачу "влоб" (поиск в больших объемах данных — так прямой перебор, или, в лучшем случае, пузырёк :) ), программер — "полбу" (на сбаллансированных деревья, хешах и т.п. структурах с оптимизацией…)

  251. 9
    Евгений Князев ответил:

    Для начала, я бы предложил определиться, что именно хочется. Для учёбы начал бы с какого-либо распространенного языка, можно скрипового (типа python). Немножко бы освоился со структурой программы, классами, наследованием, вводом-выводом.
    Потом перешел на более фундаментальные языки:С, С++, С#.
    Но это в том случае, если кодить на более "простом и понятном" языке понравится.

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

    И опять же, определись, в какой сфере программить-то…если железки — то только C да Assembler тебе в помощь.
    Для web — HTML, CSS, JavaSсript, PHP, Flash Action Scripts.
    Простенькие программки с пользовательским интерфейсом — Delphi, C++ Builder, VB. Потом и до Qt дотянуться можно…

    А для 8-го класса (пока не поздно) предложил бы освоить нормальную ОС для программинга — Linux. Там разгул для фантазии — полный. Доки — валом. Так что определяйся.
    Да, с играми пока не валом, но имеются в изобилии. Но для них можно и винду подержать (или под эмулятором побегать)…

    З.Ы. для примера, я когда беру в проект программера, то меня интересует больше тот факт, что он будет понимать ЧТО писать и КАК писать (процедурность, структура, логика), чем факт того, на КАКОМ языке он писал до сего момента. Языки учатся быстро, а вот умение выражаться средствами языка программирования — это уже профессия.

    З.Ы.2 –что-то я увлекся…учи алгебру с геометрией, физику и читай нормальные книжки про компьютеры (не "желтую" околокомпьютерную прессу).

  252. 8
    Qwerty Qwerty ответил:

    2Тимур Багаутдинов
    Это примерно как спросить:
    В чем разница между произведениями Шекспира и сочинением 10-ти классника, по одному из этих произведений.
    Программирование – исскуство, поиск новых изящных решений, нестандартный подход к решению и т.д.
    Кодирование – реализация на каком-либо языке готовых алгоритмов с минимальной затратой умственных усилий.

    Все вышесказанное – мое ИМХО.

  253. 7
    Тимур Багаутдинов ответил:

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

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

  254. 6
    Александр Ренев ответил:

    pascal весьма удобен для обучения.

  255. 5
    Равиль Галеев ответил:

    Тут яс вами соласен.. Полностью..

  256. 4
    Qwerty Qwerty ответил:

    А что вы хотели? Программировать (именно программировать, а не заниматься кодингом) – это не так просто как кажется. И знать для этого надо очень много. И без способностей в математике далеко не уедешь. Можно знать бесчисленное множество языков, но не уметь составить даже простейшего алгоритма или оценить сложность уже существующего. В таком случае – грош цена такому "программисту".

  257. 3
    Дмитрий Нестеренко ответил:

    братан лучше с казахского начинай)

  258. 2
    Qwerty Qwerty ответил:

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

  259. 1
    Равиль Галеев ответил:

    Вы издеваетесь??
    мат анализ и дскретная математика в 8 классе??

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.