2010-12-12 2 views
2

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

Программирование на сегодняшний день полна абстракций, и люди, которые не понимают абстракции, не понимают по сути или дизайну, чем занимались построением этой абстракции/слоя/структуры и будут бороться, как только они выйдут за пределы зоны комфорта ,

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

  1. взять небольшую проблему
  2. реализовать простое решение
  3. говорить о решении и конструкциях используются
  4. преобразовать решение в рамки или полезность какого-то
  5. Теперь продлить проблему пробел и повторить с шага 2.

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

[Добавлено уточнить цель]

Основываясь на ответах и ​​комментариях ниже, я хочу уточнить, что я хочу, чтобы двигаться дальше вверх по стеку. Создайте свой собственный ORM, чтобы лучше понять ORM, так же, как и для ActiveRecord, контейнера IOC, привязки данных, механизма моделирования шаблонов и множества других магии/клея/сантехники, которые мы используем изо дня в день.

Спасибо.

+0

добавлен ответ с образцом ресурса: http://live.visitmix.com/MIX10/Sessions/EX15 – bronze

+0

Книга Джанго следует шаблону, который вы описали, чтобы научить веб-платформе Django Python http://djangobook.com/en /1.0/ – jfs

ответ

0

Прочтите источник. Это хорошая идея для создания чего-то, что вы хотите понять, но вы можете значительно улучшить понимание концепций, посмотрев, как что-то построено. Это особенно верно для объектов инфраструктуры (ORM/DI/Templating), которые вам, похоже, интересуют.

Получить программное обеспечение для сборки на вашем компьютере, прикрепить отладчик и проследить его код. Это довольно легко для C#/Java с хорошей IDE. Для динамических языков, таких как Python и Ruby, требуется хороший редактор и много grepping.

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

1

Вот что я рекомендую: возьмите щетку со сборкой (достаточно одной книги или одного месяца). Хороший обзор C++ (надеюсь, он научит вас и некоторых C). Теперь мир принадлежит вам. Python создан в C/C++, Object C довольно близок к C++, .NET - в C++ и C#/VB.NET. API окон ориентирован на C.

Я выбрал C# как мой абстрактный язык выбора после это, кстати.

+0

Это обсуждается в эпизоде ​​«Жизнь этого разработчика»: http://thisdeveloperslife.com/post/1361199493/1-0-6-abstraction. Это путь http://www.charlespetzold.com/, хотя все короткие кисти, которые я рекомендую ему делать много лет :) У меня есть глубокое уважение к его гению. – basarat

+1

Я начал с Pascal, затем C, затем ASM, затем снова C (на этот раз с большим мужеством), затем C++, и теперь я переключаюсь на PHP + C#. Но да, нужно начинать низкоуровневое и идти вверх по уровням абстракции. – Quamis

+0

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

0

Создайте полностью функциональный компилятор с нуля на системном языке, таком как C или C++. Возможно, это не полный стек, но это большая его часть. Это то, что я хочу сделать. Если бы я мог найти время и пространство.

0

Лучший пример того, какие учебные ресурсы я ищу, - это сеанс MIX Роба Эйзенберга «СОЗДАТЬ СОБСТВЕННУЮ СТРУКТУРУ MVVM». Это шаг за шагом объясняет шаблон, а также реализует его одновременно, атакуя одну проблемную область за раз.

http://live.visitmix.com/MIX10/Sessions/EX15

Надежда есть еще там.

Смежные вопросы