Когда следует читать / понимать алгоритмы и логику программирования? - PullRequest
4 голосов
/ 13 декабря 2010

Я изучал учебники по JS полторы недели (Lynda.com и серия HeadFirst). Вещи имеют общий смысл, но JS для меня не так прост, как HTML / CSS. Когда я смотрю на действительно простой код для начинающих (например, учебное пособие Lynda.com, где вы создаете карточку бинго), я пытаюсь действительно прочитать код с точки зрения представления логических аргументов. Я предполагаю, что если я не буду заниматься этим прямо сейчас, то любой другой язык, который я пытаюсь выучить, будет невозможен, не говоря уже о том, что я не буду хорошо изучать JS - или вообще.

Так кто-нибудь может предложить книгу / веб-сайт, который предлагает хорошую базовую инструкцию по алгоритмам? ИЛИ , я просто слишком нетерпелив, и через пару недель все должно уладиться, и код станет более понятным.

Вот пример глупого базового кода, который все еще ставит в тупик.

function newCard() {
    if (document.getElementById) {
        for (var i=0; i<24; i++) {
            setSquare(i);
        }

Ответы [ 4 ]

6 голосов
/ 13 декабря 2010

HTML / CSS являются языками описания документов, способом представления визуальной структуры и информации, они не программируют языки как таковые.

JavaScript не обязательно является простым языком как таковым,так что будьте полегче, и вы можете сделать это с помощью начальной книги по программированию.

Попробуйте переводить то, что вы читаете, в английский, строка за строкой, по порядку.Синтаксис, символы и способ их написания, вероятно, являются основным источником путаницы, поскольку вы к ним не привыкли.Люди, которые не привыкли к панике алгебры при виде этого, с криками "Я никогда не пойму этого, как ты читаешь это?"- со временем вы привыкнете.

Возьмите этот простой бит кода:

1 for (var i=0; i<24; i++) {
2    setSquare(i);
3 }

Строка 1: цикл for

Цикл - это блоккода (обозначается фигурными скобками {}), который повторяется до некоторой точки.В случае цикла for есть 3 параметра (аргумента), которые управляют циклом.

Первый - для инициализации, начальных условий, в этом случае установка новой переменной i в 0, i=0.

Вторым является условие , которое сообщает циклу, следует ли продолжать работу, и проверяется каждый раз, когда цикл начинается заново.Здесь условие i < 24, продолжайте, пока переменная i меньше (<) 24.

Последняя часть - это шаг, все, что происходит в последней части, происходит один раз для каждого списка.В этом случае в конце списка, перед следующим циклом.i++ означает приращение i на единицу, сокращение для i = i + 1.

Таким образом, цикл запускается несколько раз, i начинается с 0 и увеличивается на 1 каждый раз, а если нетдлиннее менее 24, т.е.это достигает 24, это заканчивается.Таким образом, блок кода выполняется 24 раза, с i = 0 to 23.

Строка 2: Внутри цикла находится один оператор, вызов функции, для функции с именем setSquare, значение i равнопередается ему каждый раз.

Строка 3: закрывающая фигурная скобка цикла for.

Итак, все вместе этот код вызывает функцию setSquare() 24 раза со значениями от 0 to 23.

То, что делает setSquare(), остается загадкой, если не увидеть этот код.

2 голосов
/ 13 декабря 2010

Вы находите изучение JavaScript сложнее, чем два других, труднее, потому что это язык программирования, где CSS и HTML представляют собой разметку / стиль.

JavaScript тоже не простой первый язык для изучения. Я не был бы слишком обеспокоен, если бы вы запутались, программирование сложно, и это не естественно для всех. Со временем ваше мышление изменится, и вещи, которые поначалу казались невозможными, будут казаться очень интуитивными.

При этом очень мало хороших стартовых ресурсов для изучения JavaScript. Лучше всего смотреть на книгу типа Head First JavaScript . Они пройдут очень медленный процесс программирования (менталитет написания алгоритмов для решения проблем), а также познакомят вас со всеми функциями JavaScript.

Держи голову вверх:).

2 голосов
/ 13 декабря 2010

Ответ на ваш вопрос

Мне кажется, у вас есть некоторые проблемы с базовыми конструкциями программирования, такими как функции, циклы, объявление переменных и т. Д. - и если вы не понимаете тех, с которыми вы связаныникогда не понимать код вообще .Поэтому я предлагаю взять книгу о программировании (желательно о Javascript, в вашем случае).Я никогда не изучал JS из книги, так как у меня уже был опыт программирования, поэтому основные понятия уже были там, но моему другу понравился O'Reilly Head First Javascript .Затем, когда основные понятия языка будут изучены, взгляните на библиотеку jQuery .

Также две быстрые заметки:

  1. HTML и CSSне языки программирования
  2. Вам не нужно заниматься алгоритмами, по крайней мере, на данный момент - алгоритм - это серия сложных процедур, предназначенных для решения конкретной проблемы, а не простой используемый цикл forперебрать массив:)
0 голосов
/ 13 декабря 2010

Я надеюсь, что у вас не возникнет проблем с циклом for, так как это фундаментально для программирования.

</p> <pre><code>1 for (var i=0; i<24; i++) { 2 setSquare(i); 3 }

Чтобы продолжить подробный ответ @ Orbling, в строке 2 раскрывается основной смысл программы. Предполагая, что setSquare(i) означает, что он говорит, цикл for, очевидно, имеет побочный эффект изменения состояния квадрата на текущее значение i в цикле for. Я предполагаю, что ширина квадрата изменяется с i.

Ключевой командой, которую я упомянул, является «побочный эффект», что означает, что программа будет влиять на состояние другого объекта вне себя. Следующее для циклов также имеет побочный эффект.

</p> <pre><code>1 for (var i=0; i<24; i++) { 2 print(i); 3 }

, где я оговорю, что print(i) будет отображать значение i во всплывающем окне JS.

...