На информационном ресурсе применяются cookie-файлы. Оставаясь на сайте, вы подтверждаете свое согласие на их использование.
Как самому научиться программировать?
21024
100
Одних способностей мало, нужны еще знания. А вот уровни обучения физике, электротехнике и эектронике различаются очень даже сильно и не в пользу АВТФ...Курс обучения различен, спорить не буду... Есть у меня приятель, который учится на РЭФе... Так вот мои знания в физике слабее, конечно... Физика - дело хорошее, и естественно то, что программист сам по себе без какой-либо науки - будь то физика, химия, математика... - так себе, никто и ничто. Но... я не знаю, с какими парнями Вы имели дело... Везде есть люди умные, способные, даже гениальные... Поэтому я не стремлюсь сказать, что какой-то факультет лучше, другой хуже... Но есть субъективный фактор, который носит следующий характер - число "умных глаз" в корпусе. Так вот зайдите в 4ку, 7ку и на ФЛА... и почуствуйте разницу...
А что касается того, что Вы забыли залогинится... я полагал, что отвечаю кому-то из тех, с кем мы уже приятно беседовали. Я не хочу каким либо способом сгладить мои топики или, наоборот, их обострить... Я пишу то, что думаю...

Слушай, а причём здесь будующие функции и объекты и интерфейсДа совершенно ни при чем... Интерфейс сам по себе, код сам по себе...???

Но стоит ли убивать время на написание банальностей типа передачи параметров в функцию, загрузки ресурсов и т.д.? Все равно, что чистить палубу зубной щеткой...Вот вызов ф-ий API на MASM32:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke WinMain, hInstance,NULL
invoke ExitProcess,eax
Как Вы можете догадаться - это более чем просто...
Ничего, работать начнет, вылечится. А не вылечился - будет место работы каждые пару месяцев менять, если, конечно, будут брать с такими (а именно - почти никому не нужными) скилзами.Да Вы просто Батя программирования... Да? Может, поможете мне "вылечиться"?..![]()

Программирование - коварная вещь. Очень легко почувствовать себя очень умным, возможно, самым умным. Это дает массу удовольствия от самого процесса. И уже не веришь, что ты точно такой же болван как и все остальные. А зря, это опасно. Это путь к быстрой деквалификации или к отставанию от прогресса, что одно и то же.
Человек, который отрицает полезность визуальных сред разработки напоминает плотника, хранящего верность топору и долоту и презирающего электродрель и бензопилу. Хотя спору нет, если Вам надо построить скит под старину, то эти навыки весьма полезны. А если опалубку, и быстро, то недостаточны.
Надо владеть всеми основными инструментами, или по крайней мере подержаться за них, чтоб знать когда какой лучше использовать.
Глупо тратить время и мозги на написание того, что давно за Вас и для Вас написано. Лучше оставить их для того чтоб подумать над задачей. Ведь любая программа пишется для решения какой-то прикладной задачи, нет?
Человек, который отрицает полезность визуальных сред разработки напоминает плотника, хранящего верность топору и долоту и презирающего электродрель и бензопилу. Хотя спору нет, если Вам надо построить скит под старину, то эти навыки весьма полезны. А если опалубку, и быстро, то недостаточны.
Надо владеть всеми основными инструментами, или по крайней мере подержаться за них, чтоб знать когда какой лучше использовать.
Глупо тратить время и мозги на написание того, что давно за Вас и для Вас написано. Лучше оставить их для того чтоб подумать над задачей. Ведь любая программа пишется для решения какой-то прикладной задачи, нет?
Сибиряк
old hamster
Интерфейс сам по себе, код сам по себе...
Вот именно, поэтому имеет смысл его хорошенько пробумать ПЕРЕД написанием основного кода
Вот именно, поэтому имеет смысл его хорошенько пробумать ПЕРЕД написанием основного кода

Сибиряк
old hamster
ВСЕ мои друзья, кто на них писал стали воинами дзена...
И что ты имел в виду, под этим утверджением
?
И что ты имел в виду, под этим утверджением

