Comments 72
Слазь сюда www.javascript.ru там много чего интересного есть.
+2
А я считаю что лучше литература, плюс делать сразу упор на объектный подход.
0
Я тоже думаю что литература может очень помочь. Вопрос в конкретике — какая именно? Ибо я ни одной толковой книжки не знаю.
0
Толковые книжки, которые мне очень понравились:
1. JavaScript: The Definitive Guide, 5th Edition By David Flanagan (есть в переводе, www.ozon.ru/context/detail/id/3881091/) — читать обязательно и первым делом, лучшая книга и справочник по JS.
2. Pro JavaScript Techniques by John Resig (да-да, это именно тот клёвый дядька, который сделал jQuery).
3. Простенькая интересная книжка — DOM Scripting Web Design with JavaScript and the Document Object Model by Jeremy Keith (как правильно управлять DOMом :) )
1. JavaScript: The Definitive Guide, 5th Edition By David Flanagan (есть в переводе, www.ozon.ru/context/detail/id/3881091/) — читать обязательно и первым делом, лучшая книга и справочник по JS.
2. Pro JavaScript Techniques by John Resig (да-да, это именно тот клёвый дядька, который сделал jQuery).
3. Простенькая интересная книжка — DOM Scripting Web Design with JavaScript and the Document Object Model by Jeremy Keith (как правильно управлять DOMом :) )
+3
Да какой же Джон дядка. :) Ему и 30 нет.
0
первое заказал, спасибо. Люблю эту серию :)
в третье — о чем там пишут? Описание дом-а? или фишки и трюки там попадаются? Что входит в понятие «правильного» управления?
в третье — о чем там пишут? Описание дом-а? или фишки и трюки там попадаются? Что входит в понятие «правильного» управления?
0
Поддержу рекомендации первых двух книг. Книга Фланагана вообще по моему единственная доступная на русском книга которая рассказывает о JavaScript именно как о языке.
0
Мое мнение, сугубо imho:
1) прочесть книжку по основам JS
2) прочесть книжку по ООП ( языконезаисимую )
3) полазить по zvon / xpoint.ru / xhtml.ru / rsdn.ru почитать основные фишки и проблемы у людей
4) начать писать задание, ибо практика ставит вопросы и находит на них ответы
1) прочесть книжку по основам JS
2) прочесть книжку по ООП ( языконезаисимую )
3) полазить по zvon / xpoint.ru / xhtml.ru / rsdn.ru почитать основные фишки и проблемы у людей
4) начать писать задание, ибо практика ставит вопросы и находит на них ответы
+2
Слова хорошие.
«практика ставит вопросы и находит на низ ответы». Воистину так
«практика ставит вопросы и находит на низ ответы». Воистину так
0
задания ставятся… вопрос в том что хочется форсировать. у меня ощущение что я уже сейчас задания ставлю чуть сложнее чем он может сделать и соответственно в голове каша получается.
1, 2. А можно конкретный пример? Причем первое чтоб можно было посмотреть как можно с большим отрывом от штмля?
1, 2. А можно конкретный пример? Причем первое чтоб можно было посмотреть как можно с большим отрывом от штмля?
0
посмотрите коммент выше — я не туда написал ответ
0
Хм, очень хороший вопрос )
Если я скажу по себе, то в качестве п.1 Это был справочник по JS + JS core ref :)
Знаю, что сейчас множество таких книжек есть. У меня народ очень хорошо отзывался про какуюто издательства O'Relly если мне не изменяет память. попробую потом узнать что за книжка.
По п.2. Этого очень много. Есть такая книженция праямо так и называется «Основы О.О.П.».
Я это читал людям по ( не поверите :) ) Wikipedia :)
Если я скажу по себе, то в качестве п.1 Это был справочник по JS + JS core ref :)
Знаю, что сейчас множество таких книжек есть. У меня народ очень хорошо отзывался про какуюто издательства O'Relly если мне не изменяет память. попробую потом узнать что за книжка.
По п.2. Этого очень много. Есть такая книженция праямо так и называется «Основы О.О.П.».
Я это читал людям по ( не поверите :) ) Wikipedia :)
0
Раз уж поднялась такая тема. Может кто скажет стандартные скрипты, который должен первым реализовать начинающий яваскриптер. Hello, world — понятно, калькулятор — понятно. Что еще?
0
календарик :)
мне важно жаваскриптеру важно пониманать различия между свойствами дом-объектов. К примеру почему браузеры быстрее отрисовывают изменение цвета у элементов, нежели изменение их геометрического размера.
мне важно жаваскриптеру важно пониманать различия между свойствами дом-объектов. К примеру почему браузеры быстрее отрисовывают изменение цвета у элементов, нежели изменение их геометрического размера.
+1
Настоящий JavaScript-ер должен разбираться не только в DOM и Ajax. Он должен, например, без запинки написать функцию add которая складывает a и b и вызывается так: add(a)(b)
У меня это любимый вопрос на интервью.
У меня это любимый вопрос на интервью.
+1
хм… забавный пример :) Но видимо я не настоящий жаваскриптер, ибо думал аж 15 секунд :(
А есть у него практическая сторона?
ЗЫ С моей точки зрения очень важно знать тонкость работы с объектами в ЖСе — я уверен что я их сам понимаю далеко не полностью. При этом многие не понимают их вообще и пытаются с ними работать совсем не так, как должно.
А есть у него практическая сторона?
ЗЫ С моей точки зрения очень важно знать тонкость работы с объектами в ЖСе — я уверен что я их сам понимаю далеко не полностью. При этом многие не понимают их вообще и пытаются с ними работать совсем не так, как должно.
+1
Не надо прибедняться. Многим и 15 минут не хватит. Уверен, вы бы прошли интервью. ;)
0
Возможно. Но моё слабое место — понимание ООП. Я пока не написал большой жаваскриптовый клиент не понял его плюсов. Сейчас вроде понял и пытаюсь осознать поглубже. Ибо у меня в голове только жаваскриптерская его версия, которая из-за окружения достаточно специфична получается даже в небольших скриптах.
0
Интересный пример, может есть еще какие?
+1
да, было бы интересно :)
0
А что же я на интервью тогда буду спрашивать? :)
Начинаю я обычно с азов:
Write the result of these expressions:
6 / «3»
«2» * «3»
4 + 5 + «px»
«$» + 4 + 5
«4» — 2
«4px» — 2
7 / 0
typeof null
typeof {}[0]
typeof («4px» — 2)
parseInt(«09»)
5 && 2
2 && 5
5 || 0
0 || 5
Сразу видно человек действительно знает язык или просто нахватался верхов.
Начинаю я обычно с азов:
Write the result of these expressions:
6 / «3»
«2» * «3»
4 + 5 + «px»
«$» + 4 + 5
«4» — 2
«4px» — 2
7 / 0
typeof null
typeof {}[0]
typeof («4px» — 2)
parseInt(«09»)
5 && 2
2 && 5
5 || 0
0 || 5
Сразу видно человек действительно знает язык или просто нахватался верхов.
+1
ааа :) я не знаю что будет в половине случаев :)
А браузером пользоваться можно при тесте?
А браузером пользоваться можно при тесте?
0
хотя случай с parseInt(«09»)
у меня был — я долго матерился почему этот жс такой глючный :)
0
Нет, конечно. Тест без компьютера. Но я же тоже не робот: главное это увидеть насколько человек опытен.
0
Ну у меня не половина но некоторые примеры с typeof удивили. Да эти задания показывают на скоко человек знает тонкости языка.
0
Щас подумал… а какое соотношение между опытом и количеством правильных ответов можно выделить?
0
Я верно ответил на все. Куда слать резюме?
0
Если бы я встретил как работодатель программиста, который такие функции пишет — этот программист пошёл бы искать другую работу. Почему понятно, надеюсь?
А читать надо нетскейповскую документацию — там всё прозрачно описано.
А читать надо нетскейповскую документацию — там всё прозрачно описано.
0
function a1(a){
return function(b){return a+b;}
}
alert(a1(2)(3));
return function(b){return a+b;}
}
alert(a1(2)(3));
0
Непонятно, если честно. Надеюсь вы различаете академические и практические задачи?
0
Вот, мне тоже интересно, что плохого в замыканиях?
0
Страдает ясность и читаемость программ. Очень сильно, причём. О замыканиях, по хорошему, знают только те кто прошёл школу Perl, а таких нынче нету. Когда я пишу callback на JS — всё время себя контролирую на предмет использования замыканий, ведь это, по сути, глобальные переменные. И утечки памяти, кстати. Я, например, не знаю, что будет с памятью:
function a1(a){
return function(b){return a+b;}
}
var s='1';
alert('Check memory 1!');
for(i=0; i<20; i++)s=s+s;
alert(s.length);
for(i=0; i<10; i++){
a1(s)(s);
}
alert('Check memory 2!');
s=''
alert(s.length);
alert('Check memory 3!');
Программа должна быть прозрачной кристально и не быть рассчитанной на очень хорошего специалиста — таких просто нет в достаточном количестве.
function a1(a){
return function(b){return a+b;}
}
var s='1';
alert('Check memory 1!');
for(i=0; i<20; i++)s=s+s;
alert(s.length);
for(i=0; i<10; i++){
a1(s)(s);
}
alert('Check memory 2!');
s=''
alert(s.length);
alert('Check memory 3!');
Программа должна быть прозрачной кристально и не быть рассчитанной на очень хорошего специалиста — таких просто нет в достаточном количестве.
0
for(i=0; i
0
Ну и в каком месте в вашей программе будут проблемы с памятью? Вызов a1(s)(s) создает, выполняет и уничтожает функцию-замыкание вместе с ее скопом. В чем проблема?
> Программа должна быть прозрачной кристально и не быть рассчитанной на очень хорошего специалиста
Ну так… давайте будем избегать ООП — там тоже не совсем прозрачно и далеко не каждый понимает, что происходит на самом деле, когда в коде встречается foo.bar().
> О замыканиях, по хорошему, знают только те кто прошёл школу Perl, а таких нынче нету.
О замыканиях, по-хорошему, знают только те, кто прошел школу Lisp, а вот таких, действительно нынче нету. Но это не значит, что замыкания — плохой инструмент. Он просто слишком хорош для современных программистов.
> Программа должна быть прозрачной кристально и не быть рассчитанной на очень хорошего специалиста
Ну так… давайте будем избегать ООП — там тоже не совсем прозрачно и далеко не каждый понимает, что происходит на самом деле, когда в коде встречается foo.bar().
> О замыканиях, по хорошему, знают только те кто прошёл школу Perl, а таких нынче нету.
О замыканиях, по-хорошему, знают только те, кто прошел школу Lisp, а вот таких, действительно нынче нету. Но это не значит, что замыкания — плохой инструмент. Он просто слишком хорош для современных программистов.
0
Какая разница в каком? Google пишет (http://code.google.com/apis/maps/documentation/#Memory_Leaks) что использует closures, и это приводит к утечкам памяти, и я вверю ему.
Требование прозрачности работы программы — обосновано практикой и к Вашему примеру отношения не имеет. Если программа написана просто и понятно, для её развития можно привлекать менее квалифицированных программистов.
По третьему пункту мы согласны — замыкания использовать нельзя?
Требование прозрачности работы программы — обосновано практикой и к Вашему примеру отношения не имеет. Если программа написана просто и понятно, для её развития можно привлекать менее квалифицированных программистов.
По третьему пункту мы согласны — замыкания использовать нельзя?
0
Гугл пишет… Саймон говорит…
Если бы Вы немножко покопались в данном вопросе, то узнали бы, что к утечкам памяти приводят не замыкания сами по себе, а кривой сборщик мусора в trident aka IE, который не освобождает память, занимаемую DOM-элементами, если на DOM-элемент повесить обработчик события, который является замыканием, в скопе которого есть ссылка на этот DOM-элемент. Решается этот момент тривиально: путем явного удаления обработчиков сотыбий для DOM-элементов при unload текущей страницы.
Замыкания использовать можно и нужно, потому что они позволяют существенно сократить объем программы, а, как известно, при прочих равных условиях большую ценность имеет та программа, в которой меньше кода.
Более того, поняв суть замыканий, можно писать офигенно элегантные вещи на том языке, который поддерживает концепцию «замыканий» и, как следствие, «продолжений».
Если Вы в своей практике не желаете развивать «менее квалифицированных специалистов», то грош цена Вам и вашей компании как работодателю.
Одним словом, если Вы не любите замыкания, то Вы просто не умеете их готовить. ;-)
P.S. Nothing personal, меня просто взбесила Ваша фраза «Если бы я встретил как работодатель программиста, который такие функции пишет — этот программист пошёл бы искать другую работу. Почему понятно, надеюсь?»
Если бы Вы немножко покопались в данном вопросе, то узнали бы, что к утечкам памяти приводят не замыкания сами по себе, а кривой сборщик мусора в trident aka IE, который не освобождает память, занимаемую DOM-элементами, если на DOM-элемент повесить обработчик события, который является замыканием, в скопе которого есть ссылка на этот DOM-элемент. Решается этот момент тривиально: путем явного удаления обработчиков сотыбий для DOM-элементов при unload текущей страницы.
Замыкания использовать можно и нужно, потому что они позволяют существенно сократить объем программы, а, как известно, при прочих равных условиях большую ценность имеет та программа, в которой меньше кода.
Более того, поняв суть замыканий, можно писать офигенно элегантные вещи на том языке, который поддерживает концепцию «замыканий» и, как следствие, «продолжений».
Если Вы в своей практике не желаете развивать «менее квалифицированных специалистов», то грош цена Вам и вашей компании как работодателю.
Одним словом, если Вы не любите замыкания, то Вы просто не умеете их готовить. ;-)
P.S. Nothing personal, меня просто взбесила Ваша фраза «Если бы я встретил как работодатель программиста, который такие функции пишет — этот программист пошёл бы искать другую работу. Почему понятно, надеюсь?»
0
Полезно почитать библиотеки типа jQuery, Prototype и тд. просто исходники.
0
Пройти курс на intuit.ru
www.intuit.ru/department/internet/javascriptcert/
www.intuit.ru/department/internet/javascriptcert/
-1
JAVASCRIPT. Полный справочник. Второе издание. Толстая книженция такая. Очень толково понятно и обширно все описано!
0
+3
Повезло вашему ученику :) Кто б меня взял Java обучить… Без отрыва от производства.
0
www.crockford.com/javascript/ — здесь есть все нужные ссылки по языку JS.
+1
а вот у нас как… взяли меня… посадили, сказали вот твое рабочее место и теперь дают всякие задания… и им совершенно не важно как я их сделаю Х_х
0
По большому счету у нас тоже есть задания которые могут быть сделаны абы как :)
Вопрос в том, на что изначально ориентировать человека. Можно на поддержку, а можно и на разработку. Во втором случае вместе с ЖС идет вбивание в головы концепций, паттернов и прочих страшный вещей. Ну и прикладное, типа систем контроля версий и тракеров — учета задач.
Вопрос в том, на что изначально ориентировать человека. Можно на поддержку, а можно и на разработку. Во втором случае вместе с ЖС идет вбивание в головы концепций, паттернов и прочих страшный вещей. Ну и прикладное, типа систем контроля версий и тракеров — учета задач.
0
По-моему, если «вбивать» эти самые «страшные вещи» без отрыва от земли, закрепляя практикой, то ничего страшного не будет. Особенно, если это все применяется пусть учебном цельном проекте. А не отдельными упражнениями-скриптиками. Тогда у ученика разовьется как бы комплексное видение. Без больших соблазнов «ой, а там легче применить jQuery и не мучаться, все-равно проект сложный».
И да, это мое мнение.
И да, это мое мнение.
+1
Эмм… Задания абстрактные или идут в продакшн?
0
UFO just landed and posted this here
UFO just landed and posted this here
Если английский не проблема, то могу порекомендовать книгу «Professional JavaScript for Web Developers» издательства Wrox. На мой взгляд очень качественно написана.
Здесь можно посмотреть содержание: www.wrox.com/WileyCDA/WroxTitle/Professional-JavaScript-for-Web-Developers.productCd-0764579088, descCd-tableOfContents.html
Здесь можно посмотреть содержание: www.wrox.com/WileyCDA/WroxTitle/Professional-JavaScript-for-Web-Developers.productCd-0764579088, descCd-tableOfContents.html
0
Я думаю надо просто заставить его начать писать что-нибудь для проекта.
0
Рекомендую ознакомиться со списком книг и сайтов, которые рекомендует прочитать Рэй Банго, чтобы поднять уровень владения JavaScript- http://blog.reybango.com/2010/12/15/what-to-read-to-get-up-to-speed-in-javascript/
0
Кстати книга Крокфорда уже доступна на русском — http://www.piter.com/book.phtml?978545901263
0
Sign up to leave a comment.
JavaScript для начинающих — как учить?