

Ask HN: How did you build your first real side project? - ironicaldiction

I&#x27;m looking for success stories on how you went from 0 to implemented, maintainable project to serve as fodder for my own project building.<p>In the past, I&#x27;ve read books on development (in C++, PHP, etc), but it doesn&#x27;t seem to help all that much. I&#x27;ve started this time by using a book as a guide but diverging quickly to implement my own features.  I&#x27;m a bit upset with my pace of development, as it has taken me about a week (with school) to roll my own auth&#x2F;login&#x2F;registration system in rails.<p>I feel scared to dive in as if I&#x27;ll be in over my head, end up in dependency hell, or not be able to solve my own problems.
======
gvinter
Start with a really good spec. I started ProjectPulse.io by clearly defining
the problem, and what the solution would look like. Then I dove into defining
the needs of all the MVP features. From there, it wasn't hard for me to make
wireframes and get awesome designs from a designer. Then, I also made a list
of features I'm going to want to add, but not for the MVP, so they felt like
they were on paper, but not the same as MVP features.

Once you have a list down of things that need to be built because you know the
sum of those things is an MVP, put your head down and work until it's done.
Don't question anything until you have an MVP. Stop second guessing the
product or the market and just build it.

I'm leaving out the whole "research and learn from potential users" \- that
comes first, but that's not what we're talking about here.

TL;DR: Write a detailed spec for an MVP, then put your head down in code until
you have an MVP.

------
haidrali
I am currently building my first side project a android app which send users
location based tweets alerts ( if user has subscribe for a particular
location) and also let user location based tweets searching and following is
mine schedule of day

8:00 AM - Get up from Bed and get ready for office 9:00 AM - 6:00 PM office
timings 6:00 PM - 9:00 PM come back from office after dinner take rest a while
9:00 PM - 12:00 AM Side project work

Out of my hectic routine i only manage 3 hours + full Saturday & Sunday.

For you my suggestion would be to move to Ruby on Rails framework because it
will save your time spent on auth/login/registration (donkey work) it only
take take 5 minute on rails to configure Devise gem if you cannot move to Ruby
on Rails move to Laravel ( php framework similar to rails) + you really need
to stay motivated during 0 implementation till you get your production DONE
Best of luck

------
jpetersonmn
Just find a problem you'd like to solve and start working on it. My problem is
that I keep thinking of new features I want to add along the way. Right when
I'm ready to release something I always feel like I really need to add just
this one more feature for it to be good enough. The project I'm on now was
supposed to take a month, I'm in my 6th month now. But I think I'm almost done
haha.....

For my next projects I'm going to try to work on some smaller things I can
hopefully finish in a weekend. I feel better about myself when I complete
things, which motivates me to keep working/learning new things.

Good luck!

------
kgc
Avoid analysis paralysis by just making the thing you want to make using the
methods you already know.

------
follownotrend
If you're using rails, explore its libraries. Devise is an excellent gem for
user auth/login/registration. On Rails, you should move fast to build MVP, and
test the audience.

------
mod
I was in Costa Rica, and conflicted between building the SaaS and...well,
surfing, mostly.

I built the app. Took most of my spare time for about a month.

I have fond memories of Costa Rica, that month included.

------
coralreef
You just build it.

------
mindcrime
Just start building. "The journey of a thousand miles begins with a single
step" and all that. It sounds cliched, and maybe it is, but there's real truth
there. Just start... write a line of code _right now_ , even it is nothing
more than

    
    
      public static void main( String[] args )
      {
        
        // TODO: implement the rest here...
    
    
        System.out.println( "done" );
      }
    

and just start adding to it. If you get to a point where you don't know how to
solve a particular problem, stop, google, read, experiment, fail, learn,
retry, until you figure it out. Move on to the next step.

Yes, progress will be slow at the beginning. As you alluded to, doing things
like auth/login quickly get complicated, especially if you are dealing with
things like OAuth, OpenID, etc, and you have to learn one 3rd party library
after another... which probably won't be well documented, and which will
require you to read source code, use StackOverflow, use trial-and-error, etc.
That's OK, that's just the way this stuff goes sometimes.

Over time, it does get easier in a sense, like most things. You gain intuition
for solving certain problems, rooted in your experience. And the more you
understand about how things work "in the large" the better you get at solving
certain kinds of problems. Unfortunately, you usually also wind up taking on
progressively more challenging problems, so you always feel like you're
struggling just the same, even if you are actually moving much faster.

When I first started mountain biking, an experienced rider told me "it never
gets any easier, you just go faster". In many ways, programming is the same
way. But, like mountain biking, it has the potential to be a total blast. And
unlike MTB (for the most part) you can actually make money doing this.

