blundakat wrote:Would you say I would be better off doing it all from scratch in the long run or would an mp3 player etc be too complicated to code for a beginner?
What do you mean by mp3 player exactly? Is it just a GUI based player, like VLC, or are you talking about writing an mp3 decoder library as well?
One golden rule is to not try and reinvent the wheel. Even VLC uses standard external libraries for encoding and decoding. One of the benefits of coding in a unix system is that it's far more like Lego, where there are lots of small programs and libraries so you build with the pre-existing blocks as far as you can.
blundakat wrote:Also, why python? why would you choose that language over the others?
Because it's a high level language in which there are APIs ('bindings') available for a lot of common programs and libraries - e.g. VLC, Gnome, ffmpeg. That way you can have more fun producing something that's quickly usable (that really helps with the motivation!)
Personally, I'd start with c (not c++) if you've no experience of coding at all, but it's a lower level language and would take a lot longer to code something like a music player. C is also like chess - the rules are easy to learn, and worth learning, but it takes a lifetime to master.
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." --Brian Kernighan