где изучить c, c++, c#
9654
40
Инженер_электрик
junior
Доброго времени суток, уважаемые форумчане!
Возникла необходимость освоить языки программирования C, C++, C# без отрыва от основной деятельности. Где в Новосибирске есть нормальные вечерние курсы по программированию на указанных языках (УЦИТ в НГТУ не предлагать)?
Как и где лучше научиться программировать на этих языках?
Возникла необходимость освоить языки программирования C, C++, C# без отрыва от основной деятельности. Где в Новосибирске есть нормальные вечерние курсы по программированию на указанных языках (УЦИТ в НГТУ не предлагать)?
Как и где лучше научиться программировать на этих языках?
KSergey
guru
Не смотря на присутствие в этих языках буквы С, предлагаю все же остановиться на чем-то одном. Потому как кроме этой С ничего общего между ними нет.
Далее покупаем книжку - и вперед. Ну это при условии что есть понимание что такое программирование вообще, т..е например вы умеете програмировать на бейсике там или еще на чем-то.
Далее покупаем книжку - и вперед. Ну это при условии что есть понимание что такое программирование вообще, т..е например вы умеете програмировать на бейсике там или еще на чем-то.
Инженер_электрик
junior
начальные знания языка C уже есть. Хочу их углубить...
начальные знания языка C уже есть. Хочу их углубить...А есть какая-то конечная цель этого изучения? Написание некоторой программы, или просто расширение технического кругозора? У этих трех языков достаточно разная область приложения.
Я так понимаю, организация отправляет на курсы повышения квалификации. Поэтому книжку/сайт можно было и не предлагать.
Я так понимаю, организация отправляет на курсы повышения квалификации. Поэтому книжку/сайт можно было и не предлагать.Мне далеко до ваших телепатических способностей. Так что предложил уже.
Плохо!
В следующий раз, когда увидите "вечерние курсы" и "УЦИТ в НГТУ" - сразу развивайте телепатию.
В следующий раз, когда увидите "вечерние курсы" и "УЦИТ в НГТУ" - сразу развивайте телепатию.
Сейчас читают
КОФЕЙНЯ (часть 2)
208220
1000
КОФЕЙНЯ
232823
1000
Ситуация в России. (часть 34)
45422
488
Почему это? Повысить квалификацию можно и дома за книжками/инетом.
Я предположил, исходя из сообщения, что ТС нужно именно это. Про книжки/сайты спрашивают по-другому. Сильно по-другому.
Инженер_электрик
junior
Цель - расширение технгического кругозора. Работа частично связана с программированием, и с программированием на нижнеуровневых языках (программирование ПЛК) проблем никаких не возникает. А с программированием тех устройств, где необходим язык "С" и ему подобные языки иногда возникают некоторые сложности.
УЦИТ НГТУ - не рассматриваю, т.к. учился там какое-то время и остался крайне недоволен качеством обучения.
Умные люди подсказали еще 2 Новосибирских фирмы с нужными курсами, авторизованные Майкрософтом... и отзывы про них хорошие, но очень дорого....
В данный момент повышаю квалификацию по учебникам и с помощью сайтов
УЦИТ НГТУ - не рассматриваю, т.к. учился там какое-то время и остался крайне недоволен качеством обучения.
Умные люди подсказали еще 2 Новосибирских фирмы с нужными курсами, авторизованные Майкрософтом... и отзывы про них хорошие, но очень дорого....
В данный момент повышаю квалификацию по учебникам и с помощью сайтов
IEEE
experienced
по собственному опыту изучения С могу сказать, что нужно брать конкретную задачу и делать её, понимание должно проходить через руки - это единственный эффективный способ обучения.
Как с этим помогут справиться, кем бы то ни было, сертифицированные компании, я не понимаю.
Из полезного могу сказать:
- под линуксом учиться легче, чем под виндой
- все сложные вещи в С делаются через указатели, поэтому физическое понимание работы указателей обязательно: http://www.stanford.edu/~fringer/teaching/operating_systems_03/handouts/lecture9.pdf
Как с этим помогут справиться, кем бы то ни было, сертифицированные компании, я не понимаю.
Из полезного могу сказать:
- под линуксом учиться легче, чем под виндой
- все сложные вещи в С делаются через указатели, поэтому физическое понимание работы указателей обязательно: http://www.stanford.edu/~fringer/teaching/operating_systems_03/handouts/lecture9.pdf
по собственному опыту изучения С могу сказать, что нужно брать конкретную задачу и делать её, понимание должно проходить через руки - это единственный эффективный способ обучения.Почему же? В качестве задачи выбирается "Hello, world!" - и вперед!
Как с этим помогут справиться, кем бы то ни было, сертифицированные компании, я не понимаю.
Из полезного могу сказать:Чем С под линуксом отличается от С под виндой? букавки "проще"?
- под линуксом учиться легче, чем под виндой
Н-да, надо же, какой я тёмный...
Чем С под линуксом отличается от С под виндой? букавки "проще"?Навскидку, работа с нитями проще, проще работать с сокетами, с сигналами, любое устройство, посути, является файлом, ненужно городить огород через апи драйверов как в венде. Продалжать можно на много страниц, только смысл...
Все что вы перечисляете к языку С не имеет никакого отношения вообще.
Это API ОС, которое относится к любому языку.
Это API ОС, которое относится к любому языку.
Все что вы перечисляете к языку С не имеет никакого отношения вообще.Еслиб оно неимело отношения, то все программы на языке С, былиб изначально кроссплатформенны, но такого почемуто нету, может просвятите почему ?
Это API ОС, которое относится к любому языку.Что в вашем понимании есть API ? Комманды языка и там, и там одинаковые.
Я не знаю что тут ответить.
Предлагаю просто прикинуть как будет выглядеть программа на Паскале или Ада или даже PHP для тех самых сокетов на разных платформах - ну и понять где заканчивается язык и начинается API OS.
Предлагаю просто прикинуть как будет выглядеть программа на Паскале или Ада или даже PHP для тех самых сокетов на разных платформах - ну и понять где заканчивается язык и начинается API OS.
Я не знаю что тут ответить.Примерно такого ответа я и ожидал.
Предлагаю просто прикинуть как будет выглядеть программа на ПаскалеПаскаль хорош для начального обучения, как в прошлом алгол66 например, но для серьезных вещей, непригоден.
Ада или даже PHPАда жеско стандартизирован (из-за спицифики применения), через это везде будет одинаково. PHP кроссплатформенен изначально, ктомуже это всетаки интерпретируемый, а не компилируемый язык, через это, опятьже, код везде идентичен.
ну и понять где заканчивается язык и начинается API OS.С точки зрения языка высокого уровня, этим вопросом замарачивается побьольшей части компилятор, при использовании внешних библиотек, программист, но там API не системы, а библиотек, что есть немного другое. А вот если писать на низком уровне, то там да, сплошное API.
Паскаль хорош для начального обучения, как в прошлом алгол66 например, но для серьезных вещей, непригоден.Не слушайте больше эти сказки.
Точно также пригоден, как и любой другой универсальный язык. Вопрос лишь традиций и имеющихся компиляторов, если говорить о прикладном сколь угодно серьёзном применении.
С точки зрения языка высокого уровня, этим вопросом замарачивается побьольшей части компилятор, при использовании внешних библиотек, программист, но там API не системы, а библиотек, что есть немного другое.Тогда расскажите как через API библиотек C написать неконсольную программу под Windows. Ну или для Linux чуть больше, чем консольную.
Не слушайте больше эти сказки.Увы, это не сказки, самолично отработал продолжительное время системным программистом, поэтому сужу нетолько со стороны прикладного программирования.
Тогда расскажите как через API библиотек C написать неконсольную программуСлова MFC, Qt вам очемнить говорят ?
Слова MFC, Qt вам очемнить говорят ?А вам отсутствие плюсиков после С?
Ну и я правильно понимаю, что MFC имеет какое-то отношение к языку?
А вам отсутствие плюсиков после С?Не читайте наночь труды дохлой курицы, тогда не будет путанницы в голове с этими плюсиками, ПОП программирование уже давно неиспользуется, его заменил ООП, плотно, за исключением спецефичных задачь.
Ну и я правильно понимаю, что MFC имеет какое-то отношение к языку?Ваш вопрос звучал так:
Тогда расскажите как через API библиотек C написать неконсольную программу под Windows.Ответ был дан, даже два ответа.
Ответ был дан, даже два ответа.Оба неправильные.
Ибо "язык С" - это не то, что вам хочется, границы совершенно четко определены стандартном.
Равно как и "язык С++".
Так что аккуратнее, пожалуйста, с границами и терминами.
С пламенным приветом!
Так что аккуратнее, пожалуйста, с границами и терминами.С программированием и языком C/C++, в часности, вы знакомы поверхностно, как я посмотрю. Ибо:
1. С++ код может использовать код С-библиотек.
2. С код может использовать С++ библиотеку, если в С++ - ной библиотеке есть интерфейсы (API) на чистом С.
3. Если такого API нет, можно сделать самому маленькую обертку ака враппер, сессно на C++.
НЕпрощаюсь =)
И?
А про си, тем более с плюсами - да, вы правы. Не видел уже лет 10. Сугубо теоретизирую. Да и вообще никогда не писал на них ничего кроме хелоу ворд на спектруме.
Вам ведь так будет спокойнее? ну и славно.
А про си, тем более с плюсами - да, вы правы. Не видел уже лет 10. Сугубо теоретизирую. Да и вообще никогда не писал на них ничего кроме хелоу ворд на спектруме.
Вам ведь так будет спокойнее? ну и славно.
Почему это? Повысить квалификацию можно и дома за книжками/инетом.Это хорошо, если бы эти книжки, еще можно было бы купить по честному, а не заплатив потом ждать месяцами когда "Книжка из москвы придет..."
Благо еще хоть в инете есть варианты и достойные продавцы, в отличии от индивидуалов...
1. С++ код может использовать код С-библиотек.Если на то пошло, то из C можно поставить вызывалку программы на любом другом языке. После этого можно величать данное решение, как "программа написанная на C"
2. С код может использовать С++ библиотеку, если в С++ - ной библиотеке есть интерфейсы (API) на чистом С.
3. Если такого API нет, можно сделать самому маленькую обертку ака враппер, сессно на 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 <windows.h> не требуется.
Так понятно?
#include - это всего лишь директива препроцессора, к библиотекам имеющая довольно косвенное отношение. Но специально для Вас - из уважения - можно и без #include <windows.h>.
Что есть "библиотека языка С"? Вы когда Hello World писали, кстати, #include не использовали? Ну и чтобы знать, Xlib - это библиотека языка С?
Выше было про API - это по определению вызов каких-то сторонних функций. Тот же MessageBox - это функция операционной системы, ее код уже находится в компьютере, работающем под Windows, независимо от того, установлен компилятор С с его и не его библиотеками или нет. Вызывать эти функции можно хоть из программы, написанной на ассемблере в debug, если Вы в курсе. Достаточно знать аргументы функции и точку входа.
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>
понимаете?
Или это снова не важные буквы, как и плюсики для кого-то? декоративно-оформительский элемент, ага.
#include <windows.h>
и
#include <stdio.h>
понимаете?
Выше было про APIЯ не знаю о каком именно "выше" вы говорите, но я специально "про API" нигде не писал (во всяком случае очень старался), везде писал только про "API ОС".
Или это снова не важные буквы, как и плюсики для кого-то? декоративно-оформительский элемент, ага.
Вы разницу междуНу да, в одном случае подключается заголовочный файл windows.h, а в другом stdio.h. В одном одни прототипы функций и константы, в другом - другие. И что? К чему Вы клоните? С точки зрения компилятора они равноценны и обрабатываются одинаково. А в предыдущем посте я Вам вообще без #include пример привел.
#include <windows.h>
и
#include <stdio.h>
понимаете?
Я не знаю о каком именно "выше" вы говорите,Мне не сложно привести цитату:
Тогда расскажите как через 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 можно поставить вызывалку программы на любом другом языке.Я правильно понимаю, что после этого программа перестанет быть написанна на С ?
Ужасно. Вам про фому, а вы про ерему.Вы я вижу тоже, к программированию, имеете весьма посредственное отношение.
А вы хоть к чему-то имеете посредственное отношение? Помнится, вы и хакером "широко известным в узких местах" были, и антенны спутниковые Manul'а учили ставить, и провайдеры вас зовут наперебой, и веб-движки пишете.
А вы хоть к чему-то имеете посредственное отношение?Много кчему. Касаемо этой ветки, уже писал выше, повторять не буду.
Помнится, вы и хакером "широко известным в узких местах" былиЭто ваши домыслы, я всеголиш указал, что тот метод защиты легко обходится.
и антенны спутниковые Manul'а учили ставитьОпять домыслы, говорил об успешном опыте ловли спутника, если мне неизменяет мой склероз, на 36ом градусе в нашей местности.
провайдеры вас зовут наперебой, и веб-движки пишете.По этим пунктам вы меня скемто путаете.
Ну и судя по вашим постам, ваша цель исключительно пофлудить, полезностей от вас, я видел ровно один раз, все остально время какието неумелые попытки троллинга.
...
...
...
...Вы еще больше разделите мое сообщение. И пишите ответ на каждое слово. А там, глядишь, и ошибки найдутся - всегда есть к чему привязаться. Всегда в плюсе!