Как быстро и просто научится программировать.

Наткнулся на курс по быстрому изучению программированию на JS.
Курс построен для новичков. То есть переходя от простых заданий к более сложным.

Ссылка

Комментарии (52)

RSS свернуть / развернуть
JS штука довольно специфичная. В том, будет ли от знания JS польза для ембеддеров — я сомневаюсь.
+1
Полностью согласен.
Однако для многих будет интересно пройти этот курс, как говорится для галочки(хотя я могу ошибаться).
0
JS не надо для галочки проходить, это действительно интересный и полезный в реальной жизни язык программирования. Но для эмбеддеров он практически не несет пользы, поскольку концепции, которые в нем реализованы в большинстве случаев не применимы к эмбеддед программированию. Хотя замыкания и ОО основанное на прототипах это очень интересно, полезно и удобно там где применимо.
0
Для эмбеда JS как раз актуален, хотя и нечасто. Для веб-морд.
0
Во многих твоих девайсах есть вебморда?
0
У меня и девайсов-то пока негусто. Но в планах есть и с вебмордой.
0
Так отож. Девайсы с вебмордой это уже на грани между ембеддедом и обычными писюками, а такое делают немногие, да и то, чаще всего, на основе готовых плат на SoC-ах.
0
ну зачем жс в морде?
0
Для интерактивности и реактивности интерфейса. К тому же он позволяет значительную часть работы с пользователем переложить на клиент, урезать траффик к девайсу (нарезав его на мелкие аякс-вызовы), сократить объем необходимого статического контента и/или упростить реализацию веб-сервера.
+1
мне кажется что трафик как раз будет большим при аяксе. да и сам аякс усложняет логику морды со стороны сервера, что при силенка наших контроллеров лишнее. единственное что можно — проверить значения на стороне браузера, опять же разгружая контроллер
0
Таки напротив, аякс позволяет убрать логику GUI на сторону браузера, оставив со стороны контроллера простые обработчики аякс-запросов, причем в скрипте можно легко формировать эти запросы в удобном для обработки на МК виде.
Трафик он сокращает за счет устранения необходимости перезагружать страничку при каждом изменении отображаемой инфы.
0
как бы сам трафик (а вернее его количество) не страшен. страшнее количество РАЗНЫХ запросов, при чем каждый со своей обработкой.
0
Для нормального сервера — да. Для вебморды МК — нет.
Причем запросов, вообще говоря, сильно меньше не станет — только вместо минимального набора данных для аякса придется перегенерировать всю страничку.
Ну и с JS можно практически всю вебморду сделать статической и хранить в сжатом виде или на внешнем носителе, генерить придется только ответы на запросы. Иначе придется хранить шаблоны и генерировать странички из них.
0
Мой опыт говорит строго обратное — аякс снижает траффик, причем существенно. Отдал один раз всю статику и все, дальше только точечные запросы с минимальным количеством необходимых данных, причем только тех, которые генерятся динамически. Логика сервера при этом не усложняется, поскольку для геренации страничек нужны все те же самые данные, только их нужно еще отформатировать и сгенерить хтмл. Иначе говоря, запросы на эти данные есть в любом случае, а вот их оформлением для показа юзеру занимается браузер, а не сервер.
0
вы все не о том. я хочу сказать что аякс он расчитан на асинхронную работу. то есть пользователь ввел одно поле, пока он заполняет второе первое отправили на сервер и проверили. нам же эффективнее послать все содержимое и обработать разом. а про преимущества динамического заполнения страницы можно спорить бесконечно. здесь я до конца не определился, но больше склонен к вашему варианту.
0
Не обязательно. AJAX в основе — механизм общения странички с сервером небольшими запросами без ее перезагрузки. Как именно его использовать — дело несколько другое.
Для вебморд он подходит весьма хорошо — это зачастую куча несвязанных контролов, которые совершенно незачем обрабатывать одновременно. Зачем, например, перезагружать всю страницу при нажатии кнопочки «включить LED3», когда там еще десяток подобных кнопочек? Разумней обрабатывать GUI у клиента, а к МК обращаться только непосредственно с командами и запросами данных.
0
Нам без разницы, веб сервер все равно должен в какой-то мере поддерживать асинхронность, иначе тормоза будут. Сейчас практически все браузеры начинают качать картинки сразу, как только их обнаруживают во входящем потоке, задолго до завершения закачки и, тем более, до завершения рендеринга. Типичная динамическая страница начинает жить после загрузки, как минимум, всей страницы и скриптов, то есть параллельно с докачкой остатков графики. Это, то, что касается асинхронности. Что же до эффективности, то с этой точки зрения тоже эффективнее отдать статический контент не делая с ним вообще ничего и только потом постепенно отдать данные нужные в конкретной ситуации без обработки (форматирования и прочих заморочек). Это и по коду проще, кстати.
0
Ну я бы так не сказал. Во первых — вон цикл статей Lifelover'а, в последних как раз вебморды (да-да, в том числе на том самом JS), настолько популярный, что первый модуль расширения к пниборду — именно ENC28J60. Реализовано на обычном AVR, а вовсе не SoC'е.
Во вторых — в продвинутых семействах МК (LPC17x, STM32F107x) на ядре ARM эзернет уже встроенный. А где эзернет — там и до вебморды недалеко.
0
У меня есть, но, правда, курс мне уже не актуален.

