The answer depends on the type of gambling you consider:
- Casino (machines, dices...):
In those games, the uncertainty is under full control of the gambling house. Suppose you play a roulette game: even if all the outcomes (numbers on the roulette) are equally likely, the pattern of the randomness is known by the gambling house and this is an advantage you cannot beat in the long run.
Of course, you can always get lucky and beat the gambling house from time to time but casino is a pure luck and no skill game.
Consequently, you cannot gamble in a smart way with this type of game.
- Poker:
I have very little experience with those but I think it depends on whether you play against bots or humans. In the former case, the situation is the same as casino but in the latter case, I guess skill can make a real difference and allows you to make money
- Sports Betting:
There are two key factors to take into account:
+ assessment of the chances of each outcome (probabilities)
+ percentage of your bankroll you need to put at stake
The first one is quite easy to do if you have a good knowledge of the sport you bet on and even if you don't, just look at the odds of a few bookmakers to get an idea of the forces in presence.
The second one is more tricky. As far as I know, the best (safe) way is to use a technique called the
Kelly criterion. Depending on a few parameters, it tells you how much (in terms of percentage) you need to bet to achieve the highest possible return in average on the long run.
I also strongly recommend to abuse sure betting or any other forms of arbitrage-like techniques.