Caveat: ROS is for research into robotics systems and algorithms. You can pick up your fav language, write something up, and use a thin IPC library (pub / sub) to tie it into the ecosystem.
Otherwise, it quickly becomes impossible to share portable modules and code libraries (all written in different languages, mind you). The alternative: Sticking to their language and compiling in their library or dealing with their dependency chain ... is much worse.
All I'm saying is, there are cases when you do need IPC, but you can do it without ROS... Surely it brings major benefits wrt. code reuse, but it can also be quite intimidating for a newcomer. I guess the best way of mastering it would be working on an existing project and having some experienced user walk you through it.
(Personally, while working on my master's thesis I tried ROS for some weeks before switching to V-REP Edu + NumPy + OpenCV. Not saying everybody should do that, but it worked for me)