Duplicate
Mine was the fundamentals of object orientation. I had to read several books and journals before it sank in. I haven't really encountered that level of learning since.
Mine was the fundamentals of object orientation. I had to read several books and journals before it sank in. I haven't really encountered that level of learning since.
Functional Programming - that's a huge leap if you're not used to it. I'm still fighting to get my head round some of the concepts.
Pointers, especially if you've been taught programming in Java!
OO is a tough one, but I think fundamentally, in school, pointers were the hardest. I knew everything I was told, but it didn't make sense. "Ok, a pointer is an address, so what?" The academic answers were not examples of practical use of pointers in introductory code, just showing you what's equivalent to what, not explaining runtime versus compile time needs. Now I get them and I love them.
Definitely regular expressions. I have the t-shirt from xkcd.com of a super-programmer swinging in to save the day, saying "Everybody stand back, I know regular expressions".
The irony is that I can't get my head round them.
Personally, I find most aspects of programming very logical, and I never had trouble with any of them specifically.
Howerver, I'm going to go out on a limb here, and claim that in my opinion, many many programmers, have a very tough time with understanding pass-by-value/reference/pointer.