Live data from Hacker News

Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

news.ycombinator.com

21–30 of 147 posts

Re: Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

#22

I recommend running a serverless stack so you can avoid getting hung up on infrastructure shenanigans. It's super cheap too. React SPA via CreateReactApp using cloudfront+s3 to host the HTML+css+js and API gateway ->lambda backend -> w/dynamodb to store your data and you can get something cool and useable going. In that stack you can mix and match other UI tiers, swapping vue, angular or polymer in for react. I recen…

A few questions, as I don't know AWS much beyond basic VMs. - Is all this easy to do following their docs, are we talking 1 h setup or 1 day? - Cost: how much are we talking per week/month? (assuming no traffic but yours)

For the first year, you get one million requests per month for free. After that, it’s $0.20 per million requests. There’s also a component based on time & memory usage, but it appears to be small, too.

https://aws.amazon.com/lambda/pricing/

Re: Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

#23
You've already gotten a lot of good replies, but I was in your exact position and I want to share another perspective of what worked specifically for me.

First and foremost, stop worrying about making a "real application". Don't concern yourself with making this something that people will actually use, or something that could potentially make money, or the next Facebook. Just stop. You're never going to actually build anything if you keep second guessing whether or not it's a good thing to build. Instead, just acknowledge that your goal is to build something and to learn from it and have fun building it. If it turns out that your app becomes "real", then that is a huge bonus! But focusing on that as a priority is just going to be a blocker for you.

Second, if you are in a position where you are trying to "learn" new skills, then I would actually advise against starting with trying to build your Spotify/MapBox idea. Instead, pick an already existing something that either a) you already know a lot about or b) is a common app that people build (like a blog site or a reddit/HN clone). I know that sounds frustrating and not ideal, but I went through the same ordeal and it helped a lot. The reason for this is that there are tons of good tutorials for building something like a blog or social network site with all kinds of tech stacks, so that will help. The other reason is because you already have a feature roadmap laid out for you, and this will help get past the analysis paralysis.

For example, you can build an HN clone and just start off small by building the front page which links to other news sites. Then you add a login system. Then add comments. Then add points and ranking. Each step is small enough to actually be feasible, but probably tough enough that it will teach you new aspects (such as teaching you how to do logins correctly, or how to store comments effectively in a database, etc). And at each step, you still have the opportunity to add your own improvements as you see fit, so even though you are essentially building an HN clone, you can still add your own flair to it and explore your own personal interests.

I did the above, and I found that it was immensely helpful in actually getting past the analysis paralysis stage that it sounds like you are stuck at. After I built a simple news aggregator clone, I found that the process had taught me enough to then actually build one of my own personal ideas, and because I now had the foundational knowledge from building the earlier 'simpler' app, it was much easier to get a jump start on my own app.

Re: Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

#24
Idea for a simple Flask/Vue App: Multiplayer Anagram

I used to enjoy playing this years ago on a flash based gaming website but thats been taken down and I can't seem to find a simple html based one that lets you play with others online.

Gameplay: https://www.youtube.com/watch?v=Tb5-A-FLC98

Re: Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

#26
So, I wouldn't worry a great deal about which stack land in. Once you get familiar with HTTP, you can switch languages later, if you feel the need.

If you're wanting an exercise to help you build up to the confidence to approach your own webapp projects, I actually recommend porting kbwiki (https://github.com/yumaikas/kbwiki) to the stack of your choice, if you're ok with reading Nim (it looks like python, though it's rather different under the hood).

The reason I suggest this is that kbwiki covers both basic HTTP auth, and running as an HTTP client. kbwiki also is a real, but small web app. I use it to power https://idea.junglecoder.com and https://feed.junglecoder.com. If there is another project that does a lot of what you want to do, porting it to a different language would be a good exercise.

After that, think of an idea of something you want to use, and then try to pick off a small part of it. Working with the Spotify API, maybe just try to build something that lets you list your playlists, or maybe just one playlist. Then, build out one more piece, and continue doing so.

Though, one thing I will say: Working with 3rd APIs is often much harder than just building out something that doesn't rely on them, due to having to implement authentication. So if you have a hobby idea that doesn't rely on a 3rd party API, I would bias towards that for your first project.

See if you can find a friend or someone to discuss ideas in more depth. Having that second opinion can help unstick you, or help refine your ideas. I'd be willing to discuss over email, if you'd like an ear (yumaikas94 at the google one).

Also, be willing to do things that don't follow best practices as such (as long as you're cognizant of the fact). I've written 3 webapps in the last year, none of which implement their own authentication, because they are designed for one single trusted user. I have a Jenkins status checker I use at work that relies on me copying the "remember me" cookie out of my browser into the filesystem.

For now, don't worry about being "current" techwise, worry about building up a portfolio of different things. Get building, and eventually, as you build projects, you'll find a groove, and then, if you want to build things that are sophisticated on the front end, you'll end up looking into React/Vue/Angular. If you like backend webapps, Python, Go, or JS/Node will start to stand out.

If you take a left turn, and decide to instead go into desktop apps (I highly recommend making at least one or two in your life, but no rush), C# or Java might look attractive.

My overall point with the last two paragraphs is this: Learn tech that will let you build what you want to make, not just because it has a lot of articles written about it.

Re: Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

#27

I recommend running a serverless stack so you can avoid getting hung up on infrastructure shenanigans. It's super cheap too. React SPA via CreateReactApp using cloudfront+s3 to host the HTML+css+js and API gateway ->lambda backend -> w/dynamodb to store your data and you can get something cool and useable going. In that stack you can mix and match other UI tiers, swapping vue, angular or polymer in for react. I recen…

A few questions, as I don't know AWS much beyond basic VMs. - Is all this easy to do following their docs, are we talking 1 h setup or 1 day? - Cost: how much are we talking per week/month? (assuming no traffic but yours)

The setup was pretty straightforward with tutorials galore and it's rediculous cheap, the most expensive part is the route53 stuff as it costs a buck a month or something like that to route a domain. Well, I bought a few domains too so those are like 15 bucks a year (I got them from a random registrar, not aws).

Don't get me wrong though, it won't be a path of roses, aws error messages sometimes make no sense whatsoever and require some googling to figure out, typos are NOT your friend!

Luckily Google usually led me to someone trying to set something up similar and I could logic it out from there. My #1 thing that I wish someone had told me was that if you make a Ajax call to your web API and the browser spits out a CORS error, check, triple check the url and what kind of call you are making (POST, GET, etc) because at least on my setup mistakes in those actually shows up as a CORS error instead of your typical 404 error.

I also bit the bullet and figured out how to use one of the serverless sites to deploy the AWS API+lambda+dynamodb one one fell swoop using a .yml file. But first I did it all by hand via the AWS gui so I could get some idea of how it worked. That .yml file is a whole other rabbit hole as the error messages are pretty obtuse at times.

Edit: One thing to watch for on cost is the dynamodb, by default they reserve 25 total transactions per second on the free tier. If you try to increase the performance by reserving much a whole lot more, like 1000 tps per table/index, that will get pricey right quick. So either leave it at 25 and recognize that if you add an index things might get throttled while it builds the index, or do what I did, which is I went ahead and switched it to the pay as you go model since $0.20 per million transactions is plenty cheap and I'm not even flirting with that 20 cents on my proof of concepts that span 5 different web domains.

Re: Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

#29

You've already gotten a lot of good replies, but I was in your exact position and I want to share another perspective of what worked specifically for me. First and foremost, stop worrying about making a "real application". Don't concern yourself with making this something that people will actually use, or something that could potentially make money, or the next Facebook. Just stop. You're never going to actually buil…

Just wanted to second the recommendation to build something that already exists first. Like how artists do master studies, or still life, software developers can learn a lot by actually building something that already exists. It helps educate you about the nature of how certain things are built, and what considerations they have.

My first web project in Go was an email signup server. The second was a blog engine that still powers https://junglecoder.com. Both projects taught me a lot, and the blog took quite a while to finish up.

Getting something out the door and in front of other people, even if it's just your friends, is key.

Re: Ask HN: Haven't worked for a while, best guide/advice to start a hobby project?

#30
I'm sorry you are feeling anxiety and somehow "less". I've felt like that. I know others have too. It sucks, but its common and it will pass.

As for everything else, the biggest lesson that I have learned from my mentors this year is that everything is relative. For every choice you can make as a developer there are pros and cons. This language or that one. This framework or another, the list goes on and on and on. In fact making choices is a big part of everything we do. Naming variables is hard, primarily because we have to choose the best name. But how do we choose?

Learning how to make an informed choice is a powerful skill. The power I think, is from learning how to make a choice that once made, is satisfying to you. In other words the choices are hard and anxiety inducing: because they are choices. A silly assessment, but true. Pain is unfortunate because it hurts. Choices create anxiety becuase we have to make a choice and live with an unknown outcome.

So the hack, the trick, is to spend less effort on choosing and the majority of the effort on defining the context around the choice.

To your final statements: "I just want to work without feeling bored or overwhelmed. Any suggestions?"

I would say you should really evaluate the space of boredom, and the feeling of being overwhelmed. Spend most of your time just defining this. Give it a day or to and think about it, sleep on it.

Were you bored because you were just doing tutorials for no clear reason? >> Pick a project or outcome not an implementation.

Do you feel overwhelmed when you don't know what is next? >> Find a mentor.

Obviously these are just guesses, I don't know your situation. And if you just want another human to bounce ideas off of let me know.

Post reply on HN