Очень прошу помочь мне научится "нормально" программировать. Я пока студентка и нас учат только языкам программирования, но никогого стиля

Я тут только закончила сайт для сестры и это было УЖАСНО! Некоторые классы переписывала по 10 раз, базу данных периодически меняла. Сайт готов и работает, НО я бы его с удовольствием переписала заново ибо все там смотрится криво (в плане архитектуры).
Счас вот решила изучить Object C и обычно я для этого придумываю проект на котором изучаю. На этот раз я хочу все сделать по правилам, как это делают в компаниях. Но я еще никогда не работала

поэтому хз как все делать и очень бы хотелось чтобы в процессе мне указывали на ошибки и направляли.
Счас я пока продумываю над базой данных и буду рисовать
ER диаграмму. Ее кстати рисуют? Потом подумываю о том чтобы сделать uml, наверное достаточно просто
диаграмму классов сделать?
Что еще гадо сделать, до того как начать проектировать?
О самом проекте. Все просто и тривиальное — создам электронную кулинарную книгу.
1) хранить и редактировать свои рецепты. Тут наверное еще хорошо бы сделать поддержку разных стилей для рецептов?
2) поиск рецептов по набору продуктов в холодильнике

ну и проч. поиск и фильтры
3) вкладка полезных советов
4) составлять меню на неделю
5) ммм, может еще сделать возможность расшарить свой рецепт, но это наверное в плагины (см ниже). Но экспорт в различные виды документов точно надо сделать (начну с pdf, doc, txt, png)
6) закладка "Избранное"
7) можно конечно еще добавить подсчет калорий.
8) может еще что подскажите

? Я как-то не пользовалась ни разу такими программами (только качнула парочку чтоб знать что самой делать), поэтому не знаю что еще может быть полезно.
Думаю сделать пару плагинов к ней:
1) это для того чтобы хоть как-то мою книгу связать с приложением для айфона (ага, его тож буду делать). В айфоне будет приложение grocery list. Т.е. в электронной кулинарной книге мы можем создать меню на неделю и через этот плагин кинуть на айфон список продуктов.
2) Пока не знаю вообще это реализуемо или нет, но можно как-то загружать с жж рецепты которые указал пользователь. А также загружать свои из приложения в свой жж... (это я мечтаю, да?)
3) это хранить/загружать/качать фотки с фликера (зачем это... скорее всего чтобы извратится и попробовать побольше изучить в программировании).
Проект для айфона:
1) список продуктов
2) список своих магазинов
3) потом еще что придумаю, а может и нет. Мне пока важен сам Object C и сама возможность программировать под мас и айфон.
Для чего я все так подробно описала? Для того чтобы когда я сюда выложу диограмму классов, вы мне сказали что я упустила и вообще покритековали.
Помогите мне пожалуйста.