8 ms·
How to start working on side projects
- smoyer 14y agoThe last time I interviewed a candidate for a web development position, he could only list the projects he completed for his master's degree (one might have been for his BSCS). I'm almost 50 and know far more about current technologies than he did, plus I have a family (to spend time with) and several of my own side projects (not to mention a start-up). If you're not passionate enough about programming to have a side project (or six), please just get out of the profession. Or maybe become a mediocre manager (if you think you're done learning when you leave school behind, you'll have no choice). I agree that high-technology businesses were the only organizations that maintained (or even grew) employment during the recession but ... that doesn't mean you deserve one of those jobs. If you love it enough to make it your hobby, you can earn a good living at software development without being a flash-in-the-pan.
- rdouble 14y agoThis is a common refrain, but the best programmers I've worked with do not have any evidence that they work on side projects.
- jaegerpicker 14y agoThat is exactly the opposite of my experience in every case I can think of all of the very best that I've worked with had many side projects. In fact some of the most exciting Main Projects have started as side projects of the Great programmers I've worked with.
- chimi 14y agoAnd you have provided no evidence that the best programmers you've worked with aren't actually below average programmers.
- wam 14y agoWhy does that matter?
- rhizome 14y agoBecause the inverse would also have to be true: programmers with open source projects are worse than the programmers rdouble is describing.
- wam 14y agoIs that the inverse? Would all programmers with side projects necessarily be worse than the programmers rdouble knows who don't have side projects?
- snogglethorpe 14y agoWhile I think programmers for whom programming is a "passion" (and often have lots of side projects and involvement in programming generally outside their work) can be among the best, I've also met tons of excellent programmers who approached it mostly as a profession and weren't really involved much outside of that. I've also met some really awful programmers who were "passionate" about it as a hobby. Passion outside of work is neither necessary nor sufficient. [I, personally, am of the "passion" sort. I find that this attribute can be both an (obvious) help but oddly, also sometimes a hindrance, as I can get too personally involved in things, and sometimes that clouds my judgment.]
- slurgfest 14y agoWhat made the passionate programmers awful?
- snogglethorpe 14y agoNo one particular thing... the only point is that passion isn't enough to make you a good programmer (or good anything I suppose).
- damoncali 14y agoLack of focus and addiction to mastery the new and shiny can really hamper a passionate programmer's ability to produce.
- kamaal 14y agoBecause for many people, they are confused between their least area of incompetence and passion. This happens with 99.99% of the people, truly passionate people are exceedingly rare.
- jmspring 14y agoPassion doesn't need to be about programming. Passion and curiosity can be targeted at other areas. The one type of candidate that I will almost always turn down when interviewing is the one that can't answer the simple question of "Tell me a story about something you enjoy and why. It could be a project you worked on, an outside hobby, anything." We all have our different strengths and interests, but the people I've found that I work with the best can talk about something they enjoy. As for myself, I've spent many years working in the industry. Sometimes I take on side projects just to noodle around, sometimes I take on consulting projects to learn something new (or help out a friend). Given my drothers, I lean towards non-programming pursuits these days -- cooking, gardening, mountain biking. In their own way, all stimulating and, at the same time, allow my mind to relax away from the computer.
- twmb 14y agoNo, please. I have many issues with this, coming from the applicant's perspective. He could have taken his masters program as his full time hobby. There is a reason he went to masters. He loved what he was studying. It only makes sense for all projects for him to work on are ones that are for the masters program. caveat: I believe this holds more-so for Ph.D. people than masters, as masters is still half class based. However, masters students have research projects that take up the other half of their time. Or, he could have had consistently heavy course loads. The reason that many famous entrepreneurs drop out is because they do not have enough time to do both school and their amazing side project (note, their one amazing side project). This is rare. Have you considered that >90% of CS graduates are not going to be superstar programmers? At my University, I do not know of any other students doing their own side projects, outside of research projects with professors (this isn't to say I'm the only one, but given what I know, I'd be willing to bet there are fewer than 5 doing something cool). One of my master theories is that I do need an online presence codewise and blogwise to demonstrate my competence and my passion for building cool stuff. However, to start building projects on GitHub or fixing bugs, you need a pretty descent level of competence. Universities such as mine first immerse you in Java, teach some theoretical CS (algorithms, ...), then have a class on various programming languages then have the upper division courses on C or C++. If you notice, most super cool open source projects these days revolve around C++ at a level that we don't learn, JavaScript, a language that is booming on popularity now but is only touched on in Universities, and Python, which is used in some Universities (those fortunate people) instead of Java. I doubt JavaScript will be seriously taught in Universities for many years. Maybe the Ivy's will have it down, but not everybody goes there. From this we can draw the conclusion that most students wont have the competence to commit to open source projects unless they go off and seriously learn on their own time. Students like that may only build simple projects for themselves and not put it up for show (it's so simple, surely somebody has better functionality somewhere, right?). Why blog? Students like that have nothing profound to talk about. One of my issues with the frequenters of hacker news is that every programmer expects everybody else to be at least as competent as they are. Not everybody has as high of a drive to code nonstop. I don't. After classes, after oodles of homework and self-teaching the 90% they didn't teach me in class, I want to read books. I enjoy reading. I enjoy hanging out with my friends. I, unlike most of my fellow students, have realized that dream jobs have ridiculous expectations. I can see why, too: if everybody wants the job, and they are doing something legitimately cool, then it's only reasonable they should have the pick of the litter. However, is your job a dream job? I hate seeing every single application say "two years of experience required" or five. I've been fortunate enough to get internships for the past two summers. Is every graduate expected to take some bullshit big biz job for 2 years, learning very little and becoming embittered by the industry? This is worthless. Some enjoy it, I don't. It'd be better for small companies to take on a promising looking graduate at a slightly less pay and have them expand their knowledge at the company. Yes, I deserve your job. I'm more than competent enough for it. If I don't have the knowledge you need now, I would be able to learn it in depth within two weeks (give me the full days to learn it). I love what I'm doing, but I love other things too. Having other hobbies besides coding is healthy. Just because you know all the current buzzwords (node, django, backbone, Go, ?) does not mean you are a better coder and does not mean another person without this knowledge is worthless.
- snogglethorpe 14y agoEr, ... just ... choose something you've found interesting, and just start working on it, playing around...? Write up some interfaces on your lunch hour? Dabble with it on the train in the morning? Think about algorithms in the shower (showers are my best source of algorithms!)? I mean, this is the thing you're doing for you, and that means it's something that you're personally interested in (er, right?), and personal interest is a huge advantage... Seriously, the idea that someone would need advice on how to "start working on a side project" seems almost bizarre.... Lots of personal projects don't pan out, or founder due to lack of time or whatever (which is fine, push over the humps when you can, but let things flow)—but starting them is easy.
- ChuckMcM 14y ago"Seriously, the idea that someone would need advice on how to 'start working on a side project' seems almost bizarre" Well it isn't bizarre in context right? There are lots of people who have spent the first 18 - 20 years of their life what to spend their time on. A significant fraction of them have never even begun to work on things that weren't "part of the plan" as it were. So coming up with a side project is a daunting task. The best advice is simply do something you haven't done before, code a compiler, code an interpreter, code up a javascript library, design a web site, take pictures of every bird in your back yard, dig up some dirt and sequence the DNA of things you find there, plant a garden, take an art class at the local community center, volunteer to sort food donations at a food bank, pretty much anything you haven't done before try it. That way you can discover things you are really interested in, and things you really aren't interested in. Since theses experiments are things you never have to do again if you don't like them, go in with the attitude of "Hey I can tough it through anything once, because it's only once." Its pretty simple advice and I am always amazed when someone hasn't thought of it already, but I have met a number of people who have graduated from college and then paniced with no idea what to do because their 'plan' ran out.
- madsushi 14y agoSometimes it can take years after moving out and being on your own before the realization clicks that you can make yourself an entire package of bacon for dinner and nobody can stop you. You have to learn that autonomy isn't just "not" being told what to do, it's beginning to tell yourself what to do.
- sideproject 14y agoRegardless of how you start, what you make and whether you deliver or not, let us know of your side projects. We're making a side project showcase/discovery place. http://sideprojectors.com http://sideprojectors.com
- overgard 14y agoA shorter version: close browser, write code. "How to" articles are an easy way to procrastinate, unless you're legitimately stuck on something.
- mertd 14y agoThe point is that your side project needs to be more interesting than whatever the browser can offer, so you don't even think about opening the browser in the first place.
- snogglethorpe 14y ago... and to a degree, I imagine they can make things worse if they create the impression that this is a Serious Thing That Requires Careful Preparation. One of the biggest personal-project (hate the name "side project" for some reason) killers I've encountered is simple fear: of failure, of not being good enough, etc. I try (but don't always succeed) to keep the thought that it's OK if my projects end up sucking, if they don't take the world by storm, if my interfaces aren't general enough and my algorithms inefficient. I still try to do the best job I can, simply for reasons of personal pride, but there's tons of stuff that doesn't actually matter all that much, and a lot more that can be fixed up after the fact. Just getting something is hugely important when you're operating without the sort of support network you have in a job.
- IvarTJ 14y agoLately I've found it engaging to try to build up a personal repository of C libraries. Mostly wrappers and reimplementations of well-outlined standards, but still very engaging. It makes me think about API design, learn about the details of a few standards, and simplifies experimentation with things I am interested in. Is this common?
- orangethirty 14y agoI usually just start doing something. Side projects don't need to be planned at all. They are just stuff we do. For example, one of my favorite type of side projects is fixing stuff. I have an in-human ability to do so. To give you an idea, today I changed the timing belt on the wife's car, and fixed a neighbor's washing machine (a sock got stuck in the pump). I'm also about to start writing code on a little API im writing for fun. Just start doing something without planning so much. It's easier to decide along the way than to figure out everything from the start.
- gurkendoktor 14y agoI think consciously stopping to work on a side project is the hardest part. Most of my projects end up floating around in my home directory or on github, with some remaining tasks in my To Do list. I'm sure I'm never going to touch some of them. When to pull the plug? Is github really a good archive for projects like this?
- aaronsnoswell 14y agoForget starting to work on side projects - I have so many unfinished side projects I need a NAS just to store my ~/Projects directory. Someone write me an article about how to finish side projects...
- dregitsky 14y agoNot that it'd help you specifically, but I've found that working with someone else can be really beneficial for getting things finished. For me it was great for keeping stuff on track and staying accountable when it comes to finishing parts of it up. That said, only certain kinds of projects are good for this.
- larsmak 14y agoI think these are all valid points, especially working on something you're passionate about. I would like to add (I guess these apply to general development as well): - Get into a "serial" mode, i.e. work on a single (small) component at a time, with as few context switches as possible. This can be achived by: - Breaking your project into small, clearly defined components. This allows you to: - Pick the component you feel would be fun to work with on this particular day. This should lower the bar for getting started on your project a late sunday morning. If you get stuck or bored, work on some other component. - Take a walk "All truly great thoughts are conceived while walking" - Nietzsche
- bobsy 14y agoWhile a few people have mocked this I think it contains some important ideas. 1) Focus on one project at a time. Resist the urge to get sidetracked. 2) Feel free to take a break from your project if you start to lose motivation. 3) Only change the scope of a project to reduce it. If you have more good ideas put them on a sheet of paper to implement after you finish your project. These 3 tips will turn you from starter to a finisher. I know a lot of developer's that have started tens, perhaps hundreds of side projects and when you ask how many they have finished there is an embarrassing pause and they point to a couple of projects. Switching from one project to another is fine the first time. Your new idea might be genuinely better. However if you find yourself doing it again and again it's a sign you are a starter and not a finisher. If you end up with nothing to show for your time what is the point of working on these projects in the first place?
- goldfeld 14y agoI agree focus is the most important thing but I love having something like a half-dozen projects going on at any time. I can easily procrastinate on not doing one of them when I don't feel like by doing another, and six times slower they all move forward whereas maybe if I had just one it would be six times faster split between my project and idle browsing the web.