Нужно представлять: как происходит весь процесс шаг-за-шагом на верхнем уровне абстракции - в виде шагов или блок-схемы.
Это приходит со временем, с постепенным пониманием технологий взаимодействия (всей цепочки событий при исполнении кода) и инструмента реализации нужного функционала - языка программирования (+библиотек, и т.д.).
Банально, задача: сделать регистрацию.
Сразу вопрос: как PHP узнаёт: зареген я или нет?
И вот отсюда - начинается гугление и чтение документации. (т.е. получение знаний)
Затем - кодирование (получение опыта).
Вариант 1 и там - одинарная неполная (в большинстве случаев) итерация массива.
Во 2-м варианте - перебор с проверками, что значительно будет медленнее...
Для статики или проксирования контента и при условии размещения на выделенном сервере VDS/VPS - NGINX будет лучше.
Для динамики - разницы в производительности на NGINX и Apache нет.
Для расширения функциональности, тонкой настройки, при размещении на хостинге под любой OS, удобства работы с правами доступа к различным разделам/директориям сайта - Apache подойдёт лучше всего. Документация
Не советую записывать цифры с пробелами в базу: как потом будете сортировать по цене?
Настройте отображение с пробелами после получения информации из базы через number_format(). Это единственный верный вариант в данном случае.
Какую из перечисленных целей Вы преследуете на данном этапе?
1. Разрабатывать сейчас для себя и кросс-платформенно
2. Разрабатывать для других (брать заказы) за хорошие деньги
3. Разрабатывать на наиболее перспективном (в ближайшем будущем) языке, не обращая внимания на размер комьюнити, качество документации и количество заказов на этом языке.
Какой тип проекта планируется разработать?
1. Игра (клиент+сервер)
2. Системное серверное ПО
3. Системное клиентское ПО
4. Серверное ПО: интернет-сервис/web-сервис/web-сайт
5. Клиентское ПО: web-клиент/мобильный клиент/чат/etc.
Для каких типов платформ?
1. Мобильные
2. Стационарные
3. Игровые
Что нужно будет применять при разработке?
1. Аналитика
2. BigData
3. AI
4. Лингвистика
5....
Это базовые вопросы, которые помогут определиться с выбором языка.
Я бы нашёл все "ЗА"/"ПРОТИВ", проанализировав разные кросс-платформенные "движки" и выбрал бы исходя из максимального соответствия наших возможностей (моих знаний и нужных мне возможностей "движка") и перечисленных выше критериев.
Сначала нужно распознать.
1. Используйте дробление формы на невидимую сетку из квадратов.
2. Спозиционируйте содержимое формы так, чтобы при выборе ответов были точно известны координаты квадратов с номером вопроса и вариантами ответа на него.
3. Сделайте какие-то направляющие пометки (жирные уголки, горизонтальные/вертикальные линии и т.п.) на углах листа формы (для более простого и точного распознавания)
4. Подключите любую библиотеку распознавания готовой фотографии/скана формы. Например, OpenCV.