Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have around 8 years experience in software development. I have worked on application development all these years using C++ /win32.

I few years from now I want to become a freelancer . I tried to look into some freelance sites and I am not able to find any projects on C++/win32. I feel C++/Win32 wont help me much and I need to learn new skills . But my job require me to still work on C++ , so I cann't learn any new skills. I can still learn some new skills but without good project , it won't make any sense.

I have shortlisted few skills

  1. php
  2. jquery
  3. perl
  4. python
  5. android

I am still confused which one to start and how to get expertise in them.Any suggestions?

share|improve this question

closed as off topic by Mark Trapp Jan 27 '12 at 12:46

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Thanks guys for your valuable comments. Recently I started to work on android , creating some basic apps. When I looked at freelance sites I found most of the web projects , so got confused what to do php,html or android? Now I made my mind to learn android and create some application,not thought about idea yet. Let see how it goes.. –  Alien01 Dec 11 '10 at 14:22

7 Answers 7

up vote 7 down vote accepted

I think the particular language you're planning to use is of very little concern when becoming a freelancer. Actual programming is probably the easiest part for most people. Yes, you'll likely need to know all of the languages/frameworks you've listed (depending on exactly what kind of work you want to find: if you don't want to do mobile development then there's little point learning Android development).

The more important skills will be learning to manage your time and your clients. You can do courses to learn that kind of stuff (I did half a term of a "small business" course, but gave up... it focused way too much on "traditional" advertising for the kind of stuff I would be doing, but that's a rant for another day). Typically, you'll learn that stuff as you go, but there are plenty of websites which give good advice (the linked to in knb's answer looks pretty good).

But if you're currently working for another company, and doing stuff that has nothing to do with what you'll be doing as a freelancer, what you should probably be doing now is:

Build a portfolio

That is, start working on projects now, whether for other people or for yourself, in your spare time. You'll want to have two or three completed projects to be able to show to prospective clients when you finally do quit your job.

What kinds of projects you work on depends on what kind of freelancing you expect to do. If you're going to do web development, build some web sites. Even if it's just a personal blog or something you need to have something to show potential clients. If you're going to be doing mobile development, build some Android or iPhone apps, etc.

Yes, it's tough to work on projects in your spare time when you've already got a full-time job. But if you're getting into freelance, you'll need to be prepared for long hours anyway (at least, when you're starting out... if you're good enough, you can earn enough to do fewer hours, but I always struggle with the "I could be working right now" niggling feeling I get when just sitting in front of the TV relaxing :p)

share|improve this answer

I don't understand how working in C++ application development precludes you from learning new skills and languages. Picking up a new language usually takes less than a few days for an experienced programmer as far as syntax is concerend. Why don't you start by trying to build a dynamic website for yourself. Maybe an imitation of wordpress. It's an interesting project from several perspectives. You get to learn things like PHP, SQL, JavaScript, HTML, etc. and at the end you actually will have a usable product that you built which you can later turn into a platform for showing off your work to clients.

share|improve this answer

Yes!

PHP - Yes, learning this language will make you suitable for a large number of freelance projects. May niche (and higher paying) services like WordPress customization, Drupal customization, Joomla customization will all become a possibility to you if you know PHP.

Python - This is yet another language that is popular and has a LOT of freelance jobs. It is also fun to work with. I have not taken projects that require python but I have seen many jobs on job boards, odesk.com, guru.com that require you to know python. These projects always involve developing web applications with Python using the Django web application framework.

Android - It is the hottest mobile development framework available today. I would tread with caution if I were you in relying solely on this for a steady source of income . A few years ago Symbian was the hottest mobile phone OS to program for. Now you can find not a handful of companies that use the Symbian OS. Nokia ( who owns symbian now ) has moved on to the MeeGo OS.

On to how to get expertise on these: There are dozens of books published on these topics by Packt, Apress, Wiley, O'Reilly. Investing in these books will save you much time.

Nope, Not really

perl - Not a lot of websites today use perl. You will cannot find many projects that require you to work on perl.

jQuery - This is just a javascript library. Knowing how to use this by itself will not help you go full-time (assuming of course you plan on going full time). What is more important is that you know how to work with Javascript and the document object model.

My suggestion for you is to focus on web development. Learn PHP, HTML, CSS and Javascript. Learn to use jQuery.

Also Consider..

Ruby On Rails - Ruby is a programming language and Rails is a web application framework written in ruby. You will find many jobs on this as well as full time positions on the same.

Most Importantly

It is important that you NOT base your opinion solely on what answers you will get here. Go to many job boards. Here is a directory of the job boards:

http://freelanceswitch.com/resources-directory/freelance-jobs/job-boards/

Get an idea of what are the niche skills that are in demand today. You need not necessarily prepare to provide the skills that is most in demand. Determine what you can realistically do well and acquire that skill.

share|improve this answer
    
Hmm ... your logic seems broken. you put jQuery in the 'Nope, Not really' section; but then you say 'focus on web development. Learn PHP, HTML, CSS and Javascript. Learn to use jQuery' ... –  Stephen Watkins Dec 11 '10 at 5:36
    
You seemed to have skimmed the part about: "....Knowing how to use this by itself will not help you go full-time...." –  rsman Dec 11 '10 at 6:03

Becoming a freelancer != getting your projects from a freelancing site.

share|improve this answer
    
Nice answer! And I know this from bitter, bitter experience. –  dotslash Mar 3 at 14:30

If you are seriously trying to get into freelancing and want to earn serious money, concentrate on the domain, and not programming languages first. For e.g. if you want to get into app development for Android, the real thing is innovating at the application level and user interface level -- coding is the last thing to do here (of course very important though).So you would definitely want to check out statistics of most selling apps, compare and contrast for what works and what does not, generally a fair bit of market research is must.

Of course programming languages matter, but say if you know C++ you should not have too much trouble picking up Java or C# on the job, and as you go along you'd get stronger with whatever language is used in the domain.

The key here is the domain itself -- each has its own problems and you are well advised to read technical journals, trade publications, IEEE and ACM papers or groups that concentrate on industry specific problems etc.

share|improve this answer

I work as freelancer for over a year now. And what I found out that although having technical knowledge (languages, design pattern, etcetc) is necessary, you should understand and do also those thing, which did not have to do in companies as a coder that much. You will not have a manager, accountant, salesman, marketer. Although you might get some of those, that's a luck.. you shouldn't refuse such support if get one. So try to know more also about these things, even if you are in a company yet:

  • try to value your days: how could you sell your today work.
  • manage your plan, track your time
  • try to market yourself: find out a product, try to find a market for is, who could use, need your product, publish your codes to show what you can do, sell your technical abilities and also your knowledge in a concrete domain; maybe have a blog, share your results and ideas
  • find ways to deal with customers, learn to communicate well with them: customers have often unrealistic expectations, facing them with reality or kindly saying no is a virtue which is good to know
  • have a strategy: choose and stick (but not too hardheadedly) to a group of technologies which you use for solving problems in a selected domain

So far what I see, it is a much safer feeling to be in a company, but more fun as a freelancer.

share|improve this answer
    
"it is a much safer feeling to be in a company, but more fun as a freelancer" -- Very well said! Although I keep swinging between the two extremes, given my rough experience with freelancing, I'm inclined to side with a day job, preferably part-time. –  dotslash Mar 3 at 14:31

Subscribe to the hacker news RSS feed.

You'll get lots of links such as this one.

Graphic Design matters most to clients, "unfair but true".

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.