Как научиться программировать?

Обсуждение отвлеченных тем.

Модераторы: Letun, Юрий, max-sever, BlackIsle

Gurken
Участник
Сообщения: 523
Зарегистрирован: 01.05.2003 11:29
Откуда: Казань
Контактная информация:

Сообщение Gurken » 24.05.2004 23:04

млин, я с C начинал...
А мне пришлось начать с БАСИКА. Но с какого! BASIC для БК0010-01 (Если кто помнит такой компутер :) ). Уже после перешел на Паскаль, Ассемблер, но везде целью было не программирование, как отмечал DrEvil , а решение конкретных задачек.
force Придумай себе какую нибудь задачку (арканоид какой-нибудь или рисование чего нибудь случайного и красивого, н-р графиков в полярной системе координат) и реализуй ее с помощью того-же Дельфи, раз уж он тебе нравится. А книги используй как справочник, а не как предмет самостоятельного изучения.

ViC
Клубмен
Клубмен
Сообщения: 1433
Зарегистрирован: 01.01.1970 3:00
Откуда: Moscow region, Russia
Контактная информация:

Сообщение ViC » 25.05.2004 1:54

Тут многие говорят ASM... Моё мнение - для прикланого программирования он не нужен. Для программирования всяких микропроцессоров навык может пригодится, но никак не для создания приложений. Я так предполагаю, что мне сейчас ничем не помешало бы отсутствие знания об ASM. Не использую, ибо негде, да и незачем.

Если обобщить: в языках программирования налицо тенденция к росту абстракции. То бишь, двигаемся дальше от железа. Написание прикладной программы сводится к использованию готовых компонентов + знание несложных алгоритмов. Да, драйвер с таким подходом не создашь, но не надо стремиться писать драйверы, если вы не фанат программирования...

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 25.05.2004 8:49

ViC
Моё мнение - для прикланого программирования он не нужен.
Если не нужна скорость, то да. Самому честно говоря сталкиваться не прищлось, но знающие люди подтверждают, что даже современные оптимизирующие компиляторы, на таких простых конструкциях как циклы, могут генерить код работающий в 3 раза (!) медленнее. Если учесть что общее время обработки составляет 10 минут (а должно вообще работать в realtime :D), то выигрыш существенный.

Detonator/LX
В GUI'ёвых программах под Delphi, IMHO, можно разобраться даже без комментариев.
В С тоже всё логично и очевидно, но когда посмотришь на своё детище эдак через недельки две, то чешешь голову и думаешь "И что же это я писал?!".

Вообще я не вижу в базовых конструкциях отличий Pascal от С, надо было программу с Delphi на С++ Builder переписать (45К, Выч. Мат.) - хватило 2-х дней чтобы переписать и оптимизировать по ходу (в итоге работать стала быстрее в 30 раз, ну что с девушки программиста взять :)), при этом Pascal я вообще до этого ни разу не видел.

А программы без комментариев почти обречены как только ты сделаешь паузу в их разработке. Время как ты въедешь потом в программу возрастает на порядок или больше в зависимости от размера. Это тебе любой программер скажет.

ViC
Клубмен
Клубмен
Сообщения: 1433
Зарегистрирован: 01.01.1970 3:00
Откуда: Moscow region, Russia
Контактная информация:

Сообщение ViC » 25.05.2004 11:37

Если не нужна скорость, то да.
- Самое частое заблуждение :) Реальная разница в скорости между кодом C++ и аналогичным ему ASM будет около 2-3%. Кто-то конечно способен написать код, нехило тормозящий на C++ и летающий на ASM, только тогда это будут два разных кода. Кстати, можно написать наоборот :) Вобщем, если человек умеет работать на ASM то он обязательно сможет написать аналог на C++, который будет работать с той же скоростью.

DrEvil
Администратор Judge Dredd
Сообщения: 17062
Зарегистрирован: 17.01.2003 11:52
Контактная информация:

Сообщение DrEvil » 25.05.2004 12:07

djpython

ViC прав, вот для наладонников c Windows программы собирают все тем же Visual C, а ведь реал-тайм платформа.

