Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

базовая литература по программированию

1635  1 2 3 4 5 6 7 8 9 10 все
Tomasson посетитель30.08.06 16:32
Tomasson
30.08.06 16:32 
Последний раз изменено 04.09.06 13:39 (Tomasson)
меня на днях спросили, могу ли я подсказать какие-то курсы по программированию.
Ответил, что я - самоучка и никакие курсы не посещал.
Посоветовал научиться программированию по книгам.
И вот возник вопрос: реально ли составить некий базовый список литературы для людей, которые хотят научиться программировать? Я исхожу из того, человеку программирование нужно как хобби и/или для каких-то своих проэктов (например, свой сайт или какие-то небольшие программки), а не как основная профессия (посмотрите на Murr'a и быстро передумайте;-))
У кого какие будут думки на этот счет?
Хотелось бы иметь именно базовый список, дабы не дать человеку утонуть в океане книг :-)
C++
--- Andrew Koenig *Intensivkurs C++. Schneller Einstieg über die Standardbibliothek* (http://www.amazon.de/Intensivkurs-Schneller-Einstieg-%fcber-Standardbibliothek/d...)
--- Heiko Kalista *C++ für Spieleprogrammierer* (http://www.amazon.de/C%2b%2b-f%fcr-Spieleprogrammierer-Heiko-Kalista/dp/34464033...)
Java
--- Christian Ullenboom *Java ist auch eine Insel* (http://www.galileocomputing.de/openbook/javainsel5/)
--- Guido Krüger *Handbuch der Java-Programmierung* (http://www.javabuch.de/)
C#
PHP
--- George Schlossnagle *Professionelle PHP 5-Programmierung* (http://www.amazon.de/Professionelle-5-Programmierung-Entwicklerleitfaden-gro%dfe...)
--- Котеров, Костарев *PHP 5. В подлиннике* (http://www.bhv.ru/books/book.php?id=6643)
--- Котеров *Самоучитель PHP 4* (http://www.zipsites.ru/books/php4/)
HTML
Javascript
XML
XSLT
--- Michael Fitzgerald *Learning XSLT* (http://www.amazon.com/Learning-XSLT-Michael-Fitzgerald/dp/0596003277)
--- Sal Mangano *XSLT Cookbook* (http://www.amazon.com/XSLT-Cookbook-Second-Cookbooks-OReilly/dp/0596009747)
--- Michael Kay *XSLT 2.0 Programmer's Reference* (http://www.amazon.com/XSLT-2-0-Programmers-Reference-Programmer/dp/0764569090)
#1 
  scorpi_ скептик30.08.06 17:11
NEW 30.08.06 17:11 
в ответ Tomasson 30.08.06 16:32
Смотря какому языку. Для С++ я тебе любой список выдам.
#2 
Tomasson посетитель30.08.06 18:53
Tomasson
NEW 30.08.06 18:53 
в ответ scorpi_ 30.08.06 17:11
думаешь, имеет смысл новичку сразу С++ подсовывать?
Я б не стал.
Для веба PHP хватит с ушами, а для программок каких-то - Java, C#.
...вот...
предлагаю на этих языках сконцентрироваться :-)
Интересует еще литература, которая поможет новичку понять ООП. Меня несколько раз спрашивали, но я так ничего и не вспомнил подходящего.
Особенно ПХПэшники интересуются этим, которые хотят ООП в своих проектах использовать. Замучали уже :-)
#3 
Simple Nothing is f*cked30.08.06 19:29
Simple
NEW 30.08.06 19:29 
в ответ Tomasson 30.08.06 18:53
> думаешь, имеет смысл новичку сразу С++ подсовывать? Я б не стал.
Почему это? Да, непросто, зато потом что угодно сможешь понять ;)
#4 
  scorpi_ скептик30.08.06 19:46
NEW 30.08.06 19:46 
в ответ Tomasson 30.08.06 18:53
А чем собственно базисный уровень С++ сложнее других?
А скриптовые языки я бы для начала точно не посоветовал - сделает опечатку, и будет смотреть как баран на новые ворота. Пусть уж лучше для начала компилятор по носу даёт.
#5 
Murr коренной житель30.08.06 20:12
Murr
NEW 30.08.06 20:12 
в ответ Tomasson 30.08.06 16:32
(посмотрите на Murr'a и быстро передумайте;-))
------
И что же ты имел в виду? Муррка с виду очень даже ничего... Белая, пушистенькая...
А что царапается - так на то и Котяшество, что бы царапки осталять...
Что до списка... Тут в первую очередь надо определиться с областью применения.
В общем случае надо начинать с чето-то, что даст четкое понимание различия между
данными, их обработкой и при этом будет ООП-базирующееся. Дать это на ПХП... хммм...
думаю, что практически невозможно - слишком много сторонних моментов для новичка,
особенно, при самостоятельном изучении.
Что до курсов - вчера мне тоже запостили этот вопрос. Порекомендовал... начальные
курсы по Ораклу - там как раз на год по времени и дают неплохо. Правда стоит это
удовольствие дороговато - 10.000...
А если без шуток, то нужно достаточно профессиональное введение в программирование.
При том тренаже, который я проводил, это занимало порядка трех месяцев и из группы в
14-15 человек в нормальном темпе информацию могли освоить 5-6 человек... при том, что
полные дубы отсеивались до начала тренажа.
Так что если у кого есть желание самостоятельно учиться по книжкам и достичь хоть
сколь-нибудь существенного уровня - готовьтесь к тому, что вы будете каждый божий
день читать какую-то новую литературу и пробовать что-то делать в течениии лет этак пяти...
По прошествии этого времени - сможете что-то делать... но чтобы продолжать мочь это
делать, будете полностью переучиваться, в том же или чуть большем объеме, что освоите
за первые пять лет, - каждые три года...
Так что - думайте, не зря Tomasson разделил на профи и любителей...
#6 
Murr коренной житель30.08.06 20:25
Murr
NEW 30.08.06 20:25 
в ответ scorpi_ 30.08.06 19:46
Я об том же. ПХП для (само)обучения непригоден. С++ - нормально, но нужны задачи, которые можно реально считать, а не заморачиваться на проблемах GUI. Плюс, все же нужно систематизированное введение с контролем на каждом этапе... иначе - долго...
#7 
voxel3d коренной житель30.08.06 22:14
voxel3d
NEW 30.08.06 22:14 
в ответ Simple 30.08.06 19:29
> Почему это? Да, непросто, зато потом что угодно сможешь понять ;)
Ты ошибаешься.
Dropbox - средство синхронизации и бэкапа файлов.
#8 
Simple Nothing is f*cked30.08.06 23:06
Simple
NEW 30.08.06 23:06 
в ответ voxel3d 30.08.06 22:14
Я не ошибаюсь.
#9 
voxel3d коренной житель30.08.06 23:16
voxel3d
NEW 30.08.06 23:16 
в ответ Simple 30.08.06 23:06, Последний раз изменено 30.08.06 23:20 (voxel3d)
Объясни мне монаду Cont Хаскеля.
http://www.nomaware.com/monads/html/contmonad.html
Dropbox - средство синхронизации и бэкапа файлов.
#10 
  scorpi_ скептик30.08.06 23:40
NEW 30.08.06 23:40 
в ответ voxel3d 30.08.06 23:16
так я и думал, что сейчас что-нибудь функциональное объявится!
Мы тут о новичках говорим, а ты с Хаскелем
#11 
voxel3d коренной житель31.08.06 00:10
voxel3d
NEW 31.08.06 00:10 
в ответ scorpi_ 30.08.06 23:40, Последний раз изменено 31.08.06 00:20 (voxel3d)
Не, про новичков я не влезаю, я затрудняюсь вообще что-либо там сказать, т.к. начинаю думать, что потерял очень много времени начиная с императивщины и теперь вынужден и математику изучать и менять образ мышления, но, посколько, я пока не продвинулся особо в функциональщине, то не в состоянии оспорить ваш диалог и высказать мегамысль, что новичков надо сначала математикой пичкать. Но утверждение Симпла о том, что С++ это самое сложное и после него раз плюнуть изучить что-то другое, я, думаю, смогу оспорить, фактически я сам так думал, пока моя экс супруга начав учится в местном уни не попросила меня помочь ей разобраться с SML. В общем, я сел в лужу тогда. С++ помог однажды только легко осилить яву и иже с ней, типа всякого мусора наподобие PHP, но не больше. Самые простые вещи из мира функциональщины вызывали у меня полнейший тормозизм.
function create(k) {
var arr = [];
for (var j=1; j<k; j++) {
arr[j] = function(n) {
return function() { alert(n*n) }
}(j);
}
return arr;
}


Простое двойное замыкание (JavaScript), но после С++ я никак не мог понять его...

Dropbox - средство синхронизации и бэкапа файлов.
#12 
  scorpi_ скептик31.08.06 00:33
NEW 31.08.06 00:33 
в ответ voxel3d 31.08.06 00:10
То что фукциональщина сложнее для понимания это ясно. Мне собственно непонятно одно - зачем тебе продвигаться в функциональщине? Я честно говоря с самой первой секунды и по сей день думаю, что это чистейшей воды извращение... shuffle В профессиональном смысле это вроде тоже довольно таки бесполезная вещь. Чистый интерес? Желание поломать голову?
ЗЫ Классная цитата: "Abuse of the Continuation monad can produce code that is impossible to understand and maintain." Только abuse даже излишне, достаточно просто use...
#13 
voxel3d коренной житель31.08.06 01:07
voxel3d
NEW 31.08.06 01:07 
в ответ scorpi_ 31.08.06 00:33
Началось вс╦ с STL. Я сразу проникся ей, как только она мне на глаза попалась и стал использовать е╦. И понял, что такую красивую систему я не смог бы придумать. Я имею в виду не то чтобы я не смог библиотеку контейнеров или алгоритмов написать, вовсе нет, мог и писал, но, вот, чтобы гармонично библиотека контейнеров с библиотекой алгоритмов ужилась, такого, неа. Я не смог бы прослойку в виде функциональных объектов, адаптеров, отрицателей, предикатов и прочего придумать.
Я бы не стал говорить, что в профессинальном смысле, это бесполезная вещь. Ты пользуешься и STL и Boost, там хренова туча взятого из функциональщины. Сигналы со слотами, функционалы, лямбды и прочее вс╦ оттуда и вс╦ находит применение сокращая объ╦м работы.
Я верю в то, что изучение функциональщины улучшит мо╦ программирование, вот и вс╦. Насколько подходяща функциональная парадигма, чтобы полностью заменить собой императивное программирование, я пока не знаю, но собираюсь это выяснить. Пока осознал, что функциональщина позволяет иметь полноценное ООП в тех языках, где его как такового и нет, например, в том же JavaScript. Несмотря на наличие наследования прототипов, инкапсуляции как таковой нет, но с помощью тех же замыканий, у "классов" легко реализуются приватные поля.
> Abuse of the Continuation monad can produce code that is impossible to understand and maintain.
А теперь замени "Continuation monad" на "C++ templates" и утверждение не потеряет истинность.
Dropbox - средство синхронизации и бэкапа файлов.
#14 
  scorpi_ скептик31.08.06 01:36
NEW 31.08.06 01:36 
в ответ voxel3d 31.08.06 01:07
А теперь замени "Continuation monad" на "C++ templates" и утверждение не потеряет истинность.
Мне всегда казалось, что шаблоны очень простая для понимания вещь... Тут уж точно abuse нужен.
С остальным можно пожалуй согласиться.
#15 
  scorpi_ скептик31.08.06 01:45
NEW 31.08.06 01:45 
в ответ Tomasson 30.08.06 18:53, Последний раз изменено 31.08.06 01:46 (scorpi_)
Для веба PHP хватит с ушами, а для программок каких-то - Java, C#.
...вот...
предлагаю на этих языках сконцентрироваться :-)

Для PHP я могу рекомендовать http://www.amazon.de/Professionelle-PHP-5-Programmierung-Entwicklerleitfaden-f%f..., но это уже для продвинутых. Для начального уровня мне кажется нет ничего лучше чем http://www.php.net/manual/de/.
По С# я не специалист. А по Java я честно говоря хороших книг не видел. Вообще.
#16 
voxel3d коренной житель31.08.06 01:53
voxel3d
NEW 31.08.06 01:53 
в ответ scorpi_ 31.08.06 00:33
По-поводу извращений, это очень спорный вопрос. Вот, скажи, что является бОльшим извращением, запись вида:
typedef void (*SIG_TYP)(int);
typedef void (*SIG_ARG_TYP)(int);
SIG_TYP signal(int, SIG_ARG_TYP);

или

signal: int * (int -> void) -> (int -> void)

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

Dropbox - средство синхронизации и бэкапа файлов.
#17 
voxel3d коренной житель31.08.06 02:16
voxel3d
NEW 31.08.06 02:16 
в ответ scorpi_ 31.08.06 01:36
> Мне всегда казалось, что шаблоны очень простая для понимания вещь..
Я думаю, с тобой не согласится очень много людей.
Мне любопытно кто-нибудь расскажет что это, зачем это и как работает, только не подсказывай :) :
template<bool> struct XXXXX;
template<> struct XXXXX<true> {};

На самом деле пример очень неудачный, оно на самом деле очень просто для понимания.

Dropbox - средство синхронизации и бэкапа файлов.
#18 
  scorpi_ скептик31.08.06 10:29
NEW 31.08.06 10:29 
в ответ voxel3d 31.08.06 02:16
Пример действительно неудачный. Шаблоны вводятся в первую очередь для type-safe замены макросов и имплементации контейнеров. Отсюда и будем плясать:
template<class T> inline
const T& max( const T& left, const T& right )
{
return left < right ? right : left;
}

Я думаю это действительно несложно.
По поводу указателей на функции - да, в С их синтакс действительно очень неудобен и сложен, но твой противопример не более интуитивен.
ЗЫ Leider keine Zeit für weitere Diskussionen - уехал в Хаген.

#19 
Simple Nothing is f*cked31.08.06 11:12
Simple
NEW 31.08.06 11:12 
в ответ voxel3d 30.08.06 23:16
scorpi_ уже, собственно, все сказал, мне добавить нечего. Функциональные языки тут не пришей кобыле хвост.
Я уже по-моему писал, что имел удовольствие заниматься функциональными языками (lisp и scheme), так что смог бы объяснить, если бы мне не было так лень. Признаю, естественно, что знание С++ мне в этом не поможет.
#20 
1 2 3 4 5 6 7 8 9 10 все