Сейчас читают
Курилка (часть 29)
139333
1000
Дьявол: Слуга Бога или Его враг?
131084
458
обсуждение слайдов (часть 3)
244768
1000
Вообще-то для написания драйвера физику знать не нужно, насколько я помню
. Математику возможно, но физику в драйвере...

Сибиряк
old hamster
Вообще-то для написания драйвера физику знать не нужно, насколько я помню
Он, наверное, не это имел ввиду. Он, наверное, имел в виду то, что для написания дров очень помогает образование в области электорники
Он, наверное, не это имел ввиду. Он, наверное, имел в виду то, что для написания дров очень помогает образование в области электорники

Черный кот
guru
Ну электронику на АВТФ дают неплохо, во всяком случае на моей специальности давали более подробно чем скажем на ЭлТФ, хотя, конечно, более поверхностно. Мне, кстати, многие вещи в споре непонятны, например почему при упоминании Борланда противопоставляют С и С#, с каких под Борландовский компилятор стал бесплатным, и т.д. Неужели я настолько отстал от жизни?!
Сибиряк
old hamster
Ну электронику на АВТФ дают неплохо, во всяком случае на моей специальности давали более подробно чем скажем на ЭлТФКакие, если не секрет


, кстати, многие вещи в споре непонятны, например почему при упоминании Борланда противопоставляют С и С#
Да там вроде про C# не упоминалось, разговор был про VC и BC.
с каких под Борландовский компилятор стал бесплатным, и т.д. Неужели я настолько отстал от жизни?!
Отстали-отстали, и очень сильно, года 3-4 уже как. Да кому он нафиг нужен без среды разработки? Только студентам... Выбор профи - это VC, и даже не C++ Builder.
Да там вроде про C# не упоминалось, разговор был про VC и BC.
с каких под Борландовский компилятор стал бесплатным, и т.д. Неужели я настолько отстал от жизни?!
Отстали-отстали, и очень сильно, года 3-4 уже как. Да кому он нафиг нужен без среды разработки? Только студентам... Выбор профи - это VC, и даже не C++ Builder.
Как Вы можете догадаться - это более чем просто...
А еще проще создать пустой проект в нелюбимом вами Delphi ли MSVC, потому как ваша программа не делает НИЧЕГО! Напишите для начала проект используя MASM32, аналогичный хотя бы 100.000 строк на C++, тогда можно будет поговорить, что проще.
А еще проще создать пустой проект в нелюбимом вами Delphi ли MSVC, потому как ваша программа не делает НИЧЕГО! Напишите для начала проект используя MASM32, аналогичный хотя бы 100.000 строк на C++, тогда можно будет поговорить, что проще.
есть субъективный фактор, который носит следующий характер - число "умных глаз" в корпусе. Так вот зайдите в 4ку, 7ку и на ФЛА... и почуствуйте разницу...
Ну вот, например, я учился на ФЛА, и это мне совершенно не мешает работать программером, и я не чувствую себя ущербным ни перед НГУшниками, ни тем более перед ФПМИ-,АВТФ-,РЭФниками.
P.S. Забавно, я думал, что только в Академе (довелось учиться там в ФМШ) так мозги промывают...
Ну вот, например, я учился на ФЛА, и это мне совершенно не мешает работать программером, и я не чувствую себя ущербным ни перед НГУшниками, ни тем более перед ФПМИ-,АВТФ-,РЭФниками.
P.S. Забавно, я думал, что только в Академе (довелось учиться там в ФМШ) так мозги промывают...
Программирование - коварная вещь. Очень легко почувствовать себя очень умным, возможно, самым умным. Это дает массу удовольствия от самого процесса. И уже не веришь, что ты точно такой же болван как и все остальные. А зря, это опасно.У меня почему-то совершенно обратные ощущения ;-)
Напишите для начала проект используя MASM32, аналогичный хотя бы 100.000 строк на C++, тогда можно будет поговорить, что проще.Я не собирался приводить пример рабочего кода. Здесь я преследовал цель показать некоторым товарищам вызов ф-ий. А что касается проекта в 100.000 строк на С++ - Вы что, думаете это невозможно?.. А учитывая величину этого приложения на С++, версия на ASM' е будет работать со скоростью света... Но вопрос - по-вашему это показатель - проект в 100.000 строк?

А что касается проекта в 100.000 строк на С++ - Вы что, думаете это невозможно?..
Сам себя процитирую: аналогичный хотя бы 100.000 строк на C++. Акцент на выделенном.
100.000 строк на C++ - это не так уж много, как кажется, для команды, но по Бруксу это предельный уровень вклада одного разработчика в проект, когда он еще может работать эффективно. К тому же, от 100.000 строк - это проект с довольно большим функционалом, который в голове точно не удержишь в одиночку. В тех проектах, в которых я участвовал и сейчас участвую, на одного разработчика приходилось по 40-60 тысяч, а суммарно до 300 тысяч строк. Работать можно, правда, часто уже не помнишь, чего писал и как это работает, пока в исходники или ТЗ не заглянешь. Столько написать, отладить, оптимизировать(т.е. снова переписать) - это работа не на недели, а на многие-многие месяцы. А еще писать это все на ассемблере - ну это мазохизм какой-то, не SoftIce'ом же бизнес-логику потом отлаживать.
А учитывая величину этого приложения на С++, версия на ASM' е будет работать со скоростью света...
Пусть хоть в 100 раз быстрее, но и на C++ (да и на VB, кстати) приложение будет работать быстрее, чем юзер успевает соображать, чего ему надо нажать.
Но вопрос - по-вашему это показатель - проект в 100.000 строк?
Еще какой! Одной крутости тут будет мало, придется сидеть и кропотливо писать и отлаживать код. Всего лишь закон больших чисел - то, что программу на асме , аналогичную 10.000 строк на C++, можно написать за приемлимое время, еще не означает, что это будет точно так же работать на объеме в 10 раз большем.
Интересно, а что думают ваши преподаватели по поводу этого спора? Коли уж вы здешним собеседникам не верите? Правда, интересно было бы узнать, а то может я все-таки не прав, просто у нас работают программеры низкой квалификации?
Сам себя процитирую: аналогичный хотя бы 100.000 строк на C++. Акцент на выделенном.
100.000 строк на C++ - это не так уж много, как кажется, для команды, но по Бруксу это предельный уровень вклада одного разработчика в проект, когда он еще может работать эффективно. К тому же, от 100.000 строк - это проект с довольно большим функционалом, который в голове точно не удержишь в одиночку. В тех проектах, в которых я участвовал и сейчас участвую, на одного разработчика приходилось по 40-60 тысяч, а суммарно до 300 тысяч строк. Работать можно, правда, часто уже не помнишь, чего писал и как это работает, пока в исходники или ТЗ не заглянешь. Столько написать, отладить, оптимизировать(т.е. снова переписать) - это работа не на недели, а на многие-многие месяцы. А еще писать это все на ассемблере - ну это мазохизм какой-то, не SoftIce'ом же бизнес-логику потом отлаживать.
А учитывая величину этого приложения на С++, версия на ASM' е будет работать со скоростью света...
Пусть хоть в 100 раз быстрее, но и на C++ (да и на VB, кстати) приложение будет работать быстрее, чем юзер успевает соображать, чего ему надо нажать.
Но вопрос - по-вашему это показатель - проект в 100.000 строк?
Еще какой! Одной крутости тут будет мало, придется сидеть и кропотливо писать и отлаживать код. Всего лишь закон больших чисел - то, что программу на асме , аналогичную 10.000 строк на C++, можно написать за приемлимое время, еще не означает, что это будет точно так же работать на объеме в 10 раз большем.
Интересно, а что думают ваши преподаватели по поводу этого спора? Коли уж вы здешним собеседникам не верите? Правда, интересно было бы узнать, а то может я все-таки не прав, просто у нас работают программеры низкой квалификации?
Сибиряк
old hamster
Но есть субъективный фактор, который носит следующий характер - число "умных глаз" в корпусе. Так вот зайдите в 4ку, 7ку и на ФЛА... и почуствуйте разницу...6 лет ходил и никакой разници нет. И там и там есть как и дауны, так и гении, причём соотношение я думаю одинакого. Разница чувствуеться только если зайти в 6ку. Но там уже просто другие люди - там гуманитарии, а их оценивать я не могу

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

