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 got into hobbyist Python programming some years ago on a whim, having never programmed before other than BASIC way back when, and little by little have cobbled together a, in my opinion, nice little desktop application that I might try to get out there in some fashion someday. It's roughly 15,000 logical lines of code, and includes use of Python, wxPython, SQLite, and a number of other libraries, works on Win and Linux (maybe Mac, untested) and I've gotten some good feedback about the application's virtues from non-programmer friends. I've also done a small application for data collection for animal behavior experiments, and an ad hoc tool to help generate a web page...and I've authored some tutorials. I consider my Python skills to be appreciably limited, my SQL skills to be very limited, but I'm not totally out to sea, either (e.g. I did FizzBuzz in a few minutes, did a "Monty Hall Dilemma" simulator in some minutes, etc.). I also put a strong premium on quality user experience; that is, the look and feel matters much to me and the software looks quite good, I feel. I know no other programming languages yet.

I also know the basics of HTML/CSS (not considering them programming languages) and have created an artist's web page (that was described by a friend as "incredibly slick"...it's really not, though), and have a scientific background.

I'm curious: Aside from directly selling my software, what's roughly possible--if anything--in terms of earning either side money on gigs, or actually getting hired at some level in the software industry, for someone with this general skill set?

share|improve this question
add comment

closed as off topic by gnat, Jim G., Walter, ChrisF Nov 14 '12 at 20:43

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.

6 Answers

If people with degrees who can't actually do programming can get hired, you can. It's just a matter of connecting with an employer.

To that end, participating in open source, and adding projects to github or bitbucket provides something that people can see. Participate for a while, and you will get job offers. Whether they are worth taking is a separate matter.

share|improve this answer
add comment

I'm doing this right now. Still working a fulltime gig in an unrelated field while working on my programming chops and making what side money I can off of it. With most "computer arts", there is a low barrier to entry (as opposed to, say, becoming an auto manufacturer or opening a power plant). The beautiful thing about programming is - anyone can take a crack at it. The bad thing about programming is... anyone can take a crack at it.

At the end of the day, you are selling something. It is up to you to decide what to sell.

You can write an application, library, toolkit, website, etc... and try and sell it. This requires you to a) put together a viable product, b) have a level of quality people are willing to pay for, and c) market it so people know it is for sale.

Or, you could try and sell your services. For a fulltime position, you will need to overcome the lack of "hard qualifications" - things you can list on a resume. However, in my experience, it is not impossible to land an interview solely due to lack of hard qualifications if you have a good resume (even in an unrelated field) - people will at least bring you in for a chat. This is where you need to sell yourself, and where you will (hopefully) be given a chance to show the employer what you have to offer.

To get more interviews, polish your resume and increase the number of hard qualifications you can list (take courses, participate in open source, build online apps people can look at, try and get benchmarked or certified in something). To increase your interview success rate, learn your languages inside and out, study programming interview topics - not to merely memorize the answer, but to give you a list of things you need to understand inside and out - and go interview. Nothing beats experience.

Finally, you can sell your services, but as a consultant/freelancer. There are tons of sites where you can bid on projects. It can be tough to land your first work, but shoot for small projects and eventually someone will give you a shot. Good work leads to recommendations and a portfolio of happy clients, and you will start to grow a business.

Some tenets that apply to all of the above:

1) Don't expect overnight success. This is a process of building. Building skills, relationships, and reputation. However, it will begin to snowball and pick up momentum as you progress.

2) Don't expect to be paid the same as an experienced programmer. If you need to get your foot in the door, you may need to take a junior salary or work on a small low-pay project. However, make sure you don't stay poorly paid. Don't let people take advantage of your lack of success to make you into a cheap slave. The second what you are making is out of balance to the experience or reference you are getting, it's time to take a shot at the next rung on the ladder.

All in all, I think programmers appreciate raw intelligence over being able to spit out perfect code in an interview. Find someone to give you a shot, and impress the hell out of them. What's roughly possible? Whatever you set your mind to.

Good luck, and enjoy the journey!

