Показать сообщение отдельно

  #9  
Старый 07.06.2009, 18:52
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
С нами: 10139366

Репутация: 1502


По умолчанию

Что-то я прочтиал вниаметельно этот текст.. и как-то не могу промолчать.

Начну с середины - так обстоятельнее будет.

Цитата:
3) Определение первого языка для обучения. Эта часть займет около пары часов.
Эта часть может занять пару лет...
Цитата:
язык типа паскаля или бейсика: которые не применяются.
Процитирую одного моего знакомого: "Люди, которые начинали с бейсика, очень тяжело вылечиваются". По себе знаю.. но я вылечился)

Паскаль - хороший язык - но он действительно мёртв - и бессмыссленно пытаться осозновать в теперешнее время на уровне "а в досе было так", кроме как для исторической справки. Ну или для номинации demo 128b )). Начинать, так уж с делфы. Вирт очень неплохо постарался...

Цитата:
Разочарую их: Delphi и паскаль не имеют ничего общего кроме небольшого сходства в синтаксисе.
Вот тут можно поспорить, но это не так важно..

Цитата:
Однако хочу дать заранее совет: не стоит начинать с низкоуровневых вещей
А вот это бесспорно) но кому-то удаётся...

Цитата:
Итак, что у нас остается: Java, .NET(C#, VB.NET <...>), Delphi <...>. и скриптовые языки: Python, Ruby, Perl.
Java - абсолютно убогий язык, не устаю об этом повторять - и не стоит о нём вообще задумаваься, если заставлять не будут. Желающим поиграть с вм можно на Оберон посмотреть, про всё в этом языке (даже называть его по-другому не хочется - этот язык) даже хочется употребить слово "опошлено".
.NET - ей я не особенно занимался, но начинать с этого точно не стоит, так как появилась она как очередной продукт топ-менеджеров.
Delphi - да. именно с него и стоит. Притом желательно с версий <=7 (на выбор: 3, 6, 7). Самые последние версии я не смотрел (ещё), но 8-ая уже целиком прогнулась под микрософт под .NET. Хотя вроде обещали в последнем 3 варианта делфы - .NET, обычная и Prism - так что может и ничего.(Greets to Embarcadero)
Python - не знаю. Тут во мне возникает какое-то сомнение, хотя может оно и навеяно нелюбовью к скриптовым языкам вообще... пожалуй, тут я промолчу.
Ruby - почти ничего сказать не могу, так как очень мало им интересовался. Но то, что я слышал, говорило, что "Delphi Prism взял у Ruby идею типа 'переменная=класс'", что влечёт некоторые логические противоречия.. Об этом написано в ["Основы будущих систем баз данных. Третий манифест" (Дейт, Дарвен)] на примере "relvar = class". Но это только то, что я слышал. Можете меня поправить.
Perl - думаю, ясно, что это не то, с чео стоит начинать )
Цитата:
Так же существует PHP
Действительно. Существует такой ужас, которые некоторые языком программирования называют.

Цитата:
Сам бы я посоветовал Python или бейсик
А делфа таки лучше... Вирт - умный человек.. Уж он-то для своих студентов (и для облегчения жизни себе) постарался.

Цитата:
Кстати их объединяет одинаковая типизация: dynamic, strong. Кстати хочу заметить, что именно strong типизация позволит минимизировать количество логических ошибок.
Это dynamic позволет минимизировать количество логических ошибок? Неубедительно...

Цитата:
У C <...> типизация weak(слабая).
В C достаточно сильная типизация. Уж точно не надо ставить её в один ряд с пхп.

Цитата:
4) Итак язык выбрали, с чего начинать?
<...>Пример задачки(задача 1) можно увидеть в приложениях.

Задача 1 (уровень: продвинутый школьник)
Старая задачка, обычно на школьных олимпиадах ее дают:
Имеется матрица (n*m) заполненная 1 и 0. Единицы - это острова, а нули - море. Если единицы находятся рядом по горизонтали или вертикали - то они образуют один остров. Найти количество островов.
Ну.. конечно можно сразу писать dfs - но... всё-таки человек, который только начал программировть не знает даже такого алгоритма. Может, он и вообще про графы не знает... Калькулятор что ли лучше написать.. даже не знаю.

