Нет, не трудно. Главное - наличие критического мышления и способность к обучению, ну, и конечно - усидчивость. Я знаю множество людей, которые не программисты по образованию, даже не математики, но которые достигли больших успехов на этом поприще. И знаю множество людей, которые, имея соответствующее образование, пошли работать в банки клерками или в магазины продавцами. Так что - образование в этом вопросе не самая важная составляющая, а вот способность мыслить определенным образом - да.
Логика по своей сути сугубо гуманитарный предмет.
Трудно, если нет интуитивного чувства понимания с первых уроков.