share|improve this answer
2  
If you can do the job, I don't care where you learned it. Just be aware that no matter what path you took, there will always be things you don't know. And please, network folders are not a substitute for a VCS! –  Spencer Rathbun Dec 9 '11 at 20:28
add comment

The way I see it, there are three ways for you to make money out of your new found hobby:

1. Build an app and monetize it: Find a niche, a need that isn't satisfied by current apps or not satisfied completely. Build an app that fills that need and make money out of it. You could sell it outright, license it, or sell ad time through it. The sky's the limit.

2. Get hired: Not so easy, but doable. Your main hurdle is the lack of formal education and the lack of Real World™ experience. So you need to show your skill through the apps you have developed.

3. Work Freelance: There are sites like vWorker.com where clients will place projects for freelancers to bid on. They range in complexity from homework assignments to enterprise level apps. You can register (free) and browse the Python projects on display and see if anything falls within your comfort zone, then bid on it.

share|improve this answer
add comment

I've been pondering this dillemma. How do we transition a beginner or student developer to a professional developer? The only answer I have is apprenticeship. Here's the problem: when a law firm commits to training a lawyer...they control the lawyer's license for a certain amount of years (so the law firm can at least recoup the cost of training). There is no "Software Engineer License" so it's a crapshoot if a company commits to training a junior developer whether they'll stay with the company once they become competent.

This is why companies look for experienced developers because they don't want to invest in training an individual only to see them leave. Of course the remedy to that is to make an environment that a developer wouldn't want to leave, but the fact is the companies are few and far between who want to do that.

Another alternative is to join an open source project and work on the bugs, tests, and documentation (the stuff no one else wants to do). Get some traction on that and build up your skills. By the time you've acquired enough experience to enter the work force, someone would have probably noticed you and offered a job.

share|improve this answer
add comment

Some of this depends on your age (sadly), and the pay rate you expect. If you are "just starting out in life" and don't need a high salary then you can look for and apply for starting positions. If you want to get better at what you do fast, look for starting positions at a place that writes software to sell to customers (not just use in house), and that will put you on a team with more experienced programmers. If your expenses are very low consider interning a company. (you can also pick from many of the options below, some while you pursue this one)

If you already have a job that pays well (auto mechanic, baker, whatever) and can't afford to go from your current pay rate to an intro programmer rate your options are a bit more limited. You need something that lets you work less then full time hours as you already have a full time commitment.

One option is to go fully unpaid and contribute to open source projects with the goal of improving skills, and making contacts that may get you a programming job in the future.

If your current profession has a lot of domain specific knowledge and can be assisted by software, find a company that makes software for that market and get hired on the basis of being a domain expert with some programming knowledge. For example if you are a professional photographer look for a company that makes something like PhotoShop/LightRoom/Aperture/iPhoto and sell them on you knowing how their target market wants to use the products,as well as knowing what kinds of things are technically feasible. If you are a long haul truck driver find a GPS company that doesn't does a truck specific GPS and convince them you can help build a better one. Or find a GPS company that doesn't do a truck GPS and convince them you can help them beat the ones that are out there.

There is a lot the option of going it on your own. This is a lot easier then it was five years ago. Learn how to program Objective C and make iPhone/iPad applications. Or one of the other application stores (when picking one think about how many people using those platforms actually buy apps, not just how many people are on that platform -- not to rathole but I would think the iOS app market is a slam dunk, but the Windows 8/Metro market might be worth something).

If you choose to go it on your own, make your first app based on what you would use. That has the bonus that you get a free app even if it doesn't sell :-) More seriously it gives you something you know a lot about. Bonus if it is something without a lot of similar products. Bonus if it is in a professional field.

share|improve this answer
add comment

In my experience, getting a job in this industry is completely soft skills based. Thats why such a large percentage of developers out there making 6 figures can't do fizzbuzz. Spend less time actually getting better as a developer, and spend more time learning how to sell yourself. This may sound cynical, but thats just the way the world works.

share|improve this answer
add comment

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