Detonator/LX
Модератор
Сообщения: 2043
Зарегистрирован: 01.01.1970 3:00
Откуда: Орбитальная станция "МИР"
Контактная информация:

Сообщение Detonator/LX » 25.05.2004 18:10

ViC
Есть одна штука, которую без ASM ну никак не реализовать - низкоуровневое программирование. Причём, надо отметить, что низкоуровневым программированием является не только ассемблерная оптимизация и вирусы, юзающие Int13H ( :)), но и определение типа и частоты процессора, наборов инструкций, типа установленной видеокарты по её Device ID и её последующего разгона путём работы с контроллером памяти. Тот же Riva Tuner невозможен без ассемблера.
Да и загрузчики к ОС, надо сказать, тоже без асмы не реализовать.

ViC
Клубмен
Клубмен
Сообщения: 1433
Зарегистрирован: 01.01.1970 3:00
Откуда: Moscow region, Russia
Контактная информация:

Сообщение ViC » 25.05.2004 18:57

Detonator/LX, если под низкоуровневым программированием понимать реализацию взаимодействие с hardware, которое невозможно средствами API операционной системы и средствами готового драйвера, тогда конечно :) Но это уже не прикладное программирование.

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 25.05.2004 20:03

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

Gurken
Участник
Сообщения: 523
Зарегистрирован: 01.05.2003 11:29
Откуда: Казань
Контактная информация:

Сообщение Gurken » 25.05.2004 22:37

Еще раз повторимся - все определяется задачей, а какое выбрать средство (т.е язык программирования) дело второе. Другое дело как научиться пользоваться средствами? Вот тут без личной заинтересованности не обойтись. Надо попытаться написать прогу на какую-нибудь особо занимающую вещь. А дальше или завлечет и покатит, или выяснится, что программирование самое ненужное занятие.
Насчет ASM, ViC точно подметил
для прикланого программирования он не нужен. Для программирования всяких микропроцессоров навык может пригодится
У меня товарищ с помощью ассемблера только PIC-контроллеры программирует, чтобы машина зимой заводилась. :)

ViC
Клубмен
Клубмен
Сообщения: 1433
Зарегистрирован: 01.01.1970 3:00
Откуда: Moscow region, Russia
Контактная информация:

Сообщение ViC » 26.05.2004 2:35

2 djpython:
Не, конечно можно оптимизировать на ASMе. Но уверен, точно также можно было оптимизировать на C (если он там был изначально).

force
Участник
Сообщения: 907
Зарегистрирован: 01.01.1970 3:00
Откуда: Belarus
Контактная информация:

Сообщение force » 26.05.2004 10:06

Я наверно пока попрактикуюсь в web-программировании. HTML (хотя это и не язык) освоил достаточно быстро, сейчас займусь PHP.

djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Сообщение djpython » 26.05.2004 13:35

force
Наверное домашнюю страничку хочешь сделать ? :)

force
Участник
Сообщения: 907
Зарегистрирован: 01.01.1970 3:00
Откуда: Belarus
Контактная информация:

Сообщение force » 26.05.2004 17:18

djpython Прошлом летом делал 4 штуки (не только себе ). Правда все были исключительно на HTML с использованием готовых гостевух, форумов. Да и овормление было мягко говря никакое. А сейчас хочется нормальную страничку сделать.


djpython
Старожил
Сообщения: 2507
Зарегистрирован: 01.01.1970 3:00
Контактная информация:

Re: Как научиться программировать?

Сообщение djpython » 21.03.2013 11:44

Ээ.. кто поднял зомби из могилы? :) Рррь...

GothMan
Модератор
Сообщения: 11010
Зарегистрирован: 20.11.2005 1:03
Откуда: Запорожье, Украина
Контактная информация:

Re: Как научиться программировать?

Сообщение GothMan » 21.03.2013 19:30

Да спамер. Ща в баню отправим.

Saashaa
Новичок
Сообщения: 8
Зарегистрирован: 15.02.2016 13:06
Откуда: Санкт-Петербург
Контактная информация:

Re: Как научиться программировать?

Сообщение Saashaa » 15.02.2016 16:08

Нет волшебной пилюли, все мои знакомые программисты вложили в это много времени и сил :) Поэтому стоит этого очень захотеть!

Ответить