The most convenient resource is straight from https://www.tonspace.co/. The TON community is improving this resource day after day so newcomers can onboard easier.
Also, suppose you are a student and you have a choice of what program language you should learn. At the moment, the basic language for writing smart contracts of TON is FunC. FunC is a domain-specific C-like statically typed language, so you can learn any similar program language (for example C, Java) to improve your understanding of FunC in the future. But, anyway, the fastest way to learn TON development is to learn and practice all directly from TON documentation.
In addition, contests organized by the TON Foundation help to immerse yourself in development and meet other like-minded people. You can learn more about planned contests here.
In my opinion, you should start with C and get a good basis for understanding basic computer science principals (stack, heap, programming logic basis). Even learning assembly would be nice, since TON needs it a bit more. It will be more difficult to start with TON smart contracts coming from JavaScript and Web than it will be coming from C & Assembly.