Вопрос не полный. Каким именно программированием вы хотите заняться? Если это фронтенд-разработка (которая часто связана с версткой каких-то элементов), то будет важен экран; если это какая-то кровавый энтерпрайз на Java, то никто в здравом уме не будет ставить меньше 8Gb оперативки; если речь идет о программировании для iOS/MacOS, то выбор ограничивается, очевидно, продукцией компании Apple.
В среднем, можете взять ноутбук с процессором послабее (i7 в 99.99% случаев вам не понадобиться, да и i5 тоже сомнительно, что будет полностью задействован в everyday tasks). А вот на оперативной памяти советую не экономить. 8Gb+ обязательно.
Ну и, разумеется, экран должен быть хорошим, как и клавиатура. Вы будете работать за машиной каждый день, так что позаботьтесь о том, чтобы глаза не вытекали и кисти не болели.
Изучать программирование и практиковаться в нем можно на любом ноутбуке, даже очень древнем.
Я бы рекомендовал ноутбук с диагональю от 15", c SSD и оперативной памятью от 8Gb, видеокарта любая.
Сначала вам необходимо определиться, на каком языке и в какой среде программирования вы хотели бы работать. Далее нужно просто посмотреть системные требования в документации на эту среду и покупать ноутбук, им соответствующий.