There really is no one good place to start other than the beginning. Any kind of knowledge you get will help you if not now but down the road.
What skill sets do you have already and to what degree, HTML CSS JS PHP? If none it makes sense to learn the basics first.
A majority of addons will be built with PHP but without knowing HTML at all first, PHP is going to be all but useless for someone trying to do things start to finish by themselves.
Assuming you are starting from scratch, start by tinkering with HTML and CSS, once you can make some kind of display unit for some kind of data then move on to playing with some basic functions in PHP (standalone stuff, outside of xenforo) and try to populate your display unit with data from PHP... if for nothing else just to learn correct syntax and get used to it so that you can understand stuff that you may run into down the road a bit easier.
Once you are comfortable with php, then move onto actually trying to build something inside of xenforo.
There is a bunch of good guides here at xf for programming custom addons, but I would at least try and get a grasp on the fundamentals of HTML (+css) and PHP first so that you have some basics to fall on when you are trying to teach yourself. I really can't recommend any other way than that because that is what I know and that is what I did.
I have spent a lot of time teaching myself PHP since I joined here at xf and I am at the point myself a few years later where I feel confident enough to go back and finish addons that I started a while back but could not finish because of a simple lack of any kind of programming experience.
If you really want to build all of your own stuff, be prepared to invest lots of time learning.