Но научиться программировать можно на любом обычном языке) Главное ж алгоритмизация, а не реализация.
0
На любом обычном языке можно научиться программировать на этом языке. На другом языке лучше учиться программировать заново, именно на этом языке. Да и алгоритмизация, вобщем, не самое главное, тем более, что алгоритмы решения значительной части задач давно известны. Декомпозиция задачи на части и протоколы их взаимодействия, зачастую, важнее, а эти вещи зачастую сильно разнятся даже во внешне весьма похожих языках.
0
В самом начале у многих именно проблемы с порядком действий и задании алгоритма работы (не копипастой с книжки, а так). Ну не знают они, что надо писать. А протоколы — это вообще такая вешь для них неизвестная и непонятная.

Насчёт декомпозиции согнласен =) Тоже не знают, как разделить задачу на элементарные действия, из которых можно составить алгоритм.

Хотя правда, JS для начала программирования именно МК малопригоден. Слишком уж свободен и нетипичен для требуемого типа задач.
0
Но согласитесь, идея хороша. И было бы неплохо создания аналогичного курса для многих языков.
0
Есть похожий курс про гит try.github.com/
0
однозначно будет, не всем интересно играццо в песочнице дихальта, хотя заглядывают сюда многие
0
Хмм. Каким боком это к эмбеддинг-программированию?
0
тем боком что многих интересует свой отдельный бложек или другого плана ресурс, при допиливании фич которому знание жс-а будет не лишним
0
Врядли этот курс дает достаточные знания, что бы решать такие задачи.
0
начинать полюбому с чего то надо ;)
0
Конечно. Просто для обучения каким-либо концепциям программирования разумнее всего брать инструмент в котором эти концепции четко выражены.
0
Посмотреть базовый синтаксис != «быстро и просто научиться программировать».
0
Категорически согласен. Особенно с учетом того, что базовый синтаксис JS ничего особенного из себя не представляет.
0
А это у меня у одного такая ерунда: прохожу значится я первый курс и тут на тебе:

Или это беда FF? Это напоминает мне сайт microsoft, который дает возможность качать одновления лишь через IE :)
0
Сори, поспешил. Это уже есть у них в обсуждениях. А так, курс вроде ничего, более/менее интересный ну и главное бесплатный! + вроде есть возможность изучить и другие языке (питон например).
0
Проблема все еще не решена, на их форуме никто не отвечает. Жаль :(
0
Не решают уже давненько=) Причем косяк только в начале.
0
Кстати, а на великом и могучем получается только первый урок? Остальное на инглише?
0
Ага, причем перевод тоже давно обещают
0
Класс… Надеюсь они таки соберутся!
0
У меня кстати «Getting Started with Programming» вообще 0 процентов!
0
нихрена не понимаю таких «курсов». с одной стороны если знаешь какой то один си-подобный язык то вроде уже должен с ходу научиться на другом писать. но с другой стороны сам язык не сложен, а сложно понимание того в какую сторону думать. ну и апи везде свое. так что не понимаю.
0
  • avatar
  • xar
  • 13 июля 2012, 22:44
сам язык не сложен, а сложно понимание того в какую сторону думать. ну и апи везде свое
Вот это верно подмечено. И хотя это применимо ко многим языкам, к JS это особенно относится. Не смотря на внешнюю простоту, для эффективного использования в нем надо изрядно вывернуть мозги. А prototype-based OO вообще не часто встречающаяся в других языках концепция, опыт других видов ОО тут помогает не сильно.
0
тут хорошо помогает опыт смолтолка, но там мозги надо вывернуть ещё больше )
а уж как их приходится выворачивать когда пользуешься continuation-ами )))
0
Так отож. И подобная фигня, по большому счету, есть в любом языке программирования.
0
js тривиален для ПОВЕРХНОСТНОГО понимания и применения, но сложен для глубокого понимания и эффективного использования. И сложность там не в синтаксисе или различных API, а в подходах и возможностях.
0
смотря что подразумевается под эффективным использованием. как правило многие пытаются поднять эффективность разработки, при этом не задумываются о требуемых для работы приложения ресурсах. часто программы написанные на яс «эффективно» работают медленнее чем написанные на голом яс без всяких наворотов новичком.
0
Я не про исполнительную эффективность — это другой аспект. Я про выразительную. Умение делать сложное очень просто… Но и исполнительная эффективность от этого зависит тоже.
0
умение «делать сложное просто», противоречащее «написанные на голом яс без всяких наворотов новичком» как правило равно использованию всяческих jquery(нет. я не противник) и extJS(тоже не противник, но меру надо знать)
0
Чем JS полезен для эмбеддера на конкретном примере в любом проекте. Для начала порекомендую IDE для разработки на JS: PrimalScript 2011

А вот пример работы, который я возлагаю на скрипты: versionfile-gen.js, versionfile-update.js, version.txt, prebuild.cmd и postbuild.cmd.

И всё для того, чтобы при каждой компиляции у меня автоматически работала система отсчёта версии программы, формируя заголовочный файл Version.h:


///////////////////////////////////////////////////////////
//  Version.h
//  Implementation of the Class CVersion
//  Created on:      11 мая 2012 г. 7:02:48
//  Original author: Мезенцев В. Н.
///////////////////////////////////////////////////////////

#if !defined(EA_E62E5FD4_3D22_4581_B2F7_BE7DF95D3FBC__INCLUDED_)
#define EA_E62E5FD4_3D22_4581_B2F7_BE7DF95D3FBC__INCLUDED_

/**
 * Образ для работы с версией программы
 */
class CVersion {

public:

    inline static uint8_t GetMajor() { return 0; }
    inline static uint8_t GetMinor() { return 0; }
    inline static uint16_t GetRevision() { return 0; }
    inline static uint16_t GetBuild() { return 955; }

};

#endif // !defined(EA_E62E5FD4_3D22_4581_B2F7_BE7DF95D3FBC__INCLUDED_)
0
  • avatar
  • uni
  • 15 июля 2012, 18:01
А как по мне, так Python удобнее для таких вещей.
0
Для Windows JScript и VBscript являются встроенными средствами и неплохо бы для начала знать эти скриптовые возможности ОС прежде чем использовать внешние программы.
Мне было бы интересно посмотреть как выглядит мой пример на Python для кроссплатформенности. Мои исходники из-за этих скриптов нужно дополнять в Линукс.
0
И все же, название топика напоминает мне эту картинку:

Хоть тут и говорится про С++, но не менее применимо к программированию вообще.
0
  • avatar
  • Vga
  • 16 июля 2012, 21:11
Все прониклись этим подходом к обучению? Замутим аналогичный курс по электронике?
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.