Полезно ли изучать основы базового языка, когда основная цель - опираться на его структуру? [закрыто]

10

Пожалуйста, имейте в виду, что это не совсем другое «Сколько [ вставить язык программирования здесь ] я должен знать, прежде чем перейти к [ вставить сюда фреймворк ]?» Что я хотел бы знать, так это то, насколько полезно изучать эти передовые концепции языка программирования, когда вы намерены в большинстве случаев полагаться на его структуру. Так, например, я начал использовать jQuery и сначала потратил время на то, чтобы по-настоящему понять основные концепции Javascript. Кроме того, у меня есть несколько книг по основам (например, «Секреты ниндзя Javascript») на полке, которые действительно углубляются в язык. Просматривая страницы, я обнаружил, что большая часть этого не переносится на jQuery, поскольку мое основное намерение - манипулирование DOM.

То же самое можно сказать и о Ruby и RoR. Эти книги сделают меня лучшим программистом в целом? Вероятно. Могут ли эти темы помочь мне стать намного лучше с его структурой? Это то, что мне трудно понять.

Карл Эдвардс
источник
7
При отладке часто помогает понять, что происходит за кулисами. Кроме этого, я в основном изучаю новые вещи, когда сталкиваюсь с необходимостью, и мне это нравится.
marczellm
2
Я вроде с Марцельмом по этому поводу. Мое общее мнение таково, что у вас есть только столько кода, который вы сможете создать в своей жизни, а языки, диалекты и фреймворки выходят в основном быстрее, чем вы можете написать код. Если вы уже можете работать с несколькими языками и средами, то, вероятно, вы хотите изучать их на основе необходимости знать или хотеть знать, а не постоянно увеличивающихся отметок на вашем поясе.
Panzercrisis
Я бы сказал , что это IS другой «Сколько» вопрос - это , конечно , имеет тот же самый ответ , который является то , что ее скользящей шкале в зависимости от ваших конкретных обстоятельств.
Jmoreno
JQuery - это особый случай. Это почти еще один предметно-ориентированный язык, встроенный в Javascript. (почти, но не тихо). Интересно, из-за этой особенности этот вопрос лучше было бы написать специально о jQuery и Javascript (а не о jQuery и javascript просто как пример)
Линдон Уайт

Ответы:

27

Это более важно для изучения языка , чем изучать основы. Хорошо выучите язык, и вы будете хорошо пользоваться фреймворком.

В порядке важности (самый важный сначала):

  1. Основные принципы программирования - алгоритмы, структуры данных и т. Д.
  2. Языковые парадигмы - ООП, Функциональные и др.
  3. Особенности языка.
  4. Синтаксис и рамки.
Роберт Харви
источник
2
Много много возражений по этому поводу, если бы я мог. Программист будет ограничен в дизайне и возможностях для продвинутой работы тем, что они не знают.
Питер Смит
8
5. Идиоматический код. Прочитайте код других людей и изучите стили этого конкретного языка.
Джошуа Тейлор
5
@JoshuaTaylor Я думаю, что я бы поставил это перед важностью фреймворков, так как идиоматический код, вероятно, будет использоваться с фреймворком, а изучение их по отдельности более полезно - языковые идиомы не являются частью фреймворка, и пользователи фреймворка, вероятно, имеют добавлено больше
Izkata
Проголосовал, потому что это подтверждает мои личные предубеждения. Тем не менее, хотелось бы иметь ваши источники, пожалуйста.
Аарон Холл
5

Конечно. Вопрос в том, «стоит ли эта выгода затрат времени?». Я бы сказал, что так оно и есть, но это, безусловно, зависит от вас и вашего окружения, поскольку они будут влиять на выгоду (сколько ваша среда получит от ваших знаний) в зависимости от стоимости (сколько времени вам нужно учиться, и насколько хорошо вы впитывать знания).

С чего бы мне спорить, что это выгодно? Потому что ты не всегда будешь в рамках. Даже самая всеобъемлющая структура по-прежнему является частью большей экосистемы. Вы не можете делать звонки JQuery в одиночку. Вам нужно знать, как привязать ваш скрипт к странице, как он работает, как он взаимодействует с тем, что вы хотите сделать. Это может быть "основами" в вашей книге, но я всегда обнаруживал, что более глубокие знания помогли мне сделать код быстрее и, конечно, быстрее отладить проблемы. Рамки или нет.

Кроме того, в реальном мире есть неприятная привычка навязываться программистам. Конечно, ваша задача сегодня может заключаться в манипулировании DOM, но завтра вам может понадобиться подключить какой-нибудь объект SWFObject. Наличие хорошего фундамента позволит вам легче адаптироваться к меняющимся условиям.

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

Telastyn
источник
1

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

Здорово, если все, что вам нужно, - это запустить минимально жизнеспособный продукт. Не будет большой производительности или сложных требований. Это предполагает, что вы выбрали среду, которая может обрабатывать то, что вы пытаетесь построить.

С другой стороны спектра, если вы работаете над довольно большим / сложным приложением, и вы обнаружите что-то, что фреймворк плохо обрабатывает. Ничего страшного, так что вам придется больше учиться JavaScript. Вам бы пришлось потратить это время на это, если бы вы узнали это с самого начала. Но у тебя есть время? Сможете ли вы узнать основы под стрессом, не успев вовремя что-то сделать? Никто не может ответить на это.

Балансировка это, вероятно, лучшая ставка. Побейся. Изучите немного JavaScript, если можете. Вы не можете стать экспертом, но это не повод игнорировать это. Фреймворки создавались людьми, которым нужно было решить проблему, похожую на вашу, но не совсем такую, как ваша.

JeffO
источник
1

Общей областью, которая страдает от углубления в каркас (ы), прежде чем хорошо знать основной язык, является производительность. Это верно для всех языков / платформ ( Hibernate n + 1 выбирает и т. Д.). Вот много из JQuery советов и трюков , которые полагаются (помимо всего прочего) на хорошем знании основного языка по отношению к производительности:

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

Используйте идентификаторы вместо классов. Гораздо лучше выбирать объекты по идентификатору из-за поведения библиотеки: jQuery использует собственный метод браузера, getElementByID (), для извлечения объекта, что приводит к очень быстрому запросу.

Дракон Шиван
источник
0

Я думаю, что ваш вопрос основан на ложной предпосылке. Вы начинаете с того, что говорите, что планируете использовать фреймворк, а затем спрашиваете, полезно ли учиться за его пределами. Поэтому, конечно, вы пришли к выводу, что оно того не стоит. Но эта предпосылка ошибочна. Вы не должны фокусироваться на использовании фреймворка. Вы должны сосредоточиться на использовании правильного инструмента для правильной работы . jQuery действительно хорош в определенных задачах, как и Ruby on Rails или любой другой фреймворк. Но они не всегда являются подходящим инструментом для всего. Изучение языка вне рамок и даже изучение других рамок, микрофреймов или других инструментов помогает вам определить, когда ваша инфраструктура мешает вам больше, чем помогает, и дает вам возможность искать другие,

Итак, мой ответ: да, это того стоит, потому что фреймворк не подходит для каждой работы.

jpmc26
источник