Погода: -12°C
  • Доброго времени суток, уважаемые форумчане!
    Возникла необходимость освоить языки программирования C, C++, C# без отрыва от основной деятельности. Где в Новосибирске есть нормальные вечерние курсы по программированию на указанных языках (УЦИТ в НГТУ не предлагать)?
    Как и где лучше научиться программировать на этих языках?

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

  • начальные знания языка C уже есть. Хочу их углубить...

  • В ответ на: начальные знания языка C уже есть. Хочу их углубить...
    А есть какая-то конечная цель этого изучения? Написание некоторой программы, или просто расширение технического кругозора? У этих трех языков достаточно разная область приложения.

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

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

  • Плохо!
    В следующий раз, когда увидите "вечерние курсы" и "УЦИТ в НГТУ" - сразу развивайте телепатию.

  • Почему это? Повысить квалификацию можно и дома за книжками/инетом.

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

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

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

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

    Как с этим помогут справиться, кем бы то ни было, сертифицированные компании, я не понимаю.

    Из полезного могу сказать:
    - под линуксом учиться легче, чем под виндой
    - все сложные вещи в С делаются через указатели, поэтому физическое понимание работы указателей обязательно: http://www.stanford.edu/~fringer/teaching/operating_systems_03/handouts/lecture9.pdf

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

    Как с этим помогут справиться, кем бы то ни было, сертифицированные компании, я не понимаю.
    Почему же? В качестве задачи выбирается "Hello, world!" - и вперед!

  • В ответ на: Из полезного могу сказать:
    - под линуксом учиться легче, чем под виндой
    Чем С под линуксом отличается от С под виндой? букавки "проще"?
    Н-да, надо же, какой я тёмный...

  • В ответ на: Чем С под линуксом отличается от С под виндой? букавки "проще"?
    Навскидку, работа с нитями проще, проще работать с сокетами, с сигналами, любое устройство, посути, является файлом, ненужно городить огород через апи драйверов как в венде. Продалжать можно на много страниц, только смысл...

    Knowledge itself is a power (F.Bacon)

  • Все что вы перечисляете к языку С не имеет никакого отношения вообще.
    Это API ОС, которое относится к любому языку.

  • В ответ на: Все что вы перечисляете к языку С не имеет никакого отношения вообще.
    Еслиб оно неимело отношения, то все программы на языке С, былиб изначально кроссплатформенны, но такого почемуто нету, может просвятите почему ?

    В ответ на: Это API ОС, которое относится к любому языку.
    Что в вашем понимании есть API ? Комманды языка и там, и там одинаковые.

    Knowledge itself is a power (F.Bacon)

  • Я не знаю что тут ответить.
    Предлагаю просто прикинуть как будет выглядеть программа на Паскале или Ада или даже PHP для тех самых сокетов на разных платформах - ну и понять где заканчивается язык и начинается API OS.

  • В ответ на: Я не знаю что тут ответить.
    Примерно такого ответа я и ожидал.

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

    В ответ на: Ада или даже PHP
    Ада жеско стандартизирован (из-за спицифики применения), через это везде будет одинаково. PHP кроссплатформенен изначально, ктомуже это всетаки интерпретируемый, а не компилируемый язык, через это, опятьже, код везде идентичен.

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

    Knowledge itself is a power (F.Bacon)

    Исправлено пользователем Mozepiy (23.07.13 10:48)

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

    В ответ на: С точки зрения языка высокого уровня, этим вопросом замарачивается побьольшей части компилятор, при использовании внешних библиотек, программист, но там API не системы, а библиотек, что есть немного другое.
    Тогда расскажите как через API библиотек C написать неконсольную программу под Windows. Ну или для Linux чуть больше, чем консольную.

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

    В ответ на: Тогда расскажите как через API библиотек C написать неконсольную программу
    Слова MFC, Qt вам очемнить говорят ?

    Knowledge itself is a power (F.Bacon)

  • В ответ на: Слова MFC, Qt вам очемнить говорят ?
    А вам отсутствие плюсиков после С?

    Ну и я правильно понимаю, что MFC имеет какое-то отношение к языку?

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

    В ответ на: Ну и я правильно понимаю, что MFC имеет какое-то отношение к языку?
    Ваш вопрос звучал так:
    В ответ на: Тогда расскажите как через API библиотек C написать неконсольную программу под Windows.
    Ответ был дан, даже два ответа.

    Knowledge itself is a power (F.Bacon)

  • В ответ на: Ответ был дан, даже два ответа.
    Оба неправильные.
    Ибо "язык С" - это не то, что вам хочется, границы совершенно четко определены стандартном.
    Равно как и "язык С++".
    Так что аккуратнее, пожалуйста, с границами и терминами.

    С пламенным приветом!

  • В ответ на: Так что аккуратнее, пожалуйста, с границами и терминами.
    С программированием и языком C/C++, в часности, вы знакомы поверхностно, как я посмотрю. Ибо:
    1. С++ код может использовать код С-библиотек.
    2. С код может использовать С++ библиотеку, если в С++ - ной библиотеке есть интерфейсы (API) на чистом С.
    3. Если такого API нет, можно сделать самому маленькую обертку ака враппер, сессно на C++.

    НЕпрощаюсь =)

    Knowledge itself is a power (F.Bacon)

  • И?

    А про си, тем более с плюсами - да, вы правы. Не видел уже лет 10. Сугубо теоретизирую. Да и вообще никогда не писал на них ничего кроме хелоу ворд на спектруме.
    Вам ведь так будет спокойнее? ну и славно.

  • В ответ на: Почему это? Повысить квалификацию можно и дома за книжками/инетом.
    Это хорошо, если бы эти книжки, еще можно было бы купить по честному, а не заплатив потом ждать месяцами когда "Книжка из москвы придет..."
    Благо еще хоть в инете есть варианты и достойные продавцы, в отличии от индивидуалов... :beee:

  • В ответ на: 1. С++ код может использовать код С-библиотек.
    2. С код может использовать С++ библиотеку, если в С++ - ной библиотеке есть интерфейсы (API) на чистом С.
    3. Если такого API нет, можно сделать самому маленькую обертку ака враппер, сессно на C++.

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

  • Ужасно. Вам про фому, а вы про ерему. И уровень аргументации (это я в целом про тред, а не про данное сообщение).

  • В ответ на: Тогда расскажите как через API библиотек C написать неконсольную программу под Windows.
    Конечно, несколько сложнее чем консольную, но тоже без особых проблем. Подробно описано, например, у Петзолда.

    Показать скрытый текст

    // Win32API Hello World!
    #include <windows.h>

    LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstanse, LPSTR lpCmdLine, int nCmdShow)
    {
    HWND hWnd;
    MSG msg;
    WNDCLASS wc = {
    CS_VREDRAW | CS_HREDRAW,
    WindowProc, 0, 0, hInstance,
    LoadIcon (NULL, IDI_APPLICATION),
    LoadCursor(NULL, IDC_ARROW),
    (HBRUSH)GetStockObject(WHITE_BRUSH),
    NULL, "HelloWorldApp"
    };

    RegisterClass(&wc);

    hWnd = CreateWindow("HelloWorldApp",
    "Hello World",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT,
    CW_USEDEFAULT, CW_USEDEFAULT,
    NULL, NULL, hInstance, NULL);

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    while (GetMessage(&msg, (HWND) NULL, 0, 0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    return msg.wParam;
    }

    LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    PAINTSTRUCT ps;
    HDC hdc;
    RECT r;
    switch(uMsg)
    {
    case WM_PAINT:
    hdc = BeginPaint(hWnd, &ps);
    GetClientRect(hWnd, &r);
    DrawText(hdc, "Hello World!", -1, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    EndPaint(hWnd, &ps);
    return 0;
    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
    }
    return DefWindowProc(hWnd,uMsg, wParam, lParam);
    }
    Скрыть текст

  • Еще один.
    Чисто для справки: для программ, использующих исключительно библиотеки языка С, подключение #include <windows.h> не требуется.
    Так понятно?

  • #include - это всего лишь директива препроцессора, к библиотекам имеющая довольно косвенное отношение. Но специально для Вас - из уважения - можно и без #include <windows.h>.


    int __stdcall MessageBoxA(void* hWnd, char *lpText, char *lpCaption, unsigned int uType);

    int __stdcall WinMain(void* hInstance, void* hPrevInstanse, char *lpCmdLine, int nCmdShow)
    {
    return MessageBoxA(0, "Hello World!", "Message", 0x40);
    }


    Что есть "библиотека языка С"? Вы когда Hello World писали, кстати, #include не использовали? Ну и чтобы знать, Xlib - это библиотека языка С?

    Выше было про API - это по определению вызов каких-то сторонних функций. Тот же MessageBox - это функция операционной системы, ее код уже находится в компьютере, работающем под Windows, независимо от того, установлен компилятор С с его и не его библиотеками или нет. Вызывать эти функции можно хоть из программы, написанной на ассемблере в debug, если Вы в курсе. Достаточно знать аргументы функции и точку входа.

  • Вы разницу между
    #include <windows.h>
    и
    #include <stdio.h>
    понимаете?

    В ответ на: Выше было про API
    Я не знаю о каком именно "выше" вы говорите, но я специально "про API" нигде не писал (во всяком случае очень старался), везде писал только про "API ОС".
    Или это снова не важные буквы, как и плюсики для кого-то? декоративно-оформительский элемент, ага.

  • В ответ на: Вы разницу между
    #include <windows.h>
    и
    #include <stdio.h>
    понимаете?
    Ну да, в одном случае подключается заголовочный файл windows.h, а в другом stdio.h. В одном одни прототипы функций и константы, в другом - другие. И что? К чему Вы клоните? С точки зрения компилятора они равноценны и обрабатываются одинаково. А в предыдущем посте я Вам вообще без #include пример привел.

    В ответ на: Я не знаю о каком именно "выше" вы говорите,
    Мне не сложно привести цитату:
    В ответ на: Тогда расскажите как через API библиотек C написать неконсольную программу под Windows.
    Я тут нигде букв "ОС" не вижу, хотя это и не принципиально.
    В ответ на: но я специально "про API" нигде не писал (во всяком случае очень старался), везде писал только про "API ОС".
    Чем Вам MessageBox не интерфейс ОС? Хотя тут вообще не понятно, что Вы называете "API библиотек С". Может быть, по-Вашему, API ОС - это printf? Повторюсь, не важно ОС это или что-то еще, API - механизм взаимодействия с внешним объектом. Стандартные функции, IMHO, называть API будет некорректно.

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

  • В ответ на: > Тогда расскажите как через API библиотек C написать неконсольную программу под Windows.
    Я тут нигде букв "ОС" не вижу, хотя это и не принципиально.
    Правильно, в этом месте их и нет.

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

  • В ответ на: надо четко отделять собственно язык от API ОС, в которой он используется.
    Я с этим и не спорю. Сюда еще нужно добавить субъективные предпочтения, обусловленные предыдущим опытом.

    Не понятно, причем тут приложения под X или Windows. Что Вы хотели узнать из особенностей их написания? Элементарное Hello World и там, и тут по структуре очень похожи и пишутся на чистом С совершенно без проблем, в первом случае с использованием Xlib, которую я не считаю "библиотекой не языка С", а во втором - Win32 API (практически можно сказать нативный С-шный интерфейс, хотя с XP, если не ошибаюсь, появился GDI+, что уже С++). Другое дело что реальные программы так никто уже не пишет. Но аналогично и от консольного "Hello World" народному хозяйству польза - нулевая. Оно исключительно для образования.

  • В ответ на: Не понятно, причем тут приложения под X или Windows. Что Вы хотели узнать из особенностей их написания?
    Нет нет, я ничего не хотел узнать.
    Мне хелоу ворд на спектруме вполне хватило, больше я ничего не программирую.

  • В ответ на: Если на то пошло, то из C можно поставить вызывалку программы на любом другом языке.
    Я правильно понимаю, что после этого программа перестанет быть написанна на С ?

    Knowledge itself is a power (F.Bacon)

  • В ответ на: Ужасно. Вам про фому, а вы про ерему.
    Вы я вижу тоже, к программированию, имеете весьма посредственное отношение.

    Knowledge itself is a power (F.Bacon)

  • А вы хоть к чему-то имеете посредственное отношение? Помнится, вы и хакером "широко известным в узких местах" были, и антенны спутниковые Manul'а учили ставить, и провайдеры вас зовут наперебой, и веб-движки пишете.

  • В ответ на: А вы хоть к чему-то имеете посредственное отношение?
    Много кчему. Касаемо этой ветки, уже писал выше, повторять не буду.

    В ответ на: Помнится, вы и хакером "широко известным в узких местах" были
    Это ваши домыслы, я всеголиш указал, что тот метод защиты легко обходится.

    В ответ на: и антенны спутниковые Manul'а учили ставить
    Опять домыслы, говорил об успешном опыте ловли спутника, если мне неизменяет мой склероз, на 36ом градусе в нашей местности.

    В ответ на: провайдеры вас зовут наперебой, и веб-движки пишете.
    По этим пунктам вы меня скемто путаете.

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

    Knowledge itself is a power (F.Bacon)

  • В ответ на: ...
    В ответ на: ...
    В ответ на: ...
    В ответ на: ...
    Вы еще больше разделите мое сообщение. И пишите ответ на каждое слово. А там, глядишь, и ошибки найдутся - всегда есть к чему привязаться. Всегда в плюсе!

Записей на странице:

Перейти в форум

Модератор: