Part-time programming work from home for inexperienced programmer?
June 4, 2006 1:47 PM   Subscribe

Is it worth learning to program if I am interested, not in a career, but working part-time from home?

I'm a stay-at-home mom of two kids, 5 & 2. For many years, I have made a bit of money by teaching part-time at the community college level, mostly on-line from home since my first son was born. In some ways, it's a good gig; I make decent money, and can do nearly all of my job at home while I care for my kids.

In other ways, the job sucks. Details aren't important, but I am exploring other possible ways to make comparable money in a comparable number of hours with comparable convenience. To be worth the switch, I would need to make about $25/hour, work no more than 8-10 hours per week, and work at home.

My partner is a programmer who works from home full-time. He thinks I should consider learning Perl programming. For the sake of argument, let's assume that when I try my hand at programming, I am reasonably competent at it, and enjoy it.

If I learned programming, would I be able to find part-time work that I could do from home?
posted by not that girl to Work & Money (27 answers total) 6 users marked this as a favorite
I'm sorry to disappoint you, but I think you'd find it extremely difficult to find regular work like that.
posted by Steven C. Den Beste at 1:52 PM on June 4, 2006

It's certainly worth learning to script (be it Perl or something else) as an exercise unto itself, but you may find it very hard to make money at it with your stiff restrictions -- even considering your extremely low billing rate. In a past life, I've contracted and hired scripters, and I at least would not be willing to risk the success of one of my projects on someone with severely limited experience, limited availability, and a primarily financial interest in their skills.

That's not to say that there isn't a perfect gig out there for you, but that you'd have to be extremely lucky to find it. You'd be more likely to do so if you do some scripting work to gain recognition in the community: writing and publishing useful Perl modules or scripts. Doing so -- and giving the result away -- presupposes a love of scripting that it doesn't seem you have or wish to cultivate, however.
posted by majick at 1:57 PM on June 4, 2006

I can't speak for programming, but what about looking into some other legitimate working from home opportunities? Many America companies are now "insourcing" jobs for things like call centers, help desks, and reservations. Some of the airlines are doing this for their reservations and ticketing departments (Frontier is the one I can name off the top of my head). The companies like this because they have no overhead costs for you, like office space, parking, etc. You'll benefit from working from home and the flexbility in hours, and they get the cost savings. I don't know of any requirements or limitations, other than maybe a phone and a good internet connection, but then again, I'm not knowledgeable enough to provide any more than cursory details as to how this works. It might be at least something worth researching, though.
posted by galimatias at 2:06 PM on June 4, 2006

I didn't think to ask or check if you are living in the US, which is the one place I've heard of the concept of "insourcing". Sorry for my "US-centrism" there.
posted by galimatias at 2:09 PM on June 4, 2006

I'm sorry to disappoint you, but I think you'd find it extremely difficult to find regular work like that.

You think so why, exactly? Read the rest of her post:

My partner is a programmer who works from home full-time. He thinks I should consider learning Perl programming. For the sake of argument, let's assume that when I try my hand at programming, I am reasonably competent at it, and enjoy it.

Look, it's not impossible to do this, if you know people who need programming work done Employment is really about trust, most people wouldn't trust %RANDOM PERSON% to do programming work without a degree and without any experience and without willingness to work from home.

But your partner is able to do this, so he obviously has the connections to do this.

That said programming isn't just something you can learn in a few months to be able to get to the level where you could be paid to do it. Even for things that seem really simple you can run into things that require a ton of complicated logic. Creating whole projects will be really hard.

I've learned programming and I really enjoy it. But I don't think it would be worth perusing for someone who didn't enjoy computers and math for their own sake. It's definitely something that you can learn on your own (I had taught myself a ton of programming even before I started college).

If you really wanted to do this, I would recommend learning whatever it is your partner knows and then you can work on projects together. I've taught a few girls at different skill levels how to program and it's easy (for them) if there is someone there to guide them through it.

So I guess my advice would be to go ahead and try it. If your partner is willing to put in a lot of time teaching you what he knows, you can learn it and then he can take on more work and pay you based on the time you put in.

If you break up or whatever it would be difficult to just find these sorts of jobs. You could take up web design though, and learn PHP and Ajax and maybe find work that way.
posted by delmoi at 2:14 PM on June 4, 2006

Yeah, my advice would be to work with your partner. Most self-employed programmers could do with someone to farm off certain basic elements of work to, but they simply don't trust anyone to do it (I know that's my situation, at least).

Failing that, Perl is on its way out. Look at Ruby or PHP instead.
posted by wackybrit at 2:25 PM on June 4, 2006

It sounds like you already have a built in internship program, so why not go for it?
posted by ryanissuper at 2:27 PM on June 4, 2006

You think so why, exactly?

I worked for 25 years as a software engineer, including as a consultant for a while. I don't think that there will be many who are eager to hire someone who spends a few months reading books and then hangs out a shingle.

There's a lot more to software development than simply picking up facility with one or more languages. Writing code is the easy part. The hard part is doing design, and those skills are not as straightforward to pick up.

The most common and by far the most important mistake that new engineers make is to dive into coding right away. The proper way to do it is to spend about half the project time specifying the entire system in detail, before you write your first line of production code.

The difference between a neophyte engineer and an experience engineer is that a neophyte engineer thinks the primary job of a programmer is writing code. An experienced engineer knows that the primary job is managing interfaces.
posted by Steven C. Den Beste at 2:31 PM on June 4, 2006 [3 favorites]

In my experience, a lot of part-time programming jobs are held by women who were programmers for 10-15 years out of college, and then had a child and want to work from home or limited hours. It will be hard to compete with them.
posted by smackfu at 3:14 PM on June 4, 2006

You'd probably enjoy yourself more learning HTML, CSS and or Flash instead. You get satisfaction a lot faster seeing the results and it's more useful relatively speaking. From there if you feel the urge to program you can learn Javascript or a server side language such as PHP.
posted by furtive at 3:20 PM on June 4, 2006

I think it's possible if you're willing to take a lower wage when you start out. And $25 an hour is a lower wage, if you're doing consulting. I got my start in consulting for the high tech market when I was in my early 20s (my blog has details on how I became a consultant). I wasn't doing programming, but I know people who were. If your husband is already working from home, could you ask what work he (or his friends) turns away because it pays too little or is too junior? You might be able to get your foot in the door that way. I know programmers who charge $125+ an hour. You can probably get some lower level stuff, if you charge a reasonable rate.
posted by acoutu at 3:22 PM on June 4, 2006

Not that girl -- what do you teach now?
posted by acoutu at 3:32 PM on June 4, 2006

I don't think that there will be many who are eager to hire someone who spends a few months reading books and then hangs out a shingle.


That sort of client isn't necessarily a joy to work for, but they do exist. Think of all the people who post AskMe's here e.g. "How do I build a web form / set up a messageboard / send email from a web page / other trivial web task?" Lots of small-business owners have a website, want it to do more than it does, can't afford qualified consultants or engineers, generally lack knowledge about how to go about getting it done or even what exactly it is they want done, and would be thrilled to pay a few hundred bucks to get a simple form or whatever up and running.

That said: finding those people is the hard part, and reining in their (usually inflated) expectations of what they can get for their few hundred bucks is even harder.

You might get more bang for your buck focusing on front-end stuff, as furtive suggests; a lot more people are "I need a website!" rather than "I need serverside work done to support my website!"
posted by ook at 4:39 PM on June 4, 2006

