Объясните пожалуйста чайнику программирование)

Slava1500
Дата: 19.09.2014 22:13:56
Здравствуйте, у меня такой вопрос: есть такое мнение, что начинать лучше программирование изучать с языка си или паскаль?! И там и там же идёт работа с консолью?! Так вот я например если хочу научится писать оконные приложения, я смотрел на сайте microsoft код по созданию окошка hello world, там нужно написать большой код, чтоб вывести это окошко и даже без кнопки) собственно, что я хочу спросить там совсем не такой код как когда пишешь консольные программы.. Вопрос где пригодится этот код? при создание оконных программ? и почему многие советуют начинать с консольных программ начинающем изучать программирование? Так же интересует, где можно например найти книгу как программировать оконные приложения на чистом си с API или GTK+(или ещё на чём-то, но только на си, просто интересно, что можно и как на чистом си) на русском языке? английский знаю на уровне beginer) везде где искал всегда только на си++ были книги. Вообще делают ли оконные программы на чистом си? или такие программы делаются на си++? или ещё каких либо других языках? Пожалуйста просьба отнеситесь с уважением к моим вопросам я не программист и не учился на него как многие на этом форуме, изучаю самостоятельно и спросить мне не у кого, пожалуйста отнеситесь с пониманием.
bazile
Дата: 19.09.2014 23:37:17
Очень много вопросов сразу.

Выбор первого языка программирования это вопрос бесконечных споров. На этот вопрос нет единственного правильного ответа. Если ты планируешь работать только с Windows, то тебя может заинтересовать C#. Если интересует кроссплатформенная разработка, то C/C++ это хороший выбор. Вообще советую выбрать тот язык по которому у тебя есть знакомый специалист.

Независимо от выбора языка он, с большой вероятностью, позволит создавать консольные приложения. Ремендация начинать с них основана на том, что эти приложения самые простые и начинающий не отвлекается на лишние (пока) детали. Ты уже посмотрел пример создания GUI приложения от Microsoft и понимаешь о чем речь. Начав работать с ними с самого начала ты рискуешь потерять лес за деревьями.
MasterZiv
Дата: 19.09.2014 23:46:59
Slava1500
Здравствуйте, у меня такой вопрос: есть такое мнение, что начинать лучше программирование изучать с языка си или паскаль?!


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

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

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


    Slava1500
    И там и там же идёт работа с консолью?!


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

    Slava1500
    Так вот я например если хочу научится писать оконные приложения,


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


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


    Да, там другие принципы организации кода, это т.н. событийно управляемое программирование, и объектно-ориентированное.
    Хотя принципы обычного программирования там также работают.


    Slava1500
    Вопрос где пригодится этот код? при создание оконных программ?


    Вопрос хороший. Ответ -- нигде, кроме создания оконных программ для Windows.
    Это абсолютно уникальная вещь. Событийно-управляемое программирование используется много где, но вся структура приложения и приёмы -- только в Windows (в т.н. оконных приложениях).

    Надо добавить, что в Windows есть и консольные приложения, и т.н. сервисы, которые по сути специализированные консольные приложения (без консоли обычно). Ну и всяческие драйвера и проч.


    Slava1500
    и почему многие советуют начинать с консольных программ начинающем изучать программирование?


    Ещё раз -- это всё сложно, практичнее научиться сначала одному, затем учиться другому. Когда у человека в голове одновременно возникает 20 вопросов, на них ответить сложно. Когда один -- уже легче.
    К тому же, возможно, программирование Windows-приложений тебе никогда и не пригодится, а просто писать на C --
    это штука универсальная.

    Slava1500
    Так же интересует, где можно например найти книгу как программировать оконные приложения на чистом си с API или GTK+(или ещё на чём-то, но только на си, просто интересно, что можно и как на чистом си) на русском языке?


    Ещё раз, для начала этим ненужно заниматься.

    Книги же -- Фроловы двухтомник, очень старые книги, но лучше их нет (на русском).
    http://www.books.ru/books/operatsionnaya-sistema-microsoft-windows-3-1-86655/?show=1

    На то, что они для 3.1 не смотри -- всё осталось почти так же.

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

    Slava1500
    английский знаю на уровне beginer) везде где искал всегда только на си++ были книги.


    С С++ для начала связываться тоже не стоит, как и созданием приложений на С++ под Windows.
    Да, современные книги про WinAPI все почти по С++.

    Slava1500
    Вообще делают ли оконные программы на чистом си?


    Делают.

    Slava1500
    или такие программы делаются на си++? или ещё каких либо других языках?


    Делают и на С++, и на C, и консольные приложения, и оконные.
    И, естественно, на других языках тоже.
  • Slava1500
    Дата: 19.09.2014 23:48:16
    bazile,

    Ясно, спасибо.
    MasterZiv
    Дата: 19.09.2014 23:52:43
    MasterZiv
    Slava1500
    Вообще делают ли оконные программы на чистом си?


    Делают.



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

    Но поскольку писать большие Windows-приложения на чистом С достаточно сложно (трудоёмко), на практике редко кто пишет на чистом С. Обычно делают на С++ с использованием таких фреймворков, как MFC или ATL/WTL.

    Но это не значит, что не надо учиться писать Windows-приложения на С -- именно так и надо делать, иначе не научишься.
    Будешь знать MFC или ATL/WTL, но не Win32.
    Slava1500
    Дата: 19.09.2014 23:53:20
    MasterZiv,

    Спасибо огромное за такой развёрнутый ответ!!!)
    Slava1500
    Дата: 19.09.2014 23:55:24
    MasterZiv,

    Послушаю Ваш совет, так и буду изучать)
    MasterZiv
    Дата: 20.09.2014 00:00:40
    bazile
    Выбор первого языка программирования это вопрос бесконечных споров. На этот вопрос нет единственного правильного ответа.


    Ну, существует общая практика преподавания программирования в университетах мира. Раньше типичным первым языком программирования в США был лисп (scheme), в Европе - вроде бы паскаль, но больше разнобоя, у нас в СССР -- Fortran.
    Потом у нас перешли на С, в США через С сейчас пришли к Java, но горько рыдали после этого, сейчас есть тенденция ещё учиться на Python. В Европе сейчас не знаю, наверное тоже Java.

    bazile
    Вообще советую выбрать тот язык по которому у тебя есть знакомый специалист.


    Это плохой совет. У него может быть напр. специалист по SQL знакомый...
    Так что -- не по которому есть знакомый специалист, а по которому есть хорошая книга.
    Как эта например эта:

    http://www.books.ru/books/yazyk-programmirovaniya-c-c11-lektsii-i-uprazhneniya-1808829/?show=1
    MasterZiv
    Дата: 20.09.2014 00:03:14
    Slava1500
    MasterZiv,

    Послушаю Ваш совет, так и буду изучать)


    Да, если не попрёт C -- могу порекомендовать современный заменитель Бейсика -- Python.
    Классный, мощный и элегантный язык.

    Только одно "но" -- возможно, изучив его, тебе уже ни на чём другом программировать не захочется ...
    (а иногда ведь НАДО).
    Slava1500
    Дата: 20.09.2014 00:04:26
    MasterZiv,

    Кстати в этой книге которую Вы дали, я сейчас просто ради интереса посмотрел)) и вот там написано в описание книги, что она для си++) не для си)