З чого почати вивчення програмування

Приблизно років 5 тому я ходив на співбесіди в місцеву компанію, що займається створенням сайтів. Я йшов туди, як верстальник.
Одне з питань, яке мені поставили, був: «На скільки ти оцінюєш свої знання мови програмування PHP за 10-бальною шкалою?». Моя відповідь була: «Приблизно 1-2 бали». Рекомендую вивчити PHP для начинающих , адже в майбутьному Вам це знадобится

В результаті в цю компанію мене не взяли, пояснивши тим, що їм потрібні фахівці зі знанням PHP.

Всі ці роки, будучи веб-девелопером, я постійно відчуваю необхідність в знанні мови PHP, оскільки мені доводиться стикатися з ним регулярно. Однак у мене ніяк не виходить його вивчити.

У порівнянні з вивченням технологій HTML, CSS і jQuery, які я освоював і освоюю просто на «Ура!», PHP чомусь мені дається нелегко. І на даний момент, через 5 років, я також оцінюю свій рівень знань PHP в 2 (ну, максимум 3) бали з 10.

Незважаючи на мої мізерні PHP-пізнання, я примудрився створити ряд плагінів для движка WordPress.

Як же це у мене виходить?

По суті, все просто. Я б виділив наступні 3 моменти, які мені допомагають у цій справі:

Деякими основами PHP я вже володію: знаю, як писати умови і цикли, створювати функції, трохи розбираюся в масивах, можу обробляти POST і GET запити.
Світ не без добрих людей, тому є до кого звернутися за допомогою. Мені не раз допомагали наступні PHP-програмісти: Максим, Антон Молодий, Ярослав (з мого міста). Всім їм велике спасибі!
WordPress — дуже популярний движок, тому в Інтернеті представлено просто море інформації по вирішенню тих чи інших PHP-завдань. Тому мені достатньо задати в Гуглі правильний англомовний запит, а потім протестувати знайдені шматки коду. Тобто всі приклади вже є, залишається їх тільки знайти і використовувати за призначенням у своєму плагіні.
При всьому цьому є один істотний мінус — складно вирішувати проблеми і реалізовувати побажання користувачів моїх плагінів. Тобто коли просять: «А як зробити те-то і те-то?» або «А чому у мене ось це не працює?» часто доводиться відповідати: «Не знаю».