singlepost

Правильно ли начинать с цпп << На главную или назад  

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

68 ответов в теме “Правильно ли начинать с цпп”

  1. 40
    Dele Ted ответил:

    "зависит скорее от фреймворков"

    в данном случае я имел, в виду borland pascal 7.1

    и в таком случае можно конечно сказать, что java – переделанный c++ ;)

    асм тоже может быть скриптовым языком, потому что известны специальные диалекты асм для java

  2. 39
    Ростислав Чутков ответил:

    Object Pascal не менее "машинного уровня" чем Pascal, разве что ООП добавили. И вообще, "машинного уровня" или нет, зависит скорее от фреймворков, оболочек API и тп, нежели синтаксиса и семантики языка. Вот NSIS например, скрипт ну до чего примитивный (во многом даже asm-style), а элементарные операции этого скрипта оборачиваются сотнями строк кода на C. И где тут машинность.

  3. 38
    Dele Ted ответил:

    >2Дмитрий Матвеев:
    >Я же просил НЕ начинать.
    если вы не знаете разницы между C и Delphi, то это ваша проблема

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

    Разные языки служат для разных целей, asm для написания быстрого, компактного, но ограниченного архитектурой данного процессора кода (непереносимость на другие архитектуры без правки исходника), но написание очень больших программ на нём не целесообразно, потому что для этого есть C или Pascal; C – да, он тоже приземлён к процессору, но gcc позволяет транслировать код (c, c++, pascal, ada, fortrun, object-c, java) для разных процессоров и архитектур из разных исходных кодов за исключением ассемблера (потому что gcc переводит сначала в ассемблер нужной архитектуры и уже потом получает машинный код), и с ним (c) тоже можно писать хорошие программы (и это неоспоримо), скриптовые языки как bash делаются как инструмент на скорую руку – для управления а организации других программ для работы вместе; python, java, cml, perl претендуют на портативность за счёт костылей в виде необходимости интерпретатора для конечной архитектуры

    в C тоже можно производить объектное программирование, гугл знает.

    и к стати не нужно путать pascal, object pascal и delphi, если согласиться с borland и всё это называть delphi то неминуемы разнотолки, pascal – это как и C язык достаточно машинного уровня, object-pascal, в принципе сравним с c++ (ведь это же гонка языков, и pascal уже доказал право считать себя "почти как C", но на C написано польше софта и pascal-ю остаётся удел закрытых OS, где нет большой необходимости пользоваться *.h файлами). А Delphi – да, сопоставим с C/C++ + gtk+/qt/wxWindows/и т.д.

  4. 37
    Ростислав Чутков ответил:

    Константин Одм1нг0 Дёмин, это неверно. В качестве курсовика я написал язык, который позволяет выполнять операции над любыми типами данных, всегда приводя результат к типу первого аргумента. Можно писать замечательно изящные штуки, но и только – написать что-то более сложное чем "задачу о рюкзаке" на нем просто невозможно. Так что вопрос кривизны рук – вторичен. Вы же не забиваете гвозди головой, хотя теоретически можно.

  5. 36
    Константин Дёмин ответил:

    2Дмитрий Матвеев:
    Я же просил НЕ начинать.

    2Ростислав Чутков:
    Это вопрос кривизны рук программиста, язык тут ни при чём.

  6. 35
    Ростислав Чутков ответил:

    Согласен. Я имел в виду что-то вроде C vs Delphi без VCL (то бишь что-то около Object Pascal'я). Хотя и так сравнение едва ли уместно. C vs Pascal? Изящнее C, но чего стоят в плане remedation cost хотя бы одни макросы и выражения? Пользоваться "изящными" возможностями C -целенаправленно понижать надежность своего приложения.

  7. 34
    Дмитрий Матвеев ответил:

    С изящнее.

  8. 33
    Дмитрий Матвеев ответил:

    да и вообще неуместно сравнивать C и Delphi.Куда уместнее – "C & Glib/GTK vs Delphi", "C++ & Qt vs Delphi" и так далее.

  9. 32
    Ростислав Чутков ответил:

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

  10. 31
    Константин Дёмин ответил:

    2Александр Летов:
    Не повторяйте чужих глупых шуток. Тем более, не отвечайте на них (тема про кулЪхаЦкерство).

    Не думаю, что изучать монстра "Си++" будет правильным шагом. Это то же самое, что в третьем классе объяснять интегралы.
    Лучше сначала курить Си, а потом уже Си++.

    Всё вышесказанное является моей личной точкой зрения и НЕ претендует на компетентность. Не устраивайте холивар, ладно? :)

    PS: я лично начинал с Delphi. До сих пор стыдно.

  11. 30
    Александр Летов ответил:

    >чел хочет стать кулхацкером

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

    А потом курить C, архитектуру ОС, дезассемблирование, отладку, и т.д….

    А ещё неплохо бы разобраться с криптографией, теор. вероятностей, линейной алгеброй, теорией графов, мат. логикой за одно. :)

  12. 29
    Александр Летов ответил:

    >Могу сказать по теме лишь то, что перед Си++ следует знать основу, то есть Си.
    А вот это – неверно.

    C++ принципиально отличается от C, при чём неочевидным образом. Человеку, незнакомому с C лучше изучать C++ как совершенно отдельный язык, со своими правилами, семантикой и идиомами.

  13. 28
    Константин Дёмин ответил:

    Странно как-то… вроде вопрос задан нормально ("русским по белому"), а идёт восхваление языков, постов по делу – на пальцах одной руки.
    Могу сказать по теме лишь то, что перед Си++ следует знать основу, то есть Си. С него и начинай.
    Да, и прочитай книгу "Совершенный Код" Стива Макконнелла. :)

  14. 27
    Dele Ted ответил:

    чел хочет стать кулхацкером :)

  15. 26
    Александр Летов ответил:

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

    Ответьте на эти (по сути, этот – единственный) вопросы, и тогда можно будет сказать, правильно ли Вы выбрали C++ или нет.
    ;)

  16. 25
    Deleted Deleted ответил:

    Правильно, правильно. cpp (это автору). А ЛИСП и прочее подобное лучше всё-таки потом. Я сам маленький и мне всё всё-ещё интересно, но от о. паскаля пока не отвык, а си++ (по моему мнению) чуть лучше и гибче всё-таки, но в силу "деревянности мозгов" никак не решусь на него перелезть (типо на совсем). А чтобы совсем с основ тогда наверное Дискретная математика, "Машина Тьюринга", Brainfuck :) и пр. подобное извращение в символах и головках =) или ассемблер =) Намного легче всё последующее (эволюционировавшее) восприниматься будет. Не спрашивай совета и не жди ответа – тупо делай =)

  17. 24
    Сергей Поганшев ответил:

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

    никогда не надо впадать в крайности.

  18. 23
    Алексей Бобьяков ответил:

    2 Сергей вроде-есть-свой-мозг Поганшев:
    Поверхностное знакомство с Haskell, Lisp, Factor или Prolog вряд ли поможет вам лучше писать на C++ или Java, чем если бы вы потратили 2-3 года, программируя на С++. Другое дело, что зная несколько языков, вы сможете выбрать более удобный язык (или хотя бы подходящую парадигму) под свою конкретную задачу.

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

  19. 22
    Алексей Бобьяков ответил:

    2 Михаил m0zzzG Шаханов:
    Непоследовательный язык программирования — язык, в котором много исключений из правил, много специальных случаев. Для таких языков сложно написать интерпретатор или компилятор, программисту на них нужно постоянно держать контекст в голове (не то, чтобы это было так уж сложно для опытных программистов, но новички будут обязательно наступать на грабли).

    Примеры для Ruby:
    //weblog.raganwald.com/2008/02/turtles-all-way-...
    //jfm3-repl.blogspot.com/2008/02/growth-syntax-...

    Примеры для C++:
    //www.parashift.com/c++-faq-lite/index.html
    //yosefk.com/c++fqa/

    Напротив, последовательный язык — язык, построенный на некоем минимальном наборе правил, из которых нет или почти нет исключений (Scheme, Lua).

    Пример для Scheme:
    //halogen.note.amherst.edu/~jdtang/scheme_in_48...

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

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

    Потому не согласен ни с Алексеем, ни с Сергеем :)
    Незачем учить все языки что попадаются под руку – едва ли Visual Basic или, прости господи, COBOL, научит чему-то новому после асма,C,C++,Pascal,Java,C#,Lisp,Haskell,J,Erlang,bash,R и Mathematica :)
    Но незачем и на одном языке останавливаться (не думаю, Алексей, что ты имел в виду именно это) – едва ли в рамках одного языка научишься всему на свете.

  21. 20
    Сергей Поганшев ответил:

    2 Алексей Claymore Бобьяков:
    > Чем больше ты используешь какой-нибудь язык, тем возможно лучше его знаешь. Количество известных тебе языков практически не влияет степень понимания тобой этих языков.

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

  22. 19
    Михаил Шаханов ответил:

    2 Алексей Claymore Бобьяков: Что по-вашему означает "непоследователен"?

  23. 18
    Алексей Бобьяков ответил:

    Если нужен простой, понятный, логичный и последовательный язык программирования, то действительно нужно брать Scheme. Для справки, стандарт C++ занимает больше 600 страниц текста и содержит много подводных камней, С++ никак нельзя назвать простым и понятным языком.

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

    Pascal уж слишком топорный и может научить лишь одной парадигме — процедурному программированию. Ruby (как и C++) непоследователен.

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

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

  24. 17
    Михаил Шаханов ответил:

    Спорный вопрос. С одной стороны, да, цпп сложно для начинающих, там куча всего непонятного валится на тебя сразу. НО (ИМХО) если в самом начале досканально изучить это язык, то всё остальное будет казаться просто конфеткой и изучаться намного быстрее. Это я по своему опыту говорю :)
    Ну а вообще я бы посоветовал Ruby. Там всё понятно сразу, какие-то базовые вещи можно освоить за два дня, а в специфических мелочах всё равно потом придётся разбираться.

  25. 16
    Шурик Волошин ответил:

    не ожидал стоко постов =)

  26. 15
    Шурик Волошин ответил:

    всем спс =) буду держацо последнего поста… и вот почитаю xD https://www.securecoding.cert.org/confluence/x/fQI

  27. 14
    Сергей Поганшев ответил:

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

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

    Есть, кстати, группа по Схеме. Велкам: //vkontakte.ru/club411354

  29. 12
    Жека Кирпичев ответил:

    +1000 за Scheme.
    > Начал читать sicp, пока мало что понял
    Делай упражнения. Я серьезно – просто возьми и поделай упражнения, начиная с самых первых, абсолютно все. Установи интерпретатор DrScheme, запусти его и начни делать упражнения.

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

    > Особенно практическое применение.
    А когда ты начинал читать учебник по арифметике, тебе было ясно его практическое применение?
    SICP – это НЕ учебник по языку Scheme, а учебник по программированию, причем практически лучший из существующих. SICP учит проектировать, понимать и писать программы и языки программирования.

  30. 11
    Ростислав Чутков ответил:

    только после таких материалов, пока не станешь сам архитектором будешь с ужасом смотреть на архитектуру вещей с которыми работаешь, разочарование. тоже самое примерно после прочтения CERT C++ "standards"

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

    >Че вы так за эту схему
    Потому что кристально ясная семантика (опустим пока продолжения) + отстутствие синтаксиса + REPL + дает понимание, как оно там все внутре работает (вот какой новичок-паскалист объяснит, как работает var? а вот новичок-скимер сразу же тебе скажет, что let — это всего лишь синтаксический сахар над лямбдами).

    >Особенно практическое применение.
    Это как бы другой вопрос.

    >И почему на cpp не надо писать?
    Нууу для начинающего цпп — оверкилл. Сразу на него сыпятся указатели, ссылки, классы, объекты, препроцессор. Ты попробуй начинающему хотя бы директиву #include объяснить, что она делает и зачем вообще нужна.

    >Если по теме, то почти все, кого я знаю из мира программирования, начинали с паскаля.
    Мои соболезнования ^.^

  32. 9
    Артём Шалхаков ответил:

    2 Евгений Семенников
    >Начал читать sicp, пока мало что понял. Особенно практическое применение.
    Читать, читать и еще раз читать. До полного просветления.

    >И почему на cpp не надо писать?
    Потому что незачем в большинстве случаев. :)
    Тут уже был холивар на эту тему.

  33. 8
    Евгений Семенников ответил:

    Че вы так за эту схему. Почему не оберон.Начал читать sicp, пока мало что понял. Особенно практическое применение.
    И почему на cpp не надо писать?
    Если по теме, то почти все, кого я знаю из мира программирования, начинали с паскаля.

  34. 7
    Дмитрий Матвеев ответил:

    плюсую Scheme

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

    Scheme +1. Паскаль отправляется в топку, быстро, решительно.

  36. 5
    Артём Шалхаков ответил:

    сначала — математика. затем — Лисп (Схема, по книге SICP). и только затем — Цпп (знать его придется, а вот пейсать на нем лучше не надо :) )

    Pascal лично я отправил бы в топку, потому что на нем можно научиться процедурному стилю, немного ООП и, в общем-то, все. А еще там дурацкий синтаксиси не менее дурацкая номинативная система типов. ^_^

    PS такие вопросы уже задавались. поиск спасет отца русской демократии.

  37. 4
    Руслан Левиев ответил:

    Если вообще впервые сталкиваешься с программированием, то ИМХО, стоит начать с Pascal. Приучит тебя к хорошему. Потом уже можно и за сиську с плюсами усесться.

  38. 3
    Ростислав Чутков ответил:

    тогда сразу же, сразу же читай https://www.securecoding.cert.org/confluence/x/fQI и внимательно! а то быдлокодер на С++ это куда хуже чем быдлокодер на пхп…

  39. 2
    Павел Пересторонин ответил:

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

  40. 1
    Dele Ted ответил:

    дело выбора, но обязательно нужно ещё попробовать ASM и C

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