Don't worry about it, then. A "real" application is one that works and gets some interest. If you can get someone to say "I like it, but..." that "but" will give you plenty to learn from.
I hope this helps.
11–20 of 147 posts
Don't worry about it, then. A "real" application is one that works and gets some interest. If you can get someone to say "I like it, but..." that "but" will give you plenty to learn from.
I hope this helps.
So, having had success with my hobby projects in the sense that I reached my technical/product goals and then ended up landing a great tech job off of them, here are my thoughts, in no particular order:
1. Tech stack doesn't exactly matter. Don't overthink it. I personally love a variety of languages and want to be fluent with django, flask, express, sinatra, node, spring, and sails. That is, however, impractical, and comparing them endlessly is unproductive. They can all do what you need. Some are more complex than others, and learning curve is IMO the most important point of comparison. I ended up going with expressJS which is fantastically straightforward to set up and work with, and is extremely powerful and flexible and mature. That was partly because I was already fluent in JS from doing frontend work.
2. I wouldn't really recommend tutorials. If you wanted to build (for example) a twitter clone, you probably already know you need backend code serving HTML views. So just follow through the "Hello world!" tutorial on your framework of choice until you have it serving HTML views, then build off that, progressively googling things as you add complexity, e.g. "how to do user login with django". If you encounter a bit of syntax or a concept you're unfamiliar with, google the shit out of it. If you find nothing, ask on stackoverflow. I have asked like 400 questions there. I'm shameless. Stackoverflow tells me my questions have helped 3.7 million other people over the past 6 years.
3. If you want to do Vue, do Vue! Great! Frankly I think the prominence of react now is so great that I would be reluctant to focus energies on something else, but any good company won't care if you already know it or not, because you can learn it on the job.
4. Kind of repeating myself, but don't look for "spotify vue tutorial project"....that'll get you nowhere. Figure out how to use Vue, then figure out how to use the spotify API, then tie them together on your own.
5. It really helps to nail down what you're using. I did a lot of comparing for where to host my application, a lot of googling "X vs Y" and finally went with Heroku. It really depends whether you want to be doing your own server administration or whether you want most of that handled for you. EC2 and digital ocean will leave you managing your server, where Heroku for instance will not. I strongly recommend heroku, personally, or something similar to it, for the stage you're at.
6. Once you nail down HOW you're going to deploy your product, like with heroku, DEPLOY IT IMMEDIATELY! Deploy your first line of HTML, the one that says "welcome to my website" and make sure you can see it at `your-website.com`, whatever your URL is! It's so motivating to get that link out of the way, to know you already have the setup ready to put the code into production. As you commit each new thing, keep adding it! Keep deploying! It will feel like you're really getting somewhere and keep you motivated. If you wait until it's finished to do all that, you're far less likely to ever get there because mentally it will feel like you're eons away from completion.
Decision paralysis is something I struggle with too. Being able to recognize it and move forward, instead of second guessing yourself, helps a lot. It's good to remember engineering is about making trade-offs. Every solution will have shortcomings.
I've also found being strict about refactoring to be very useful. Don't solve problems before you need to. Don't write a function till you actually need it. Don't start with a complicated class structure, start with a some procedural code and naturally grow and refactor it. Don't try to start a project as if it were already 6 months old.
Bit of a ramble myself, but I get it. Second guessing your technical decisions is just something we have to find strategies to work around. Doing that makes us better. Working on side projects is a fantastic way to do it too, so kudos!
I recently completed a proof of concept with both polymer and react on the above stacks, probably going to do angular next. There were some annoying things in the area of error reporting being unclear from AWS' stack, but once I figured out that CORs warnings from the UI tiers accessing the API gateway usually mean a self inflicted typo in my url it was pretty smooth sailing.
I can assure you that the simplest of products will not result in the simplest code / stack.
It is important that you also personally want to use this thing, because when the going gets tough, you will stick with it.
Instead of starting on your own, maybe look for an open source project that you find useful and seems well maintained with an active community. Then see if they have marked any of their bugs or issues as good for new devs. You'll learn about the (sometimes terrible) group dynamics of software teams, you won't have to start a project from scratch, and you'll be exposed to the tools and code patterns in use today.
Instead of starting on your own, maybe look for an open source project that you find useful and seems well maintained with an active community. Then see if they have marked any of their bugs or issues as good for new devs. You'll learn about the (sometimes terrible) group dynamics of software teams, you won't have to start a project from scratch, and you'll be exposed to the tools and code patterns in use today.
Can you expand more on how to go about learning to understand a large open source codebase for the first time?
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…
- 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)
There is way too much of good dev stuff to decide the "best one". Just pick one and move forward.
Read this thread ... [Ask HN: Successful one-person online businesses? | Hacker News](https://news.ycombinator.com/item?id=21332072) .... there are quite a few examples of people cranking out useful stuff with basic tech (primitive).
It may make sense to just push out and launch if it is anywhere in your realm of interest. And focus less on novelty and differentiation. Eat into the existing market if you are stuck finding a way to differentiate.
I've analysed 15 products, in an area I'm working on, over the past few months and they all seem to be doing fine. There is nothing particularly different among them and think they focus on market and selling to people who would use them to keep the lights one.