Hacker News new | past | comments | ask | show | jobs | submit login

Pretty off-topic but I'm going to throw it out there anyways. I play a game call Factorio, a quick run down it is a procedurally generated, top-down (2.5D ish) game where you can move around your character to mine materials, build things, etc. A huge part of the game is automating the creation of various items. For example iron gears are used in a number of lower-level items and while when you go to craft an item it will automatically build all the intermediate items (providing you have the materials) this becomes tedious very quickly (by design).

I find that playing the game requires a healthy balance between #AutomateAllTheThings and "Don't waste time building a huge factory for something you need very little of OR you don't know how much of it you will need". This same experience/way-of-thinking applies heavily to development/programming in the form of "Premature Optimization". In my first Factorio game I spent WAY too much time building massive factories to pump up every single item I needed. This lead to a boring grind and wasn't efficient at all. I was overwhelmed with making sure I always had a chest full of X item ready for me that I wasted a bunch of time (which, to be fair, in Factorio I didn't exactly waste the time as I had fun).

For me this resonates heavily with as it lead to a sort of "analysis paralysis" that I immediately recognized from my attempts at a side business. The next thing I attempt I am going to make a conscious effort to focus on a MVP above all else and ignore scale completely. My last attempts at building a side business have spiraled out of control quickly as I attempt to right all the wrongs, foresee all the potential issues, side steps all the mistakes I saw happen at work, etc.

In some ways I really miss my days in high school when I would open up a blank php file and start coding instead of wasting HOURS looking into various tech stacks/frameworks/libraries/etc in an attempt to "future proof" my setup. I realize now it's a fool's errand. That's not to say you should never think about how you would scale but at the same time don't let the idea of future success keep you from creating the exact things you are trying to future proof.




Coincidentally, I just saw this Reddit post yesterday - https://www.reddit.com/r/factorio/comments/9uxeq3/factorio_a... - "Factorio as an exam for computer engineers recruitment in Japan. If you play the game well, you can get a job!"


"What is the most effective way to mass-produce blue potion, considering the following geographically-distributed resource locations, and impending attacks from several maximum-hostility alien swarms? Assume that bots are restricted to maintenance only. You have 20 minutes to design a scalable solution. Go."


    In some ways I really miss my days in high school when I would open up a blank php file and start coding instead of wasting HOURS
Is there anything stopping you? I never went into 'web' so that's still my goto solution. A few months ago I had an idea and I had something up and running in PHP within a few days.


No there isn't, I get into a head space that goes a little something like this:

* I think I'll create a little website for XYZ

* Better setup a GitHub repo for this

* Hmm, I really like using Angular/Typescript since I use that so I'll use that

* Better make sure Webpack is all setup and working

* Should I do my development in Docker since that's how I'll deploy it?

* Maybe I'll try this new NodeJS backend framework that looks interesting

* I need to make sure all my config lives outside of my app so that I don't hardcode values

* Oh crap, I want to share code between server and client but they both have their own Webpack configs and merging the two without screwing something up doesn't sound fun

* What, was was I going to create a website for again?

My most enjoyable non-work programming over the last year or so has been in my ~/git/temp-scripts folder where I can just create a new folder for something, run npm init, and be coding in less than a minute. This is mainly used for, as the name suggests, temporarily scripts or better yet, scripts that I'm not sure if they will have legs or if I'll just use it once. It's pretty much my little playground where I don't have to worry about scaling, reusability, etc.


Thanks for sharing your thought process, I found it interesting.

I get the sense that there’s a gem in your scripting, and one of those might become useful and need more work, and then you’d have a reason to scale it.

There’s [a recent interview with PG](https://www.startupschool.org/videos/36) where he talks about the joys of hacking, you might find it interesting.


Thank you! I'll check that out


This thread gives me major anxiety because that's basically how it goes for me too much of the time. Things have got a bit better but I still spend sometimes months reading docs before starting a project (I use tons of diff types of sw though so that extends it a bit)


The programming subreddits and also HN LOVE to make PHP and Javascript look like garbage. In reality, you can still make damn good software with it.


I also love Factorio - it gets better when you play multiplayer and with mods.

I've found, getting back into it, that Project Euler really helps me 'just start coding'. Last time I got into it (around 2014) I would focus on trying to understand the mathematics and solving things by hand. Now I look at a problem or two every few days, and have fairly streamlined solving them.

Breaking the problem into chunks, making sure those chunks work with tests, gluing the chunks together to get the fact needed by the question, running with the specific input needed for the answer, realising the naive way I implemented the solution is way too slow, adding timing information, analysing the algorithmic complexity, reading pages and pages of mathematical theory...

Sometimes it goes off the deep end, but getting some result almost immediately is so useful.

It's the reason Factorio is fun (you can just build it by hand, most of the time) and Excel is used everywhere (you can see the algorithm and its results together, as you build it). It takes a bit of discipline to do yourself, when the gratification loop isn't built in to the tools you're using, and that's why I think Project Euler is so useful. You get short, achievable programming problems that you can solve quickly and build a habit of solving efficiently.


I believe the Shopify CEO mentioned it recently in a podcast, together with Starcraft 2, as one of his favorite games that translate well to skills applicable to startups.


I really need to try SC2, I played a ridiculous amount of SC:BW back in HS. Do you remember which podcast? I'd love to listen to the episode.


Keep those beautiful SC:BW memories, don't go down that dark SC2-path. At least I don't dare.



Thank you!


That and SpaceChem arebtwo games that transfer a lot of skills to the SE space. I need to pick up factorio again, one if the best I've ever played.


Yep, played a little SpaceChem as well and I liked RimWorld a lot (not exactly the same but in a similar vein for me) but Factorio is my favorite.


Upvote just because I love Factorio.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: