Which degree electrical engineering or computer science (programming) would be a better choice for a freelancer?
Programming can give you flexibility as long as you keeps your skills current. I wrote application programs for local business for a year or so, and it was pretty interesting. The problem with that model is that I had to take care of all the business aspects (marketing, advertising, etc) and all the programming, debugging, installation, follow-up, training, etc. You'll have to be pretty disciplined if you want to self-employed in programming. It took me about 6 months of good customer recommendations, referrals, etc, before I built up enough clients to allow me to stay busy programming without having to spend a lot of time drumming up business. You'll have to budget your time and finances for that. I worked a lot of 16-18 hr days during start-up.
I don't know what to tell you. At the time that I was writing apps, there were lots of really heavy apps that would do similar stuff, but the hardware requirements were high, and the software offered lots of "fluff" that real businesses didn't need or that could have been implemented more smoothly with less code. If you can write slim/trim code that does what the customer needs, you're in.turbo-1, I also had the idea of making computer programs to sell to small companies but I only know one particular not heavily-used form of BASIC and it is for Windows only (although the producer of this BASIC is adapting it for other operating systems). I developed some interesting and useful programs to help people mostly in one narrow industry for well defined analysis tasks. I tried calling on the phone to well-suited companies and sent some letters to several companies too, but nobody showed interest. Since nobody ever showed interest, I have not even convinced anyone to help me with testing, so I am the only one now who is aware (or even WAS aware) of my programs. I tend to believe that if someone tries to solicit interest in his own self-created program then the potential customers do not want to know more; if the company knows they want a particular program, then they will either search for it with an existing, producing company or will search for a private contract consultant to create what is needed. Any comments about all this?