Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

gansalbatros

Возможно ли нубу научиться программированию?

Рекомендуемые сообщения

Давайте немного разомнёмся, а то мозги уже затекают.

Представьте, что вам надо 1 000 000 раз вызвать некую процедуру

и вы пишите этот цикл на ассемблере, примерно так:

 

mov ebx, 1000000

loop: call Procedure

dec ebx

jnz loop

 

Красота! Всего 3 машинные инструкции и тело цикла.

А теперь внимание, вопрос - напишите

этот же цикл на C/C++, чтобы итоговый код

на современном оптимизирующем компиляторе получился

таким же коротким. :fu:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Сравнивать С с ассемблером - как иголку в стоге сена, ведь и ежу ясно что даже бейсик может напрямую работать с процессором."

)))))))))))))))))))))))))))))))))))))))))

Поделиться сообщением


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

)))))))))))))))))))))))))))))))))))))))))

 

Ты сам ваще понял чё сказал ?

Поделиться сообщением


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

 

Идет урок математики. Училка начинает диктовать задачу:

- Летели два напильника, один зеленый, другой на север... Сколько мне лет?

Вовочка тянет руку:

- Вам 26 лет!!!

Училка:

- А как это ты узнал??

- Мне 13 лет, а меня мама полудурком называет..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Определиться для чего ты будешь программировать, в какую сферу пойдешь.

2. Выбрать подходящий язык.

Если ты ну очень любознательный.

1. Сделать себе график учебы.

Понедельник - Си

Среда -Делфи

Пятница - Пхп.

Суббота - Практика(создавать проект)

И тогда, если ты не тупенький ты станешььььь = Very nice programer)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
m_gmm

не, ну так то да, к тебе вопросов нет. Только тут вот делема то какая, тс не определился чему он хочет научиться программированию или стать верстальщиком

Почему верстальщиком? Для пхп и джаваскрипт нужна верстка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Для пхп и джаваскрипт нужна верстка.

Для нормального пхп разработчика верстка нужна только на самом базовом уровне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Почему верстальщиком? Для пхп и джаваскрипт нужна верстка.

Это опять же тонкая грань

Поделиться сообщением


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

Разумеется. Да и в принципе, чтобы парочку своих сайтов сверстать, тоже на базовом. Любые траблы можно загуглить. Я не помню использование многих тегов и хронически забываю CSS. Намана, справочник открою или гугл в помощь. Хаки нужно? Нахера их запоминать. Но базовые знания нужны. Пусть верстальщики фапают на HTML и CSS, совершенствуются до бесконечности. Им это надо, чтобы денежку быстрей зарабатывать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Newborn

У автора статьи наверное уже развитый спермотаксикоз выработался :glare:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
развитый спермотаксикоз выработался glare.gif

да не.он регулярно на питона фапает ))

Поделиться сообщением


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

2. Выбрать подходящий язык.

Если ты ну очень любознательный.

1. Сделать себе график учебы.

Понедельник - Си

Среда -Делфи

Пятница - Пхп.

Суббота - Практика(создавать проект)

И тогда, если ты не тупенький ты станешььььь = Very nice programer)

 

Делфи можно не забивать мозг !

 

лучше самое простейшее начинание в linux там и программы для этого есть и почти бесплатно

 

и чтоб программировать нужно хорошее понимание и знания математики и хорошая память,хреново знаешь математику то лучше не начинай!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Делфи можно не забивать мозг !

 

лучше самое простейшее начинание в linux там и программы для этого есть и почти бесплатно

 

и чтоб программировать нужно хорошее понимание и знания математики и хорошая память,хреново знаешь математику то лучше не начинай!

Про Delphi ты вообще ..., с чего это ты в друг решил что он хуже остальных языков программирования интересно ?(при том я то разницу между С++ и Pascal знаю а вот ты вряд ли ответишь что то дельное, и даже не думай вылить все на громоздкие библиотеки, с этим все замечательно и с базами данных он прекрасно работает, и WinAPI, и Консоль, и OpenGL, и вообще я не знаю что нельзя сделать в Pascal/Delphi хуже чем в C++/VisualC/BorladC/C#).

Для чего программисту нежна хорошая память ?)) (только про запоминание команд пожалуйста не надо есть справочники и справочники самому писать можно, а код комментировать можно, и нужно).

С каких это пор linux стала самой простершей ОС ?))) (только не надо типа система сложная а программировать в ней легко, бред сумасшедшего получится)

Для чего программисту БД хорошее понимание математики ?)) (тут реально не понимаю..., даже если он дуб дубом в математике, операторы языка программирования некто не отменял, на крайняк есть ещё "Пуск -> Выполнить -> calc")

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

Вообщем странный ты какой то )))

 

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

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

 

Если по теме, я верхние посты не читал, вообщем для того что бы начать программировать, необходимо хотеть программировать, начинать надо поэтапно по хорошему, т.е. Assambler, basic, pascal, C, Delphi (параллельно после basic лучше ещё HTML, CSS, PHP, Java осваивать) ну а дальше сам выберешь, я на С++ чистом остановился (т.е. wxDevCpp ну а в Linux gedit (хз, нравится прост gedit :))), общий курс порядка 5 лет в учебном заведении =)))

А если быстрый самоучка, то тут выбираешь одну платформу, на Delphi полегче, но потом к pascal`ю вернуться надо будет, хотя можно и на C++ нечего страшного не произойдет. Люой учебник из серии для начинающего, прекрасно подойдет, главное делать то что читаешь.

А нубами мы все когда то были... и кто если не бывшие "нубы", продолжат дело профессионалов....

P.S. я вот только ради этого поста зарегистрировался, не выдержал просто этот ужас )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Бредопост новичка prestreif поднял настроение с утра :D :D :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Давайте немного разомнёмся, а то мозги уже затекают.

Представьте, что вам надо 1 000 000 раз вызвать некую процедуру

и вы пишите этот цикл на ассемблере, примерно так:

 

mov ebx, 1000000

loop: call Procedure

dec ebx

jnz loop

 

Красота! Всего 3 машинные инструкции и тело цикла.

А теперь внимание, вопрос - напишите

этот же цикл на C/C++, чтобы итоговый код

на современном оптимизирующем компиляторе получился

таким же коротким. :fu:

 

Однако, вернёмся к задачке.

Написав такой короткий код, мы уже произвели некоторые оптимизации:

1. условие выполнения цикла не проверяется перед первым входом,

а зачем, ведь число повторений известно и это точно не ноль;

2. декремент счётчика и его проверка на ноль объединены в соседних командах,

если бы это было разнесено, то потребовалась бы ещё доп.команда, что-то вроде:

dec ebx

// что-то ещё

test ebx, ebx

jnz loop

 

итак, пишем всё то же самое, но на C++

 

register int i = 1000000 ;

do Procedure(); while ( --i != 0 );

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

nivs, хорошо, но насколько мне известно, народ делает вставки на ассемблере для оптимизации кода. Что мешает, собственно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Бредопост новичка prestreif поднял настроение с утра :D :D :D

Обращайся )

Однако, вернёмся к задачке.

Написав такой короткий код, мы уже произвели некоторые оптимизации:

1. условие выполнения цикла не проверяется перед первым входом,

а зачем, ведь число повторений известно и это точно не ноль;

2. декремент счётчика и его проверка на ноль объединены в соседних командах,

если бы это было разнесено, то потребовалась бы ещё доп.команда, что-то вроде:

dec ebx

// что-то ещё

test ebx, ebx

jnz loop

 

итак, пишем всё то же самое, но на C++

register int i = 1000000 ;

do Procedure(); while ( --i != 0 );

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

А быстрее чем в assamblere работать все равно не будет.

for(long int i = 0; i< n; i++)
	{
		 procedure();
	};

И случаем не так должно быть ?

register int i = n;  //register тоже мало значимая смысловая нагрузка от этого спецификатора
do
{
  Procedure();
} while( --i != 0);

Кстати расскажи пожалуйста где между -32768 и 32767 один миллион завалялся ?

Что бы ты долго не думал о чем речь идет вот подсказка..

Тип int (эквивалент short int)

Данные типа int занимают 2 байта и принимают целые значения из диапазона: -32768 . . 32767

Ты кстати на вручение но́белевской пре́мии позовешь ? Тебе должны за такое открытие в математике её дать! Срочно пиши в комитет, а то идею украдут !)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дорогой друг, а ты к нам на машине времени прилетел из эпохи 286х процессоров и MSDOS ?

Конечно, тогда они были 16-битные, не было EBX, был BX размером 16-бит, хранящий

целое число от -32768 до 32767.

Но с появлением 386х всё изменилось, ты прозевал этот момент ?

Теперь ближе к делу, код:

 

register int i = 1000000 ;

do Procedure(); while ( --i != 0 );

 

компилится в:

 

 

mov ebx, 1000000

loop: call Procedure

dec ebx

jnz loop

 

код:

 

for(long int i = 0; i< 1000000; i++)

{

procedure();

};

 

в самом лучшем случае в:

 

mov ebx, 0

mov ecx, 1000000

loop: cmp ebx, ecx

jge exit

call Procedure

inc ebx

jmp loop

exit:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Дорогой друг, а ты к нам на машине времени прилетел из эпохи 286х процессоров и MSDOS ?

Конечно, тогда они были 16-битные, не было EBX, был BX размером 16-бит, хранящий

целое число от -32768 до 32767.

Но с появлением 386х всё изменилось, ты прозевал этот момент ?

Теперь ближе к делу, код:

 

register int i = 1000000 ;

do Procedure(); while ( --i != 0 );

 

компилится в:

 

 

mov ebx, 1000000

loop: call Procedure

dec ebx

jnz loop

 

код:

 

for(long int i = 0; i< 1000000; i++)

{

procedure();

};

 

в самом лучшем случае в:

 

mov ebx, 0

mov ecx, 1000000

loop: cmp ebx, ecx

jge exit

call Procedure

inc ebx

jmp loop

exit:

 

Шаришь )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Во вторых прибыльный бизнес, если выучить Java, написать игру под ios, android или другую ОС, и поставить цену 1$, то можно хорошо заработать...

Скажем если веб планируешь изучать, то советую начать с движков, Joomla (уроки Попова, на торренте бесплатно) и Word Press (уроки Борисова), DLE известный движок... со временем начнешь CSS мутить, а там HTML...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты