Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Где брать знания ? (https://javascript.ru/forum/offtopic/19054-gde-brat-znaniya.html)

Sundro 24.07.2011 20:25

Где брать знания ?
 
Ответ Google не принимается, он уже заюзан, как пользоваться тоже знаю. Google хорош когда хочется получить ответ быстрый ответ вопрос, не вникая в суть проблемы. Пришел к выводу что это порочный путь. Ситуацию в голове не проясняет к тому же часто возникают смежный вопросы, получается каша в голове, это как строить дом с крыши, он так и не будет достроен. В общем хочется узнат уважаемые программисты как вы добываете себе знания ? ( У меня иногда складывается впечатление что я иду на много шагов медленне чем мир, и вместо света в конце тонеля я вижу дно в пеще.)

melky 24.07.2011 20:49

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

monolithed 24.07.2011 21:03

Цитата:

Сообщение от Sundro
Ответ Google не принимается, он уже заюзан, как пользоваться тоже знаю

а мы все там ищем :)

Sundro 24.07.2011 21:30

Да на хабре последнее время много чего хорошего по Js было. Книги тоже хорошо, но до боевых условий им далеко в основном в них Hello World'ы одни.Причем когда хочешь чего нить написать когда ближе с этим знакомишься выясняется что что бы это сделать нужно знать еще кучу всего и желание увядает =( Курица и яйцо, чертовы. В общем хочется услышать рецепты как превратить количество в качество, как совместить практику с теорией, самостоятельно, знакомых программистов нет =( PS Мне кажется что профессия программист это что то вернувшееся из мира античности, где знания передаются от учителя к ученику,маны и книги - карты памяти, лично ! самому сделать что то сложно, потому как все "сакральные" знания идут от учителя а не от книг. PPS. Буду очень рад если заблуждаюсь

Sundro 24.07.2011 21:33

monolithed, наверно все таки зря я тут сопли распускаю,пошел в Гугль, просто видя успех других кажется что что то делаешь не так

melky 24.07.2011 21:36

Цитата:

Сообщение от Sundro (Сообщение 115167)
Да на хабре последнее время много чего хорошего по Js было.

нет, старые статьи лучше свежих. примеров давать не буду, просто поверь на слово :)

есть там афигенские вещи вроде размусоливания способов создания объектов.. и другая лабуда.

Цитата:

Сообщение от Sundro (Сообщение 115167)
Книги тоже хорошо, но до боевых условий им далеко в основном в них Hello World'ы одни.Причем когда хочешь чего нить написать когда ближе с этим знакомишься выясняется что что бы это сделать нужно знать еще кучу всего и желание увядает

О_О
а ты прочитай Фленегана. Не программируя между перерывами, а именно повторяя и прокручивая в голове то, что узнал. В процессе прочтения пиши конспекты.... Шпаргалки, т.е. ..чтобы глянуть на секундочку, как там в IE cancelBubble пишется...

методы pop/push, shift/unshift у массива я долго не мог запомнить. Да и сецчас точно не могу. только как школьник.. рифмовочкой... только push запомнился.

Цитата:

Сообщение от Sundro (Сообщение 115167)
лично ! самому сделать что то сложно, потому как все "сакральные" знания идут от учителя а не от книг. PPS. Буду очень рад если заблуждаюсь

значит ты будешь рад :)



читай книги и УЧИ , как в школе. толку так и правда больше

а практика ? а практика п-о-о-т-о-о-о-м..

Sundro 24.07.2011 21:54

melky, спасибо за советы!

SlavaPav 24.07.2011 22:00

Цитата:

Сообщение от melky (Сообщение 115170)
а практика ? а практика п-о-о-т-о-о-о-м..

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

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

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

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

Посмотрите видео доклады профессиональных разработчиков.
Изучайте смежные технологии: CSS, HTML.

kobezzza 24.07.2011 22:58

Все люди разные и способы обучения тоже, кому то хватает прочитать книгу и он уже втёк, а кому то нет. Я когда начинал, то ни одну книгу не мог осилить и забрасывал, т.к. объём новой информации перегружал мозг, но потом нашёл идеальный для себя способ: я придумал себе задачу и начал тупо кодить - да это был страшный быдлокод и тупость, но оно дало мне фундамент, с которым книги, которые раньше казались ересью приобрели смысл. Я снова начал читать - потом опять кодить, и так много-много-много раз. Осенью прошлого года сходил на мастер класс и получил кучу лвл апов, потом опять кодинг/книги/форумы/блоги крутых прогеров и т.д. главное никогда не останавливаться и не думать, что ты постиг всё, что можно - учиться нужно всегда и всем!

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

Gozar 24.07.2011 23:00

Цитата:

Сообщение от SlavaPav (Сообщение 115176)
не стоит накидываться на шаблоны проектирования, как многие советуют, они могут нанести вред если их не целесообразно использовать.

Да, да и объекты лучше не использовать и про наследование забыть и упаси боже знать про замыкания. Ещё можно голову под стол засунуть и претвориться что так безопасней. ;)

SlavaPav 24.07.2011 23:40

Цитата:

Сообщение от Gozar (Сообщение 115181)
Да, да и объекты лучше не использовать и про наследование забыть и упаси боже знать про замыкания. Ещё можно голову под стол засунуть и претвориться что так безопасней. ;)

Первоклассный сарказм. :) Я написал - "Не стоит накидываться (на-ки-ды-вать-ся, накидываться)", имея ввиду что увлекшись мощью шаблонов проектирования можно переусердствовать с их применением. Поняв что шаблоны такие крутые, и воодушевившись этим, вы будете всегда пытаться впихнуть их в код, даже если существует более простой и логичный способ решения проблемы.
Никто, в частности Я, не говорил что не нужно изучать их. Было бы просто глупо посоветовать такое. Читайте внимательнее. Но, все равно, спасибо за попытку выставить меня идиотом.:)

melky 24.07.2011 23:46

блин, это только у нас так - человек прочитал пару ответов и перестал отвечать, и начинает появляться оффтоп с жаркими дебатами :)

тема кончилась, можно и поболтать :)

Gozar 25.07.2011 00:08

Цитата:

Сообщение от SlavaPav (Сообщение 115190)
Поняв что шаблоны такие крутые, и воодушевившись этим, вы будете всегда пытаться впихнуть их в код, даже если существует более простой и логичный способ решения проблемы.

Это откровение?

Цитата:

Сообщение от SlavaPav (Сообщение 115190)
увлекшись мощью шаблонов проектирования можно переусердствовать с их применением.

Угу особенно не зная никаких шаблонов проектирования и вообще почти ничего не зная, как ТС можно переусердствовать?
Заметьте я не называл вас идиотом ... ;)

ps: я не пытаюсь вас затроллить, но мне кажутся подобные советы совершенно неуместными и беспочвенными в данном случае, вы пытаетесь решать проблемы, которые ещё не возникли.

SlavaPav 25.07.2011 00:20

Цитата:

Сообщение от Gozar (Сообщение 115201)
Это откровение?
...
ps: я не пытаюсь вас затроллить, но мне кажутся подобные советы совершенно неуместными и беспочвенными в данном случае, вы пытаетесь решать проблемы, которые ещё не возникли.

Да, откровение разработчика с огромным опытом использования паттернов. Я не про себя, конечно, а про Джошуа Кириевски.
Я не пытаюсь решать чужих проблем, у меня хватает своих. Это просто совет. Не более. Полезно держать в памяти эту крупицу информации, ведь когда-то она может вылится в кучу сэкономленного времени и сил. Плюс, из-за наших с вами бессмысленных дебатов, возникает больше шансов что она отложится в памяти у кого-нибудь из читающих этот форум.

Shaci 25.07.2011 00:25

Цитата:

Сообщение от Sundro (Сообщение 115153)
Ответ Google не принимается, он уже заюзан, как пользоваться тоже знаю. Google хорош когда хочется получить ответ быстрый ответ вопрос, не вникая в суть проблемы. Пришел к выводу что это порочный путь. Ситуацию в голове не проясняет к тому же часто возникают смежный вопросы, получается каша в голове, это как строить дом с крыши, он так и не будет достроен. В общем хочется узнат уважаемые программисты как вы добываете себе знания ? ( У меня иногда складывается впечатление что я иду на много шагов медленне чем мир, и вместо света в конце тонеля я вижу дно в пеще.)

берешь и долбаешься, ищешь в google, в учебниках(в хороших), в сайте javascript.ru (если это js касается), на форуме, всё просто, больше рецептов нет)).
P.S.
А, про ООП можно у Дмитрия Сошникова спросить)).
в книгах про него я не нашел))

Sundro 25.07.2011 01:21

Цитата:

Сообщение от SlavaPav (Сообщение 115176)
Не совсем верно. Когда то я сам думал, что прежде чем перейти к практике нужно как можно сильнее укрепить теорию. На самом деле практика хороша при любом уровне теоретических знаний, главное при этом равномерно распределять усилия между теорией и практикой. Так что советую сразу начать практиковаться, если еще этого не делаешь.

У меня все складывается похожим образом, в теорию понимаю более менее ( но когда вышел на статьи Дмитрия Сошникова, понял что нет предела совершенству, у Фленагана этого нет или в урезанном варианте) Но когда сажусь писать то могу по 2 часа медитировать на код, даже вкупе с просмотром ошибок в отладчике из последнего, что то вроде этого for ( var i = 0, i < 10 , i++){
..// Код цикла
}, долго не мог понять что не так. И таких примеров куча...это печалит =(

Цитата:

Сообщение от SlavaPav (Сообщение 115176)
Прочитайте про ООП, Рефакторинг (уделите особое внимание), шаблоны проектирования, методики программирования (я предпочитаю TDD). При этом не стоит накидываться на шаблоны проектирования, как многие советуют, они могут нанести вред если их не целесообразно использовать.

Можете что нибудь посоветовать полезного почитать по этим темам?

Sundro 25.07.2011 01:34

Цитата:

Сообщение от kobezzza (Сообщение 115180)
А ну ещё офигенный способ учиться - это учить других, меня пол года назад поставили преподавать в универе проганье, и я разумеется, чтобы не давать ребятам ложной инфы начал каждую лекцию тщательно подготавливать и разумеется постоянно находил пробелы в своих знаниях.

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

monolithed 25.07.2011 01:38

SlavaPav,
Мне вот интересно стало, что вы подрузумеваете под шаблонным проектированием в JS и для каких целей вы советуте использовать TDD?

SlavaPav 25.07.2011 01:38

Цитата:

Сообщение от Sundro (Сообщение 115212)
Но когда сажусь писать то могу по 2 часа медитировать на код, даже вкупе с просмотром ошибок в отладчике из последнего, что то вроде этого for ( var i = 0, i < 10 , i++){
..// Код цикла
}
...
Можете что нибудь посоветовать полезного почитать по этим темам?

Если вы еще не пользуетесь IDE для кодинга, пора начать. Процесс изучения и написания кода увеличится в разы, плюс вы избавитесь от подобных залипаний. Я использую Aptana Studio 2.0.

Книги:
  • "Рефакторинг" М. Фаулер
  • "Чистый Код" Роберт Мартин
  • "Быстрая Разработка Программ" Роберт Мартин
  • "Экстремальное программирование. Разработка через тестирование" Кент Бек
  • "Паттерны Проектирования" "Банда Четырех" (так и ищите)
  • "Рефакторинг с ипользованием паттернов проектирования" Джошуа Кириевски
  • "Совершенный Код" Стив Макконелл
На английском гораздо больше информации, и хороших книг.

monolithed 25.07.2011 01:43

Цитата:

Сообщение от SlavaPav
"Рефакторинг" М. Фаулер
"Чистый Код" Роберт Мартин
"Быстрая Разработка Программ" Роберт Мартин
"Экстремальное программирование. Разработка через тестирование" Кент Бек
"Паттерны Проектирования" "Банда Четырех" (так и ищите)
"Рефакторинг с ипользованием паттернов проектирования" Джошуа Кириевски
"Совершенный Код" Стив Макконелл

Заснет на вступлении первой)

На мой взгляд, нужно прочесть Фленагага и Стояна Стефанова, затем внимательно статьи Дмитрия Сошникова и плавно перейти на стандарт языка.

SlavaPav 25.07.2011 01:45

Цитата:

Сообщение от monolithed (Сообщение 115214)
SlavaPav,
Мне вот интересно стало, что вы подрузумеваете под шаблонным проектированием в JS и для каких целей вы советуте использовать TDD?

Не уловил суть последнего вопроса. Мне TDD кажется отличной методикой разработки. При своей простоте и простительности к небогатым опытом разработчикам, за счет небольших итераций и отсутствия детального предварительного проектирования, она дает заметный результат в виде устойчивого, чистого кода. А шаблонное проектирование я вроде не упоминал.

SlavaPav 25.07.2011 01:48

Цитата:

Сообщение от monolithed (Сообщение 115216)
Заснет на вступлении первой)

На мой взгляд, нужно прочесть Фленагага и Стояна Стефанова, затем внимательно статьи Дмитрия Сошникова и плавно перейти на стандарт языка.

Я хотел посоветовать книги конкретно по JavaScript, но мне показалось что он уже читал их. Если нет, то ваш совет вполне соответствовал бы моему. На русском, кроме Ресига, вроде больше ничего и нет?

monolithed 25.07.2011 02:02

Цитата:

Сообщение от SlavaPav
Не уловил суть последнего вопроса.

Такая методика возможно уместна при разработке больших проектов, где может нарушиться ветвление и связанность, но в реалии не один работодатель (возьмем веб-студию) не даст сотруднику время на проектировании и тестирование какой-нибудь менюшки.

Ну или если не сложно, то покажите (можно псевдокодом) как вы себе это представляете.
Цитата:

Сообщение от SlavaPav
На русском, кроме Ресига, вроде больше ничего и нет?

Стефанов, Фленаган, Закас

SlavaPav 25.07.2011 02:12

Цитата:

Сообщение от monolithed (Сообщение 115220)
Стефанов, Фленаган, Закас

Я и имел ввиду этих авторов + Ресиг. Забыл про Закаса. Потому что так и не читал.
Мне TDD кажется эффективной и для небольшого кода. Если привыкнуть, то циклы - "тест-провал-код-успех-рефакторинг" будут занимать немного времени, плюс экономится время затрачиваемое на поиск и устранение ошибок.
// очень простая функция, которую писал по задаче из ЕГЭ
function extractMaxNumber(str) {
    argumentMustBe('string');
    
    return assembleMaxNumber( extractDigits(str) );
    
    function argumentMustBe(type) {
        if (typeof str != type) {
            throw new TypeError('Argument must be a ' + type);
        }
    }
    
    function extractDigits(str) {
        var digits = str.match(/[1-9]/g);
        return digits ? digits.sort() : [];
    }
    
    function assembleMaxNumber(digits) {
        return (digits.length !== 0) ? generateMaxNumber(digits) : 0;
    }
    
    function generateMaxNumber(digits) {
        return trimMeaningless(digits.reverse().join('')) * 1;
    }
    
    function trimMeaningless(str) {
        return str.replace(/(\d)\1+/g, '$1');
    }
}

// очень простые тесты
TestCase('TestExtractMaxNumber', {
   'test should throw error argument not string': function() {
       assertException(invalidArg, 'TypeError');
       
       function invalidArg() {
           extractMaxNumber(null);
       }
   },
   'test should return number': function() {
       assertTrue(typeof extractMaxNumber('1992') == 'number');
   },
   'test should return zero if empty string': function() {
       assertEquals(extractMaxNumber(''), 0);
   },
   'test should return zero if string without digits': function() {
       assertEquals(extractMaxNumber('string'), 0);
   },
   'test should return ordered digits': function() {       
       assertEquals(98721, extractMaxNumber('9882string71820'));
   }
});

Gozar 25.07.2011 12:56

Sundro,
незачет, на форуме целый раздел посвящен учебным материалам, может вам лучше заняться чем-то другим, например махать лопатой?

melky 25.07.2011 13:08

Цитата:

Сообщение от Gozar (Сообщение 115253)
Sundro,
незачет, на форуме целый раздел посвящен учебным материалам, может вам лучше заняться чем-то другим, например махать лопатой?

ну-с. лопатой в армии поработает, а пока можно и программирование помусолить :)

Sundro 25.07.2011 13:24

Цитата:

Сообщение от Gozar (Сообщение 115253)
Sundro,
незачет, на форуме целый раздел посвящен учебным материалам, может вам лучше заняться чем-то другим, например махать лопатой?

Мне хотелось в первую очередь узнать как махать этим инструментом, что бы рыть быстрее.

melky 25.07.2011 13:47

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

Gozar 25.07.2011 14:39

Цитата:

Сообщение от Sundro (Сообщение 115259)
Мне хотелось в первую очередь узнать как махать этим инструментом, что бы рыть быстрее.

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

"Добро пожаловать в реальный мир" (из матрицы школы)

monolithed 25.07.2011 14:42

Цитата:

Сообщение от melky
ну-с. лопатой в армии поработает, а пока можно и программирование помусолить

после нашей армии в разработку не возвращаются))

kobezzza 25.07.2011 14:46

Цитата:

Сообщение от monolithed (Сообщение 115287)
после нашей армии в разработку не возвращаются))

Вот поэтому, я и хочу в аспирантуру:D


Часовой пояс GMT +3, время: 10:27.