Цитата:
6) Чем отличается реальная задача от задачи из задачника? <..>Кстати, на этом этапе уже можно начинать зарабатывать. Однако качество продуктов будет хреновое
Всё о том же?(
Цитата:
Решаем задачу 2(в приложениях). Задача 2 Написать аналог wget.
Ну да. Так можно)

Цитата:
7) Насчет проблем из пункта 5. Итак, изучаем ООП. Именно практическую часть, т.к. в пункте 4 теория уже была выучена. Этап занимает достаточно много времени.
А можно и начать с ООП) ведь что может быть интуитивно понятнее, чем:
Кастрюля = Посуда.Взять(Кастрюля);
Кастрюля.ЗалитьВоду(1 литр);
Каша = Крупа.Взять(Греча, 250 грамм);
Кастрюля.Засыпать(Каша);
и т.д. ?)

Цитата:
Так же больше работаем на практике: регулярные выражения, работа с БД и SQL, GUI, сокеты, высокоуровневые протоколы, такие как HTML, FTP и всякие xmlrpc и SOAP, набор технологий XML и прочие.
Какой некрасивый уход от чистого и иделаьного в теории ))
Можно действительно научиться всем этим пользоваться. Это даже полезно... Но я бы на этом этапе посоветовал почитать классику - Кормена, Кнута... Постичь сложные части программирования. Работа со всем вышеописанным - это прочтение нудной документации и способность её воспроизвести. Но мы же хотели творчества, не правда ли? Можно вообще заняться чем-то полезным, как например осознать весь ужас существования SQL'я и задуматься о Базах Данных, начитаться лиетературы, создать что-то новое и хорошее, а не то, что 20 лет назад должно было умереть, а до сих пор используется из-за вложенных в него капиталов(greets to Sun, Oracle,...). Вот в книжке уже мной упомянутой одно из положений основных гласит, что новый язык для работы с БД "не должен называться SQL". Почитайте, хорошая книжка... Да, но что-то я куда-то в сторону отошёл.

Цитата:
Решаем задачу 3(на выбор).
Задача 3A Написать BB-парсер. Естесвенно не тупой подстановкой регекспов.
Задача 3Б Интерпретатор/HTTP-сервер/etc на выбор.
Вот это всё уже требует использования достаточно мощных алгоритмов, либо написания совершенно тупого и медленного кода. А про интерпретаторы ты как-то сильно загнул) Нефиговая такая задачка для начинающих... Обложиться тонной умных книжек.. почитать.. написать..

Цитата:
Ты уже будешь сам знать, что тебе дальше делать.
Резонно.

Цитата:
6) Есть такое заблуждение: "Программист - это тот, кто умеет составлять алгоритмы". Так вот: умение составлять алгоритмы - требование обязательное, но не достаточное, на этом дальше 5 пункта(в этом обзоре) не уедешь.
Человеку, умеющему составить алгоритм, не составит труда за непродолжителное время его реализовать. Притом - на любом языке.


А теперь вернёмся к началу...(сейчс будет экспрессия)) )

Цитата:
1) А надо ли мне это?
действительно, советую хорошо подумать
Если вообще возникает ткой вопрос - то тогда действительно только деньги могут заставить человека приступить к такому.

Цитата:
2) Для чего?
A сам-то как ответишь? (првада интересно) Варианта 2:
либо, как в п.1, надежда заработать на этом,
либо - это огонь в глазах, когда видишь клавиатуру, когда рядом исполняется работающий (даже чужой - тогда с оттенком зависти) код, это экстаз от многочасового дебага, это желание услышать собственный треск жёсткого диска, собственную загрузку процессора.. и щенячий восторг от очередного успешно пройденного теста. И как тут мог возникнуть вопрос "Для чего?" ??


---------
Что-то какой-то длинный отзыв получился..
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