Nobody hires jr web developers so I made a poorly done animation in AfterEffects Nobody hires jr game designers so I made a mediocre Twitter /Shopify clone
@@not_a_cool_handle "I scaled up the app; see, 3 extra letters and a larger noun." I used to do R&D and had a pathological term called "hello-universitus" with how some tech-illiterate project managers fawn over junior projects that just reimplement simple tutorials with a few parameters changed. Which is a whatever thing in itself, until managers start shuffling around resources and ignore arguments about how it's not actually the next big thing, and then act surprised like nobody told them repeatedly point-blank when it blows up in their face a month later, and then repeat this pattern ad-nauseam like they're incapable of learning - especially since it's from a small army of managers that enable each other.
It's a great game and all, but the only quantifiable metric of SW.Eng. quality is quicksort implementation on this very whiteboard. This interview is over, thank you for your time.
This sounds very familiar. I spent 6 months looking for a job after recently getting laid off. After about 60 rejections I decided to make a game. I started by trying to make a multiplayer RTS and spent about 3 months working on that and gave up after realizing it would take me too long to finish so I changed focus. I decided to focus on making smaller sized local/multiplayer games. I made 3 games in the last 3 months. Each game uses split-screen and supports up to 4 players. So now it's a year later I still don't have a job, but at least I made some games.
is this real? I feel like poop been looking for a junior web dev job since March 2024 I'm still without a job... maybe I will never get something or I guess I should really expect anything...so frustrating
@@m.o.o.n.c.a.k.e Yes, but my biggest problem is I'm a senior dev and most of my skills are out of date. So if you are a junior dev, I think you might have an advantage being that your skills are better fit to the market.
I'm trying to learn React right now, and I hate it so much. Just give me vanillaJS and jquery and I'll work some magic for a website, but all these modern frameworks drive me crazy.
@@omsrswt There are no competent interviewers, at best they can weed out most of the poor performers without inadvertently tossing talented people. There is almost zero chance they can identify top talent in an interview
I'm pretty sure I've been rejected from jobs because I couldn't describe the Linux file system. Its stupid because people really just know what they work on, if you ask people about stuff they don't work on their obviously not going to know it. Why ask people about things not on their CV if they knew it it'd be on their CV. It's just replacing leetcode with trivia.
I made a website so interactive you could change basically every aspect of it. It even had a physics engine and was so modular I could add a new feature/mini-app in less time it takes to deploy the docker image. It was also my first ever web project. I couldn't get a job because I didn't have any prior work experience.
@@thewiirocks Nope, started studying Java because the job gap was getting too big. *Edit in case Prime somehow sees this:* I didn't have a choice! It was that or working at a callcenter.
My absolute favorite interview format (on either side of the table) is a review of a project the candidate made on their own. The candidate is usually at easy since they’re talking about something they’re familiar with, and the interviewer can judge code quality, decision making, tradeoff evaluation, library selection, etc. It also allows for great conversation.
It's much more realistic too. I could talk a long time about all sorts of topics that relate to actual project work at my job. I can discuss the pros and cons of an array of technical decisions in depth with my coworkers. What I cannot do is design a system in 15 minutes for something I've never ever thought about before while a bunch of judgemental strangers breathe down my neck.
This would completely hose me over. My "pet project" is an app to calculate the nutrition facts of my homemade curry. It's a _console app._ I literally didn't need anything sexy or elaborate, and I hard-coded the nutrition facts into the code anyway. If I feel particularly lazy, I hard code the ingredient _amount._ I didn't make it to impress anyone. I made it to solve a problem. I don't have big sexy impressive-looking projects because I don't have big dreams anymore. And I don't have big dreams because I don't have hope.
Most companies in the game industries staight up never email you when they reject you. Most of the time they only email you if you got an interview and then didn't pass. After resume screening they just don't care.
I like how he introduced it, he introduced the features or mechanics of the game clearly, like bullet points. Later on, these will become the requirements of the program, solid start. If he doesn't have a job yet then I don't what wrong with this world, I'm only 10 minutes in and I can see he's quite competent, maybe he might lack strong personal and sales skills to take hirers to his turf, but otherwise, this guy would be a good asset for most companies.
This is one of the things I’ve understood late as a self-taught. Programming is just identifying your problem and the data at hand then coming up with a solution. This is all done without even touching code. Data Oriented Design video really enlightened me on this.
It is mostly due to the kabuki theater on the hiring side, the hiring funnel in a bunch of orgs isn’t great. They cannot decide if they want generalists or specialists, or they throw out an enormously wide net for early funnel stages and bag more candidates early in the pipeline than they can ever screen by hand. Thus promising candidates like this can get their resume auto-rejected, because they wanted to have 10k candidates in the pipeline.
@@StefanHanrath Absolutely, I can see that happen, and since I guess they work like consulting companies they get paid even if projects suffer because or how they handle the hiring process, they're likely to use the number of applications "reviewed" to milk more money from their clients while offering very low value to the job market.
Loved the distinction between “Jr” being based on your *professional* experience - not based of how good you are. I’m halfway through the video and this man KNOWS HIS STUFF
We live in a world where psychology degrees and business majors get more job security and job availability in tech company positions than the developers themselves. What a time to be alive.
@@masterflitzer You can be the best Haskell or Cobalt programmer but if your skills are not in demand you have a hard time finding a job. The same applies to javascript, c++, or whatever else you do. Being good at running a business and making money, getting sales, that will always be valuable. Full stack wannabes are a dime a dozen.
@@do8456 yeah of course demand decides it, but imagine the demand is thete, but they just fire senior to hire mid level engineer to save money and also don't hire juniors because they're to inexperienced, that's what's happening in the entire industry, i experienced it first hand (multiple senior devs in my team disappearing)
Nowadays it's harder to get to the interviewer, you know, the person that understands what the job is about. Most people will fail at the ATS review, which is the non-human part of the process. Oh, and I hope you never have to do an interview with an interviewer who clearly doesn't want to be there. Had way to many of these in my life.
My boss will click down on a link and linger for a good 2-3 seconds before releasing. It’s a form of gut-check, I think. He really depends on the “animation on key-down, action on key-up”
You act on press in action games and on release in strategy / turn based. Cool video. Can't believe this guy had problems with getting hired. He's 10x dev junior.
@@snakefinn I don't think this happens in my place. Is it because he tries to get to a place where they arent hiring or because of AI and automatic rejection because of experience requirements?
Act on press is superior in almost every way. The primary disadvantages I know of are: 1. Misclicks cannot be avoided by superusers -> Solution: require additional confirmation action, or make the action readily undoable 2. Misclicks are more expensive in poorly performing apps -> Solution: maintain a lean performance-aware codebase, which is hard if it's already bloated dependency bridging
Omg I just watched this and now you're covering it sick. On the note of getting hired: This is exactly how I got hired. After 8 months of endless rejections and studying and leetcode grinding, I didn't write a single line of code to get hired here. Instead my interviewer asked me to talk about my magnum opus at my last gig, which was breaking apart a monolith into microfrontends, stitching them together with module federation and using a shared library to manage state between all of them which was super cool to me because I had never even heard of module federation before they tasked me with research and implementation.
Keep in mind, if this guy is not trying to be a game dev, he will still have issue in a web dev role simply because its not a web project. I am not sure how game dev jobs will treat him. If they act the same then its even tougher. For example I made a game in Godot. If I apply to a company that uses Unity, I wonder if they will pass on me lol.
The onPress and onRelease issue is pointless when devoid of context. If want your gun to fire on press, but you probably more comfy with your grenade starting on release. You probably don't care much if your motor starts on press or on release, but you CERTAINLY want your emergency stop button to work on press.
The debate about whether to act on button press ("down") or button release reminds me of my experiences playing RTS and MMO games. I recall using an add-on that triggered skills immediately on the key press (down event) rather than default release event. It felt more responsive and felt like a slight reaction-time advantage, which matters in competitive play. For any regular work situation? No way...
The conversation really depends on the context. What prime came up with, the whole mouse down cancel stuff is perfectly valid, i use it myself sometimes. It is actually a good and considerate way of doing mouse realated actions imo. But when i'm trying to strafe shoot in a fast paced competitive FPS game, that better not have a movement action on release, cause there will be blood.
Mostly it comes down to "how important is it to do it quickly". In action games/FPS games and the like, doing it quickly is really important, so it should be on press. In a turn based strategy game.. doing it quickly isn't important at all, so it being on release to reduce the chance of misclicks is fine.
My first big solo project was a multiplayer turn based strategy game, Nodrog's Fortress. It taught me so much despite being unsuccessful commercially so far. I wouldn't trade that experience for anything though. Just go build something that sparks your passion and I promise you will level up.
I appreciate you analyzing this content. It made me realize that I should build something that's for real real that's intentional and solves a problem. I decided to jump into react since I'm a front-end developer and I'm making a component library. My thought process was to make website the users can view components, view the source code, and a breakdown of why the component was designed / animated the way it was. I also plan on having a page about the library and talking about the thoughts of designing and coding it from scratch. Thanks for inspiring me / highlighting this video. Love the analysis from you and the breakdown of kodestan going through their project. Super cool to watch through.
"Do something for real real" Yea this is the biggest thing I look for when hiring. If you've got real projects and can walk me through your logic on a couple of examples, you're in.
i have been on computer science for 1 year looking for a internship role, i literally never got a interview, seriously been thinking on giving up on life, i just wanna learn in action
I gave up on web dev after 4 years of learning. My advide is go where there is a high demand and low competition like a Service Desk. Learning never stops so it doesn't really matter on the long run that these X years are really bad for certain jobs. Just like how there are 1000 men for 1 woman on dating apps, there's lots of applicants for 1 job. So go where there are less men to women ratio, like the nursing home :))
6:12 I implemented web sockets once. it was actually a very good experience for me, and surprisingly straight forward. Web sockets (and most of http) has very well written RFC's. I learned a lot from it. took me a day or so (although I only did the bare essentials, not completely in compliance with the rfc, though I might finish it for fun). I recommend everyone to give it a try. ps: this guy definitely made the right call by making a lib handle it for him. there was no reason to get his hands dirty with it for his focus.
Startups aren't that impressive. If you turn a profit that you and some employees can live comfortably from, now that's special. Starting a profitable business that lasts more than a couple years would not make you a great software developer unless you were also actually making it as part of the business. Maybe that wouldn't bother you much at that point anyway because pivoting your career would already be working for you.
When I was looking for job after university, no body cared about my passion projects. And it's not about projects being bad - they simply didn't care - they literally said they only care about how many years of experience I have and that hobby projects are not same as real work. My hobby project was fully functional content management system with advanced stuff like group based permission management and self made template engine - quite a bit more than just todo app. And to remind you - this I did during university time - no one teached me these things. Most of university projects were doable with about 100 lines of code, some even less.
@@test-rj2vl I think in reality, you were applying for jobs in companies where you didn't want to work anyway. If you truly love programming, the employer's culture becomes more important and you would turn down offers instead. It seems that you have overcome the initial hurdle, and I hope you are happy where you are.
@@niclash i think thats very naive, the first programming job you get now days isn't the one you want, its the one you (maybe) get. even in my country where the demand for junior devs is relatively high compared to the US it took nearly 3 months from the start of my job search to getting a job and even then it literally paid less than I was making as a cashier. (took the job because earning potential is still waaaaaaaayyy higher later on and its what I want to do). anyway, it still took me 3 months to find a job that paid less than I already made when I had a fully functioning point of sale system that handled both in-person and online transactions and a fully functioning website that could handle the online sales. thankfully I have a better job like 14 months after the fact but the first hurdle is always the initial work experience required.
@@niclash what is it with the whole "do what you love" thing specifically for programming? People don't work because they want to, they work to make money.
The explanation at 34:36 is actually mind-blowingly helpful as I'm currently in the early stages of developing a game myself. I planned to implement an enemy that had motion kind of similar to a "Snatcher" or "Angry Trapper" from the jungle biome in Terraria, where its motion has a random wobbling component. This implementation, with multiple sinewaves of random frequencies summed together and then pinched with a tapering function, is perfect. I'll probably implement some kind of "Oscillation" class which can handle a variable number of dimensions, durations and max amplitudes. It could be reused not only for game entity motion, but camera shakes and even potentially UI elements as well. I did not expect to have this kind of revelation when I clicked on this video. Thanks lol
So he coded this and also has the presentation skills at 3:30 to make this look like polished training. I thought I was faking before, now I know for sure...
don't feel down, try doing something similar. I bet he didn't know how to do most of this stuff when he started building it, either. Even if you don't get something this polished, as long as you don't quit when you encounter the first difficulty, you'll figure it out. if the graphics seem too complicated you to figure out right now, start with an ascii game that completely redraws the screen on every change. then you can focus on just the game logic. separate the drawing logic from the game logic with an interface and then you can more easily swap it out if you later decide to use graphics. build the smallest amount that is necessary to get a running game as a starting point, then improve from there.
About the reconnect: theres an old RTS game from the turn of the century called Kohan: Immortal Sovereigns that has a beautiful lag and disconnect tolerance system; it'd be worth a look for a reverse engineer. The game will sit there an wait until everyone gets reconnected and synced up, couple friends and I played a match for three hours with three ai players and the game never dropped; we had a few pauses for the resync sure, but we were able to finish the entire three hour match. Cool system and an amazing strategy game that's complex but not complicated to play.
I really liked your point about doing the game logic separately to the presentation/animation, structuring the code that way (for a game like this anyway with commands and visual state updates to perform) would in theory make it easier to move that on to the server (or not.) Really liked that 👍
Hex grid is still a 2x2 grid, just rendered 50% off on every other row. on-press if there's no or neglegable cost, on-release if there's a cost (ie: changing tabs vs downloading a file or unlimited moves vs limited moves)
I dont like Hex grid games; usually like the simplicity of 2x2 but for a tank game I think its makes sense Cause you can track 8 direction facing and have reduced/front, normal/side, increased/back damage. Or some of other game mechanics tied to that idea Also why you have to be the ackshually guy?
A hex grid properly implemented is actually a 3-axis grid system that can be modeled as the surface of a cube. Trying to do it with a staggered 2x2 will result in all sots of hacky math issues.
The fun thing about a hexagonal grid I figured out when I was working on one was that it's just a square grid in a trenchcoat. You just offset the squares slightly and behind the scenes it can work exactly the same way as a square grid would
For display, hexes are just grids where every other line is offset by half. For connectivity, you can store hexes in a grid. There just happen to be "two" below and "two" above.
0:49 This is actually a reference to a speech by John F. Kennedy about the mission to go to the Moon. The actual quote is "We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard".
This guy is great. Who's gonna tell him that he'll get a job, but never once exercise anything close to that level of intricacy... from the software side of dev -- stage 1: it feels like 90% is just make a form for a customer, make it look the way they want it, make it store data with an api... stage 2: update user interface to limit the range of a numerical type, make it so the form inputs can't contain some characters, make it calculate things more on the front end... reduce page reloads... etc...
considering there are going to be much more layoffs of actually good developers in the upcoming years, we are gonna have so many great indie games soon - just like we had in late 80's - when game industry was done BY professionals and FOR professionals
Pertaining to the Carmack click timing thing: I think it's case-by-case, and you can assume a user interaction on many things, but there are always exceptions. I think the best ideology is that the user intended to to do the thing they did (just to set a basic axiom), so craft the UI around that. Sure, it takes more effort but it's smarter.
If you store and update game state totally separately from render state you can do another neat thing (beyond the 'scrubbing'). You can run an entire replay of the game deterministically, which is the beginnings of implementing lockstep multiplayer and effectively testing it for desyncs. If you use deterministic physics or some kind of horrible hack to make floats cross-platform deterministic it all magically works.
well videos like this makes me thankful for having found a job as self taught (i dont live in the Us) and without any degree. I was very lucky with people trusting me.
re: act on press vs release, there is no hard rule. keyboards act on press, the web acts on release. It comes down to expectations, most mouse presses are on release, to differentiate between a short or long press.
The real key is to do this level of care, but for your own actual "project" that is designed to make money. When one finally works, you are now employeed by yourself congratulations 👏🎉
The past couple of days before seeing this, I've been designing some NES looking (or maybe Sega Master System looking....?) tank style game just for fun. Maybe more like TNK3 or Granada (Anyone remember those)? Been using Lua with a LOVE 2D framework. Everything here is light years ahead of what I'm currently able to do. So I'm glad to see this.
16:52 My favourite solution is the alternate button cancels the action. IE I left click then right click, that cancels the left click so I can release both with no effect.
Making a multiplayer game that runs smoothly on the client while having the server maintain state is tremendously difficult. The client side needs to be responsive in an FPS. It's generally done by having things like player movement being done on both the server and client. If there's a difference, defer to the server. It's really difficult to account for things like network lag and where the player should be at any point in time. If Player A presses fire, yet the communication to the sever takes 100 ms, what did he hit? A must is to totally remove jittering movement even when the client and server are off by a bit. The problem is difficult. Good interview question for somebody who has made this type of game though. Valve has a good writeup on it for Counterstrike.
for the interact on down vs release, i think you might want to have ondown for most buttons, and onrelease for buttons that are harder to undo/get out of, like start game, quit app/game, delete, etc
I’m currently on a similar grind, minus the “applied to jobs at game studios” part. As much as it would be great to be part of a team, I have a very specific game I want to make, because I really want to play that game.
Had a go at a game myself earlier this year. I recreated pokemon (mechanics not a whole game) essentially. Well sort of anyway, I didn't finish everything and I would probably want to start from scratch rather than try finish it in its current form, I made mistakes. But damn, I learned so much... Games are incredibly complex!
Activate on down vs. release. I think activating when releasing while over the same element that was also pressed down on may be the best balance of allowing canceling the click, but not accidentally being clicked when dragging the grid.
Bravo! I started making MotorCubs RC (early access on Steam) for the same reason. I got told I needed a shipped game to even be considered for a role, a very chicken and egg problem.
17:47 no, if you fire it on release then you can set it up to make sure the user hasnt dragged their mouse away from the button. this allows them to cancel the action if they accidentally misclick but hold the mouse down, and drag it away. firing immediately is unnecessary. i expect the page to wait while i hold it. thats how its been for years, and it has no bad side effects changing it because you think its more responsive will just piss users off
The Hexagonal Grids web page from Red Blob Games is so comprehensive. I don't think I've seen any programming videos where hexagonal grids are used that don't mention it at least once.
Yea I see this guy is seriously skilled and passionate. He really knows what he's doing. I think atleast starbucks MIGHT hire him because he'll be able to get the POS system working again so they don't have to call out an engineer.
its been raised. this is why people are stacking up at the bottom. people will blame AI, interest rates, mass layoffs, etc.. but it really just seems like the skill floor is much higher than people expected or relative to that of other fields which require pre-requisites like a BS, masters, or PhD. if the position is open to anyone who has a computer and puts the time in to learn, then the floor will naturally rise to high, high levels.
@@hamm8934 and you'd be a dummy to believe it's for the benefit of the employee to keep raising the bar. Of course it's a good idea to put the time in to learn, but not for free... It's only in the interest of corporations to extract as much as possible from as little payed employees as possible. There's been an artificial influx of newcomers and now they're pinching pennies while reporting record profits... it's an old tale, a cycle that repeats everytime the rich want to get even richer, it's up to the have nots to realize they're being duped and to stop giving in their money and time for free. Nothing is free, or nothing appears free for too long. Productivity in objective terms does not exist in white collar cognitive jobs, it's a made up concept.
@@Tudorgeable and i'm not stating nor insinuating that it is to the benefit of the employee to raise the bar? i'm describing what has happened. when you have a field which does not require degrees, certs, etc., and is based solely on how much time a person with a computer can put in, the bar is going to raise high. even geography is no longer a part of the equation since remote work has taken hold. as such, you now have an industry that forces applicants to work non-stop, since a certification wont secure their position like say an MD will secure a physician, and allows anyone to apply to any position, as opposed to only competing locally, say for a plumper job. these are the facts and they're not changing. its going to be like this from here on out unless either (1) degrees matter again to secure your value or (2) remote work goes away. sidenote, productivity in white collar jobs 100% exists, it's just harder to measure with a metric. it just seems like your venting your frustrations on me for things i didn't say.
@hamm8934 Nah the bar hasnt been raised. You're living in delusion. The person that made the video is not even a junior and you fell for it, that github account is his alt account and he made the youtube channel just to showcase the repository so jokes on you. Funny how you would mention that it is a "fact" that the skill requirements are raised whilst providing absolutely no statistics to support it, then proceed to mention that this is due to the accessibility of programming as a profession, which is pseudo reasoning at best. Where im from, I can tell you from official job listings accross three major listing websites, ALL the jobs for software engineerring roles required an undergraduate degree in computer science or a related engineering discipline, it is FAR from accessible to anyone with "just a computer", let alone a person who isnt even in the country.
"even geography is no longer a part of the equation since remote work has taken hold." False statement number 1. Remote positions are very dependent on company, and many companies will not tolerate a fully remote worker nowadays, hybrid is alot more common, but around the bay area, work from home has decreased a substantial amount. "these are the facts and they're not changing. its going to be like this from here on out unless either (1) degrees matter again to secure your value" False statement number 2. Degrees still matter...ALOT for medium to big tech companies, good luck getting past resume screening without having a degree on the resume, unless you have connections that can hold the door open for you to not need to get a degree, then entering the tech industry good luck trying. " if the position is open to anyone who has a computer and puts the time in to learn, then the floor will naturally rise to high, high levels." Once again, very very detatched from reality. The fact that you think juniors are expected alot from tells me you might not even be competing in the same market, do some due dilligence and ask juniors nowadays what their entry projects look like, I assure you it is nothing as impressive as what was shown in this video.
Triggering on down is essential in many games (Particularly FPS) because people are working at the limits of their reflexes and you need the game to be highly responsive. Thats not quite so critical if you are just selecting an action in an application or even a turn based strategy or some such. Then you have to weigh it up against backing out of a miss-click. I.e. Id argue its context specific.
I taught myself programming by building a photo hosting website for a buddy. When I started applying for jobs, I could show them a working website that actually did a thing, that people used. I had _so much_ I could talk about. Demonstrated skills > everything else.
This is surely a junior dev bro 😭. And if he is, he definitely has been coding for a pretty long time, with the way he is able to just write stuff. I started coding last year around June, and man i am struggling. I literally scour through your repos and whatever i find on github to learn to how to write like this eventually or build stuff with ass code lmao, and this guy being able to do stuff like this as a junior is really fascinating. Also, really motivating too and gives me hope that i'll be a great engineer too someday 😭 if i keep trying and learning.
Using sine, cosine and tangent for design was super cool the first time I saw it too :P been using fun math like that for about a year for UI element design/fx :)
@@Slashx92 Lol, good luck to you. I have been learning the basics in vanilla js for quite some time and right now I can’t decide whether I should get started with Unity or godot.
If a junior developer comes to interview with this project, he will be hired because, at that point, he is a medior developer, and they derisk themselves.
I'm gonna be real, I have worked as a developer for 5 years since I graduated and I have done it most of the time just to pay the bills. I have not done any programming for fun for many years, and tbh I have been really sick of it a lot of the time. But since I started following you and I saw the interview with DHH I have gotten a revival in my love of programming and now I have projects I want to do in my free time and I'm looking forward to work. Thank you!
You can do astar by flipping it and using a single map of distances to the player from the points and that way you don't have to recalculate any particular point
37:00 Handling network failures is really hard but it's not optional if you want any real world users. Especially mobile users trying to use your app in a moving vehicle are going to see all kinds of errors, disconnects and timeouts. Other platforms but iOS are less unstable but none can ever be perfect because TCP can only hide problems so much even if the OS were co-operating with your app. Some mobile networks might even change the client IP address every now and then!
28:12 Not exactly but pretty close. You want to think about the server the entire time, yes, but not necessarily server first. What matters is your architecture. You need to identify what might need to be shared, what stays on the client, what stays on the server, what is in both but not synced, etc. Converting a single player game to multiplayer is insanely hard because no one thought about responsabilities and state. If you remember the entire way through that this is a multiplayer game, nothing stops you from making your first prototype single player and doing the server later. What matters is that when it comes to networking, your state is already ready to be networked, and your gameplay logic isn't tangled up.
"Nobody is hiring high school chemistry teachers any more so I made my own meth lab empire."
relatable
@@JonnyJKF asmongold editor 'Jesus Christ!' sfx
nailed it
yo, Mr. White.
biach (lets pretend the a is t)
nobody hires sr. dev so I made a hello world app
I made a hello universe app
Nobody hires jr web developers so I made a poorly done animation in AfterEffects
Nobody hires jr game designers so I made a mediocre Twitter /Shopify clone
HAHAHAHA
@@not_a_cool_handle "I scaled up the app; see, 3 extra letters and a larger noun."
I used to do R&D and had a pathological term called "hello-universitus" with how some tech-illiterate project managers fawn over junior projects that just reimplement simple tutorials with a few parameters changed. Which is a whatever thing in itself, until managers start shuffling around resources and ignore arguments about how it's not actually the next big thing, and then act surprised like nobody told them repeatedly point-blank when it blows up in their face a month later, and then repeat this pattern ad-nauseam like they're incapable of learning - especially since it's from a small army of managers that enable each other.
Using rust
Interviewer: "That's all very nice. But you couldn't do a quick sort on the whiteboard so we're going with a different candidate. "
Yes, but did you check the company? They are the number one manufacturer of quick sort in the country!
It's a great game and all, but the only quantifiable metric of SW.Eng. quality is quicksort implementation on this very whiteboard. This interview is over, thank you for your time.
"I can, but I won't. Thank you for your time."
@@SlavaThereshin 😂😂😂
Thats nice but Jims uncle works at the company so we are going with him
Nobody hires nuclear engineers under 45 so I made a bomb.
Nobody hires prostitutes anymore so I…actually, never mind.
This works, the recruiters will come to you(r house)
@@Demiuuu😂😂😂
Forgotten craft in some countries
Getting wrongly inspired is such Pakistan thing to do
This sounds very familiar. I spent 6 months looking for a job after recently getting laid off. After about 60 rejections I decided to make a game. I started by trying to make a multiplayer RTS and spent about 3 months working on that and gave up after realizing it would take me too long to finish so I changed focus. I decided to focus on making smaller sized local/multiplayer games. I made 3 games in the last 3 months. Each game uses split-screen and supports up to 4 players.
So now it's a year later I still don't have a job, but at least I made some games.
is this real? I feel like poop been looking for a junior web dev job since March 2024 I'm still without a job... maybe I will never get something or I guess I should really expect anything...so frustrating
@@m.o.o.n.c.a.k.e i think it's just bad timing with the job market. Demand will cycle up again
@@m.o.o.n.c.a.k.e Yes, but my biggest problem is I'm a senior dev and most of my skills are out of date. So if you are a junior dev, I think you might have an advantage being that your skills are better fit to the market.
I'm trying to learn React right now, and I hate it so much. Just give me vanillaJS and jquery and I'll work some magic for a website, but all these modern frameworks drive me crazy.
@@andyschannel687try learning svelte instead
Welp, time to make a todo app in Unreal Engine 5 with jiggle physics
That's actually a great idea lol - it would be memorable for sure
Sounds complicated. I can never remember anything once jiggle physics is involved.
@@zakhoskins6404 what's complicated? What are we talking about?
(xd)
@@fuzzy-02 The "(xd)" made me cringe so hard, my f god. YIKES
"Gel-o-Do"
Make your tasks gel.
"If you have a remotely competent interviewer..."
Welp... We're screwed...
at this point i would celebrate with champagne if i got one interview
@@omsrswt There are no competent interviewers, at best they can weed out most of the poor performers without inadvertently tossing talented people. There is almost zero chance they can identify top talent in an interview
@@do8456 i'm a decent coder but a better talker; i just want to talk to a human for once
I'm pretty sure I've been rejected from jobs because I couldn't describe the Linux file system. Its stupid because people really just know what they work on, if you ask people about stuff they don't work on their obviously not going to know it. Why ask people about things not on their CV if they knew it it'd be on their CV. It's just replacing leetcode with trivia.
Yeah, HR sucks and they have zero accountability when they fail to find good people, they look only at personality.
"but it does not mean our story ends here" is such a beautiful phrase. Props to HR who came up with it.
The amount of time that went into the video production and visuals _on top of the game_ is mind-blowing. Amazing find!
I made a website so interactive you could change basically every aspect of it. It even had a physics engine and was so modular I could add a new feature/mini-app in less time it takes to deploy the docker image.
It was also my first ever web project.
I couldn't get a job because I didn't have any prior work experience.
Story of the market these days lol
I assume by your use of past tense you have since achieved employment?
@@thewiirocks Nope, started studying Java because the job gap was getting too big.
*Edit in case Prime somehow sees this:* I didn't have a choice! It was that or working at a callcenter.
@@AQDuck HERESY!
My absolute favorite interview format (on either side of the table) is a review of a project the candidate made on their own. The candidate is usually at easy since they’re talking about something they’re familiar with, and the interviewer can judge code quality, decision making, tradeoff evaluation, library selection, etc. It also allows for great conversation.
It's much more realistic too. I could talk a long time about all sorts of topics that relate to actual project work at my job. I can discuss the pros and cons of an array of technical decisions in depth with my coworkers. What I cannot do is design a system in 15 minutes for something I've never ever thought about before while a bunch of judgemental strangers breathe down my neck.
This would completely hose me over. My "pet project" is an app to calculate the nutrition facts of my homemade curry. It's a _console app._ I literally didn't need anything sexy or elaborate, and I hard-coded the nutrition facts into the code anyway. If I feel particularly lazy, I hard code the ingredient _amount._ I didn't make it to impress anyone. I made it to solve a problem.
I don't have big sexy impressive-looking projects because I don't have big dreams anymore. And I don't have big dreams because I don't have hope.
In reality: Please reverse this binary tree with pen and paper, you have 5 minutes
@@milanlabus1582 Turn the paper upside down and hand it back.
I counted 8 rejections. Those are rookie numbers.
Most companies in the game industries staight up never email you when they reject you. Most of the time they only email you if you got an interview and then didn't pass. After resume screening they just don't care.
@@Exilumhey, this sounds like 95% every company I sent an application to. Weird coincidence.
@@Exilum Was he applying to game dev companies? I just assumed he was a web dev.
The languages he chose support that assumption.
Should be enough to get the point
Because only those 8 companies gave a response
Every employer when they see this, they will just swipe over it, thinking we not making games here.
I like how he introduced it, he introduced the features or mechanics of the game clearly, like bullet points. Later on, these will become the requirements of the program, solid start.
If he doesn't have a job yet then I don't what wrong with this world, I'm only 10 minutes in and I can see he's quite competent, maybe he might lack strong personal and sales skills to take hirers to his turf, but otherwise, this guy would be a good asset for most companies.
The only thing wrong with him is nobody hired him because he has no exprience this world is a joke.
This is one of the things I’ve understood late as a self-taught. Programming is just identifying your problem and the data at hand then coming up with a solution. This is all done without even touching code.
Data Oriented Design video really enlightened me on this.
It is mostly due to the kabuki theater on the hiring side, the hiring funnel in a bunch of orgs isn’t great. They cannot decide if they want generalists or specialists, or they throw out an enormously wide net for early funnel stages and bag more candidates early in the pipeline than they can ever screen by hand. Thus promising candidates like this can get their resume auto-rejected, because they wanted to have 10k candidates in the pipeline.
@@StefanHanrath Absolutely, I can see that happen, and since I guess they work like consulting companies they get paid even if projects suffer because or how they handle the hiring process, they're likely to use the number of applications "reviewed" to milk more money from their clients while offering very low value to the job market.
Loved the distinction between “Jr” being based on your *professional* experience - not based of how good you are. I’m halfway through the video and this man KNOWS HIS STUFF
We live in a world where psychology degrees and business majors get more job security and job availability in tech company positions than the developers themselves. What a time to be alive.
Some people know how to make money and run a business, some people know how to write code. Few can do both well.
@@do8456 it's not about running a business oneself, it's about getting a job at a business
@@masterflitzer You can be the best Haskell or Cobalt programmer but if your skills are not in demand you have a hard time finding a job. The same applies to javascript, c++, or whatever else you do. Being good at running a business and making money, getting sales, that will always be valuable. Full stack wannabes are a dime a dozen.
@@do8456 yeah of course demand decides it, but imagine the demand is thete, but they just fire senior to hire mid level engineer to save money and also don't hire juniors because they're to inexperienced, that's what's happening in the entire industry, i experienced it first hand (multiple senior devs in my team disappearing)
If the person is good in software development then companies will hire the person. Everything is about can you make money for the company
Bear in mind this dude created the presentation too.
That guy is not making a game for the first time, and thats pretty clear!!!! Internet is full of imposters!
nobody hires principal engineer so I made a OS
What OS did you make?
@@TravisBerthelottemple os
@@VEAFY May "Terry A. Davis" RIP.
@@TravisBerthelot Hannah Montana Temple
This... Hurts... Didn't do the OS yet ..but I feel like I now have to.......
Then they ask him to do a medium LC question and he doesn't pass it because he didn't have the time to study for making the game
Nowadays it's harder to get to the interviewer, you know, the person that understands what the job is about. Most people will fail at the ATS review, which is the non-human part of the process.
Oh, and I hope you never have to do an interview with an interviewer who clearly doesn't want to be there. Had way to many of these in my life.
Dont forget tho that the interviewers are meant to “act” like they don’t care to see how people work under pressure
Key up/down: animation on keydown, action on key-up. Depends on the nature of the application - if mistakes are punished, if speed is necessary, etc
action on keydown allows for hold-to-repeat keybinds
action on keyup allows for using anything as a modifier
My boss will click down on a link and linger for a good 2-3 seconds before releasing. It’s a form of gut-check, I think. He really depends on the “animation on key-down, action on key-up”
Making a game isn't just hard, it is also quite easy to review the competence. Great value there.
You act on press in action games and on release in strategy / turn based.
Cool video. Can't believe this guy had problems with getting hired. He's 10x dev junior.
You can be a 100x developer but if you can't get in front of the interviewer or hiring manager there is no chance
@@snakefinn I don't think this happens in my place. Is it because he tries to get to a place where they arent hiring or because of AI and automatic rejection because of experience requirements?
This makes sense, moving off on release has saved my butt in XCOM soooo many times.
@@Jonatron101 exactly, you wanna be sure of your choice in strategy games, and you dont want to press anything by mistake
Act on press is superior in almost every way. The primary disadvantages I know of are:
1. Misclicks cannot be avoided by superusers -> Solution: require additional confirmation action, or make the action readily undoable
2. Misclicks are more expensive in poorly performing apps -> Solution: maintain a lean performance-aware codebase, which is hard if it's already bloated dependency bridging
Omg I just watched this and now you're covering it sick.
On the note of getting hired: This is exactly how I got hired. After 8 months of endless rejections and studying and leetcode grinding, I didn't write a single line of code to get hired here. Instead my interviewer asked me to talk about my magnum opus at my last gig, which was breaking apart a monolith into microfrontends, stitching them together with module federation and using a shared library to manage state between all of them which was super cool to me because I had never even heard of module federation before they tasked me with research and implementation.
So these are expectations for a junior dev now? Right? Right?
I mean, sure? I didn't see any part here that a competent junior dev wouldn't be able to do.
Keep in mind, if this guy is not trying to be a game dev, he will still have issue in a web dev role simply because its not a web project. I am not sure how game dev jobs will treat him. If they act the same then its even tougher. For example I made a game in Godot. If I apply to a company that uses Unity, I wonder if they will pass on me lol.
@computernerd8157
I'd sure hire him over someone who didn't have a project though
@@Packeselt I would as well, if I was in that position.
@@computernerd8157dude what are you talking about. If he can figure this out he could figure out anything in web dev.
If this guy didn't get hired, you won't.
The onPress and onRelease issue is pointless when devoid of context. If want your gun to fire on press, but you probably more comfy with your grenade starting on release. You probably don't care much if your motor starts on press or on release, but you CERTAINLY want your emergency stop button to work on press.
The debate about whether to act on button press ("down") or button release reminds me of my experiences playing RTS and MMO games.
I recall using an add-on that triggered skills immediately on the key press (down event) rather than default release event.
It felt more responsive and felt like a slight reaction-time advantage, which matters in competitive play.
For any regular work situation? No way...
The conversation really depends on the context. What prime came up with, the whole mouse down cancel stuff is perfectly valid, i use it myself sometimes. It is actually a good and considerate way of doing mouse realated actions imo.
But when i'm trying to strafe shoot in a fast paced competitive FPS game, that better not have a movement action on release, cause there will be blood.
Mostly it comes down to "how important is it to do it quickly". In action games/FPS games and the like, doing it quickly is really important, so it should be on press. In a turn based strategy game.. doing it quickly isn't important at all, so it being on release to reduce the chance of misclicks is fine.
A cool part of making the video, he is presenting his tech interview. He could put a link in his resume.
No one would watch it tho. Most jobs postings are automated, they ask for your portfolio and never look at it.
it's a shame really
This guy is so good not only on the tech side, but also on video communication/editing, making concepts approachable. What a guy!
20 years ago: fizzbuzz
2024: No One Hires Jr Devs So I Made A Game
My first big solo project was a multiplayer turn based strategy game, Nodrog's Fortress. It taught me so much despite being unsuccessful commercially so far. I wouldn't trade that experience for anything though. Just go build something that sparks your passion and I promise you will level up.
I appreciate you analyzing this content. It made me realize that I should build something that's for real real that's intentional and solves a problem. I decided to jump into react since I'm a front-end developer and I'm making a component library.
My thought process was to make website the users can view components, view the source code, and a breakdown of why the component was designed / animated the way it was. I also plan on having a page about the library and talking about the thoughts of designing and coding it from scratch.
Thanks for inspiring me / highlighting this video. Love the analysis from you and the breakdown of kodestan going through their project. Super cool to watch through.
"Do something for real real" Yea this is the biggest thing I look for when hiring. If you've got real projects and can walk me through your logic on a couple of examples, you're in.
What if I don't have any ideas for projects?
@@viliml2763 There's such an abundance of valuable things to do.
@@viliml2763 Make a game :)
@@viliml2763 Copy someone elses project, its not illegal to copy design for a personal project
i have been on computer science for 1 year looking for a internship role, i literally never got a interview, seriously been thinking on giving up on life, i just wanna learn in action
I gave up on web dev after 4 years of learning. My advide is go where there is a high demand and low competition like a Service Desk. Learning never stops so it doesn't really matter on the long run that these X years are really bad for certain jobs. Just like how there are 1000 men for 1 woman on dating apps, there's lots of applicants for 1 job. So go where there are less men to women ratio, like the nursing home :))
No one hires junior devs, so I'm making a Game Boy emulator.
I'm thinking to make an NES game with WiFi so the game state is synced up to a couple of bytes and runs like a normal game
6:12 I implemented web sockets once. it was actually a very good experience for me, and surprisingly straight forward. Web sockets (and most of http) has very well written RFC's. I learned a lot from it. took me a day or so (although I only did the bare essentials, not completely in compliance with the rfc, though I might finish it for fun). I recommend everyone to give it a try.
ps: this guy definitely made the right call by making a lib handle it for him. there was no reason to get his hands dirty with it for his focus.
Man that multiple sine wave trick for the shake is beautiful! Love this video!
8yrs experience but I may as well be junior dev since I never finished my degree. Its hard out here to find work guys.
Nobody hires a fresher. so I made my own startup.
That's exactly what I'm working on right now.
same here
for some reason I misread 'startup' as 'starship', i guess that could work too
Who doesnt make a startup in 2024 ?
Startups aren't that impressive. If you turn a profit that you and some employees can live comfortably from, now that's special. Starting a profitable business that lasts more than a couple years would not make you a great software developer unless you were also actually making it as part of the business. Maybe that wouldn't bother you much at that point anyway because pivoting your career would already be working for you.
I hired a dude on the spot because he was passionate about writing a DHCP server from scratch. Passion and non-trivial challenge -> job
I'm so inspired by what you said and I'm not even a developer (just a hobbyist).
When I was looking for job after university, no body cared about my passion projects. And it's not about projects being bad - they simply didn't care - they literally said they only care about how many years of experience I have and that hobby projects are not same as real work. My hobby project was fully functional content management system with advanced stuff like group based permission management and self made template engine - quite a bit more than just todo app. And to remind you - this I did during university time - no one teached me these things. Most of university projects were doable with about 100 lines of code, some even less.
@@test-rj2vl I think in reality, you were applying for jobs in companies where you didn't want to work anyway. If you truly love programming, the employer's culture becomes more important and you would turn down offers instead. It seems that you have overcome the initial hurdle, and I hope you are happy where you are.
@@niclash i think thats very naive, the first programming job you get now days isn't the one you want, its the one you (maybe) get. even in my country where the demand for junior devs is relatively high compared to the US it took nearly 3 months from the start of my job search to getting a job and even then it literally paid less than I was making as a cashier. (took the job because earning potential is still waaaaaaaayyy higher later on and its what I want to do).
anyway, it still took me 3 months to find a job that paid less than I already made when I had a fully functioning point of sale system that handled both in-person and online transactions and a fully functioning website that could handle the online sales.
thankfully I have a better job like 14 months after the fact but the first hurdle is always the initial work experience required.
@@niclash what is it with the whole "do what you love" thing specifically for programming? People don't work because they want to, they work to make money.
The explanation at 34:36 is actually mind-blowingly helpful as I'm currently in the early stages of developing a game myself. I planned to implement an enemy that had motion kind of similar to a "Snatcher" or "Angry Trapper" from the jungle biome in Terraria, where its motion has a random wobbling component. This implementation, with multiple sinewaves of random frequencies summed together and then pinched with a tapering function, is perfect. I'll probably implement some kind of "Oscillation" class which can handle a variable number of dimensions, durations and max amplitudes. It could be reused not only for game entity motion, but camera shakes and even potentially UI elements as well.
I did not expect to have this kind of revelation when I clicked on this video. Thanks lol
Dude, the website about hexagonal grids helped me SOOO much, it's truly amazingly well comprehensive and well written
No wonder I don’t have a job. I have 4 years experience in front end web application development but this is on another level.
So he coded this and also has the presentation skills at 3:30 to make this look like polished training. I thought I was faking before, now I know for sure...
don't feel down, try doing something similar. I bet he didn't know how to do most of this stuff when he started building it, either. Even if you don't get something this polished, as long as you don't quit when you encounter the first difficulty, you'll figure it out. if the graphics seem too complicated you to figure out right now, start with an ascii game that completely redraws the screen on every change. then you can focus on just the game logic. separate the drawing logic from the game logic with an interface and then you can more easily swap it out if you later decide to use graphics. build the smallest amount that is necessary to get a running game as a starting point, then improve from there.
The clarity and quality of those visual explanations (like the random shake one) honestly feels like something from Sebastian Lague - amazing!
About the reconnect: theres an old RTS game from the turn of the century called Kohan: Immortal Sovereigns that has a beautiful lag and disconnect tolerance system; it'd be worth a look for a reverse engineer.
The game will sit there an wait until everyone gets reconnected and synced up, couple friends and I played a match for three hours with three ai players and the game never dropped; we had a few pauses for the resync sure, but we were able to finish the entire three hour match.
Cool system and an amazing strategy game that's complex but not complicated to play.
I really liked your point about doing the game logic separately to the presentation/animation, structuring the code that way (for a game like this anyway with commands and visual state updates to perform) would in theory make it easier to move that on to the server (or not.) Really liked that 👍
Hex grid is still a 2x2 grid, just rendered 50% off on every other row.
on-press if there's no or neglegable cost, on-release if there's a cost (ie: changing tabs vs downloading a file or unlimited moves vs limited moves)
I dont like Hex grid games; usually like the simplicity of 2x2 but for a tank game I think its makes sense
Cause you can track 8 direction facing and have reduced/front, normal/side, increased/back damage. Or some of other game mechanics tied to that idea
Also why you have to be the ackshually guy?
@@freezingcicada6852 he was musing on the subject, I added my musings...
Except with (up to) 6 neighbors instead of 4
A hex grid properly implemented is actually a 3-axis grid system that can be modeled as the surface of a cube. Trying to do it with a staggered 2x2 will result in all sots of hacky math issues.
@@freezingcicada6852 what's 2x2?
The fun thing about a hexagonal grid I figured out when I was working on one was that it's just a square grid in a trenchcoat. You just offset the squares slightly and behind the scenes it can work exactly the same way as a square grid would
You also need to calculate the neighbors differently depending if you are on an even or odd row.
For display, hexes are just grids where every other line is offset by half. For connectivity, you can store hexes in a grid. There just happen to be "two" below and "two" above.
0:49 This is actually a reference to a speech by John F. Kennedy about the mission to go to the Moon. The actual quote is "We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard".
This guy is great. Who's gonna tell him that he'll get a job, but never once exercise anything close to that level of intricacy... from the software side of dev -- stage 1: it feels like 90% is just make a form for a customer, make it look the way they want it, make it store data with an api... stage 2: update user interface to limit the range of a numerical type, make it so the form inputs can't contain some characters, make it calculate things more on the front end... reduce page reloads... etc...
if this guy a junior, what are we ?
still in the womb
we are sperm cells.
No One Hires Jr Devs and Guy on the Internet make a Tank game from scratch so I apply McDonald job.
I hadn't formed in my daddy's balls yet.
he isn't a junior nobody will hire him he still isn't good enough to be a junior according to recruiters
considering there are going to be much more layoffs of actually good developers in the upcoming years, we are gonna have so many great indie games soon - just like we had in late 80's - when game industry was done BY professionals and FOR professionals
Pertaining to the Carmack click timing thing:
I think it's case-by-case, and you can assume a user interaction on many things, but there are always exceptions. I think the best ideology is that the user intended to to do the thing they did (just to set a basic axiom), so craft the UI around that. Sure, it takes more effort but it's smarter.
If you store and update game state totally separately from render state you can do another neat thing (beyond the 'scrubbing'). You can run an entire replay of the game deterministically, which is the beginnings of implementing lockstep multiplayer and effectively testing it for desyncs. If you use deterministic physics or some kind of horrible hack to make floats cross-platform deterministic it all magically works.
well videos like this makes me thankful for having found a job as self taught (i dont live in the Us) and without any degree. I was very lucky with people trusting me.
re: act on press vs release, there is no hard rule. keyboards act on press, the web acts on release. It comes down to expectations, most mouse presses are on release, to differentiate between a short or long press.
Chat: Why is a game a good idea?
Prime: Because it's hard and a lot of work
Chat: You make it sound easy
The real key is to do this level of care, but for your own actual "project" that is designed to make money. When one finally works, you are now employeed by yourself congratulations 👏🎉
The past couple of days before seeing this, I've been designing some NES looking (or maybe Sega Master System looking....?) tank style game just for fun. Maybe more like TNK3 or Granada (Anyone remember those)? Been using Lua with a LOVE 2D framework. Everything here is light years ahead of what I'm currently able to do. So I'm glad to see this.
16:52 My favourite solution is the alternate button cancels the action. IE I left click then right click, that cancels the left click so I can release both with no effect.
Making a multiplayer game that runs smoothly on the client while having the server maintain state is tremendously difficult. The client side needs to be responsive in an FPS.
It's generally done by having things like player movement being done on both the server and client. If there's a difference, defer to the server. It's really difficult to account for things like network lag and where the player should be at any point in time. If Player A presses fire, yet the communication to the sever takes 100 ms, what did he hit?
A must is to totally remove jittering movement even when the client and server are off by a bit.
The problem is difficult. Good interview question for somebody who has made this type of game though.
Valve has a good writeup on it for Counterstrike.
seeing videos like this makes me wanna drop everything I'm doing right now and start coding a project of this kind immediately
"No ones crowning young Nobility, so i made an empire." ~ Napoleon
for the interact on down vs release, i think you might want to have ondown for most buttons, and onrelease for buttons that are harder to undo/get out of, like start game, quit app/game, delete, etc
Subscribed for this video alone thanks for shoutout to gamedevs
I’m currently on a similar grind, minus the “applied to jobs at game studios” part. As much as it would be great to be part of a team, I have a very specific game I want to make, because I really want to play that game.
Had a go at a game myself earlier this year. I recreated pokemon (mechanics not a whole game) essentially. Well sort of anyway, I didn't finish everything and I would probably want to start from scratch rather than try finish it in its current form, I made mistakes. But damn, I learned so much... Games are incredibly complex!
I respect game programmers! They are wizards and gods. True masters of the craft!
Activate on down vs. release. I think activating when releasing while over the same element that was also pressed down on may be the best balance of allowing canceling the click, but not accidentally being clicked when dragging the grid.
Bravo! I started making MotorCubs RC (early access on Steam) for the same reason. I got told I needed a shipped game to even be considered for a role, a very chicken and egg problem.
17:47 no, if you fire it on release then you can set it up to make sure the user hasnt dragged their mouse away from the button. this allows them to cancel the action if they accidentally misclick but hold the mouse down, and drag it away. firing immediately is unnecessary. i expect the page to wait while i hold it. thats how its been for years, and it has no bad side effects changing it because you think its more responsive will just piss users off
This is how I got into the industry too, worked like a charm
most of the companies just post jobs for their investors to see that they still have a demand on developers or other roles
The Hexagonal Grids web page from Red Blob Games is so comprehensive. I don't think I've seen any programming videos where hexagonal grids are used that don't mention it at least once.
Yea I see this guy is seriously skilled and passionate. He really knows what he's doing. I think atleast starbucks MIGHT hire him because he'll be able to get the POS system working again so they don't have to call out an engineer.
Fellas the bar is getting raised
its been raised. this is why people are stacking up at the bottom. people will blame AI, interest rates, mass layoffs, etc.. but it really just seems like the skill floor is much higher than people expected or relative to that of other fields which require pre-requisites like a BS, masters, or PhD. if the position is open to anyone who has a computer and puts the time in to learn, then the floor will naturally rise to high, high levels.
@@hamm8934 and you'd be a dummy to believe it's for the benefit of the employee to keep raising the bar. Of course it's a good idea to put the time in to learn, but not for free... It's only in the interest of corporations to extract as much as possible from as little payed employees as possible. There's been an artificial influx of newcomers and now they're pinching pennies while reporting record profits... it's an old tale, a cycle that repeats everytime the rich want to get even richer, it's up to the have nots to realize they're being duped and to stop giving in their money and time for free.
Nothing is free, or nothing appears free for too long.
Productivity in objective terms does not exist in white collar cognitive jobs, it's a made up concept.
@@Tudorgeable and i'm not stating nor insinuating that it is to the benefit of the employee to raise the bar? i'm describing what has happened.
when you have a field which does not require degrees, certs, etc., and is based solely on how much time a person with a computer can put in, the bar is going to raise high. even geography is no longer a part of the equation since remote work has taken hold. as such, you now have an industry that forces applicants to work non-stop, since a certification wont secure their position like say an MD will secure a physician, and allows anyone to apply to any position, as opposed to only competing locally, say for a plumper job.
these are the facts and they're not changing. its going to be like this from here on out unless either (1) degrees matter again to secure your value or (2) remote work goes away.
sidenote, productivity in white collar jobs 100% exists, it's just harder to measure with a metric.
it just seems like your venting your frustrations on me for things i didn't say.
@hamm8934 Nah the bar hasnt been raised. You're living in delusion. The person that made the video is not even a junior and you fell for it, that github account is his alt account and he made the youtube channel just to showcase the repository so jokes on you. Funny how you would mention that it is a "fact" that the skill requirements are raised whilst providing absolutely no statistics to support it, then proceed to mention that this is due to the accessibility of programming as a profession, which is pseudo reasoning at best. Where im from, I can tell you from official job listings accross three major listing websites, ALL the jobs for software engineerring roles required an undergraduate degree in computer science or a related engineering discipline, it is FAR from accessible to anyone with "just a computer", let alone a person who isnt even in the country.
"even geography is no longer a part of the equation since remote work has taken hold." False statement number 1. Remote positions are very dependent on company, and many companies will not tolerate a fully remote worker nowadays, hybrid is alot more common, but around the bay area, work from home has decreased a substantial amount.
"these are the facts and they're not changing. its going to be like this from here on out unless either (1) degrees matter again to secure your value" False statement number 2. Degrees still matter...ALOT for medium to big tech companies, good luck getting past resume screening without having a degree on the resume, unless you have connections that can hold the door open for you to not need to get a degree, then entering the tech industry good luck trying.
" if the position is open to anyone who has a computer and puts the time in to learn, then the floor will naturally rise to high, high levels." Once again, very very detatched from reality. The fact that you think juniors are expected alot from tells me you might not even be competing in the same market, do some due dilligence and ask juniors nowadays what their entry projects look like, I assure you it is nothing as impressive as what was shown in this video.
Triggering on down is essential in many games (Particularly FPS) because people are working at the limits of their reflexes and you need the game to be highly responsive.
Thats not quite so critical if you are just selecting an action in an application or even a turn based strategy or some such. Then you have to weigh it up against backing out of a miss-click.
I.e. Id argue its context specific.
I taught myself programming by building a photo hosting website for a buddy. When I started applying for jobs, I could show them a working website that actually did a thing, that people used. I had _so much_ I could talk about. Demonstrated skills > everything else.
Business + AI raised the bar making seniors devs working both senior + junior, Business needs restructuring
This is surely a junior dev bro 😭. And if he is, he definitely has been coding for a pretty long time, with the way he is able to just write stuff. I started coding last year around June, and man i am struggling. I literally scour through your repos and whatever i find on github to learn to how to write like this eventually or build stuff with ass code lmao, and this guy being able to do stuff like this as a junior is really fascinating. Also, really motivating too and gives me hope that i'll be a great engineer too someday 😭 if i keep trying and learning.
Using sine, cosine and tangent for design was super cool the first time I saw it too :P been using fun math like that for about a year for UI element design/fx :)
My slow ass have been trying to implement a 2d camera following the player and finally after 2 weeks I gave up 😍
Lmaooo me and collision detection. Theres one single fcking bug on it that I cannot for the love of god fix. I'm learning godot now lmao
@@Slashx92 Lol, good luck to you. I have been learning the basics in vanilla js for quite some time and right now I can’t decide whether I should get started with Unity or godot.
29:19 "How much duplicated logic do you want". That's what I am saying... TS on the server ftw
Just stumbled on this channel. No clue what's going on, too dumb to be here, but I'm digging the vibes.
game dev: "dude, look that algorithm I made for this unique mechanic"
web dev: "dude look that CRUD"
If a junior developer comes to interview with this project, he will be hired because, at that point, he is a medior developer, and they derisk themselves.
The hard part is to get the interview, not to pass it.
And that game maker wont even get to interview becouse will be auto trashed in mail becouse not fit via hr key.
I'm gonna be real, I have worked as a developer for 5 years since I graduated and I have done it most of the time just to pay the bills. I have not done any programming for fun for many years, and tbh I have been really sick of it a lot of the time. But since I started following you and I saw the interview with DHH I have gotten a revival in my love of programming and now I have projects I want to do in my free time and I'm looking forward to work. Thank you!
This guy is amazing! One of the best vids.
You can do astar by flipping it and using a single map of distances to the player from the points and that way you don't have to recalculate any particular point
I did a 2D isometric game before I became a proffesional dev too!
This brought back some memories haha!
This feels inspired by Civilization (Not the game, but the mechanics and style of play) and I like it honestly
Eventually he will find a job bc he is passionate. If you are passionate you outwork masses. Always.
Most of these videos are fun, but this one is just sounds like end-to-end solid advice.
well, there goes all the motivation I had left to keep pushing
37:00 Handling network failures is really hard but it's not optional if you want any real world users. Especially mobile users trying to use your app in a moving vehicle are going to see all kinds of errors, disconnects and timeouts.
Other platforms but iOS are less unstable but none can ever be perfect because TCP can only hide problems so much even if the OS were co-operating with your app. Some mobile networks might even change the client IP address every now and then!
28:12 Not exactly but pretty close. You want to think about the server the entire time, yes, but not necessarily server first. What matters is your architecture. You need to identify what might need to be shared, what stays on the client, what stays on the server, what is in both but not synced, etc. Converting a single player game to multiplayer is insanely hard because no one thought about responsabilities and state. If you remember the entire way through that this is a multiplayer game, nothing stops you from making your first prototype single player and doing the server later. What matters is that when it comes to networking, your state is already ready to be networked, and your gameplay logic isn't tangled up.
Very good video, instant fan of both of you!