Можно ли научиться программированию самостоятельно,по книгам? (подскажите самый легкий язык которому можно научиться и полезную литер)

Модератор: Модераторы разделов

Аватара пользователя
ety
Сообщения: 358
ОС: Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ety »

0xFF писал(а):
23.10.2006 23:33
elide писал(а):
23.10.2006 23:10

(даже если предположить, что она работает правильно. что на самом деле не так. (: )

... хм, а где ошибка? 010010 вроде выводит :)

999999 она не выводит, но это мелочи - некоторые уже не знают к чему придраться :)
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

ну.. для кого и сегфолт - мелочь (:
суть-то в том, что задача не решена.... (и там поболее недостача будет. далеко не только 999999 (; )
слава роботам!
Спасибо сказали:
Аватара пользователя
ety
Сообщения: 358
ОС: Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ety »

elide писал(а):
23.10.2006 23:39
ну.. для кого и сегфолт - мелочь (:
суть-то в том, что задача не решена....

а ты внимательный, что у 0xFF 976 и < а у меня отсутствие % заметил =)
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

elide писал(а):
23.10.2006 23:34
ну... там кроме 010010 еще более 55 тысяч билетиков (:

дык а пример неправильной работы?, а то ведь не смогу заснуть :)
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

Код: Выделить всё

дык а пример неправильной работы
вон тебе ety подсказывает... < 976 в цикле - это очень странный выбор.
5 секунд на дебаг, ага...
слава роботам!
Спасибо сказали:
Аватара пользователя
ety
Сообщения: 358
ОС: Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ety »

на самом деле логически правильней вот так:
th(v,n) {
while(n--) v/=10;
return v%10;
}

main() {
int i;
for(i = 0; i < 1000000; i++)
if(th(i,0)+th(i,1)+th(i,2) == th(i,3)+th(i,4)+th(i,5))
printf("%06d\n", i);
}


мораль - всегда и везде избегать месева из большого количества операторов :)
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

логически правильнее - использовать нормальные языки там, где С нахрен не нужен, ага. (:
глядя на код th(v,n) вспоминается "и жоских извращений с ними для экстракции разряда." ну-ну.... что еще, ety, расскажешь нам о "жоских извращениях" ?
слава роботам!
Спасибо сказали:
Аватара пользователя
ety
Сообщения: 358
ОС: Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ety »

elide писал(а):
23.10.2006 23:52
логически правильнее - использовать нормальные языки там, где С нахрен не нужен, ага. (:

интерпретатор которых написан на C ;)
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
Спасибо сказали:
Аватара пользователя
georgy_sh
Сообщения: 1172
Статус: thermonuclear...
ОС: GNU/Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение georgy_sh »

ety писал(а):
23.10.2006 23:56
интерпретатор которых написан на C ;)

+1

[off]
Ужас просто. Вот так споры пошли... :) :) :)
[off]
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

(elide @ Oct 24 2006, в 04:47) писал(а):вон тебе ety подсказывает... < 976 в цикле - это очень странный выбор.
5 секунд на дебаг, ага...



(ety @ Oct 24 2006, в 04:37) писал(а):999999 она не выводит, но это мелочи - некоторые уже не знают к чему придраться smile.gif


:( хотел показаться, круче, чем есть на самом деле... не вышло... пришлось дольше разбирать такую простую задачу :)
(elide @ Oct 24 2006, в 04:52) писал(а):логически правильнее - использовать нормальные языки там, где С нахрен не нужен, ага. (:

ок, чуть меняем задачу... берём числа, типа XXXXXXXXX XXXXXXXXX... интересно, кто быстрее? :)
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

интерпретатор которых написан на C
и что?
bash тоже написан на С, и что теперь? много среди вас любителей попереписывать скрипты загрузки дистрибутива на С ?
для скриптовых языков это вообще не имеет значения. а компилятор того же haskell вполне себе писан на haskell.....
вон, для С++, о ужос, вообще не существует ни одного интерпретатора. это что-то доказывает?
слава роботам!
Спасибо сказали:
iZEN
Сообщения: 225

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение iZEN »

ety писал(а):
23.10.2006 22:16
Почему не С/С++ и Java? :P

потому что Яву не учат в наших школах и вузах, потому-что Яву парактически не за что ругать, она действительно добавляет стоящие вещи, и заменяет сумашедшие множественное наследование интерфэйсами. из трабла лишь отсутствие нормальной на мой взгляд имплементации:
1) принудительный garbage collection, и убрали доступ к низко-уровневым конструкциям
2) практическое отсуствие компилеров
3) она не юзает стандартную библиотеку сишки, а изобретает велосипед.

