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.
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.
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.
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)
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
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.
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.
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.
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”
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.
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.
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.
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.
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.
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.
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 :))
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.
"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.
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.
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.
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
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".
Relatable. I started learning programming in Java at 14. I'm 27 now. Some experience in school. Several programming languages. I have some ideas for embedded projects but don't have any money to blow on anything rn. Why I was interested in software in the first place. C++ not my favorite bc I'm a Rust hipster but it can't scare me more than C can. JS, TS, React, webdev was what I got into in a hobbyist capacity for my own projects over the past few years. I have a game I'm working on lmao. More for my own interests bc I don't believe that my first game would go anywhere like get me a job. I'm not especially motivated to complete it right now. Even single player games are tricky. I'd say at least target tech that people want and try to be technically competitive. I wish school was affordable enough to actually be accessible. I blame myself for never excelling in math LOL.
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.
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.
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...
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.
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.
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 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.
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.
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
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.
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
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 👍
UI activates on down, application logic operates on release. Click down displays the tank path, release changes the game state. Click down UI highlights the menu option, release selects the option highlighted.
Not really, A game object can just be a struct, with other structs/variables/arrays inside. ECS is more over kill making something generic/ split apart and if you do need it, its just easier with pointers then imo
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.
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.
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 👏🎉
I think John Carmack's argument for acting on press genuinely only works because he was working with a _keyboard_ app. For PC keyboards, you literally expect that when you press a key it acts immediately. If you mess up you can just press the delete key and start again. But for buttons that lead you to another area of the app or other such use cases, I just don't see how it can be better.
Also, most UIs now can be used by touch devices, and I like being able to avoid an action if I accidentally click on a button while scrolling or resizing.
He also meant it for UI in games he worked on. All menu UI elements in Doom and Quake act on press. It make sense in those cases, since the menu screens are never blocking and are fast and accidentally clicking a button doesn't result in destructive actions; even then they show confirmation dialogs (e.g. when pressing Quit) But this is not ideal for most general applications.
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.
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.
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.
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.
@@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.
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.
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.
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
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.
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.
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!
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.
"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 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
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.
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
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.......
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
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.
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!
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.
Bear in mind this dude created the presentation too.
20 years ago: fizzbuzz
2024: No One Hires Jr Devs So I Made A Game
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”
Every employer when they see this, they will just swipe over it, thinking we not making games here.
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
Making a game isn't just hard, it is also quite easy to review the competence. Great value there.
That guy is not making a game for the first time, and thats pretty clear!!!! Internet is full of imposters!
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
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.
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
"No ones crowning young Nobility, so i made an empire." ~ Napoleon
Chat: Why is a game a good idea?
Prime: Because it's hard and a lot of work
Chat: You make it sound easy
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
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.
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.
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.
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
I absolutely love it when he shits on the TO-DO and Pomodoro apps. Cracks me up every single time!
You are so positive, I love it! Also great video by Kodestan, really loved to watch with your commentary. Thanks!
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.
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 :))
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.
"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
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?
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.
This guy is so good not only on the tech side, but also on video communication/editing, making concepts approachable. What a guy!
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
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".
8yrs experience but I may as well be junior dev since I never finished my degree. Its hard out here to find work guys.
Relatable. I started learning programming in Java at 14. I'm 27 now. Some experience in school. Several programming languages. I have some ideas for embedded projects but don't have any money to blow on anything rn. Why I was interested in software in the first place. C++ not my favorite bc I'm a Rust hipster but it can't scare me more than C can. JS, TS, React, webdev was what I got into in a hobbyist capacity for my own projects over the past few years. I have a game I'm working on lmao. More for my own interests bc I don't believe that my first game would go anywhere like get me a job. I'm not especially motivated to complete it right now. Even single player games are tricky. I'd say at least target tech that people want and try to be technically competitive. I wish school was affordable enough to actually be accessible. I blame myself for never excelling in math LOL.
Man that multiple sine wave trick for the shake is beautiful! Love this video!
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.
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.
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.
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...
Dude, the website about hexagonal grids helped me SOOO much, it's truly amazingly well comprehensive and well written
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.
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.
The clarity and quality of those visual explanations (like the random shake one) honestly feels like something from Sebastian Lague - amazing!
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 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.
most of the companies just post jobs for their investors to see that they still have a demand on developers or other roles
game dev: "dude, look that algorithm I made for this unique mechanic"
web dev: "dude look that CRUD"
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.
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
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.
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.
If this guy didn't get hired, you won't.
Subscribed for this video alone thanks for shoutout to gamedevs
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 👍
Nobody hires jr. devs so I started the 4th riech against hiring managers... hol up.
UI activates on down, application logic operates on release. Click down displays the tank path, release changes the game state. Click down UI highlights the menu option, release selects the option highlighted.
23:35 this pattern is called Entity Component System (ECS)
Not really, A game object can just be a struct, with other structs/variables/arrays inside.
ECS is more over kill making something generic/ split apart and if you do need it, its just easier with pointers then
imo
ECS is unnecessary complexity for 99% of cases
I'm surprised you haven't automated turning off alerts
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.
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.
Nobody hires an independent scientist so I broke the laws of physics. (ǝɯᴉʇ uᴉ spɹɐʍʞɔɐq ƃqᴉllǝʌɐɹʇ ɯɐ I ʍoN)
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.
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 👏🎉
This is the least junior junior-dev I've ever seen.
This guy is amazing! One of the best vids.
I think John Carmack's argument for acting on press genuinely only works because he was working with a _keyboard_ app. For PC keyboards, you literally expect that when you press a key it acts immediately. If you mess up you can just press the delete key and start again. But for buttons that lead you to another area of the app or other such use cases, I just don't see how it can be better.
Computers have a mouse. You can do on up event with a mouse.I always do on up event. Nice to learn that John Caramack is doing it differently.
Also, most UIs now can be used by touch devices, and I like being able to avoid an action if I accidentally click on a button while scrolling or resizing.
He also meant it for UI in games he worked on. All menu UI elements in Doom and Quake act on press. It make sense in those cases, since the menu screens are never blocking and are fast and accidentally clicking a button doesn't result in destructive actions; even then they show confirmation dialogs (e.g. when pressing Quit)
But this is not ideal for most general applications.
It was a mobile app actually
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.
seeing videos like this makes me wanna drop everything I'm doing right now and start coding a project of this kind immediately
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.
well, there goes all the motivation I had left to keep pushing
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.
This is how I got into the industry too, worked like a charm
Just stumbled on this channel. No clue what's going on, too dumb to be here, but I'm digging the vibes.
The internet is a series of tubes.
Game code is a series of ifs and fors
Very good video, instant fan of both of you!
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.
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.
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.
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.
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
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.
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.
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!
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.
Surely A* works with two destinations if your heuristic is min(heuristic1, heuristic2)