This is by far the most sensitive and technical field in computer science. Programmers have to check for the finest technical details in order to make their program perfect and bug-free. Yes, we know that no program is error free in its first test. That’s how sensitive programming is!.
Besides sensitivity and technicality there is another element which makes programming difficult, and that is variety. There are a lot of programming languages available. Yes, the concept and theory behind each language is same but the syntax and structure of each language is different. That’s why programmers need to learn and practice the syntax which is specific to their language and if they want to switch, they have to learn a completely different syntax from the start.