1

Тема: Системный подход

Мне часто приходят письма в духе "научи меня прогать". Последнее вот от Драмера прискакало:
[spoiler]

DRAMER пишет:

XD короче я хочу иметь XD такой же уровень программирования как у тебя XD ( я даже хз какой у тебя)
Ну или тупо помоги мне, отвечая на мои тупые вопросы)
Мне надо знать:
1)Как ты начал? не сразу же ты сел и все сразу узнал XD
2)Ты же не учился(в вузах,школах и тп) да?
3)Что ты сначала учил,знал?(сразу знал c++,бейсик,паскаль там XD)
4)Что ты читал?(книги мб какие,форумы мб,журналы :D)
5)Что надо будет знать что бы с легкостью написать то, что тебе нужно(например свой тупой калькулятор XD(без просмотра всяких "шаблонов")
6)Что посоветуешь?
У меня есть стремление,свободное время,мозги
я не знаю с чего начать...пробывал почитать книги про c++,делфи...ниче так и не смог...
:)

[/spoiler]
[i]Поскольку я всегда отвечаю одно и то же, то создам вот темку с ответом и буду на такого рода ПМы отправлять сюда.
Лень — двигатель прогресса.[/i]
У меня для решения абсолютно всех [u]практических[/u] задач в жизни один-единственный метод. Я серьёзно советую потратить 2 минуты и его изучить.

1) Сначала ставлю задачу. Что-то вроде "Хочу вот такую вот херню, которая может делать так вот и так вот".
2) Потом разбиваю задачу на составные части: "Та херня, что мне нужна состоит из херни А и херни Б, которые соединены хернёй В, к которой прилеплена херня Д".
3) Далее леплю по-очереди составные части, начиная с тех, которые я точно знаю как лепить. Если я сам не ебу как слепить часть — изучаю вопрос — как же её слепить и по ходу разбирательств леплю её.
4) Все составные части соединяю воедино.
5) Смотрю на получившееся (в 80% случаев получается говно). Если получившееся меня не устраивает, возвращаюсь к пункту 1 (реже) или 2 (чаще), но учитываю все свои ошибки. Если получившееся устраивает — танцую.

Теперь, чтобы не быть голословным я вкратце расскажу как я научился программировать. В школе мне преподавали в Turbo Pascal 7.0, в институте C++. Толку от этого было не очень много, ибо скукотень редкостная была, да и уровень преподавания оставлял желать...
Я, конечно, баловался написанием всяких простеньких программок вроде "угадай число" или "морской бой", без графического интерфейса — тупо в консоли, но это было совершенно несерьёзно. Первая действительно серьёзная программа, мной написанная, — iBot, тот самый iBot для тори. Сейчас попробую вспомнить, как я её писал.

1) Сперва поставил задачу: написать бота, который умел бы приконнектиться к серверу тори и чтобы через него можно было чатиться из окна бота.
2) Разбил задачу на составные: выбрать язык реализации, написать GUI (который я хз как писать — ни разу в жизни не пробовал) и обучить бота работать с интернет-штуками (на тот момент я не знал, что мне нужны сокеты, да и вообще не знал что такое сокеты).
3.1) Язык реализации взял C++ (вроде как в институте "проходил") и сдобрил его надстройкой QT (про которую краем уха слышал).
3.2.1) Скачал QT, долго-долго его ставил поверх msvc6 (нетривиальная задача, но я тогда не знал инных способов — я и этого-то не знал =).
3.2.2) Загуглил, как же сделать "hello world" под QT.
3.2.3) Загуглил, как сделать кнопочки, поля для ввода и как их всех связать (чтобы когда на кнопочку нажал — что-нить эдакое происходило).
3.2.4) Сделал что-то вроде "чата с самим собой". То есть как бы уже чат бот, но без интернета, лол.
3.3.1) Долго пытался понять "как работает интернет". Нет, серьёзно, сложно было понять тупо что мне именно надо. Напомню, что я в то время ни с кем из тори знаком не был, а друзей-программистов у меня отродясь не было.
3.3.2) Понял, что мне нужны некие загадочные "сокеты". Долго пытался воткнуть, что это такое (убивает, что нормальных статей по элементарным, начальным вещам — днём с огнем не сыщешь). До смешного доходило, я до последнего момента не был уверен, какой тип сокетов мне нужен: UDP или TCP. Более-менее разобрался, собрал интернет-часть бота.
4) Соплями прикрепил интернет-часть бота к GUI.
5) Получаю iBot 0.1. Смотрю. Вижу, что говно. Возвращаюсь к пункту 1. Получатеся iBot 0.2. Затем 0.3, 0.4, 0.5, 0.6. После 0.6 был почти написан 1.0 (путём полного преписывания начисто версии 0.6), но тут уж я просто плюнул — надоело =).

Вот примерно так всё было. На всё ушло около недели.
Так, пожалуй, я на ответил (пусть и не в том порядке) на все вопросы кроме "Что надо будет знать что бы с легкостью написать то, что тебе нужно". К сожалению ответ тривиален: "нужно знать ровно то, что нужно для данной конкретной задачи". Всего знать не возможно. Да и не нужно — есть же гугл. Я даже когда что-то совсем простое пишу частенько вынужден подглядывать то туда, то сюда. И это нормально =).
P.S.: Метод применим для решения очень широкого круга чисто практических задач: от "как провести выходные" до "как бы с ней переспать".
P.P.S.: Метод не даёт [i]систематических[/i] знаний. И это — та самая ложка дёгтя.



2

Re: Системный подход

[b]iLLepidus[/b]
Гуманитарии can't (сужу по себе, наверное неправ, но всё же).
А так-спасибо ^^

http://img842.imageshack.us/img842/8974/tghtfgh.png
Чат в подписи ннада? :3 ~ЧижЭ
Нет, Молотов! Мы уже слишком стары для этого ~дефкно


3

Re: Системный подход

Боги услышали мои молитвы.
*пошел учить турбо паскаль,потом c++*

[center]http://steamsignature.com/badge-76561197997979977.pnghttp://steamsignature.com/AddFriend.png[/center]
Продам ТС. Много. Курс - 2.5 руб \ 1к. Принимаю: webmoney. Скайп wat0m1


4

Re: Системный подход

имхо, программирование - это как рисование: кому-то дано, кому-то нет.

[align=center]http://pics.madnesss.net/images/bfi1338196086n.png[/align]


5

Re: Системный подход

А кто-то считает, что это круто и полезно, но зачем именно оно нужно ещё толком не понял... Да, драмер?)

Боишься? -не делай. Делаешь?- не бойся.


6

Re: Системный подход

[b]DRAMER[/b], я завтра кину, что нибудь из своего конспекта.
С чего начинать, кого читать etc.
набор для разработки (редакторы, компиляторы...)
Турбо паскаль думаю не нужен для изучения С++
С++ для чайников
Герберт Шилдт "Руководство для начинающих" - не читал, говорят хорошо пишет, книг у него много.

Я спать, напомни в личку если что.



7

Re: Системный подход

[u]Насчёт Turbo Pascal.[/u]
1) Я почти уверен, что ты Turbo Pascal не запустишь: это старая DOS'овская программа, с XP не совместима без плясок с бубном.
2) Нужды изучать TP тупо нет: он просто входил в мою школьную программу, с тех пор много воды утекло =)
[u]Какой язык взять для начала[/u]
Если всё равно что делать -- попробуй Javascript. Преимущества Javascript'a состоят в том, что ничего не надо качать, ничего не надо устанавливать: всё уже есть. В блокноте пишешь скрипт, в браузере его запускаешь, вот и всё. Плюс ещё и в том, что на javascript тебе куда будет проще писать, чем на C или делфи. Кроме того, освоив с JS, ты автоматически освоишь язык гипертекстовой разметки (HTML то бишь), освоив HTML ты задумаешься о PHP, освоив PHP, по любому задумаешься о SQL... А там мимоходом познаешь и об ООП, регэкспах, XML, XSLT, SVG, канвасах, ассинхронных запросах и датаграммах... Самое сложное -- начать =).

<script>
    alert("Hello, world!")
</script>

Ах да, забыл упомянуть. Я всегда программирую исключительно в блокноте (Notepad++ под Windows, Geany под Linux). В блокноте ваяю интерфейсы, пишу научные статьи, верстаю HTML страницы, пишу скрипты etc.
Насколько мне известно, это далеко не самый популярный подход, но, ИМХО, он самый лучший. Но это  так, просто маленький совет.



8

Re: Системный подход

Есть над чем задуматься... Отличная тема =) +



9

Re: Системный подход

раз уже затронули эту тему, хотелось бы узнать на сколько сильно Delphi уступает С++? Можно ли вычудить с ним то, что предлагает Илл?



10

Re: Системный подход

madnesss пишет:

имхо, программирование - это как рисование: кому-то дано, кому-то нет.

да ну, не соглашусь, тут намного ближе к математике с её алгоритмами, чем к неопределённому "рисованию" :v

http://img842.imageshack.us/img842/8974/tghtfgh.png
Чат в подписи ннада? :3 ~ЧижЭ
Нет, Молотов! Мы уже слишком стары для этого ~дефкно


11

Re: Системный подход

madnesss пишет:

имхо, программирование - это как рисование: [s]кому-то дано, кому-то нет[/s] надо работать чтобы что-то вышло.

[align=center]О БОЖЕЧКИ! МЫ ПЕРЕЕХАЛИ! HELL YEAH![/align]
[align=center]http://img191.imageshack.us/img191/3818/f80503dbf7c22e048ea967c.gif[/align]


12

Re: Системный подход

madnesss пишет:

имхо, программирование - это как рисование: кому-то дано, кому-то нет.

программирование - это мозги, а дальше как ты уже написал =D

defcon пишет:

да ну, не соглашусь, тут намного ближе к математике с её алгоритмами

программирование по сути и есть математика =)

shevaroller пишет:

раз уже затронули эту тему, хотелось бы узнать на сколько сильно Delphi уступает С++? Можно ли вычудить с ним то, что предлагает Илл?

я бы не сказал, что делфи уступает си, кому как удобно, тот так и делает...
хотя.. на асемблере это делать было бы дольше =D

iLLepidus пишет:

Насчёт Turbo Pascal.
1) Я почти уверен, что ты Turbo Pascal не запустишь: это старая DOS'овская программа, с XP не совместима без плясок с бубном.

нене, норм запускается..)
хотя я pascalABC юзаю

http://img.klavogonki.ru/userbar/ub4-204995.gif


13

Re: Системный подход

Hammerfall пишет:

нене, норм запускается..)

Ну ты блин сравнил!
[spoiler][align=center
[img]http://attachments-blog.tut.by/38420/files/2010/04/1169146960.jpg[/img]
[size=20][color=red]VS[/color][/size]
[img]http://informatika-mex.moy.su/soft/turbopascal.png[/img]
[/align][/spoiler]
И да, лично мне Delphi/Pascal (одно выросло из другово) не нравятся. Синтаксис ни разу не удобен потому что. Все эти бесконечные "begin" и "end" вместо "{" и "}"; ":=" вместо "="... Как вспомню -- так вздрогну. А я ведь с паскаля начинал! А разгадка простая: Pascal изначально задумывался как язык для школоты (то бишь для обучения). Такие дела =).



14

Re: Системный подход

[b]iLLepidus[/b]
у меня и турбо паскаль был, прост там графика лагала и меня этот синий фон смерти смущал.. вот я и поменял его на абс)
зы: язык программирования то один)

http://img.klavogonki.ru/userbar/ub4-204995.gif


15

Re: Системный подход

Хм, а если у меня уже есть определённые навыки работы с Паскалем, это может помочь мне в C++?



16

Re: Системный подход

shevaroller пишет:

Хм, а если у меня уже есть определённые навыки работы с Паскалем, это может помочь мне в C++?

Обязательно поможет.



17

Re: Системный подход

CkyT пишет:

DRAMER, я завтра кину, что нибудь из своего конспекта.
С чего начинать, кого читать etc.
набор для разработки (редакторы, компиляторы...)
Турбо паскаль думаю не нужен для изучения С++
С++ для чайников
Герберт Шилдт "Руководство для начинающих" - не читал, говорят хорошо пишет, книг у него много.
Я спать, напомни в личку если что.

уже качаю)
С++ для чайников немного читал..)

iLLepidus пишет:

1) Я почти уверен, что ты Turbo Pascal не запустишь: это старая DOS'овская программа, с XP не совместима без плясок с бубном.

[spoiler][img]http://www.cs-4ut.net.ru/images/bezymjannyj.jpg[/img][/spoiler]

iLLepidus пишет:

2) Нужды изучать TP тупо нет: он просто входил в мою школьную программу, с тех пор много воды утекло =)

Понятно)

[center]http://steamsignature.com/badge-76561197997979977.pnghttp://steamsignature.com/AddFriend.png[/center]
Продам ТС. Много. Курс - 2.5 руб \ 1к. Принимаю: webmoney. Скайп wat0m1


18

Re: Системный подход

iLLepidus пишет:

1) Я почти уверен, что ты Turbo Pascal не запустишь: это старая DOS'овская программа, с XP не совместима без плясок с бубном.

Да ну есть много программ они если не ошибаюсь называются трансляторами (но не уверен).
Ещё в прошлом году на информатике изучали этот язык на XP на самом деле ничего не помню уже, решали задачи при помощи алгоритмов, калькулятор итд.

Hammerfall пишет:

я бы не сказал, что делфи уступает си, кому как удобно, тот так и делает...хотя.. на асемблере это делать было бы дольше =D

Тут 1. 2. пункты у Илла



19

Re: Системный подход

Программисты это технари-ньюфаги. Дискасс.
EDIT:
ТруЪ технари сначала составляют схему решения необходимой задачи. Затем составляют порядок и уравнение. После чего берут симуляторы IC(Atanua/SPICE или даже игровые kohctpyktop/gmod-wiremod) , проэктируют нужную схему, затем берут радиолампы и начинается дикий анальный секс с ними при помощи паяльника и макетных плат. После удачного конструирования они пропивают своё творение.

http://fc02.deviantart.net/fs70/f/2012/044/b/2/fluttershy_sig_by_vinnieofsiftheads21-d4nyxke.png