1

Тема: Чи потрібна книжка-підручник-довідник концепцій програмування?

Час від часу бачу від новачків питання про "універсальний довідник мов програмування". Очевидно, що така річ непотрібна і взагалі неможлива. Але ось інше питання: мови програмування реалізовують певні загальні концепції, такі, як алгоритм, модель, змінна, функція, рекурсія, монада, сінглетон... Кожен підручник з програмування, зрештою, зводиться до викладання частини цих концепцій для конкретної мови, від алфавіту і алгоритмів до абстрактних фабрик і комонад.
Так от, як гадаєте, чи потрібен довідник (абощо) таких концепцій з прикладами купою мов? Якщо так - ви б хотіли взяти участь в його створенні? Яким ви його бачите? Наводжу знизу кілька варіантів, але це не вичерпний список.

Подякували: leofun011

2

Re: Чи потрібна книжка-підручник-довідник концепцій програмування?

я скажу як людина яка не вчилась на відмінно і щось розуміє в програмуванні, помилки які я визнав:
1. Погано вчити програмування і не розуміти алгоритм, це має бути спочатку
2. Деякі інформаційно-математичні незрозумілі вирази: ітерація, підпрограма ( в паскалі процедура ), функція. Я впевнений, що більшість і так не скаже на співбесіді, чим відрізняється функція від процедури, це не смішно.
3. Всі добре відрізняють оперативку від процессора, але стек і роботу стеку, динамічна память не розуміють, де і шо. Навіть локальні дані, це лише дані в стеку і близько рядком лежать, це можуть бути і дані на вінчестеру, одним словом, багато чого треба описати "робітничо селянською мовою", бо не всі ми думаємо як математики, повару краще пояснити цикли на прикладах з кулінарії

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі
Подякували: koala1

3

Re: Чи потрібна книжка-підручник-довідник концепцій програмування?

Алгоритми, контейнери, ітератори, шаблони, поліморфізм, ООП взагалі, типізація строга чи ні, динамічна чи статична, декларативність, функціональщина, імперативність і т.д. От зібрати б весь цей гамбуз в одному місці для порівняння мов і їх кіллєрфіч - було б зручно. В мене були такі випадки коли такого довідника не вистачало.

life is too short to remove usb safely

4

Re: Чи потрібна книжка-підручник-довідник концепцій програмування?

Мене ваша дискусія дивує, я давно користуюсь rosettacode.org і цілком задоволений.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: Master_Sergius, Arete, ReAl, koala, leofun015

5

Re: Чи потрібна книжка-підручник-довідник концепцій програмування?

На мою думку, для новачків пояснення на різних мовах програмування більше запутає ніж пояснить якісь поняття.

6

Re: Чи потрібна книжка-підручник-довідник концепцій програмування?

sasha276 написав:

На мою думку, для новачків пояснення на різних мовах програмування більше запутає ніж пояснить якісь поняття.

А я вважаю що навпаки. Багато понять існує поза мовою програмування, а мова програмування дає конкретну реалізацію якогось поняття. Порівняння таких реалізацій з їх плюсами та мінусами дає більш широкий погляд на проблему і висвітлює її не так однобоко.

life is too short to remove usb safely
Подякували: reverse2500, leofun01, Djalin3

7

Re: Чи потрібна книжка-підручник-довідник концепцій програмування?

Rosetta code фокусується на роз'ясненні відмінностей мов, а моя пропозиція - сфокусуватися на концепціях. Тобто, наприклад, на rosetta code в розділі "масиви" сказано, що в Pascal можна нумерувати елементи з будь-якого числа; на мою думку, це має бути окрема концепція "довільна нумерація в масивах", яка не реалізована, скажімо, в C-подібних мовах.

Подякували: 0xDADA11C71

8 Востаннє редагувалося P.Y. (14.05.2016 13:44:05)

Re: Чи потрібна книжка-підручник-довідник концепцій програмування?

Невже книжки на цю тему досі не було написано? Втім, пояснюючи базові концепції, автор все одно здебільшого фіксується на якійсь певній мові.

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