TL;DR: I'm stressed out over choosing a side project because of the commitment and fear of failure :(

I'm a student and summer vacation starts in 3 days (and actually has already started for me, thanks to a "smartly planned" hospital stay), so I'm currently looking for a cool project to start. This will be my third summer vacation during which I want to make complete a project, and I never actually did it. The first year, I couldn't think of any reasonable, doable project which would be interesting and fitting for the time scope (I was quite new to programming back then, so I probably couldn't have done things that would be interesting to me, an any project that I could've done would just take 20 minutes, cause I wouldn't understand anything more complex). The second time, I chose a project too big with too much new things I had to learn on the go. I actually pushed through for nearly a week, but then I realized that I only completed like 25% in that time, so I lost my motivation, thinking I could never finish it, while not wanting to start a complete new project, because that would've felt like wasting the time I put into my first project. It was still a valuable project and I learned a lot by doing it, but this year I want to actually finish a project; so I'm really stressed out right now trying to come up with a good project.
Usually I have millions of vague ideas in my head, but as soon as it comes to choosing, every single one seems to be the wrong one, or I forget about all of them. Everything that kinda interests me seems way to big and complicated to me, but I sometimes feel like I'm just underestimating my abilities, but on the other hand I have ~25 projects on my hard drive, of which 4 or 5 are finished and most will never be finished. :/
And it's just so overwhelming to choose something like that, because on one hand I really want to do a bigger project that I actually finish, and summer vacation is the only time I have so much time to code, and I love coding, but on the other hand choosing such a project that I will work 2-3 weeks on is too much commitment and also I'm anxious about failing it and never finish it, just abandon a buggy mess. Am I the only one to feel that way, or are you too having problems choosing side problems?

And, I guess if you have any ideas for a suitable project (literally anything, so that I might be exposed to some new ideas), just comment it.

  • 4
    On your profile it says you know c++ and some frontend, could look into doing something with WebAssembly, it lets you compile c++ code and use it in browser. Currently I'm using it to run c++ /OpenGL code in browser, doesn't take to long to get up and running.
  • 2
    Make a program
  • 1
    @hexc How does that work? Opengl calls get mapped to webgl calls right?

    PS. Sorry for ruining your ++1024
  • 3
    I hear you man!
    Read an article one about a guy who delivered 7 side projects in a year. His approach was very insightful and I have been using it ever since.

    The idea is, commit only 1 month to a side project. Just one month. That will allow to see if you like it and should dedicate more time or just finish it in one month, or will allow you to drop it if you don't like it.

    It's interesting that the one month rule makes you stick to it for a little longer that the usual learning curve... So you don't just decide to do something, read some opinions and just drop it right away. Nop, one month forces you to stick to it through those hurdles. But at the same time if you realize you don't like it you can drop it after the month without a major investment and a bunch of lines of code (unless you are that awesome!)

    Anyways, hope this helps 👍
  • 2
    When i can’t think of any projects, i do code challenges, they are a lot of fun while sharpening your algorithm skills and you can even do them on the way.

    I can recommend the following sites:

    CodinGame: Very well designed website, the challenges are from the community and companies. There are regularly contests, where you code an AI to battle against other players (the next is on the 25th July). For quick battles there is a special mode called “Clash of Code”, where you doing short battles (Challenges with different objectives e.g. was the fastest to solve the problem) against other players, perfect when you are on the way.

    CodeSignal: The challenges are focused on problems that are usually asked in job interviews, created after problems that tackle every day in companies and from the community.
  • 1
    Codewars: The challenges are from the community. It takes a while to get familiar with the site, there are tons of code challenges some have a bad quality, but when you get used to it you can easily filter them out.

    There are more code challenge sites out there and i tested a lot of them, but after some time these three are the only ones that i regularly use.
  • 1
    I've found most of my best side projects have happened when I was interested in something for myself. It turns out making something usable gives you a decent product, who knew haha
  • 0
    2-3 weeks aren't too much time (you put to much value to amount of finished projects and you end up without any. Try to set your goal to hours spend on coding). Stop looking at clock and calendar it's workflow killer, because you focus on passing time rather than work.

    Also finish god damn projects, there is a lot of to learn at final state of project and you just miss it.

    Projects can be expanded almost to infinity and you need to find minimal viable product, when you could name project finished if you don't want to work on it anymore. For example I am doing some sort of data scraper from chromatography reports and I could add integration with Google drive and docs, exporting to excel, some basic data cleaning and statistics, but minimal viable product is program which copies chosen data and save them in txt file.
  • 0
    Easy, continue the 25% projext you abandoned.

    Side projects are meant to be fun, not to be finished.

    If you streas over a side project you are doing it wrong.
  • 0
    @beegC0de Yeah, so basically there's a project called emscripten which has a bunch of tools that generate the web assembly byte code as well as the 'glue' for OpenGL to webgl, basically exactly like you said. It is able to emulate more gl functions than just what webgl would normally support but you do get a performance hit, so it's recommended to use only calls available with whatever webgl profile you are targeting. Sofar I've gotten my animated models rendering in browser with a proper bone setup and GPU skinning. It's quite mesmerizing lol
  • 0
    @hexc and here I am trying to figure out how work with strings. Perhaps I will eventually build more useful things. Kinda sucks that you can't directly access the DOM yet. WebGL/opengl is a bit over my head at the moment.
  • 0
    @beegC0de the emscripten compiler lets you mix JavaScript into c/c++ so you can actually access the DOM if you want.
  • 0
    @hexc I'm talking direct memory access, so no overhead thru JavaScript.
  • 1
    @beegC0de so basically how web assembly works is that when CPP or w/e is compiled into WASM you get byte code. The byte code is essentially the same as what hot JavaScript code paths get optimized into. So it lets you skip the warmup phase while also being much smaller amount of actual data being transferred. Also it doesn't have to do any type checking because that's all done ahead of time. And because it's not being continually analyzed for runtime optimizations and dynamically optimizing, it saves a bunch of time that would normally be used doing that stuff, it's also faster to initialize because it doesn't have to be interpreted before being executed. So we may eventually get an API that allows for direct modification of the DOM but it would technically still be going through the JS VM.
Add Comment