Java — это сетевой язык, предназначен для программирования сетевых распределённых систем с линейной масштабируемостью сложности от количества кода. Примеры: JBoss, Apache Tomcat.

Проблемы Java — это проблемы в головах тех, кто не знает, для чего она предназначена.

1) принудительный GC не решает проблем освобождения занятой памяти даже в Си, так как закольцованные ссылки и куча использующихся объектов — это проблема не GC!!! С такими ссылками и объектами GC разбираться давно умеет. Это проблема программиста, который насоздавал ссылающиеся друг на друга объекты "при каждом удобном случае", вместо повторного использования "старых" объектов.

2) компиляторов для Java полно — начиная от под GPL и заканчивая проприетарными от разных производителей. IBM Jikes, например, очень быстр. Sun JavaC написан на java и находится в tools.jar (~6МБ) с остальными инструментами "командной строки", можно использовать из своих приложений в класс компилятора, независимо от операционки.

3) java использует системно-зависимые библиотеки для отрисовки контролов (Swing рисуется через DirectDraw; AWT используют Win-контролы и Gtk); для работы с ZIP — zlib; для работы с сетью внутри системной библиотеки java используются нативные вызовы (через JNI) SockAPI той операционной системы, где запущено сетевое приложение. Оно же не в вакууме работает!

У "сишки" разве есть более-менее продвинутые "стандартные" (ISO-стандартизованные) библиотеки, например, для работы:
• с нитями (threads)
• с окнами (походу библиотечные вызовы для использования контролов GTK, Qt и Windows всё-таки сильно отличаются)
• с сетевыми сокетами
• с файловой системой
???
Скорее всего унифицированного нет и никогда не будет, потому что Си/С++ предназначены прежде всего для переноса операционной системы Unix на разные процесоры, предоставления одного и того же API (POSIX). Для Windows второе не было предназначено, а значит API, хоть он и на C/C++, там ДРУГОЙ.

А вот Java API в пределах одной версии среды везде один и тот же. И Java НЕ изобретает велосипед каждый раз сначала от системы к системе, а использует ЕДИНУЮ и, главное, СВОЮ кодовую базу, предоставляя один и тот же интерфейс (API) программисту в любой системе, где способна работать.

Резюмирую
Язык Си предназначен для системно-зависимых целей, связанных с написанием небольших высокопроизводительных системных приложений для последующего портирования на другие аппаратные архитектуры.
Язык Си++ предназначен для привнесения в Си объектно-ориентированной парадигмы, которая увеличивает производительность труда программиста в больших проектах.
Язык Java предназначен для сетевых распределённых проектов с большим упором на быстроту написания, прозрачность кода (в смысле, легкого его понимания) и надёжность реализации.
Спасибо сказали:
Аватара пользователя
Георгий
Сообщения: 512
ОС: W7, Debian,ubuntu 9.10,UNR

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение Георгий »

ety писал(а):
23.10.2006 23:56
elide писал(а):
23.10.2006 23:52

логически правильнее - использовать нормальные языки там, где С нахрен не нужен, ага. (:

интерпретатор которых написан на C ;)

Что позволяет их рассматривать их как настройку над C. ;-)
Спасибо сказали:
Аватара пользователя
ety
Сообщения: 358
ОС: Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ety »

elide писал(а):
24.10.2006 00:07
интерпретатор которых написан на C
и что?
bash тоже написан на С, и что теперь? много среди вас любителей попереписывать скрипты загрузки дистрибутива на С ?
для скриптовых языков это вообще не имеет значения. а компилятор того же haskell вполне себе писан на haskell.....
вон, для С++, о ужос, вообще не существует ни одного интерпретатора. это что-то доказывает?

зачем переписывать? заюзаем конвертер bash2c :)
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

0xFF
давай так. длина числа задается в коммандной строке при запуске программы (:
слава роботам!
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

Спор, не какой язык лучше! Ибо всё что успешно применяется, уже есть хорошо. Вопрос - какой язык выбрать для изучения программирования. Я своё ИМХО выразил, спорить не по теме глупо, спокойной всем ночи :)

