Why does offline rendering of videos take lot of time is it because bad software architecture or is it normal?
While in handmade hero complicated scenes are rendered in a fraction of a second.
And does anyone know a fast video renderer I really got annoyed working with adobe after effects?
Offline renderers are also usually dealing with less optimized scenes as ultimately artist time generally ends up being the greater cost than CPU time and so having a renderer that can produce good results in a reasonable time without too much hand tuning the scene saves time and money overall and also gets better results because the artists have more time to iterate on their work if they aren't caught up in the details of minimizing polycounts and optimizing texture layouts and creating extra lights and environment probes to fake reflections and bounce lighting or trying to work around some corner-case where the renderer deviated from being photorealistic/physically accurate to gain a speedup, etc.
Real-time renderers are like 90% trickery whereas offline renderers are maybe only like 50%, all the 'smoke and mirrors' of real-time renderers make them super fast but also require much more manual artist intervention to actually get good results out of them which slows everything down when your goal is delivering a movie in X amount of time rather than delivering a frame in Y amount of time.
As for learning, there is some good books on the subject but you can probably do just as well by just learning the necessary maths (ray triangle intersects and such), giving it a go, and crawling the internet for relevant blogs and research papers and such. The basics are actually really simple, it's basically like 'dual photography' in that rays actually go the opposite direction to the light (ie. they shoot out of the camera) and they just bounce around the scene (possibly colliding with light sources) and then it's just a matter of applying all those shading equations that are basically just the same as the real-time ones (except the light in each case is usually the light bounced from the previous surface).
(conceptually this is all there is to it anyway, efficient implementations might look very different)