27

Hello, I'm now gonna rant for a bit. I'm usually not a ranty person (wait, why am I on this site again?) , but here we go. I sometimes feel misunderstood about my side projects.

I don't know about you guys, but when I program on my free time, sometimes I just want to grab a glass of wine and explore things I think bout during the day. So, during the start of my CS-education, when I started to get my programming feet a little warm, I wrote this tic-tac-toe game (as you do...), and I thought "Well I know how to play the game. Surely I can program an AI to play against". So I thought hard for an evening or two and came up with something that wasn't too shabby (I can't win).
Then another time when learned about creating GUIs we got to do simple menu based stuff with buttons and pulldown menus following a certain structure, but we also learned that positions of components can be set freely. So I thought "Well, if I can freely change the positions of components, surely I can animate stuff and if I map that to some keys I can create a real time game!". So I wrote a small platformer with two squares that ideally succeed in killing one another. After animation I started fantasising about 3D rendering, so I created a small application which creates the illusion of 3D, which was cool and all, but that got me dreaming of creating a real 3D engine. It became almost like a cause of mine; to understand how it all works and create a 3D engine from scratch.
So now I've written a 3D engine. A simple one, mind you, without all the bells and whistles, but still a 3D engine.

So, after all this rambling, what is this rant about? It's about how people react to all this. The reactions are divided. Some are impressed, mostly people who cannot program, but others are like "hm...". For example, during job interviews, when people ask me if I've done anything on the side and I mention this, people usually go like ".... hm... :| Well that's great. So mostly just done your own stuff?". Well YES! What is that supposed to mean? That I've not created shippable applications? I've explored, which I myself believe is valuable! I believe I've learned something along the way. And most importantly I've enjoyed it. Maybe I'm over interpreting this, but sometimes it feels like people don't even understand the joy in it, like it's illogical. Why create something that in the end won't create any real value?

Am I alone in this? Or perhaps, have I just written far to long and uninteresting a rant for anybody to read this far? I don't know. You tell me.

Comments
  • 11
    So important thing first, you are not alone doing sonething "not productive" and thats totally okay!
    I mean at least if you have fun doing it or it gets you experience its far away from wasting time.

    Anyone i know (and myself) got started like this. And i mean of course not everyone is beginning with a shiny app or another facebook.

    The thing with people like recruiters and "non-technicals" is that they are used to that shiny apps and software they use everyday so they think "it cant be that hard".

    So they think oh hey "just a game engine". If you are looking to get a job you should have some side projects that look like the work it actually made.
    Thats just to get them a idea about what you can do.

    So as long as you have fun, keep going! And as everything in life, you are going to do more complex stuff naturally as everything builds up. So just have fun and keep getting better and the rest is coming from "the flow".

    Also the ranting is coming after time. Just wait till some stupid persons start using your software.
  • 6
    "If you want to work for Marvel show them your drawings of Spiderman". Often people can not measure the size, difficulty and work you put on your projects because they can not relate to it. If you want to impress somebody on an interview make sure your projects look clean even if your job is not going to be designer/frontend, we are visual animals even on this aspect, people think "if this UI looks good the code behind it must be good"
  • 8
    It's about selling your side projects and experience to others.

    "Just a game engine" as you put it puts a negative spin on it and looses attention to what might something your actually proud off.

    Where as if you put a positive spin on it like 🤔

    Ive been exploring how to write a game engine in my free time, ive managed to work out the physics and collision detection models so far and have these 2 boxes fight each other to a crumbling death!

    --
    Don't undersell your experience, even if you don't feel it's a great achievement.

    Most of my side projects are useless in the real world for example:

    Voice activated tv remote!

    Who the hell needs that?
    No one, TVs either have assistants in them or everyone knows where there tv remote is.

    Throw some kids into that mix and all of a sudden that tv remote can be lost for days - hence the need for an Api that can control my tv over the network.

    "Hey Google, change tv to channel <n>"
  • 2
    It's one thing to experiment with stuff, and of course you've learnt a lot.

    However, actually delivering something that works and is used by other people includes more than that. Production grade code is not the same league as "works for me on my machine". And then there's dealing with change requests, bug reports, documentation.

    Also, having many side projects, but none of them really polished might give the impression that you begin much, but don't finish it. Basically leaving projects in the early proof-of-concept phase.
  • 2
    @R3ym4nn Hey, thanks! 😊 I guess that makes sense.

    I got a job despite them not understanding my side projects, though. So it’s allright for the time being.
  • 0
    @juanchdzl I guess that’s true. :) Thanks!
  • 0
    @C0D4 hahaha, hilarious! Thanks man. :) I haven’t really thought about it, but It’s true, I’m more of an underseller than an overseller.
  • 3
    @Fast-Nop on the other hand, polishing up every little experiment takes time away from new experiments.

    A good recruiter would appreciate that you take time to learn.

    That said, if you are to show it of or explain it, yes, you should polish it as its part of your portfolio.

    So unless you have real production examples, do polish up and finish a few projects, does not have to be fancy or advanced, but to show that you know how to finish things and value quality.

    I have spoken to several recruiters and if they does not seem to understand tech, I avoid going into any detail, just explaining I like to try out new tech to improve.
  • 1
    @Fast-Nop That’s actually true. Thanks for the comment! I’ve been frustrated because I feel like most people cannot expect production grade software as side projects, but I haven’t thought about the other skills that go into creating them, which of course employers would view as valuable. I have actually made a couple of, maybe wouldn’t say production grade, but fairly complete projects with documentation and a goal of solving a problem from the outset, though for me they aren’t as interesting since I didn’t really discover new things making them.

    But thanks, man! I think this gave be a wider perspective on things. 😊
  • 1
    @Voxera great advice! Thanks! 😃 It’s true I could probably polish up the proof-of-concept projects even though they aren’t complete applications.

    I should probably spend some time thinking about my portfolio anyway, and keep it presentable. :)
  • 0
    @Voxera True, you can't blow up every experiment, but one solution is to not mention these tries in the projects / portfolio section. Instead, put the resulting skills into the skills section where these tries just appear as skills examples or evidence.
  • 1
    @gomsim Yeah especially documention. Is there something like a user manual? Technical documentation? Is it intelligible? That proves that you can write useful documentation and will do so unless your potential boss refuses to give you time.

    Note that pure Github deserts are not overly useful. Sure, once the tech department looks at how you code, that's good, but you first need to get to this stage. They can't review hundreds of applications, that's why HR has to filter, and they aren't devs.

    Better have few showcases, but polished. This includes a nice website that has pictures, examples / demos of the application, documentation. Do a spell / grammar check, and make sure the website works at all screen widths (resize browser window, done).

    It should also tell right on its main page what the project even is about - if possible in laymen's terms so that HR can understand it. This will also help regular visitors who arrive their after googling for whatever.
  • 1
    @Fast-Nop Yes, at least one of the side projects are fully documented in the code as well as having an exhaustive user manual in form of a txt file. :) But that's because I intended other peolpe to actually use the software.

    I'll probably try to work more on presentation, including creating a portfolio website. I've made one a good while ago with wix (hehe, not a web dev), but this is probably a good opportunity to learn some web stuff and write my own.
Add Comment