Да, вот откуда я выдрал кусок кода:
.386
.model flat,stdcall
option casemap:none
include \langs\masm32\include\windows.inc
include \langs\masm32\include\user32.inc
include \langs\masm32\include\kernel32.inc
includelib \langs\masm32\lib\user32.lib
includelib \langs\masm32\lib\kernel32.lib
WinMain proto : DWORD,:DWORD
TimerID equ 100
.data
ClassName db "ClockClass",0
AppName db "caption clock",0
.data?
hInstance HINSTANCE ?
active_hwnd HWND ?
caption_buffer db 256 dup(?)
time_buffer db 256 dup(?)
stime SYSTEMTIME
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke WinMain, hInstance,NULL
invoke ExitProcess,eax
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hwnd:HWND
xor ebx,ebx
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style,CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc,OFFSET WndProc
mov wc.cbClsExtra,ebx
mov wc.cbWndExtra,ebx
push hInstance
pop wc.hInstance
mov wc.hbrBackground,ebx
mov wc.lpszMenuName,ebx
mov wc.lpszClassName,OFFSET ClassName
mov wc.hIcon,ebx
mov wc.hIconSm,ebx
mov wc.hCursor,ebx
invoke RegisterClassEx,addr wc
invoke CreateWindowEx,ebx,ADDR ClassName,ADDR AppName,ebx,ebx,ebx,ebx,ebx,ebx,ebx,hInst,ebx
mov hwnd,eax
invoke SetTimer,hwnd,TimerID,1000,ebx
.WHILE TRUE
invoke GetMessage,ADDR msg,NULL,0,0
.BREAK .IF (!eax)
invoke TranslateMessage,ADDR msg
invoke DispatchMessage,ADDR msg
.ENDW
mov eax,msg.wParam
ret
WinMain endp
WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
.IF uMsg==WM_DESTROY
invoke PostQuitMessage,NULL
.ELSEIF uMsg==WM_TIMER
xor ebx,ebx
invoke GetLocalTime,addr stime
invoke GetForegroundWindow
mov active_hwnd,eax
invoke GetWindowText,active_hwnd,addr caption_buffer,256
mov esi,0
.if eax>80
.if (caption_buffer[eax-1]==']')&&(caption_buffer[eax-4]==':')&&(caption_buffer[eax-7]==':')&&(caption_buffer[eax-10]=='[')&&(caption_buffer[eax-12]=='-')
sub eax,0Dh
.else
mov eax,80
.endif
mov caption_buffer[eax],0
.endif
.if (caption_buffer[eax-1]==']')&&(caption_buffer[eax-4]==':')&&(caption_buffer[eax-7]==':')&&(caption_buffer[eax-10]=='[')&&(caption_buffer[eax-12]=='-')
sub eax,0Dh
mov caption_buffer[eax],0
.endif
copy_caption:
mov bh,caption_buffer[esi]
mov time_buffer[esi],bh
inc esi
cmp caption_buffer[esi],0
jnz copy_caption
mov time_buffer[esi],20h
mov time_buffer[esi],' '
inc esi
mov time_buffer[esi],'-'
inc esi
mov time_buffer[esi],' '
inc esi
mov time_buffer[esi],'['
inc esi
mov ax,stime.wHour
aam
add ax,3030h
mov time_buffer[esi],ah
inc esi
mov time_buffer[esi],al
inc esi
mov time_buffer[esi],':'
inc esi
mov ax,stime.wMinute
aam
add ax,3030h
mov time_buffer[esi],ah
inc esi
mov time_buffer[esi],al
inc esi
mov time_buffer[esi],':'
inc esi
mov ax,stime.wSecond
aam
add ax,3030h
mov time_buffer[esi],ah
inc esi
mov time_buffer[esi],al
inc esi
mov time_buffer[esi],']'
inc esi
mov time_buffer[esi],0
invoke SetWindowText,active_hwnd,addr time_buffer
.ELSEIF uMsg==WM_CLOSE
invoke KillTimer,hWnd,TimerID
.ELSE
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.ENDIF
xor eax,eax
ret
WndProc endp
end start
Copyrights reserved&reversed.
.386
.model flat,stdcall
option casemap:none
include \langs\masm32\include\windows.inc
include \langs\masm32\include\user32.inc
include \langs\masm32\include\kernel32.inc
includelib \langs\masm32\lib\user32.lib
includelib \langs\masm32\lib\kernel32.lib
WinMain proto : DWORD,:DWORD
TimerID equ 100
.data
ClassName db "ClockClass",0
AppName db "caption clock",0
.data?
hInstance HINSTANCE ?
active_hwnd HWND ?
caption_buffer db 256 dup(?)
time_buffer db 256 dup(?)
stime SYSTEMTIME
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke WinMain, hInstance,NULL
invoke ExitProcess,eax
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hwnd:HWND
xor ebx,ebx
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style,CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc,OFFSET WndProc
mov wc.cbClsExtra,ebx
mov wc.cbWndExtra,ebx
push hInstance
pop wc.hInstance
mov wc.hbrBackground,ebx
mov wc.lpszMenuName,ebx
mov wc.lpszClassName,OFFSET ClassName
mov wc.hIcon,ebx
mov wc.hIconSm,ebx
mov wc.hCursor,ebx
invoke RegisterClassEx,addr wc
invoke CreateWindowEx,ebx,ADDR ClassName,ADDR AppName,ebx,ebx,ebx,ebx,ebx,ebx,ebx,hInst,ebx
mov hwnd,eax
invoke SetTimer,hwnd,TimerID,1000,ebx
.WHILE TRUE
invoke GetMessage,ADDR msg,NULL,0,0
.BREAK .IF (!eax)
invoke TranslateMessage,ADDR msg
invoke DispatchMessage,ADDR msg
.ENDW
mov eax,msg.wParam
ret
WinMain endp
WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
.IF uMsg==WM_DESTROY
invoke PostQuitMessage,NULL
.ELSEIF uMsg==WM_TIMER
xor ebx,ebx
invoke GetLocalTime,addr stime
invoke GetForegroundWindow
mov active_hwnd,eax
invoke GetWindowText,active_hwnd,addr caption_buffer,256
mov esi,0
.if eax>80
.if (caption_buffer[eax-1]==']')&&(caption_buffer[eax-4]==':')&&(caption_buffer[eax-7]==':')&&(caption_buffer[eax-10]=='[')&&(caption_buffer[eax-12]=='-')
sub eax,0Dh
.else
mov eax,80
.endif
mov caption_buffer[eax],0
.endif
.if (caption_buffer[eax-1]==']')&&(caption_buffer[eax-4]==':')&&(caption_buffer[eax-7]==':')&&(caption_buffer[eax-10]=='[')&&(caption_buffer[eax-12]=='-')
sub eax,0Dh
mov caption_buffer[eax],0
.endif
copy_caption:
mov bh,caption_buffer[esi]
mov time_buffer[esi],bh
inc esi
cmp caption_buffer[esi],0
jnz copy_caption
mov time_buffer[esi],20h
mov time_buffer[esi],' '
inc esi
mov time_buffer[esi],'-'
inc esi
mov time_buffer[esi],' '
inc esi
mov time_buffer[esi],'['
inc esi
mov ax,stime.wHour
aam
add ax,3030h
mov time_buffer[esi],ah
inc esi
mov time_buffer[esi],al
inc esi
mov time_buffer[esi],':'
inc esi
mov ax,stime.wMinute
aam
add ax,3030h
mov time_buffer[esi],ah
inc esi
mov time_buffer[esi],al
inc esi
mov time_buffer[esi],':'
inc esi
mov ax,stime.wSecond
aam
add ax,3030h
mov time_buffer[esi],ah
inc esi
mov time_buffer[esi],al
inc esi
mov time_buffer[esi],']'
inc esi
mov time_buffer[esi],0
invoke SetWindowText,active_hwnd,addr time_buffer
.ELSEIF uMsg==WM_CLOSE
invoke KillTimer,hWnd,TimerID
.ELSE
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.ENDIF
xor eax,eax
ret
WndProc endp
end start
Copyrights reserved&reversed.
Вот об этом я и говорил.
Кайф чувствовать что максимум 1 из 100 может вообще прочитать это. А понять о чем речь, 1 из 1000.
см.выше N1870075434 - 24.08.03 14:03
Еще раз: Вы, сударь, тащитесь от умения работать долотом....
Это круто, но только как повод для самодовольства, не более.
Как казал один умный человек - "человек - животное самодовольное, и повод для самодовольства он всегда найдет..."
Кайф чувствовать что максимум 1 из 100 может вообще прочитать это. А понять о чем речь, 1 из 1000.
см.выше N1870075434 - 24.08.03 14:03
Еще раз: Вы, сударь, тащитесь от умения работать долотом....
Это круто, но только как повод для самодовольства, не более.
Как казал один умный человек - "человек - животное самодовольное, и повод для самодовольства он всегда найдет..."
Сударь, чувствовать себя идиотом - это естественное состояние человека, работающего головой. Не побоюсь этого слова - умного человека. 99% времени именно так себя и ощущаешь.
Те редкие минуты, когда что-то получается, и чувствуешь что ты совсем не такой идиот, и даже наоборот - очень умный - гораздо ценнее на этом фоне!
Я же Вас предупреждал - трудно жить тупым!
Те редкие минуты, когда что-то получается, и чувствуешь что ты совсем не такой идиот, и даже наоборот - очень умный - гораздо ценнее на этом фоне!
Я же Вас предупреждал - трудно жить тупым!
Ладно, проехали... Я вас всех убеждать не собираюсь в своей правоте, меня Вы тоже не убедите в том, что Вы правы... Но могу сказать, что дофига народу с успехом пишет на низком уровне и у них нет желания переходить на Delphi, C, C++ или C#... Ну, ежели конечно мне когда-нибудь и будет по барабану на оптимальность кода или не будет желания действительно работать, то тогда я быть может и возьмусь за Delphi. Но одно мне сейчас совершенно точно известно - проблем в их изучении у меня не возникнет. Чего нельзя сказать об обратном переходе... У каждого есть выбор. Я свой выбор сделал. 

Неместный
experienced
Все упирается во ВРЕМЯ и ДЕНЬГИ. Например, мне требуется новый модуль для корпоративной ИС. Возможно, например посадить DreDigger'a на месяц другой за MASM32. Или можно посадить обычного программера начального уровня(например студента того же НГТУ ) и он тебе напишет тоже самое (даже скорее всего более функциональное, хотя более медленное) за пару дней. И я не буду мучатся из за отсутствия необходимого мне инструмента в работе. Опять же DreDigger'у прийдется заплатить N баксов за мясяц работы, а студенту N*2 баксов за пару дней. И кому спрашивается надо после этого надо нанимать DreDigger'а? Разве что для написания приложений очень критичных по скорости и обьему.
Сибиряк
old hamster
Ну, ежели конечно мне когда-нибудь и будет по барабану на оптимальность кода или не будет желания действительно работать, то тогда я быть может и возьмусь за Delphi. Но одно мне сейчас совершенно точно известно - проблем в их изучении у меня не возникнет. Чего нельзя сказать об обратном переходе...В свое время я сделал такой переход и могу тебя уверить никаких трудностей я не испытал, просто немного иной подход, так что не надо здесь боготворить асм, как что то доступное только избранным супер програмерам и кулц хакерам