If you do get proficient in web stuff (I'd definitely go this way instead of desktop/server app development - 99% of the time there's a lot less on the line, and its almost always easier to fix mistakes when you don't have to distribute those fixes to hundreds/thousands of clients), I'd recommend trying to hook up with a web designer who will contract out the programming part of the jobs he gets.

For what its worth, doing programming here and there, largely through word of mouth (although watching forums/mefi/irc has helped a lot to establish initial contacts), I can make around $1500 a year from it. I wouldn't expect much more than that, unless you're amazing, can dedicate a huge amount of time to finding clients, or happen to have a natural source that trusts you implicitly.
posted by devilsbrigade at 5:12 PM on June 4, 2006

Response by poster: galimatias--I am in the US.

Steven, who wrote, "I don't think that there will be many who are eager to hire someone who spends a few months reading books and then hangs out a shingle": I wasn't thinking along those lines. One option for me, besides interning with the guy with the desk in the basement, is to study programming at the college where I teach, for instance, and where I could do the coursework for free as a perk of my current job. I'm not looking to make an instant job switch, but more thinking about whether if I put in the time and energy over, I don't know, a couple of years, to do some coursework and maybe get an actual credential (and, assuming, as I said, that I find out I enjoy the work), there would be work to do. I know my restrictions are, well, restrictive, but even though there are things I dislike about my current job, I'd need to match my income and flexibility to make a switch worthwhile. It doesn't suck enough for me to need to get out at any cost.

One obstacle I have come up against when exploring any option for a new job is that I'm not interested in a full-time career; I see myself remaining a part-timer forever. And there are some types of jobs I've looked into--and thought I would like--where it becomes possible to move into part-time home-based work after you've done your time in an office, and I can't do the time in the office.

Acoutu: I teach Freshman Composition. Part of what's bad about my job is the grading load associated with teaching writing, and part of it is departmental politics, and annoying and worthless pedagogical fads.

Thanks to everyone who's answered so far. This is being helpful.
posted by not that girl at 5:21 PM on June 4, 2006

If you're actually interested in taking some courses, then you should realize that languages as such are not very hard to learn. I've lost count of the number of computer languages I've used on the job; at least 20, though.

What's much more important is theory. The most important course I took in college was "data structures", where I learned about stacks, queues, linked lists, and trees. Those don't come up in some kinds of programming but if you're serious about this you must know what they are and how they work.

I doubt it's worth your while to study finite state automata; that's interesting and valuable, too, but probably only if you're going to be getting into operating system internals or device drivers, which doesn't sound likely.

90% of programming is done in one of three kinds of languages: goto-oriented (BASIC, FORTRAN, COBOL), block structured (C, PASCAL) and object-oriented (C++, Java). Goto-oriented is obsolete (and sucks). But you probably should have a good working knowledge of at least one of each of the other two.

What you'll find is that if you know one language of one of those kinds, all the others of that same kind are the same except that the paint job is different. PL/M, for instance, was just a cut-down version of C with different keywords. (PL/M is obsolete; but I programmed in it about 25 years ago.)

The other 10% is really strange. By far the oddest language I've ever used was a dataflow language called "LabView". The program editor was a custom graphics editor and a "program" in that language looked like a schematic. It was quite a shock, and it took me a while to get used to the fact that I had to stop thinking about execution order, because the runtime system scheduled execution events when they were needed without my having to tell it to do so.

There's also weird stuff like FORTH and LISP (and SNOBOL) but you are unlikely to need to know anything about those kinds of things.

I guess what I was reacting to here was something I've run into before: a basic and general ignorance by people outside the field who look at software and say, "Well, how hard can it be, anyway? All I have to do is learn this programming language here and I can be an engineer, too."

Anyone can hack code. (Well, not anyone but...) But that's not the same as producing professional quality product, and there's a hell of a lot more to software development than stringing keywords together with a text editor. The difference between a tyro and someone who is actually worth paying is that the code written by the latter will be organized well, will work reliably, will be documented, and can be maintained and enhanced by someone other than the original author.

It's like writing prose. Anyone can string words together, but making a living as a writer requires qualitatively different skills and knowledge. It isn't as easy as it looks.

If you're really serious about this, take those courses. Then you do that interning thing you were talking about. I learned more about software from my internships than I ever did in college, but the college courses were important because they taught me the things I needed to know in order to even be able to talk to the engineers I worked for as an intern and to understand what they said.
posted by Steven C. Den Beste at 5:54 PM on June 4, 2006

Just to preface this, I am a programmer. I've been coding as a hobby since 4th grade and doing this full time for the last 3 years. I was lucky enough to get in at near the ground floor in a small company that has done very well during my time there. As such, I have been extensively involved in more architectue level work, hiring decisions and training then would be usual for someone with my experience.

I can tell you that in programming, the most important factor in hiring is experience. There is absolutely no comparison between someone who has been a hobbyist for a decade and someone who has been working professionally for even a year. This goes even more so for college grads. Honestly, most of what they teach people in school is directly useless, only the practice in learning new languages matters.

While a lot of people do work from home full or part time that is generally something that is "earned" by having a great deal of experience under their belt.

About that only thing that can make up for a lack of work experience is either:
1) A lot of very high quality finished work you can show in a portfolio.
2) If all else fails, a degree. In hiring, I consider degrees last and least behind experience and finished work.

Also, keep in mind that if you happen to have skills in a very specialized field then the lack of competition in that one specialized area may make up for lack of experience.

Speaking from experience in the one sub-market of the programming industry which I have extensive knowedge, one skillset which might be work looking into is an Object Oriented Flash Developer.

There are a lot of experienced Flash people out there. The thing is 90% or more of them are utterly hopeless as programmers. The grand majority of the community are artists and designers who have picked up a little programming in Actionscript over the years. These people cannot program to save their lives.

Note: There are good Flash programmers out there. But for some reason large media companies only seem to have these artist-designers in their employ.

More and more content providers are wanting complex data-driven Flash pieces with features like streaming video. These simply cannot be done using the usual Flash-designer method of horrible spagetti code on a massive timeline (never, for any reason, should you have code on a frame or use gotoAndPlay). They get in over their head and deliver unmaintainable crap.

Anyway, the "secret" (if it can be called that) to good Flash is to learn a real Object Oriented Language first. C++ is of course ideal but C# or Java are more directly applicable as Actionscript is loosely based on ECMA (aka: Javascript). With some good OOP design skills, you can then tackle the horrible, convoluted undocumented buggy world of Flash. Build up a portfolio of handy bits (be sure to cover stuff like using XML data to drive the presentation, FLV playback, loading external media etc...).

Given a good portfolio, it should be possible to start getting contract flash work.
posted by Riemann at 6:34 PM on June 4, 2006

