Playing factorio gave me the idea of pursuing software engineering. After 3 years as a Software engineer, I finally reached my goal, which is to get better at Factorio.
This is actually why I struggle with factory builder games. I'm drawn to them because they're like programming, but then I stop when it starts to feel too much like my actual job
I was playing Oxygen Not Included a couple months ago and this is exactly what stopped me from continuing even though I was addicted. Keeping alive all my duplicants while optimizing every aspect started to feel like a job and became stressful lol
If you really want to understand the sickness that is factorio, one of the recent changelog notes for the game mentioned the need to up the max save file time played from 2 ish years because someone hit that number awhile back and overflowed some variables, causing their save game to essentially be paused. The devs then decided to do the logical thing and increase the possible save file time played to over 2 million years. The factory must grow.
Do you scrap the whole thing and start again in software engineering? I’m currently learning Factorio and find myself destroying my factories and systems because I “good enough”’d too many times and now everything is clogged 🥲
As I said in another comment, please consider carefully about this - especially if you have real life responsibilities like eating and sleeping! Half jokes aside, I'm happy to hear that I'm making an impact in the Factorio AND software engineering community. Thank you for commenting!!
Factorio is seriously fun, but I found it a bit limiting that there is a clear "best" way to do many things, just by figuring out the ratios of production and consumption. I enjoy the constrained freedom of the Zachtronics games even more, and have finished SpaceChem and started TIS-100 and Shenzhen IO so far. Kerbal Space Program is also a ton of fun, though it lacks consistent goals and challenges (I find many of the procedural contracts to be soulless) - but you can set your own or accept those set by others to infinity.
@@galfisk i mean sure there is the "best" way, but there are so many ways of achieving that "best" way. personally i like making my production into fractions of 900, since thats the normal belt speed per minute
Okay so first, I learned what it's like to play Factorio with friends. Then I learned how NOT to play Factorio with friends (by learning what it's really like). But now I'm learning that playing Factorio will make me a software engineer? Incredible, this truly is one of the games of all time.
@TonyZhu (If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
Місяць тому
(If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
1. The style and way this is done, is perfect. I wouldn't change a thing. 2. Giving me actual keywords I can put on my resume from hours of game time is AMAZING. More of this please! 3. This video also helps me better understand what careers would connect well with my gaming interests AND lets me justify my interests in gaming and translate them to real world use cases!! This is an INCREDIBLE thing you're doing, please do not stop!
If you build city blocks, you’re heavily into object oriented languages. If you build main bus, you code procedurally. If you build spaghetti, you code in perl.
@@angeldude101 - functional and procedural are sortof two sides of the same coin in my opinion. But I think a functional programmer would lean slightly more towards city blocks, or at least dedicating certain areas of the base to certain things. A true Object oriented developer who understands things like super classes and inheritance might lean towards more generic blocks (mining block, chemical block) that can fit multiple needs while functional programming would be more specific (electric motor block, light oil block, etc).
@@programmer437 Functional programming is largely about composing small pieces into larger blocks. This sounds more like creating blueprints for each individual recipe and then plugging the output of one directly into another before blueprinting the whole thing as another block.
I love how unhinged yet super solidly structured this video is As someone who loves factorio and also studies computer science, I relate to this and love this explanation
I played factorio like a mad man, then 10 years later I dropped my healthcare career to go back to uni and get a computer science bachelors degree. That itch is eternal.
One thing that's worth noting: a lot of these shared terms actually come from a third, much older discipline called industrial engineering. Which is pretty much playing Factorio for real. Say you're running a textile business in the early industrial revolution. You work with linen, so you buy flax, you have to break it down into fibres, you have to spin those fibers into thread, you have to run that thread through a loom to make fabric, and you need to bundle that fabric up into bolts to be sold. And to make things complicated, you also make bedsheets and tablecloths, so you also do some sewing using thread and fabric to make your sheets and tablecloths. (No idea if these were available off the shelf in those days, I know clothing generally wasn't, but this is just to make a point. Ok, so you've got a facility that produces thread and fabric. How many spinning jennies do you need? How many powered looms? What kind of steam engine do you need to run all that? And because the steam engine is noisy and disrupts the people who are sewing your sheets and tablecloths, you have them in a different facility - how often do you need to cart a shipment from your textile factory to your sewing people. The only facility available for this was across town, did you decide to transport your stuff all the way across town, or just pay some folks living nearby to make product for you in their own homes? If you did the latter, how are you managing your deliveries of materials and picking up of product? These are literal business decisions that have had to be made pretty much since the advent of the factory in its earliest form, and have been studied by actual engineers for a similar length of time. I still have my notes from that class!
You could compare Factorio to pretty much any process that humans do, some which have existed for thousands of years. For example, farming. People have been trying to optimize farming since the beginning of time. More food = good. But it's not that simple, it requires a bunch of little details and other smaller tasks to do. Someone could probably do a 1 hour video comparing all the similarities with Factorio and farming. Also there have been plenty of games before Factorio which are essentially the same thing. Off the top of my head Sim City and Roller Coaster Tycoon. At the end of the day it's just management. I think it's fun that people are comparing Factorio to software engineering but at the same time some people might be taking this too seriously.. the reality is learning Factorio doesn't make you a software engineer. There are a ton of other skills required to be a successful engineer.
Totally agree. The link I see from my background for example is with project management schedule management. When to start what task with how many resources that overall project duration is minimized while maximizing finishing date predictability
I'm in Operations Management and it's made me such a good Factorio player. Everyday is just allocating resources and labor to certain tasks to produce X amount of finished goods in X amount of time. Code tracing is a term I've never used but it's a daily currency in manufacturing. Root cause analysis, traceability, reducing bottlenecks, law of the minimum, etc.
I actually finished my psych programs and practiced for a while (disabled now, meh). Then I got interested in software for the fun, and now I'm about to download factorio. RIP
Back in school, for my final science exam, i had a question on how a nuclear reactor works, I didnt study that part, It was an 8 mark question out of a 60 mark paper, I wrote down how a reactor works in factorio, I got 6 marks out of 8
@@sergemarlon in Factorio nuclear reactor burns uranium fuel, producing a lot of heat. Heat is then used to turn water into 500-degree-hot steam. Steam is then fed into turbines to generate electricity.
@@violatorut2003 Before intersection - chain signal. After intersection - regular signal. Since chain signals combine with regular signals to create single blocks (they are separate to the game but they function as one, so same thing) make sure that after every regular signal there's a space for the largest train you expect to travel through it (so that it's ass won't take space on block before, potentially causing dead lock on intersection).
Trains are the great divider in my experience. Up until them it's a lego set, mash it together and it works. Then you dip your toe into using train lines. You've been on trains, they just trundle along. You've balanced conveyors all day long, how hard can trains be? And BOOM, completely new puzzle. Completely new puzzle, with so few parts, yet so much fun to solve!
I was thinking about that the other day. It's completely true, but not just for software engineers; it's how any engineering on a "high level" should be done. Everything in production (both in software and in a factory) is viewable as a square with something that goes in and something that goes out. Once you understand that you can write the code in between, design a production machine, set the controller... with something going in and something going out.
I came to learn a little about software engineering, I stayed to figure out who the hell has been talking to my mom on Facebook. This was highly entertaining, good work.
"I know that this is cringe" This is what UA-cam supposed to be. You making videos that you like and share it with others that also might like. Keep making videos man! I love the content!
Man really appreciate it! It's really heartwarming to read comments like this, thank you!! Seeing all the positive responses really make me want to double down on this :)
And here I thought you would be talking about thinking in loops, dependencies, iterations, redundancies and all and foremost about Factorio's bot networks (requester chests are like events that are firing and calling robots that act like methods) and circuit networks. The latter are actually exactly like code one you use things like decider combinators. Train networks is also something I expected you to talk about.
I'm a SE who was emotionally stunted by my parents in early childhood, and I need another video of you explaining how a monolithic program, relates to Factorio, and how they both enable you to talk to my mom.
The chart at 11:40 could've been: 1. Vertical scaling 2. Horizontal scaling 3. Optimization 3 is using mostly the same resources but somewhat modified to increase output. Speed module's effect is just waaaaaay more quantifiable benefit than what one can realistically expect out of most optimization. Great video though.
i was playing Factorio with mods (krastorio, space exploration) and ow boi, the systems get so bananas that i have to play for one hour just to rediscover what i was doing haha
@@owholypwner3548 I modularized my Nullius base with trains, so it’s easier to keep some things in mind, but building the whole factory after physics science packs took a long time, with all the intermediates, so I stopped doing it
I'm a Software Engineer working as DevOps. I just noticed my last Factorio game is completely containerized and I made a Kubernetes control plane with train logic.
this was actually the best video I've watched in a while. perfect balance between entertainment and learning. I'm definitely interested in another video. love your vibe, literally nothing in this video that I found to be uninteresting or boring. I'm not a software engineer but I always loves games like factorio that allow for micro management and making things run as efficiently as possible, never did I realize those games had a semblance with software engineering. you might of sparked a inspiration in me.
Excellent video, this was brilliant! One thing I’ve always noticed is when looking at CPU Architecture under a microscope, it looks like an extremely optimized and monumental Factorio plant. If in your next video you could include things like buses transporting data, smelters caching data, Assemblers being Logic, and so on it would make for a highly interesting video in my opinion. Great stuff!
As a CS and IT person with a few decades of experience, your vid was accurate, insightful, fantastically presented and pretty damm funny. Whatever your 2nd topic is, DO IT. Enjoy your well earned and deserved new subscription.
I’ve been trying to voice this to my friends for years that never give this game a shot. But I could not do it with this Intellectual prowess. Hopefully sharing this video with them will show them the magic for inspiration.
I am extremely pleased to hear this lol. You have no idea how many (literal) years I've spent thinking about this and finally have found the time and motivation to put this video together - glad to hear I could provide some catharsis to you as well!!
@@-sleepy- no, that it mimics many of the concepts used networking and circuitry as he describes here. Also tying straight in to your motherboard provides much more broadband to allow higher throughputs than through a remote mounted device running through a sata cable. General things of that nature
7:30ish in on readability: YES!.. Ive been saying this to agency after agency for years. Literally the milliseconds in performance you gain from making any maintained code less readable is just going to screw you later when that code needs to be updated bc now that everythings been oddly tucked together or just generally obfuscated in some way, you'll need to go back through all of this 'optimized' code and basically make it readable again just to complete the update. TIME WASTED in the end so.. learn to think ahead and always lean towards readable code!
+1000 I almost sent this to my boss. Best explanation for readability. Some people just think that saving 5$ on aws bill is way better than hours wasted in debugging and understanding the mess later.
I can’t remember who it was attributed to, but i once read “debugging code is more difficult than writing code. if you are always as clever as possible when writing your code, by definition you are not smart enough to debug it”
One of my former coworkers used his factorio game to get a job as a warehouse planner during his interview. As a player I would love to here your take on combinators and such. I find they frustrating at first but after a thousand hours, they are indispensable.
Man that’s actually awesome to hear that (1) factorio helped someone get a job and (2) the interviewer was cool enough to understand / “get it.” I was actually looking into combinators during the creation of this vid but they still terrify me and I have much to learn. Will definitely give it another look now that you’ve mentioned it!!
If factorio belts are your software bus, then circuit networks are where software moves into hardware. The core idea is that you are implementing *sensors* (both binary and counters) and transforming them into I/O signals, and they are effectively used as relays into other areas of your 'factory/software' bus. If circuit networks are hardware signals, then it follows that combinators are effectively hardware drivers, the 'black boxes' of software engineering. It helps me to move off the analogy from web/cloud-based software industry (where CPUs are the main hardware involved), and into an area with greater hardware contribution - Access interlock systems, reader devices (barcode, QR, RFID), sensing devices (thermocouples, pressure sensors, pizeoelectric sensors, Hall effect sensors), signal/protocol converters (USBRS232GPIOEthernet), hardware relays/switches, circuit breakers/fuses/alarm systems, human interface devices (buttons, keypads, keyboards, mouse) and robotics. Congrats, you are closer to real engineering where automation moves physical things in real life! :D
@@TonyZhu If you want to check some combinators shenanigans you might check DoshDoshington youtube channel and his "Welcome to Factorio City" Or "Building Circuit Abominations in Factorio" videos.
I don’t code or play that game but sat through the whole video cuz I found it’s interesting and your presentation appealing. When I got to the end of the video and you were saying you were unsure if you’d make a the second video I thought to my self “well if I’m seeing this, it must have gotten a lot of views and gotten picked up by the algorithm” Lo and behold it’s got a half a million views. Good job 👍😮🎉
I had a kind of similar experience as a kid with the old Sierra citybuilder games like Pharaoh and Caesar 3. Only realized it after I studied software engineering for a couple of years. Parents, let your kids play.
I loved this format, please don't change it. You've blown me away with the quality that you put out compared to your subscriber count and the fact that I've never heard of you before. As someone who enjoys messing with and building programs for fun, I understood how much effort you put into making your analogies digestible by everyone. Watching this I got some junferno vibes but you seemed to keep this much calmer and focused which was a format that I loved as well. Please keep up the great videos and I'd love to see a second follow up video. I also plan to get into factorio as soon as I figure out how to not worry about that whole "eating and sleeping" thing.
As someone who has spent of lot of time playing factorio and generally doesn't know what to do with their life this just motivated me to go down the route of software engineering, Thank you, can't wait to see the next video
Best of luck!!! I love it when gamers find purpose in life :D Also maybe you can consider emsy/computer engineering! It's more in line with such games than even software engg.
i was dissatisfied with work in different sectors and companies for a decade, then had no job for almost a decade. someday i started playing factorio. now im a software engineer. real story. totally not far fedged and simplified cause and effects. ;)
I'm two months late to the party, but i read this comment right as he said, "heroin just wasn't addictive enough." The pair together, chef's kiss. I ACTUALLY laughed out loud.
As a software engineer, I don't know why I haven't known about factorio until just a month ago. I just fell in love almost immediately, to the point that I spent hours only in the tutorial, just to optimize everything before achieving the actual goal 😂It is the perfect game for the field because first and foremost, it is a game, so it washes the stress away. Second, I still use the same type of mental process when approaching a certain task. Planning and picturing how everything would run before placing all the components, making it more efficient and easier to upgrade later on. If I'm being honest here.. I feel like the game made me better at work. I think it has something to do with keeping the mental exercise going even at home playing a game. It makes me think like a software engineer without tiring or stressing me out like work does.
you think optimising in tutorial is nice.. wait till you go full beacon setup and want to have setups that take a full blue belt and output a fully compressed blue belt... It's like programming golf, or writing a haiku
This video is a masterpiece of art. You have so completely compared the two subjects into identicality that it has bridged gaps that were already obvious into deep rooted bonds of nuance around each corner. Your shit was funny and engaging from the very first 15 seconds and you kept that energy going for the entire 21 minutes. Your channel is about to explode in popularity, I hope you're ready for it, because you just won the internet. I applaud you.
As a super nerd that sucked at school, who is teaching myself software engineering to stop getting paid hourly as a onsite IT guy... This video was hilariously entertaining, and suprisingly educational. Please do more. You did a very good job at explaining these concepts, in an entertaining yet educational manner. Future content doesn't necessarily have to be a videogame analogy. I'd just love to hear you talk about comp sci concepts more. I feel like I'd pick up some good info whilst also being entertained. (I'm 22 btw, not a boomer, so like, I for real mean it lol. You caught my age group as an audience here)
I love that this video exists! How about a follow-up featuring Space Age content, some of the new mechanics (Fulgora scrap recycling, Gleba item spoilage) narrow the difference gap even more between SE and Factorio by requiring time-dependent and constant flowing systems! Keep up the great work!
Okay I cook for a ton of software engineers at “insert tech company here” and you just kinda made them seem so much more relatable. I have asked them what they do for work and for the life of me I couldn’t understand.
Haha honestly having eaten for two years at a "insert tech company here" cafeteria, I can almost guarantee you that your job is both more important and way more noble! Also we don't understand what we do either.
I'm a graduate student, and I'm in the middle of writing a research proposal about using Factorio to teach Industrial Engineering. This video has brought up some perspectives i didn't consider. Thank you!
@@tuftela The proposal was just for an assignment, and that got good marks. I'm currently doing personal research on knowledge transfer with recreational video games, and might be submitting an abstract for a conference soon 🤞
@@ATwiz02 That is so cool! Thank you so much for answering even though it's been so long since your original comment. Wishing you the very best of luck with your abstract as well!
As a software engineer of more than 20 years and a factorio enjoyer, this was great. It's amazing how fitting the Factorio analogy is... The bigger your code base, the more and stronger, the bugs (biters) are that come attack your base, causing all kinds of other slow downs and interruptions. Also, if you want to have your mind blown, look up some of the older factorio vids where people build fully functional displays that actually encode/decode video and play it in game - Factorio is Turing Complete and an incredible video game.
This is fantastic. I think you did an excellent job of explaining incredibly complex concepts in a way that even those of us who were new to the concepts could understand!
Stylistically....don't change a thing, I was absolutely hooked all the way through and LOVE this format. (Thank you for the "attention" videos during story time 6:24 ) As someone about to embark on their software engineering journey, I hope you continue to make this kind of content!
I was confused when you told that story that I didn’t see the cutting soap video first. But when I saw it and red the subtitles I laughed SO HARD. You’re probably becoming one of those UA-camrs who rarely upload but when you upload it’s something unique and a lot of fun to watch.
I'm a software guy and I have a buddy who is interesting in the trade and always picking my brain on it. He sent me this video in his excitement of drawing parallels into what we do everyday into a game he knows fairly well. This effort to bridge technological patterns (in this case dev) with more widely familiar concepts such as gaming is great. I enjoyed your video and it was doubly good in that you made my friends brain tick just a bit faster. Really good job man.
Watching this, I was expecting some big youtuber, not 600 views. This video has quite an impressive quality, keep up the good work, I really hope you get the attention you deserve!
I think it's really worth mentioning trains as well. At the end of the video, you mentioned the differences between monolithic and microservice based architectures, and I think the best the to show that difference/similarity is in trains. If you consider your entire factorio base as a distributed service, trains exactly represent packet flow and more importantly packet delay and packet loss if you get a biter attack. If you consider your factorio base as a single monolith, then trains turn into interfaces. The train doesn't care how you actually insert the cargo, and how you process the items at the station. All it cares about is that it needs to drop of Item X and wants to go pick up item Y. This represents component design and individual classes and functions as well.
Yes 100%!! You've articulated the idea very well and this is most definitely something I already had in mind for video #2. As I start to read these comments though, I think there's a lot more I wouldn't have thought of otherwise so I really appreciate people like you commenting this stuff!!
Thank you for this. Obviously im addicted to Factorio and always felt so dumb when it comes to computers. Your casual approach to teaching is SO helpful when setting up an emotional openness to new knowledge. I understood ever part of this video and had a GREAT time watching it. Amazing job!
there are two wolves inside all of us: "I don't need it to look pretty, I just need it to work" followed by "omg why is this a mess I have to make this the most beautiful thing ever or my brain will explode"
I think you need more on the spaghetti. I think it's worth getting into maintenance and refactoring and the trade off between living with your past decisions, often by making the mess a lil worse or taking the time to do a big cleanup. And also how a layout that works fine for a small amount of things at a small scale just inevitably becomes a mess as you add to it.
One thing I've always liked with Factorio (which you didn't quite touch on here) is modularity and interfaces. Ideally (IMO) you are building your factory such that the inner-workings of the upstream source(s) do not matter; you simply need to know that you'll be receiving iron plates (and that your smelters, however they are configured, will be outputting iron plates). Later, when you build more things that require iron plates, you can reconfigure/scale/move/etc. your smelting; but as long as you keep a stream going to the original consumer of iron plates, it does not matter that the source has changed. To me this is like an API changing how it works internally without changing what it returns for the same request. Nice video man, enjoyed it!
Factorio helped me clarify the two different methods of improving throughput. Optimization (gotta have perfect ratios) and scaling (gotta get bigger). You can, of course, do both, but I prefer the big corporation method (why be efficient when you can be inefficient at scale?) Edit: This is not meant to imply that big corporations don't care about optimization. It's more of a commentary that they have the resources to be able to not care about it quite so much.
Yeah that's like my big worlds. I am probably intermediate at circuit networks at best, but I'm pretty good at scaling and automation... I don't have the skills like some guys out there to maximize efficiency... Just make more!!! That's the fun part anyway.
In manufacturing: a bottleneck is a process that holds up production somewhere in the assembly line. Sometimes a bottleneck's root cause is due to a spaghetti-like flow of materials through the facility since the layout was planned beforehand for a smaller quantity throughput. We scale up or scale down by adding or removing machines, workers and materials. When scaling up, the load on parallel processes is balanced for a steady flow of materials, and we use logic controls with sensors set limits for detecting problems. Similar to tracing, we do a root cause analysis to figure out what's holding the whole thing up. Delays all depend on our upstream suppliers, and trickle down to our downstream customers.
The other big thing they have in common is stealing code from strangers on the internet lmao. Blueprints are basically that, right? And the crazy thing is, you can design/steal a blueprint and treat it as just a closed system that takes an input and makes an output. I'm currently working on a "coal to plastic" blueprint, which is a design that you just build, supply it with water and coal and it spits out plastic, and you don't have to care about the specifics of how inside the blueprint the coal is turned into oil and processed into exact amounts of oil byproducts, how boilers make steam for the process, how heavy oil is routed from the output back to the input, and how petroleum is mixed with more coal to make plastic. All you care about is the input and output.
This is actually a great point that I totally forgot about over the past few years lol. Had written in my script about black box processing but the idea of copy pasting functions from the internet is great, thanks for this!
HELL YES! this is genuinely creative, smart and makes me more excited to code and play factorio. Thanks for making this. Can’t wait to see what other cool creations and essays you’ll come up with.
This is really excellent. You've found a niche here, man. Funny, smart, original content, and I think there's a huge audience out there that you could capture. Please keep it up! I'm already convinced you're gonna be a big big deal.
As someone who has neither played factorio, nor is a software engineer, i found the video surprisingly entertaining and would be interested on seeing your take on the other video, it was a very pleasant ratio of information and humour
Big thing I learned from factorio is a thing I don't remember the name of. But basically that buffers are not good, except for train unloading stations (so that it can keep your base full supplied and doesn't run out by time next train arrives). Maybe it was JIT or something? Something about producing as much as you can use and if you cannot use enough science then that means that.... The factory must grow!
For sure I find having a buffer that doubles as a mechanical mass sorter after it comes off your train lines chests is a good unit to have to get through the early game and is really good once you up grade it to use logistics bots.
Instantly subscribed, not because you make me feel good about putting thousand of hours into a game, but because your video style is absurdly good, you have a good flow and get your points across with a nice sense of humor to boot. And all this by the 8th video? It's insane
Late to the vid, but I love your style of video essays! You're able to balance engineering with humor (mostly improv and ramblings which is like intellectual improv when you think about it) and that gives us breaks between long explanations. Heck you could talk about high-level subjects I don't even understand and I'd still watch because you explain things beautifully!
This isn't just software engineering and factorio. It's the study of systems; it's used in nearly every discipline. For example: Chemisty for complex chemical reactions. Biology for reaction pathways. Economics for analysis of supply chains and such and it can become even more niche.
Not quite, since what the other disciplines study some specific system to their problems, usually they try to frame this interaction in a model already studied and proven, now software engineering and factorio for this matter, is this sort of study of the study of systems, the job is to design better ways to meet the requirements, while keeping your sanity check. A chemist, will use their knowledge on chemical reactions, modifying this reactions, adding and compounding different materials to yield better results, in control manner. A biologist, will use their knowledge on biology to change the conditions on the bio compounds and the agents to get safer and useful goods. A economist, will use their knowledge of basic geometry to put the square in the square hole on the other hand, A software engineer, will study what are the chemist, biologist, and some common sense to try to englobe all the later and put it through some none-sense it works system, on which will make it regulate itself by proven or field tested way, hopping that something doesn't goes up in flames the moment that you want to gtfo at 5pm on a friday A factorio player, will do the later willingly, on a videogame while creating the next framework to grow the factory that this time will indeed solve the other problems and be the one to use after repairing some nonsense problem caused by an edge case in their work that took their whole friday afternoon to solve
@@samu_2822when generalizing, it is possible that two categories are more like each other, than a third, but it still being possible to generalise all three. A factory is more analogous to a whole economy’s supply web, yet it is stil generalizable as a complex system along with a software system.
Awesome video with a great sense of humor, and this was clearly inspired by great passion for both topics discussed here! Would love to see more video-essay type stuff, especially that monolithic vs. microservices thing. ❤
@@TonyZhu If you want the *_PERFECT_* game for showing SOA, I can't think of a better one than Autonauts, where you need to program cute bots to do _everything._ The catch is that the Tier 0 bots only have room for 12 instructions. (...which really puts the 'micro' in 'microservices'!) That means you have to have *LOTS* of bots--each doing only one thing--and they all have to work together. ...but don't worry; as you advance to different tiers, you can add modules to increase their capabilities, so you can, for example, have a Tier 3 bot with a 'Super Bot Brain Upgrade' that can handle 64 (32+32) instructions! Here is the trailer to give you an idea of what's ahead of you: ua-cam.com/video/TtOjoEV0ooE/v-deo.html (The devs have also released 'Autonauts vs Piratebots', which takes the basic premise Autonauts and adds PvE, which you could use to Segway into security issues.) Cheers! P.S. You could also go the more traditional route and take a look at Screeps, where each bot needs to be programming in JS.
You can also discuss: deadlocks (trains); load shedding (using combinators that automatically cut power to the main factory to prevent a Power Death Spiral)
I'm learning software engineering in uni right now and im a Factorio player. I was actually doing one of my biggest assignments while watching this. Ironic. Loved it.
You're fucking awesome bro. distilling complex or not understood information and making it understandable to the masses is literally the most important thing anybody can do. thank you.
Dude coming from a software engineer this video is actually incredible. You know someone is smart when they can explain something in such a simple and digestable way. Cheers to you man
This feels like content a youtuber with 500k+ subscribers, a very unique kind of humor and a really strong fanbase would produce. The editing has the kind of endeering and intentional amateurish feel to it - but executed in a way someone who actually isnt even close to an amateur - and a very distinct (really good imo) kind of humor, somwhat like like michael reeves concept-wise. (while the content is obviously completely different) But seriously, the execution of humor and editing style is great. I cant remember when i laughed this much at a video.
Love the green screen format. Stay confident in your decisions because they come across as genuine. Knowing nothing about software engineering, I imagine there are other parallels present between these types of games and SE. For example in Satisfactory, you can choose to process raw materials closer to where you collect them, or for a challenge you can try to run all of the raw materials back to your main base and just create a colossal singular structure where all of the processing occurs. I wonder what the software engineering equivalent of that would be? Or is that highly emblematic of just a specific market within SE? Interesting stuff.
The Monolithic Code in Factorio Terms is one of those Bus Builds, where you collect all the belts over into one place, and then just hook into the resources that you require; also, it is called hooking into code, so that's handy; speaking of handy, I was on Facebook talking to your mom… 😜
In factorio I've really come to love the sorts of things I can do with trains, and I think it fits into the whole comparison with software engineering. Because when you first start with trains it tends to be really simple, you probably have a few dedicated trains going between specific stations, only going to and from the same spot each time, probably even on separate rail lines. Then as you learn how rail signals work you can combine things into one rail line with several different trains running on it, but each train is still just going between their normal spots. And THEN you start learning more advanced stuff, like how if you have two stations with the same name trains will be able to choose which one to go to, so instead of having "Iron Mine A", "Iron Mine B", etc you can just have several stations named "Iron Mine" and your train goes to the first available one. After that you can start going into circuit conditions and making it so that stations will only accept trains when there's something to pick up, or when there's something that needs to be delivered, so that the trains move around more efficiently. Now when you want to set up a new mine, or make a new smelting array, you can just slap down the same blueprint and the trains will automatically start rolling in without you needing to set up new schedules. Wow I kinda rambled there.
Glad theres still room on this app for a guy to make an absolute gem of a video and have it find its way through all of the algos and moderation into my feed
Man this is the best fking community ever, ya'll are too nice and so freaking wholesome
This is such a good video. Thank you!
And the game is like a decade old, but still great with DLC quality mods. Already a month on K2 + Space exploration, still half of the tech tree. :D
Great video youre gonna blow up dude keep uploading it will happen, you earned my sub
The Factory Must Grow
U da 🐐
Playing factorio gave me the idea of pursuing software engineering. After 3 years as a Software engineer, I finally reached my goal, which is to get better at Factorio.
😂
The factory MUST grow.
Factorio > $500K package from Netflix 😂😂
Same but with bitburner
esport is a thing, now lets make Factorio a courses too....or maybe it already did....
Being a software engineer turned me into a Factorio Player
I dream to be a game dev. I think I will turn into a Factorio player when dlc is released. 😅
Dosh ooc have you had any success with talking to your fans' moms?
Huge fan btw.
Teach me how to play space exploration Dosh 🙏
Me too but only when I don't have enough jobs to fill my brain to capacity.
Being a Factorio player will have turned me into a software engineer(if I can stop playing Factorio for long enough and actually pass my exams)
Factorio is like the best part of programming turned into game
Which literally makes it a crack for engineers...
You can never watch a Factorio Video in peace... everytime you find out TRUPEN WAS ALREADY HERE!
Trupen is everywhere.
He's like Big Brother who watching all factorio comiunity
@@JeyDeee89
I would like two cracks please
This is actually why I struggle with factory builder games. I'm drawn to them because they're like programming, but then I stop when it starts to feel too much like my actual job
I hate how real this is. specially when you almost every time debug the base to have good flow😂
I was playing Oxygen Not Included a couple months ago and this is exactly what stopped me from continuing even though I was addicted. Keeping alive all my duplicants while optimizing every aspect started to feel like a job and became stressful lol
Same lol, I game to relax, not to work even more
Maybe same too
If you really want to understand the sickness that is factorio, one of the recent changelog notes for the game mentioned the need to up the max save file time played from 2 ish years because someone hit that number awhile back and overflowed some variables, causing their save game to essentially be paused. The devs then decided to do the logical thing and increase the possible save file time played to over 2 million years. The factory must grow.
Good lord what a story lol, thanks for sharing
Nobody will ever need more than 2 years! 😁
Nothing has made me hope that humanity has a continuous computing ability for the next 2 million years before....
Steam says I have 16,000 hours playing Factorio. My big world is running all the time, I never shut it off.
@@toddstephenson9849ok you're closer to 2 million than I am. I think I'm gonna try your strategy.
You scale your factory, at some point something stops working, you invent a new design, you scale futher, repeat. Just like in software engineering.
Do you scrap the whole thing and start again in software engineering? I’m currently learning Factorio and find myself destroying my factories and systems because I “good enough”’d too many times and now everything is clogged 🥲
I'm a software engineer and you just convinced me to play factorio. Not even kidding
As I said in another comment, please consider carefully about this - especially if you have real life responsibilities like eating and sleeping! Half jokes aside, I'm happy to hear that I'm making an impact in the Factorio AND software engineering community. Thank you for commenting!!
just doing your job in another format without the part where you get paid lmao
It has been 14 hours now, please consider going to the toilet and get some sleep
Factorio is seriously fun, but I found it a bit limiting that there is a clear "best" way to do many things, just by figuring out the ratios of production and consumption. I enjoy the constrained freedom of the Zachtronics games even more, and have finished SpaceChem and started TIS-100 and Shenzhen IO so far. Kerbal Space Program is also a ton of fun, though it lacks consistent goals and challenges (I find many of the procedural contracts to be soulless) - but you can set your own or accept those set by others to infinity.
@@galfisk i mean sure there is the "best" way, but there are so many ways of achieving that "best" way.
personally i like making my production into fractions of 900, since thats the normal belt speed per minute
The your mom jokes really tied everything together, I don't know if I would've understand all of it without them, great work!
Okay so first, I learned what it's like to play Factorio with friends. Then I learned how NOT to play Factorio with friends (by learning what it's really like). But now I'm learning that playing Factorio will make me a software engineer? Incredible, this truly is one of the games of all time.
Indeed, a game they will continue to speak of for at least a few weeks to come!
It's especially great in showing how software engineering works in multiplayer :P
playing factorio with friends is like constantly deploying to production without testing
The factory must grow.
The factorio must growio.
Bros got some clean editing skills. This video must have taken forever.
It did lol, all I remember is blacking out and waking up 2 weeks later with those socks on and a finished video
Worth the effort
Change NOTHING to this format, it's brilliant!
The pacing, the jokes, the knowledge break-down, everything just right! *chef's kiss*
Exactly!
@@emreapaydn4064instant subbed
Agreed!
@TonyZhu (If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
(If something, I'd personally recommend just playing jokes straight without resorting to self depreciation. At least not every time. Segways are efficient for being shaped in traffic and "your mom" will never become unfunny. You can even ask from the greatest technician that's ever lived!)
1. The style and way this is done, is perfect. I wouldn't change a thing. 2. Giving me actual keywords I can put on my resume from hours of game time is AMAZING. More of this please! 3. This video also helps me better understand what careers would connect well with my gaming interests AND lets me justify my interests in gaming and translate them to real world use cases!! This is an INCREDIBLE thing you're doing, please do not stop!
If you build city blocks, you’re heavily into object oriented languages. If you build main bus, you code procedurally. If you build spaghetti, you code in perl.
What style would be best suited for a functional programmer?
@@angeldude101 - functional and procedural are sortof two sides of the same coin in my opinion. But I think a functional programmer would lean slightly more towards city blocks, or at least dedicating certain areas of the base to certain things.
A true Object oriented developer who understands things like super classes and inheritance might lean towards more generic blocks (mining block, chemical block) that can fit multiple needs while functional programming would be more specific (electric motor block, light oil block, etc).
Pretty solid analogy and interesting thoughts! Definitely am thinking more about functional programming after reading these comments :)
@@programmer437 Functional programming is largely about composing small pieces into larger blocks. This sounds more like creating blueprints for each individual recipe and then plugging the output of one directly into another before blueprinting the whole thing as another block.
But the train is the main bus, or is this Rust then?
My mom really liked this video
your mother is a really nice person
she's a nice lady
Can confirm, I am his mother and I like this video
Cap
Can confirm, I am his brother and my mother liked this video.
I love how unhinged yet super solidly structured this video is
As someone who loves factorio and also studies computer science, I relate to this and love this explanation
I played factorio like a mad man, then 10 years later I dropped my healthcare career to go back to uni and get a computer science bachelors degree. That itch is eternal.
I dont like how relatable that feels..... if you predict my future career path istg
One thing that's worth noting: a lot of these shared terms actually come from a third, much older discipline called industrial engineering. Which is pretty much playing Factorio for real. Say you're running a textile business in the early industrial revolution. You work with linen, so you buy flax, you have to break it down into fibres, you have to spin those fibers into thread, you have to run that thread through a loom to make fabric, and you need to bundle that fabric up into bolts to be sold. And to make things complicated, you also make bedsheets and tablecloths, so you also do some sewing using thread and fabric to make your sheets and tablecloths. (No idea if these were available off the shelf in those days, I know clothing generally wasn't, but this is just to make a point.
Ok, so you've got a facility that produces thread and fabric. How many spinning jennies do you need? How many powered looms? What kind of steam engine do you need to run all that? And because the steam engine is noisy and disrupts the people who are sewing your sheets and tablecloths, you have them in a different facility - how often do you need to cart a shipment from your textile factory to your sewing people. The only facility available for this was across town, did you decide to transport your stuff all the way across town, or just pay some folks living nearby to make product for you in their own homes? If you did the latter, how are you managing your deliveries of materials and picking up of product?
These are literal business decisions that have had to be made pretty much since the advent of the factory in its earliest form, and have been studied by actual engineers for a similar length of time. I still have my notes from that class!
great comment, very interesting, thank you!
You could compare Factorio to pretty much any process that humans do, some which have existed for thousands of years. For example, farming. People have been trying to optimize farming since the beginning of time. More food = good. But it's not that simple, it requires a bunch of little details and other smaller tasks to do. Someone could probably do a 1 hour video comparing all the similarities with Factorio and farming.
Also there have been plenty of games before Factorio which are essentially the same thing. Off the top of my head Sim City and Roller Coaster Tycoon. At the end of the day it's just management. I think it's fun that people are comparing Factorio to software engineering but at the same time some people might be taking this too seriously.. the reality is learning Factorio doesn't make you a software engineer. There are a ton of other skills required to be a successful engineer.
Totally agree. The link I see from my background for example is with project management schedule management. When to start what task with how many resources that overall project duration is minimized while maximizing finishing date predictability
好写的评论
I'm in Operations Management and it's made me such a good Factorio player. Everyday is just allocating resources and labor to certain tasks to produce X amount of finished goods in X amount of time. Code tracing is a term I've never used but it's a daily currency in manufacturing. Root cause analysis, traceability, reducing bottlenecks, law of the minimum, etc.
My love for factorio got me to start exploring software engineering at a really young age!
I am now a psych major.
Lmao well done, I’m glad at least one of us is actually getting their problems solved
@@TonyZhuthat’s a funny assumption you think psychologists have there shit together
@@TonyZhu It's a cardinal sin for a psychologist to diagnose themselves, it's a treasure they guide others to
@@TonyZhu I didn't think I'd end up in a medicine program :(
I actually finished my psych programs and practiced for a while (disabled now, meh). Then I got interested in software for the fun, and now I'm about to download factorio. RIP
Back in school, for my final science exam, i had a question on how a nuclear reactor works, I didnt study that part, It was an 8 mark question out of a 60 mark paper, I wrote down how a reactor works in factorio, I got 6 marks out of 8
I can already hear North Korea frantically writing this down.
lmao, that's amazing
Sweet! What did you write?
He probably doesn't remember what he wrote. What I want to know is how a nuclear reactor works in Factario. Anyone care to explain?
@@sergemarlon in Factorio nuclear reactor burns uranium fuel, producing a lot of heat. Heat is then used to turn water into 500-degree-hot steam. Steam is then fed into turbines to generate electricity.
I will never think of software bugs the same: bad update = actual bugs destroying my furnace.
Train signals are probably a great way to talk about mutual exclusion and deadlocks when dealing with multi-threaded programs!
There is a reason why it is called semaphore ;)
I wish he would do a video about that because that's the part I struggle with. Train signals, I mean.
@@violatorut2003 Before intersection - chain signal. After intersection - regular signal.
Since chain signals combine with regular signals to create single blocks (they are separate to the game but they function as one, so same thing) make sure that after every regular signal there's a space for the largest train you expect to travel through it (so that it's ass won't take space on block before, potentially causing dead lock on intersection).
after dealing with train signals very early and a lot, i feel like a godlike being for even understanding how city block rails work
Trains are the great divider in my experience. Up until them it's a lego set, mash it together and it works. Then you dip your toe into using train lines. You've been on trains, they just trundle along. You've balanced conveyors all day long, how hard can trains be? And BOOM, completely new puzzle. Completely new puzzle, with so few parts, yet so much fun to solve!
My experience in Factorio has led me to a singular conclusion: I am not fit to be a software engineer.
lol same, though this video makes me want to try again
@@birchcove8454likewise except i’ve never played it. pull me out if my brain grows too large brothers
You can be a professional software engineer and still suck at Factorio!
It’s all fine until wiring comes up
Played it with some friends. After first or second science i build myself a 4x4 belt and watched myself rotate. I couldnt comprehend it anymore.
The new invention that blows my mind in this video is: a funny software engineer.
he's had the luck of not being an electrical or computer engineer
Yeah seriously this is like a different angle of micheal Reeves. If this guy keeps at it and improves he could actually do really well on here.
yeah and unpretensious too
lol this is what people consider funny now days? this is just a weirdo
I was thinking about that the other day. It's completely true, but not just for software engineers; it's how any engineering on a "high level" should be done. Everything in production (both in software and in a factory) is viewable as a square with something that goes in and something that goes out. Once you understand that you can write the code in between, design a production machine, set the controller... with something going in and something going out.
I came to learn a little about software engineering, I stayed to figure out who the hell has been talking to my mom on Facebook. This was highly entertaining, good work.
Lol great comment, thanks for the support!
"I know that this is cringe"
This is what UA-cam supposed to be. You making videos that you like and share it with others that also might like.
Keep making videos man! I love the content!
Man really appreciate it! It's really heartwarming to read comments like this, thank you!! Seeing all the positive responses really make me want to double down on this :)
you dropped this👑
Imagine taking a Software Engineering class and the teacher just gives you a computer that has Factorio on it.
Highschool freshman year, and the dots are just clicking softmore year of college 👍
And here I thought you would be talking about thinking in loops, dependencies, iterations, redundancies and all and foremost about Factorio's bot networks (requester chests are like events that are firing and calling robots that act like methods) and circuit networks. The latter are actually exactly like code one you use things like decider combinators. Train networks is also something I expected you to talk about.
I was a video editor for 15 years. I have 600+ hours in Factorio. I am now a software developer. You are correct.
I was a developing software. Played 1k hours in Factorio after taking a break from developing software. I am now trying to edit videos. xD
@@swazgaming420 hey, do both! I do a lot of work with ffmpeg at work. Automate those video edits.
I'm a SE who was emotionally stunted by my parents in early childhood, and I need another video of you explaining how a monolithic program, relates to Factorio, and how they both enable you to talk to my mom.
this and yes i kinDa agRee. .
Factorio is very similar to low-level circuit design and high-level service architecture. It's not very similar to all the stuff in-between though.
fun fact, in Factrio SE stands for the Space Exploration mod if (in case some outsider randomly reads this comment)
The chart at 11:40 could've been:
1. Vertical scaling
2. Horizontal scaling
3. Optimization
3 is using mostly the same resources but somewhat modified to increase output.
Speed module's effect is just waaaaaay more quantifiable benefit than what one can realistically expect out of most optimization.
Great video though.
I'm so jealous there is a guy that has played Factorio 12k hours more than me
Idk man, maybe god stays in the sky because he fears he’ll be the only one to remember the sun once we all get +12k hrs in Factorio
i was playing Factorio with mods (krastorio, space exploration) and ow boi, the systems get so bananas that i have to play for one hour just to rediscover what i was doing haha
Modded players man, they're on a different level. Bob's and Angel's runs can go for an eternity
@@owholypwner3548 As a Pyanodon's mods player, ToDoList and Foreman2 are my best friends
@@owholypwner3548 I modularized my Nullius base with trains, so it’s easier to keep some things in mind, but building the whole factory after physics science packs took a long time, with all the intermediates, so I stopped doing it
I'm a Software Engineer working as DevOps. I just noticed my last Factorio game is completely containerized and I made a Kubernetes control plane with train logic.
I strive to learn programming as my second language lmao
Just for your information. Grafana has a dashboard for factorio.
Could you elaborate how you recreated k8s in factories?
Not a cringe video. Really creative, I enjoyed the topic and the way you presented it. Pretty funny too! Good work.
Thank you for the really nice comment!! Will definitely consider working on a sequel
this was actually the best video I've watched in a while. perfect balance between entertainment and learning. I'm definitely interested in another video. love your vibe, literally nothing in this video that I found to be uninteresting or boring. I'm not a software engineer but I always loves games like factorio that allow for micro management and making things run as efficiently as possible, never did I realize those games had a semblance with software engineering. you might of sparked a inspiration in me.
Excellent video, this was brilliant! One thing I’ve always noticed is when looking at CPU Architecture under a microscope, it looks like an extremely optimized and monumental Factorio plant. If in your next video you could include things like buses transporting data, smelters caching data, Assemblers being Logic, and so on it would make for a highly interesting video in my opinion. Great stuff!
self similarity (fractals)
God I would love to see someone put 4,000 hours of Factorio on their resume.
"best i can do is 1000 hours of factorio" "your fired"
“Work or factorio, you can only have one”
As a CS and IT person with a few decades of experience, your vid was accurate, insightful, fantastically presented and pretty damm funny. Whatever your 2nd topic is, DO IT.
Enjoy your well earned and deserved new subscription.
Thank you!! This is very nice, appreciate the kind words
Biters are bugs......
Bugs are bugs
The first computer bug was a stink beetle that wandered onto the motherboard of an old computer
That wouldn’t have happened if they upgraded to uranium bullets😂
I’ve been trying to voice this to my friends for years that never give this game a shot. But I could not do it with this Intellectual prowess. Hopefully sharing this video with them will show them the magic for inspiration.
I am extremely pleased to hear this lol. You have no idea how many (literal) years I've spent thinking about this and finally have found the time and motivation to put this video together - glad to hear I could provide some catharsis to you as well!!
you've been trying to tell your friends that this game will make you a "software engineer"?
@@-sleepy- no, that it mimics many of the concepts used networking and circuitry as he describes here. Also tying straight in to your motherboard provides much more broadband to allow higher throughputs than through a remote mounted device running through a sata cable. General things of that nature
@@garandman34 but why does that make it a good game though?
7:30ish in on readability: YES!.. Ive been saying this to agency after agency for years. Literally the milliseconds in performance you gain from making any maintained code less readable is just going to screw you later when that code needs to be updated bc now that everythings been oddly tucked together or just generally obfuscated in some way, you'll need to go back through all of this 'optimized' code and basically make it readable again just to complete the update. TIME WASTED in the end so.. learn to think ahead and always lean towards readable code!
One of my biggest issues with some coders. Build around maintenance. If you optimize something, stick it in a wrapper that's easy to work with.
Personally, I'm much more familiar with the issue of having to convince people that poorly optimized, unreadable code is a problem.
+1000 I almost sent this to my boss. Best explanation for readability. Some people just think that saving 5$ on aws bill is way better than hours wasted in debugging and understanding the mess later.
@@TPAKTOPsp I usually show people Indian telephone poles to give people a visual representation of what's it's like trying to maintain spaghetti code.
I can’t remember who it was attributed to, but i once read “debugging code is more difficult than writing code. if you are always as clever as possible when writing your code, by definition you are not smart enough to debug it”
One of my former coworkers used his factorio game to get a job as a warehouse planner during his interview. As a player I would love to here your take on combinators and such. I find they frustrating at first but after a thousand hours, they are indispensable.
Man that’s actually awesome to hear that (1) factorio helped someone get a job and (2) the interviewer was cool enough to understand / “get it.”
I was actually looking into combinators during the creation of this vid but they still terrify me and I have much to learn. Will definitely give it another look now that you’ve mentioned it!!
@@TonyZhu DoshDoshington made a 3 minute video followed by 46 minute insanity bonus about combinators
If factorio belts are your software bus, then circuit networks are where software moves into hardware. The core idea is that you are implementing *sensors* (both binary and counters) and transforming them into I/O signals, and they are effectively used as relays into other areas of your 'factory/software' bus.
If circuit networks are hardware signals, then it follows that combinators are effectively hardware drivers, the 'black boxes' of software engineering.
It helps me to move off the analogy from web/cloud-based software industry (where CPUs are the main hardware involved), and into an area with greater hardware contribution - Access interlock systems, reader devices (barcode, QR, RFID), sensing devices (thermocouples, pressure sensors, pizeoelectric sensors, Hall effect sensors), signal/protocol converters (USBRS232GPIOEthernet), hardware relays/switches, circuit breakers/fuses/alarm systems, human interface devices (buttons, keypads, keyboards, mouse) and robotics. Congrats, you are closer to real engineering where automation moves physical things in real life! :D
@@TonyZhu , If i remeber right he got the job with fedex. And to see a truly amazing use of combinators look up " JOSIF " or self expanding factory :)
@@TonyZhu If you want to check some combinators shenanigans you might check DoshDoshington youtube channel and his "Welcome to Factorio City" Or "Building Circuit Abominations in Factorio" videos.
my hat off to you sir, very fun way to break down these engineering concepts! please make more videos, the internet (and aspiring engineers) need you
I don’t code or play that game but sat through the whole video cuz I found it’s interesting and your presentation appealing. When I got to the end of the video and you were saying you were unsure if you’d make a the second video I thought to my self “well if I’m seeing this, it must have gotten a lot of views and gotten picked up by the algorithm” Lo and behold it’s got a half a million views. Good job 👍😮🎉
I had a kind of similar experience as a kid with the old Sierra citybuilder games like Pharaoh and Caesar 3. Only realized it after I studied software engineering for a couple of years. Parents, let your kids play.
Or for those really in the loop, Zeus: Master of Olympus.
God, I’m old. 😂
They tend to
My people!
Bro is so charismatic I only caught that he's wearing socks mid vid.
My eyes was on hes cool socks. Video stats ending and i realize he is cool asian guy.
My comment here was deleted. Did i say something wrong? I just make reverse socks joke :(
me too
@@SUpeREleCtRoSTaLIN my comments are being deleted all over the place, it's just youtube being youtube i guess
@@robertdracosu8115
Those ghost images in the beginning are my favorite thing of all time 😂
I loved this format, please don't change it. You've blown me away with the quality that you put out compared to your subscriber count and the fact that I've never heard of you before. As someone who enjoys messing with and building programs for fun, I understood how much effort you put into making your analogies digestible by everyone. Watching this I got some junferno vibes but you seemed to keep this much calmer and focused which was a format that I loved as well. Please keep up the great videos and I'd love to see a second follow up video. I also plan to get into factorio as soon as I figure out how to not worry about that whole "eating and sleeping" thing.
Feedback heard! Also these are really flattering compliments thank you for the kind words!!
First time here and I agree with this guy^
@@TonyZhu I see a million subs in your future.. I was here at 11k ;-)
As someone who has spent of lot of time playing factorio and generally doesn't know what to do with their life this just motivated me to go down the route of software engineering, Thank you, can't wait to see the next video
Best of luck!!! I love it when gamers find purpose in life :D Also maybe you can consider emsy/computer engineering! It's more in line with such games than even software engg.
Do it! I learned after playing factorio, if you played correctly then you already know how to program. (not kidding)
i was dissatisfied with work in different sectors and companies for a decade, then had no job for almost a decade. someday i started playing factorio. now im a software engineer. real story. totally not far fedged and simplified cause and effects. ;)
as a software engineer who doesn't know what to do with their life, this just motivated me to go down the route of factorio
I support three out of the four replies in this thread. In unrelated news I am considering starting a Factorio addiction support group.
Dude, your sense of humor and comedic timimg are incredible. I was laughing out loud so many times, even while enjoying and learning from your essay.
And that‘s his 3rd video?? Incredible!
I'm two months late to the party, but i read this comment right as he said, "heroin just wasn't addictive enough." The pair together, chef's kiss. I ACTUALLY laughed out loud.
"Other computers somewhere else, underground, wherever". SUCH a better explanation than a series of tubes honestly.
As a software engineer, I don't know why I haven't known about factorio until just a month ago. I just fell in love almost immediately, to the point that I spent hours only in the tutorial, just to optimize everything before achieving the actual goal 😂It is the perfect game for the field because first and foremost, it is a game, so it washes the stress away. Second, I still use the same type of mental process when approaching a certain task. Planning and picturing how everything would run before placing all the components, making it more efficient and easier to upgrade later on. If I'm being honest here.. I feel like the game made me better at work. I think it has something to do with keeping the mental exercise going even at home playing a game. It makes me think like a software engineer without tiring or stressing me out like work does.
you think optimising in tutorial is nice.. wait till you go full beacon setup and want to have setups that take a full blue belt and output a fully compressed blue belt... It's like programming golf, or writing a haiku
When I started playing the game they didn't have a tut yet took 6 months just learning the basics
@@Smitten702 lmfao 🤣🤣
This video is a masterpiece of art. You have so completely compared the two subjects into identicality that it has bridged gaps that were already obvious into deep rooted bonds of nuance around each corner. Your shit was funny and engaging from the very first 15 seconds and you kept that energy going for the entire 21 minutes. Your channel is about to explode in popularity, I hope you're ready for it, because you just won the internet. I applaud you.
Called it.
well-put
Real
God idk why I didn't respond to this comment earlier but this is one of the nicest, most beautiful comments I've received! Thanks for your kind words
As a super nerd that sucked at school, who is teaching myself software engineering to stop getting paid hourly as a onsite IT guy... This video was hilariously entertaining, and suprisingly educational. Please do more. You did a very good job at explaining these concepts, in an entertaining yet educational manner.
Future content doesn't necessarily have to be a videogame analogy. I'd just love to hear you talk about comp sci concepts more. I feel like I'd pick up some good info whilst also being entertained. (I'm 22 btw, not a boomer, so like, I for real mean it lol. You caught my age group as an audience here)
lol great to hear, thanks for the detailed feedback man!
Same here as the age group.
I love that this video exists! How about a follow-up featuring Space Age content, some of the new mechanics (Fulgora scrap recycling, Gleba item spoilage) narrow the difference gap even more between SE and Factorio by requiring time-dependent and constant flowing systems! Keep up the great work!
Okay I cook for a ton of software engineers at “insert tech company here” and you just kinda made them seem so much more relatable. I have asked them what they do for work and for the life of me I couldn’t understand.
Haha honestly having eaten for two years at a "insert tech company here" cafeteria, I can almost guarantee you that your job is both more important and way more noble! Also we don't understand what we do either.
@@TonyZhu I do love to cook, you guys give me UA-cam or Xbox or steam, whatever you program for and I feed you. And that sounds fair to me.
I'm a graduate student, and I'm in the middle of writing a research proposal about using Factorio to teach Industrial Engineering. This video has brought up some perspectives i didn't consider. Thank you!
Super cool proposal idea! I hope it works out, you gotta let me know if you end up getting anything published!!!
How is it going?
@@tuftela The proposal was just for an assignment, and that got good marks. I'm currently doing personal research on knowledge transfer with recreational video games, and might be submitting an abstract for a conference soon 🤞
@@ATwiz02 That is so cool! Thank you so much for answering even though it's been so long since your original comment. Wishing you the very best of luck with your abstract as well!
This may be a bit far fetched, but maybe you could use industrial engineering to teach industrial engineering?
Instead of a silly little game...
As a software engineer of more than 20 years and a factorio enjoyer, this was great.
It's amazing how fitting the Factorio analogy is...
The bigger your code base, the more and stronger, the bugs (biters) are that come attack your base, causing all kinds of other slow downs and interruptions.
Also, if you want to have your mind blown, look up some of the older factorio vids where people build fully functional displays that actually encode/decode video and play it in game - Factorio is Turing Complete and an incredible video game.
"bugs" hehe
As a web dev (still intern), I'd like to think that the biters spoke Russian or Chinese.
I’d suggest DoshDoshington’s “Building circuit abominations in Factorio” he’s a fun watch.
I swear factorio developers made biters to look like bugs on purpose
There was one about a year ago, I believe. A dude made a Turing complete calculator out of a rail system. He said it took like 20 days to run though
This is fantastic. I think you did an excellent job of explaining incredibly complex concepts in a way that even those of us who were new to the concepts could understand!
Stylistically....don't change a thing, I was absolutely hooked all the way through and LOVE this format. (Thank you for the "attention" videos during story time 6:24 )
As someone about to embark on their software engineering journey, I hope you continue to make this kind of content!
I was confused when you told that story that I didn’t see the cutting soap video first. But when I saw it and red the subtitles I laughed SO HARD. You’re probably becoming one of those UA-camrs who rarely upload but when you upload it’s something unique and a lot of fun to watch.
I'm a software guy and I have a buddy who is interesting in the trade and always picking my brain on it.
He sent me this video in his excitement of drawing parallels into what we do everyday into a game he knows fairly well.
This effort to bridge technological patterns (in this case dev) with more widely familiar concepts such as gaming is great. I enjoyed your video and it was doubly good in that you made my friends brain tick just a bit faster. Really good job man.
Seems to check out, I play Factorio exactly like I code. Rarely and very poorly, but for 5 day binges every time.
Watching this, I was expecting some big youtuber, not 600 views. This video has quite an impressive quality, keep up the good work, I really hope you get the attention you deserve!
Those kind words mean a lot to me, thanks for commenting
@@TonyZhu Yeah, it's a great video!
@@simonwillover4175 Thank you!! Really appreciate these comments
We are at 10k already...
"In the business, we call this foreshadowing"
@@TonyZhuWhat you put out is amazing, honestly. This Video was a blast to watch!
I think it's really worth mentioning trains as well. At the end of the video, you mentioned the differences between monolithic and microservice based architectures, and I think the best the to show that difference/similarity is in trains. If you consider your entire factorio base as a distributed service, trains exactly represent packet flow and more importantly packet delay and packet loss if you get a biter attack.
If you consider your factorio base as a single monolith, then trains turn into interfaces. The train doesn't care how you actually insert the cargo, and how you process the items at the station. All it cares about is that it needs to drop of Item X and wants to go pick up item Y. This represents component design and individual classes and functions as well.
Yes 100%!! You've articulated the idea very well and this is most definitely something I already had in mind for video #2. As I start to read these comments though, I think there's a lot more I wouldn't have thought of otherwise so I really appreciate people like you commenting this stuff!!
0:40 It's that last one. It has to be.
Thank you for this. Obviously im addicted to Factorio and always felt so dumb when it comes to computers. Your casual approach to teaching is SO helpful when setting up an emotional openness to new knowledge. I understood ever part of this video and had a GREAT time watching it. Amazing job!
As a software engineer, I can confirm that I am the problem in both worlds.
there are two wolves inside all of us: "I don't need it to look pretty, I just need it to work" followed by "omg why is this a mess I have to make this the most beautiful thing ever or my brain will explode"
Fucking my jira stories because the code isn't pretty definitely makes me a software engineer
I think you need more on the spaghetti. I think it's worth getting into maintenance and refactoring and the trade off between living with your past decisions, often by making the mess a lil worse or taking the time to do a big cleanup. And also how a layout that works fine for a small amount of things at a small scale just inevitably becomes a mess as you add to it.
That's a great point! Will jot this down in my notes for the next video and see if I can find a good spot for it :)
One thing I've always liked with Factorio (which you didn't quite touch on here) is modularity and interfaces. Ideally (IMO) you are building your factory such that the inner-workings of the upstream source(s) do not matter; you simply need to know that you'll be receiving iron plates (and that your smelters, however they are configured, will be outputting iron plates). Later, when you build more things that require iron plates, you can reconfigure/scale/move/etc. your smelting; but as long as you keep a stream going to the original consumer of iron plates, it does not matter that the source has changed. To me this is like an API changing how it works internally without changing what it returns for the same request.
Nice video man, enjoyed it!
Factorio helped me clarify the two different methods of improving throughput. Optimization (gotta have perfect ratios) and scaling (gotta get bigger). You can, of course, do both, but I prefer the big corporation method (why be efficient when you can be inefficient at scale?)
Edit: This is not meant to imply that big corporations don't care about optimization. It's more of a commentary that they have the resources to be able to not care about it quite so much.
Yeah that's like my big worlds. I am probably intermediate at circuit networks at best, but I'm pretty good at scaling and automation... I don't have the skills like some guys out there to maximize efficiency... Just make more!!! That's the fun part anyway.
why do you have to call me out for playing like a big corpo QwQ
dude, stop lying. Don't lie to yourself
In manufacturing: a bottleneck is a process that holds up production somewhere in the assembly line. Sometimes a bottleneck's root cause is due to a spaghetti-like flow of materials through the facility since the layout was planned beforehand for a smaller quantity throughput. We scale up or scale down by adding or removing machines, workers and materials. When scaling up, the load on parallel processes is balanced for a steady flow of materials, and we use logic controls with sensors set limits for detecting problems. Similar to tracing, we do a root cause analysis to figure out what's holding the whole thing up. Delays all depend on our upstream suppliers, and trickle down to our downstream customers.
The other big thing they have in common is stealing code from strangers on the internet lmao. Blueprints are basically that, right? And the crazy thing is, you can design/steal a blueprint and treat it as just a closed system that takes an input and makes an output. I'm currently working on a "coal to plastic" blueprint, which is a design that you just build, supply it with water and coal and it spits out plastic, and you don't have to care about the specifics of how inside the blueprint the coal is turned into oil and processed into exact amounts of oil byproducts, how boilers make steam for the process, how heavy oil is routed from the output back to the input, and how petroleum is mixed with more coal to make plastic. All you care about is the input and output.
This is actually a great point that I totally forgot about over the past few years lol. Had written in my script about black box processing but the idea of copy pasting functions from the internet is great, thanks for this!
Mmmm tasty open closed principles 🤣🤣
Yesss, blueprint websites are basically stack overflow lmao
Is this abstraction?
It is pure joy to watch him get more and more excited as he explains his analogy. It is very cool
I’ve been telling my one friend factorio has transferable skills to the real world for a while now. Thank you for laying it out so beautifully
HELL YES! this is genuinely creative, smart and makes me more excited to code and play factorio. Thanks for making this. Can’t wait to see what other cool creations and essays you’ll come up with.
Thank you!! Really appreciate such kind words and compliments :)
This is really excellent. You've found a niche here, man. Funny, smart, original content, and I think there's a huge audience out there that you could capture. Please keep it up! I'm already convinced you're gonna be a big big deal.
Unironically the best video to explain software engineering, especially vertical vs horizontal scaling
As someone who has neither played factorio, nor is a software engineer, i found the video surprisingly entertaining and would be interested on seeing your take on the other video, it was a very pleasant ratio of information and humour
Big thing I learned from factorio is a thing I don't remember the name of. But basically that buffers are not good, except for train unloading stations (so that it can keep your base full supplied and doesn't run out by time next train arrives). Maybe it was JIT or something? Something about producing as much as you can use and if you cannot use enough science then that means that.... The factory must grow!
That is JIT! And is a concept used on industrial engineering to plan the logistics at actual manufacturing plants :D
For sure I find having a buffer that doubles as a mechanical mass sorter after it comes off your train lines chests is a good unit to have to get through the early game and is really good once you up grade it to use logistics bots.
Instantly subscribed, not because you make me feel good about putting thousand of hours into a game, but because your video style is absurdly good, you have a good flow and get your points across with a nice sense of humor to boot.
And all this by the 8th video? It's insane
Late to the vid, but I love your style of video essays! You're able to balance engineering with humor (mostly improv and ramblings which is like intellectual improv when you think about it) and that gives us breaks between long explanations. Heck you could talk about high-level subjects I don't even understand and I'd still watch because you explain things beautifully!
4:30 as a person who doesn't know much about Pokemon and just started learning AWS i completely accepted those names 😂
This isn't just software engineering and factorio.
It's the study of systems; it's used in nearly every discipline.
For example:
Chemisty for complex chemical reactions.
Biology for reaction pathways.
Economics for analysis of supply chains and such
and it can become even more niche.
Not quite, since what the other disciplines study some specific system to their problems, usually they try to frame this interaction in a model already studied and proven, now software engineering and factorio for this matter, is this sort of study of the study of systems, the job is to design better ways to meet the requirements, while keeping your sanity check.
A chemist, will use their knowledge on chemical reactions, modifying this reactions, adding and compounding different materials to yield better results, in control manner.
A biologist, will use their knowledge on biology to change the conditions on the bio compounds and the agents to get safer and useful goods.
A economist, will use their knowledge of basic geometry to put the square in the square hole
on the other hand,
A software engineer, will study what are the chemist, biologist, and some common sense to try to englobe all the later and put it through some none-sense it works system, on which will make it regulate itself by proven or field tested way, hopping that something doesn't goes up in flames the moment that you want to gtfo at 5pm on a friday
A factorio player, will do the later willingly, on a videogame while creating the next framework to grow the factory that this time will indeed solve the other problems and be the one to use after repairing some nonsense problem caused by an edge case in their work that took their whole friday afternoon to solve
@@samu_2822when generalizing, it is possible that two categories are more like each other, than a third, but it still being possible to generalise all three.
A factory is more analogous to a whole economy’s supply web, yet it is stil generalizable as a complex system along with a software system.
Awesome video with a great sense of humor, and this was clearly inspired by great passion for both topics discussed here! Would love to see more video-essay type stuff, especially that monolithic vs. microservices thing. ❤
Ur a goated friend
@@TonyZhu If you want the *_PERFECT_* game for showing SOA, I can't think of a better one than Autonauts, where you need to program cute bots to do _everything._ The catch is that the Tier 0 bots only have room for 12 instructions. (...which really puts the 'micro' in 'microservices'!) That means you have to have *LOTS* of bots--each doing only one thing--and they all have to work together. ...but don't worry; as you advance to different tiers, you can add modules to increase their capabilities, so you can, for example, have a Tier 3 bot with a 'Super Bot Brain Upgrade' that can handle 64 (32+32) instructions! Here is the trailer to give you an idea of what's ahead of you: ua-cam.com/video/TtOjoEV0ooE/v-deo.html
(The devs have also released 'Autonauts vs Piratebots', which takes the basic premise Autonauts and adds PvE, which you could use to Segway into security issues.)
Cheers!
P.S. You could also go the more traditional route and take a look at Screeps, where each bot needs to be programming in JS.
You can also discuss: deadlocks (trains); load shedding (using combinators that automatically cut power to the main factory to prevent a Power Death Spiral)
This one is gonna blow up. Great hooking first 30 seconds. Subscribed.
Thank you!! Appreciate the kind words and sub
I'm learning software engineering in uni right now and im a Factorio player. I was actually doing one of my biggest assignments while watching this. Ironic. Loved it.
You're fucking awesome bro. distilling complex or not understood information and making it understandable to the masses is literally the most important thing anybody can do. thank you.
Dude coming from a software engineer this video is actually incredible. You know someone is smart when they can explain something in such a simple and digestable way. Cheers to you man
How does this video only have 35 views?? So good
Haha appreciate the sentiment, thank you for supporting the channel!!
i played factorio when i was young (no seriously) and with my dad and I had a grand time playing the game with him, I learned so much.
Aw that sounds like an awesome childhood experience to have! Just imagining this makes me happy, thanks for sharing
This feels like content a youtuber with 500k+ subscribers, a very unique kind of humor and a really strong fanbase would produce.
The editing has the kind of endeering and intentional amateurish feel to it - but executed in a way someone who actually isnt even close to an amateur - and a very distinct (really good imo) kind of humor, somwhat like
like michael reeves concept-wise. (while the content is obviously completely different)
But seriously, the execution of humor and editing style is great. I cant remember when i laughed this much at a video.
Thank you so much!! Really appreciate the thorough feedback and it's so flattering! Appreciate the support
Love the green screen format. Stay confident in your decisions because they come across as genuine.
Knowing nothing about software engineering, I imagine there are other parallels present between these types of games and SE. For example in Satisfactory, you can choose to process raw materials closer to where you collect them, or for a challenge you can try to run all of the raw materials back to your main base and just create a colossal singular structure where all of the processing occurs. I wonder what the software engineering equivalent of that would be? Or is that highly emblematic of just a specific market within SE? Interesting stuff.
You're basically just the software engineer version of NileRed. Good shit keep it up.
The Monolithic Code in Factorio Terms is one of those Bus Builds, where you collect all the belts over into one place, and then just hook into the resources that you require; also, it is called hooking into code, so that's handy; speaking of handy, I was on Facebook talking to your mom… 😜
In factorio I've really come to love the sorts of things I can do with trains, and I think it fits into the whole comparison with software engineering. Because when you first start with trains it tends to be really simple, you probably have a few dedicated trains going between specific stations, only going to and from the same spot each time, probably even on separate rail lines. Then as you learn how rail signals work you can combine things into one rail line with several different trains running on it, but each train is still just going between their normal spots. And THEN you start learning more advanced stuff, like how if you have two stations with the same name trains will be able to choose which one to go to, so instead of having "Iron Mine A", "Iron Mine B", etc you can just have several stations named "Iron Mine" and your train goes to the first available one. After that you can start going into circuit conditions and making it so that stations will only accept trains when there's something to pick up, or when there's something that needs to be delivered, so that the trains move around more efficiently. Now when you want to set up a new mine, or make a new smelting array, you can just slap down the same blueprint and the trains will automatically start rolling in without you needing to set up new schedules.
Wow I kinda rambled there.
Glad theres still room on this app for a guy to make an absolute gem of a video and have it find its way through all of the algos and moderation into my feed
As a small up-and-coming creator, your intro alone already tells me you're going to go far. Please keep the amazing work up