I'm sure there are many reasons to know C/Assembler. But I felt like learning things like why:
obj.getField().setFirst("random"); obj.getField().setSecond("random");
is worse than
Field field = obj.getField(); field.setFirst("random"); field.setSecond("random");
Another reason I used to like C was that it always made me want to make my code run as fast as it was possible to run. When I write code in Java, I'm looking to make the code work. I'm not saying either is better, they just each have their plus points, but I enjoyed C more due it's challenges and feel I'm a much better programmer for knowing it.