One more thing, an excellent intro to Java can be obtained free (and legally) here:
posted by Riemann at 6:35 PM on June 4, 2006

Perl is on its way out. Look at Ruby or PHP instead.

This is, clearly, nonsense. But you should definitely look at Ruby and PHP as well.

The suggestion to go into business with a web developer/designer makes sense to me, as well as the suggestion to work with your partner.

People are always going to want new websites set up, and there's often a big difference between what a "web developer" can do if they just know how to create pages using HTML/CSS etc and what they can do if they know PHP, Perl, Ruby, Python etc.

There are a lot of people who only know the former, and have no time to learn, or intention of learning, the latter. Installing even a simple CGI setup like a blogging system, with all the hassle of uploading the right file to the right place, connecting to the database, changing permissions, understanding the difference between a path on the server and a path on the website, is stuff that they just don't want to get their hands dirty with.

So knowing even a little back-end, server-side code increases your employability a lot. It's kind of like being a drummer. Everyone wants to play lead guitar or be the singer because there's not so much to carry and you get all the attention. Drummers have heavy complicated kit to carry around, soundproofing problems, etc. etc. so drummers are always in shorter supply.

I'm working on a project at the moment, for a friend, with just that skill division. Someone else is going to create the design and the HTML, and I'm going to make the back end work with MovableType, WordPress or some other CMS. There are about twelve people my friend can call on to do the front end, but only one or two who can do the back end. So I get the job.
posted by AmbroseChapel at 7:40 PM on June 4, 2006

I think the Flash suggestion is good too, now I've seen it.

Riemann's absolutely right about good Flash programmers being rare and bad ones being everywhere. We contract out a lot of Flash development for that exact reason.

Plus, you've got kids, and a lot of Flash work is in games. You might benefit from having five-year-olds close at hand you can exploit employ as QA testers. It might even be fun. If you've got kids you're probably going to be looking at a lot of cartoon animals whether you like it or not. If you're the one animating them that might help...
posted by AmbroseChapel at 7:50 PM on June 4, 2006

Not that Girl, if you feel you have a technical bent, would you consider trying your hand at technical writing, technical editing or technology marketing writing? I recognize that these are not programming jobs, but they do require some understanding of the field and might be something you could take up while studying programming, if you are so inclined. As a freelance technical communicator, you can probably go for an entry-level rate of $35 and work your way up to $55 or more within two years. (You'd give people a cut rate until you'd established yourself.)

I recognize that your question was "Is it worth learning to program if I am interested, not in a career, but working part-time from home?" It is worth learning to program, but I wanted to bring to your attention the many non-programming jobs you can do from home after taking just one course. (If you already have an understanding of programming, you could probably skip the course, since you don't actually need to know how to program but to understand the concepts.) These would be very relevant to your existing skills and you could, indeed, work from home. Also, you could still tap into your husband's business network.
posted by acoutu at 8:17 PM on June 4, 2006

have done programming here. i have a feeling it will be easier to work part time at home more in graphics and design than programming.
posted by mirileh at 7:31 AM on June 5, 2006

all priors aside, I totally believe that if you enjoy coding, definitely go for it, but if you really enjoy it, you are gonna be hooked like all other coders, which of course means taking time away from other activities... g/l
posted by BillyG at 1:54 PM on June 5, 2006

Anyway, the "secret" (if it can be called that) to good Flash is to learn a real Object Oriented Language first. C++ is of course ideal but C# or Java are more directly applicable as Actionscript is loosely based on ECMA (aka: Javascript).

C++ is not ideal. Python is an easy language to learn, it is Object Oriented but also allows an easier to learn procedural style. The best thing you can do is just jump in and try programming!
posted by aroberge at 2:46 PM on June 5, 2006

Riemann: Actionscript 3.0 is based on Java, rather then Javascript/ECMAscript. Thank god. Actionscript 2.0 sucks balls. Terrible, terrible language to work with.
posted by delmoi at 2:59 PM on June 5, 2006

acoutu suggestion of technical writing is very, very good.
posted by delmoi at 3:01 PM on June 5, 2006

Personally, I think programming is a fine thing to learn, regardless of what you're going to do with it. Perl is probably a good as place to start as any, but it helps to have a project in mind when you're just getting started. The project should dictate the language.

For your first time out, it's not going to matter too much what language you use -- it's more a matter of learning how to organize your thoughts, find resources, and deal with the logical of programming.

Maybe try to build something fun for stay at home moms and see how you like the programming process... and from there, see where it goes.
posted by ph00dz at 7:22 PM on June 5, 2006

« Older Where can I find a zine called Parlez-vous...   |   What's going on with my Gmail cursor? Newer »
This thread is closed to new comments.