Hacker News new | past | comments | ask | show | jobs | submit login
How to start working on side projects (medium.com/life-of-learning)
91 points by superkerplunk on Feb 24, 2013 | hide | past | favorite | 40 comments



Er, ... 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.


"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.


Sometimes 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.


I cannot agree more. I was going to respond to the post that the best thing that can happen is being told that you can do all of that.

Once you realize that you can investigate whatever you want, the world opens up for exploration.


I suppose you're right, but it's still kind of amazing to me... I can't think of any time, since I was a young kid, when I haven't had a zillion things percolating outside of what I was "supposed" to do (and I'm not the entrepreneur-type in my family [that's my brother], I'm a lazy sod ><). Even when the amount of work ramped up in college, there was always stuff on the side too. Most of those things were super dopey, of course, but they were mine... :]


You aren't alone, some folks just can't help thinking about random things. But surprisingly a not insignificant number of people just sort of 'freeze up' when they don't have someone telling them what to do. You will run across these people, be nice to them, teach them curiosity and the courage to try new things.


I kinda think that if you can't come up with at least one side project easily, then maybe you shouldn't really have side projects. They should be something that inspires you, so I don't really understand people who pick side projects based on other people's suggestions or on what they think may sell. That's like not picking your trade based on what you enjoy.


There's little easier than starting projects. That doesn't really require advice (and the article also suggests doing things which are interesting).

However, the article is mostly about finishing projects, which is harder to do: e.g., staying motivated, finding time, not getting too distracted with other projects that nothing ever lands.


The 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.


While 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.]


Passion 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.


> Passion doesn't need to be about programming. Passion and curiosity can be targeted at other areas.

Of course. However I think this particular thread is about programmers who are passionate about programming, and how that relates to their ability as programmers... :]

[AFAICT, passion in general is good for mental health, and I'd even wager it's correlated with intelligence. It's indeed a good thing to have, but passion in general won't have quite the same effect on one's profession as passion about that thing in particular will have...]


<it>programmers for whom programming is a "passion"</it>

Beware of turning your passionate hobby into your job. It will become a chore. Also, you won't have a hobby anymore that keeps you from burning out.

(Source: Personal experience. I am an academic.)


> Beware of turning your passionate hobby into your job. It will become a chore

YMMV... :]

This often doesn't seem to happen with programming, perhaps simply because it's a fairly broad field.


What made the passionate programmers awful?


Lack of focus and addiction to mastery the new and shiny can really hamper a passionate programmer's ability to produce.


Because 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.


No one particular thing... the only point is that passion isn't enough to make you a good programmer (or good anything I suppose).


This is a common refrain, but the best programmers I've worked with do not have any evidence that they work on side projects.


That 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.


And you have provided no evidence that the best programmers you've worked with aren't actually below average programmers.


Why does that matter?


Because the inverse would also have to be true: programmers with open source projects are worse than the programmers rdouble is describing.


Is that the inverse? Would all programmers with side projects necessarily be worse than the programmers rdouble knows who don't have side projects?


No, 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.


Touche (pretend it's got an accent) ... and somehow I suspect we wouldn't have to drag your capabilities out of you during an interview. You felt strongly enough to write a short essay, but the line that caught my eye is "self-teaching the 90% they didn't teach me in class". That's exactly why I look for side projects - because most of us use them (in part) as a means to learn something we think might be of value. And we aren't always right, but sometimes learning what's not worthwhile is also worthwhile.

So when do you graduate? Where do you want to live when you're done with college? What kind of position do you want? So how about zero years of experience for someone that's proven to be intellectually curious? What do you want your life to look like in ten years? You've piqued my interest ... care to talk?


I have to admit I cringe a little when I see a recent college grad who is literally only aware of what he learned in his classes. I've been a developer now for 12 years and have interacted with college grads frequently. I can honestly say, the grads who never programmed until CS 101, and only ever programmed for their classes are almost always inferior to their counterparts who explored, experimented and maintained a genuine curiosity of what's out there. Software changes so rapidly, and it always will. You simply must keep abreast of it, at least a little bit. For sure maintain other hobbies and balance your life, but this industry does demand a bit more just by its nature.


> 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).

Surely you realize that the point of these questions is to try to weed out that 90% as much as possible. A potential superstar coming out of college doesn't cost that much more in salary, so you want to get one if you can (another way to put it: hiring mediocre programmers won't save you money overall). You may see a bias on hacker news because people here are disproportionately working on (subjectively) interesting projects, so they think they can get potential superstars on board.

You may like this pg essay if you haven't read it: http://www.paulgraham.com/mit.html

Btw, I'd encourage you to apply to those jobs anyway with a candid cover letter. You made a good impression here. But your concerns here are also a reason to take networking seriously and go to conferences, departmental seminars, local user groups etc. You have to know people before they can know you're good (and yes, I'm aware of the inappropriatness of replying to your comment with "immerse yourself EVEN MORE!" The trick is to do it strategically so it's not any more time overall).

Edit: "these questions" = asking about side projects


A shorter version: close browser, write code.

"How to" articles are an easy way to procrastinate, unless you're legitimately stuck on something.


... 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.


The 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.


While 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?


I 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.


Regardless 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


I 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


I 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.


I 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?


Lately 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?


Forget 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...


Not 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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: