как учить программировать[1]

  • View
    98

  • Download
    0

  • Category

    Design

Preview:

Citation preview

Как учить программировать?

Как учить программировать?

Что исчезнет, что останется?

Железо?

Железо?Не нужно

Systems engineering?

Systems engineering?Не нужно

Современные языки программирования?

Тоже не нужны?

4G languages• LabVIEW• Informix• Quest

• SuperCard• AIMMS• R

• Culprit• SQL!

4G languagesSEQUEL is intended as a data base sublanguage for both the professional programmer and the more infrequent data base user

- “Sequel: A structured English query language”, - D. Chamberlin, R. Boyce, 1974

O RLY? Subquery Scan testview2 (cost=395272.42..395600.96 rows=8761 width=24) (actual time=0.147..562.790 rows=8761 loops=1)

-> CTE Scan on testcte (cost=395272.42..395447.64 rows=8761 width=36) (actual time=0.144..554.194 rows=8761 loops=1)

CTE testcte

-> Seq Scan on test1 t1 (cost=0.00..395272.42 rows=8761 width=12) (actual time=0.140..542.657 rows=8761 loops=1)

SubPlan 1 -> Aggregate (cost=15.02..15.03 rows=1 width=4) (actual time=0.019..0.019 rows=1 loops=8761)

-> Bitmap Heap Scan on test2 t2 (cost=4.28..15.02 rows=1 width=4) (actual time=0.012..0.013 rows=0 loops=8761)

Recheck Cond: (test1_id = $0)

Filter: ((category)::text = 'A'::text)

-> Bitmap Index Scan on test_if_idx (cost=0.00..4.28 rows=3 width=0) (actual time=0.007..0.007 rows=3 loops=8761)

Index Cond: (test1_id = $0)

SubPlan 2

-> Aggregate (cost=15.02..15.03 rows=1 width=4) (actual time=0.019..0.019 rows=1 loops=8761)

-> Bitmap Heap Scan on test2 t2 (cost=4.28..15.02 rows=1 width=4) (actual time=0.012..0.012 rows=0 loops=8761)

Recheck Cond: (test1_id = $0)

Функциональные языки?

Академия –> Мэйнстрим

Функциональные языки• Не победили за 40 лет• Сложны в использовании

Императивные языки• Переменные• Ветвление• Циклы

• Повторное использование кода• События и функции высших порядков - фронтенд

Язык для обучения• Императивный

• Простой синтаксис• Минимум boilerplate

• Используется в индустрии

Язык для обучения

JavaScript + P5.js

JavaScript + P5.js• JavaScript – браузер, сервер, мобилки, видео, игры, IoT• JavaScript – много материалов и инструментов• JavaScript – достаточно браузера, никакой установки и vendor lock-

in• Изображения и анимация – все нужные концепции• Проблемы – очень быстро развивается• Библиотеки – это для ПТУ

JavaScript + P5.jsJavaScript – несерьезный язык?

• Плохо с повторным использованием кода – раньше• Сейчас – модули, классы (ES6)• Самый быстрый из интерпретируемых• Слабая стандартная библиотека? Да• Полезно для обучения

Y U NO RUBY?• Rails or GTFO

• Много магии – мало уверенности• Rails sucks

Y U NO JAVA?• Много лишнего – сложно учить• Много лишнего – сложно делать

Y U NO HASKAL?• Or Scala, or ML, or F#...• Сложны сами по себе – студент не поймет• Сложно преподавать – материалы• Сложно писать – академические корни, плохая экосистема

FINebonfortress@gmail.com

Recommended