A game asset is something that is a part of the game. An asset can be a text file, image, 3D models or something else.
My code is part of the game, is it an asset?
YES, even the codes written in game development are considered as game assets.
There are separate designers for each type of assets. 2D sprites are made by 2D artist, 3D models are made by 3D artist and music is composed by sound designers.
AAA game publishers have multiple artist and designers working in one game. Whereas indie game publishers mostly create all their assets themselves.
Some of the major game assets are
1. 3D models and animations
2. 2D images and Sprites
3. Materials and textures
4. Music and sound
You can either make or buy game assets. If you want to make assets for your game then you will have to learn the respective software.
If you want to make a 3D model then you will have to learn Blender, Maya or 3DSmax. If you are into 2D art then Inkscape is a good free option
You can also hire freelance artists to make game assets for you. Freelancers are much cost efficient than complete game studios.
There are multiple websites that offer free and paid assets that you can use in your game. You can use the game asset finder to find the assets required for your game in one place.