elide писал(а):
24.10.2006 00:16
0xFF
давай так. длина числа задается в коммандной строке при запуске программы (:

давай, но тогда C++ с использование стандартных библиотек, т.к. Си знаю хуже :)
Спасибо сказали:
Аватара пользователя
ety
Сообщения: 358
ОС: Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ety »

А вот Java API в пределах одной версии среды везде один и тот же. И Java НЕ изобретает велосипед каждый раз сначала от системы к системе, а использует ЕДИНУЮ и, главное, СВОЮ кодовую базу

этим создавая третий велосипед, впридачу к POSIX и WinAPI

итого: все говорят на разных языках, со своей базой слов :)

интересно, посещали-ли MS планы по переводу винды на POSIX ^_^

Язык Java предназначен для сетевых распределённых проектов с большим упором на быстроту написания, прозрачность кода (в смысле, легкого его понимания) и надёжность реализации.

а что запрещает использовать яву для системного программирования, и простых аппликаций?
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

(elide @ Oct 24 2006, в 05:21) писал(а):0xFF
давай так. длина числа задается в коммандной строке при запуске программы (:


Хотя чего мелочиться, тогда уж ПХП :)
А вообще для такой задачи правельней выбрать метод решения elide, если скорость выполнения программы при вводе больших чисел не важна, а важна скорость именно написания программы. Всё зависит от поставленных задач.
Ну если уж очень приспичит, да ещё за это заплатят, то напишу хоть на асме)
Ещё раз повторяю: для различных задач различные методы решения! Изучать программирование стоит начать с Си. ИМХО.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

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

Код: Выделить всё

if ARGV.size > 0
        n = ARGV[0].to_i/2*2
        (10**n).times {|i|
                s = i.to_s
                s = '0' * (n - s.size) + s
                puts s if s[0,n/2].sum == s[n/2,n/2].sum
        } if n > 1
end
написал прямо здесь. тривиальные изменения не тестируются, ага.
слава роботам!
Спасибо сказали:
iZEN
Сообщения: 225

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение iZEN »

ety писал(а):
24.10.2006 00:23
Язык Java предназначен для сетевых распределённых проектов с большим упором на быстроту написания, прозрачность кода (в смысле, легкого его понимания) и надёжность реализации.

а что запрещает использовать яву для системного программирования, и простых аппликаций?

Ничто не запрещает.

Простые аппликации
Так апплеты кто ещё помнит и их тормознутость на старших i486 и первых Pentium'ах в браузерах IE3 и NN4 :D .
Есть уже платформа J2ME для программирования "в малом" простых, но тем не менее "сетевых" приложений — мидлетов. Достаточно развитая битовая арифметика и арифметика с плавающей точкой даже в J2ME-приложениях (CLDC1.1) — cм. jcp.org и JSR'ы.

Системное
Операционки SavaJe и JNode. Интерпретатор JRuby и другие интерпретаторы и компиляторы для ~200 языков программирования. Утилита сборки Ant. Фреймворк для тестирования JUnit. Парсеры и трансформеры для XML SAX, DOM, Xalan. Регулярные выражения Regexp. Унифицированный API неблокирующих сетевых сокетов (обёртка над системными). Абстракция Threads — стандартный API для одинакового представления многозадачного выполнения кода во всех операционках. Протокол сетевого объектного взаимодействия RMI. Быстрый Java2D API. Непохожий ни на что из известных Java3D API. Собственные Security и Crypto API, поддерживающие международные стандарты и протоколы. И т. д.

На Си такого отлаженного чуда нет и никогда не предвидится. CORBA, правда, ещё где используется, но уже редко ввиду сложности и объёма кодирования. Фреймворки на C++ "местечковые", предназначены для узкого использования и, нередко, только в собственных проектах. Их много, часто дублируют функциональность. API разнообразнейший. Велосипедов уйма. Да ещё фронтэндов на разных скриптовых языках типа Python к ним не перечесть. :(
Спасибо сказали:
Аватара пользователя
ety
Сообщения: 358
ОС: Linux

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ety »

а об чем весь сыр бор? elide, скомпиль как теперь плиз нам эту прогу в несколько байтный elf экзешник, выполняющийся за секунды при оч больших числах :)
Образование - это вовсе не то, чему человека учили, а то, чему он научился.
-----
Время, необходимое на компиляцию пакета обратно пропорционально его полезности и важности его наличия в системе.
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

...и ещё
Си и Си++ - потому что осознав их, поймёшь сущьность других языков, т.к. высокоуровневые пишутся именно на этих двух, а это понимание критически важно для выбора наиболее оптимального языка под решения конкретной задачи.
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

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

процессорное время все дешевле, а человеческая жизнь все короче.... надо быть очень глупым, чтобы тратить второе на экономию первого...
слава роботам!
Спасибо сказали:
Аватара пользователя
ReX Madgere
Сообщения: 275
ОС: Debian Etch

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ReX Madgere »

0xFF

Изучать программирование стоит начать с Си.


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

ЗЫ Я не программист и никогда им не был.
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

elide писал(а):
24.10.2006 01:11
а об чем весь сыр бор? elide, скомпиль как теперь плиз нам эту прогу в несколько байтный elf экзешник
а зачем? мне и так вполне хорошо.
и уж если выбирать между программой, работающей правильно, но медленно, которую я написал, потому что мне не жалко половины минуты, или программой, которую слишком умные ребята не написали, потому как сложно и им лень тратить на это несколько часов....... лично мне больше нравится первый вариант.

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

задача должна решаться оптимально, ибо оптимально - это красиво, а красота спасёт мир :)
вероятно в ближайшем будущем человек обретёт бессмертие, не без помощи HiTech, и возможно ему вообще не придётся писать программы на низком уровне, а мыслить только абстракциями... но чтобы компьютер этому научить, нужно прежде всего понимать, как он работает, а в этом как раз помогает разобраться Си....
...ёпт, голимый флейм :) закройте уж тему то)
Спасибо сказали:
Аватара пользователя
edoc_modnar
Бывший модератор
Сообщения: 1638
Статус: Форум больше не посещаю

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение edoc_modnar »

(0xFF @ Oct 24 2006, в 01:22) писал(а):вероятно в ближайшем будущем человек обретёт бессмертие,

Ветер в поле закружил,
Ветер в поле закружил,
Ветер в поле закружил,
Ветер в поле закружил,
Лоботомия! Лоботомия!

Одно дело "понимать", и совсем другое - "отрицать все остальное".
So long, and thanks for all the fish.
Douglas Adams, The Hitchhiker's Guide to the Galaxy
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

ReX Madgere писал(а):
24.10.2006 01:21
0xFF

Изучать программирование стоит начать с Си.


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

ЗЫ Я не программист и никогда им не был.

Кстати об асме: всё бы ничего, но проблематично новичку написать с первого раза жизнеспособный код. Для этого надо ещё знать, какой проц в компе :) ... это многих отталкивает...
Спасибо сказали:
Аватара пользователя
ReX Madgere
Сообщения: 275
ОС: Debian Etch

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение ReX Madgere »

Для этого надо ещё знать, какой проц в компе ... это многих отталкивает...


Хы, может им тогда заняться чем-нибудь другим?
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение elide »

задача должна решаться оптимально, ибо оптимально - это красиво, а красота спасёт мир
ага. а верх красоты это, разумеется:
Removed code is debugged code, and it certainly doesn't use any memory or CPU time; so even better if you don't write it.
до тех пор, пока задача не решена оптимально, я предпочитаю, чтобы она была просто решена, ага.

а об чем весь сыр бор? ety, _просто напиши_ как теперь плиз нам эту прогу... не надо даже компилять.... просто напиши.
покажи всем этим мерзким паскалойдам, как реальные пацаны пишут на С (:
слава роботам!
Спасибо сказали:
Аватара пользователя
0xFF
Сообщения: 267
ОС: Gentoo

Re: Можно ли научиться программированию самостоятельно,по книгам?

Сообщение 0xFF »

(elide @ Oct 24 2006, в 06:34) писал(а):Removed code is debugged code, and it certainly doesn't use any memory or CPU time; so even better if you don't write it.

:))))))))))))))))))
надо взять на вооружение
(elide @ Oct 24 2006, в 06:34) писал(а):до тех пор, пока задача не решена оптимально, я предпочитаю, чтобы она была просто решена, ага.

Верно, но смотря какая задача. Если она предполагает дальнейшее развитие, привлечение к участию многих людей, то нужно сначала спроектировать каркас, потом найти возможные паттерны решения подзадач... ну и много ещё чего... и если будет грубый и трудномодифицируемый в дальнейшем код, то грош цена такому решению. Для новичков это не актуально, но еслии чел всерьёз хочет прогать, то нужно изначально приучаться к красоте.
ИМХО
Спасибо сказали: