... good points, but also visibility. Some would want to do a background check on you, after they know you can do the job (have knowledge in xyz), just to see if you are reliable.
Most freelance is word of mouth, which in web-terms means you need a good contacts list, there is a facebook kind of thing for work, called linked-in. There you can expose your professional achievements.
http://linkedin.com/
Before you put any text on that, browse similar skilled people. Try to grasp the language, keywords, etc they use. Mimic that. Some actually put their kindergarten in there, which is not that professional. Once you've done one "real project", ask key people to comment on that and recommend you. Build karma, as it were.
If you are going to post a pic, dress for success, smile, but do not grin, slant your head slightly sideways, gives you an edge.
And your skillset is: Java, Python, C, C++. Cython and Jython. but certainly also bash, ksh, some editors like VC, and find a list of versions (skilled in Python 3) and Java libs/frameworks (just putting java will not do)
Then, you need to shout loud, like the fishermen in the market, to sell your skills, in web-terms, freelancer.com or similar (which, you've already checked out, as you commented about that)
As for directions into the future, say 10 years from now... note that we are starting the automation revolution. This is similar to the industrial revolution. And being similar, it means that 60% of the current jobs will disappear. You have probably seen it in action. Baristas are machines now. Self scanning in supermarkets (actually, supermarkets want you to buy online), robots that can learn to do things (as opposed to the dumb 1-trick-pony robots), big-data analyzers (you've probably heared what Google is doing, but check out
Watson. Big-data from medicinal health linked to AI makes a doctor that never sleeps; with all the internet data, it basically is Sky-net). Even In news, there is news that is written by algorithms. Which means it is posted faster on the news sites, and is indistinguishable from human posts (for example, data from an earthquake is processed, and posted near-realtime). Taxi's will have no driver (you've seen Google cars, right?).
What I am saying is, find that trend and get on the wave. Stay out of your comfort zone. If you think you can do webpages... expand into unknowns, keep doing that, use another product to try to do the same. Now you can give your expertise on which is better for that particular customer.
Write good code (must be robust, clean, but complex enough that they want to hire you again for modifications) , and your name and email inside it, so that when it is time to update it, they can reach you, even if it is 20 years later.
And you need to distinguish yourself. Not in price, you can not compete there. But in niche. Find something you can specialize in, be it a software or a system.
For example, on this forum we have many embedded software (and hardware) experts. Ill take my expertize as an example: I do monitoring. (think Nagios, and other tools from big players).
There you have availability and capacity/performance monitoring. The first means a disk is full and a Unix guy has to run to solve it. The latter means that someone wants spreadsheets and charts in a report. In a big company, the threshold is set to 80%, in a small company, having still 20% free harddisk is still ok, and it is cheaper to set it to 90%, and due to less bureaucracy, faster to solve (on time). The same disk data used for availability is used in capacity/performance, where trend analysis is done, and calculated how fast your data grows, and if you need to buy new storage or more/faster servers. Then, software actually needs to be monitored, which usually is a process/service, logfile, port, some connectivity checks between its database, some custom checks (this is where I shine), and some logic, for self-healing. For example restart the program when it crashes, backup the core file, remove it, to have some space back (most software does not run well with a full harddisk), and lower the priority of the incident ticket, or automatically close it (or escalate to prio1 if it crashed again).The logic is not that complex, but unique to each business chain (the data flows from one end to the other, each component touched is part of the chain). The nice thing is that it permeates a company. You get to learn superficially each software, you talk to all sorts of people, from OS teams to license management (because you can monitor realtime how many instances of a certain software is used, or is installed), business continuity managers (the monitoring consoles are crucial in determining what is going on if SHTF, and if we have recovered). Its not a bad place to start.
And before you say: I can not do that... I just click buttons, code in perl, write in shell, and suggest "missing" and point out "misbehaving" monitoring... jup just a helpdesker...