The bottom line is that even for a native speaker, if you encounter a new character, chances are you don't know what it means or how to pronounce it. If it's simple enough, you may guess, but that's it.
Learning Chinese means memorizing characters. A lot of them. It takes over a decade to teach a Chinese kid to even read a simple magazine.
Combine this with the use of tones, and you get a pretty complicated mess. You can't use tones to communicate things like irony, anger or doubt. You have to play on volume. You're losing a lot of expressiveness and subtlety in the process.
This is why building a search engine in Chinese is so hard. You can't apply a Porter stemming algorithm for example; there's no concept of stem or etymology (no apparently logical one at least).
Moreover, combining one character before (or after) another can change the meaning entirely. Adding a third one can again change things. Since you don't separate words with spaces in Chinese, good luck figuring things out programmatically. Things in Chinese are heavily relying on context.
Learning Chinese can be an interesting challenge, but understand that it will mostly rely on memorizing characters with little to no logic or trick to help you do so.