I went through university and got my degree in Computer Science but never ever heard of the SOLID principle. So I will definitely look into SOLID principle right now!!! This video is quite more informative than the title presents.
Interesting video topic. Since it sounds like you've had quite a few jobs in the industry and have hired a few people yourself it might be interesting if you propose a issue or a system to be added to a game lets say on a Monday and then on a Friday explain how you would go about either solving that issue or how you would go about it. It would give people a way to think a problem through and test out a few things and then either have their solution confirmed by you or at the very least how and why you decided to go about it the way you did. Sort of sets up a system where we can teach our brains to go about situations in the correct way.
Programming languages are often very similar. If you know one, that's not a good indicator that you can code in multiple, but if you can code in two or three, you should definitely have the skillset to learn a new one quickly. That's not a myth. Now, you might not want a dedicated web developer leading a game project, but that's not necessarily because the programming languages are too different. They're two different design approaches that require more experience than just the language. Anyway, those were some interesting points. Things like SOLID and some of the intricacies of C# are worth my looking into.
Yea you definitely can learn #2 and #3 faster. Just don't hire someone with the expectation that they're gonna learn #2 on the job & be proficient in any reasonable time. :)
Hi Jason. This video was really helpful, thanks! I've been in industry for a little while and I'm wondering about your question to do with architecting systems (like flappy birds, score system etc). Now I make systems regularly, but if you asked me to do an architectural design I for one I wouldn't know where to start. Is there any resources you can suggest to learn how to do architecture diagrams or any advice you can give? I might be over complicating it and it really is just a matter of: Elicit requirements, list out some classes, stick some arrows on there to show what dependencies there are between them. Thanks!
I am a game dev with decent experience. 95% of the interviews I have done they rarely asked for side projects and got rejected either for experience or for not answering riddles or algos perfectly. And the jobs I had got they have 7-8 steps interviews where you show off good SOLID principles to find out later they dont use it.
About the side-project thing, I know someone who chose to work part-time to make their own side project, so that they can stand out in other companies they wanna work at. I thought about doing so as well. Sometimes you just can't do all the things you wanna do - working 40hrs and making side projects and have life .. So sad ..
Are you hiring for a 3 month project or for years? The longer people are around, the less knowledge of exactly your project is required. I had never heard of Lua and became the best programmer on the platform in 3 months. Hire people, not qualifications.
oookaaayyy... So to addition to a full time development process, trying out new games to be aware of new and trending gameplay features, making sure I stay in shape working out with iron 4 times a week and sleeping at night I also need to have a side project for myself? Do you happen to know where can I find some more hours aside from those 24 provided by default? Come on, man. A Side project? Really? So that poor bastard can be "a star"? And then die of heart attack when he's 40 just because he didn't exercise? Well, I'm definitely not THAT into game development I guess...
First off, I'm loving this video, and also, the idea about programming languages being the same has some degree of truth actually. However your example is a good one of two that are not similar enough. But JavaScript and C# (and if I remember right python too) are pretty high level languages.. whereas C++ and Assembly are not. I think of languages as tiers; (closer or further from the base assembly level) If you know one language in a certain tier, you'll likely do fine among the rest on the same tier, albeit not as proficient like you said. But someone who knows LUA, probably not gonna catch on to C# or JavaScript as easily as someone who's coded C# learning JavaScript or visa versa.
algorithms ones are the worst. They simply do not evaluate you correctly and many websites like hackerank and testdome have their answers online. This means an unexperienced dev with time to study the answers can do better than you in the interview. I have two interviews today, wish me luck!
This video has some good points but I have to disagree on the "no side projects -> discualifed" bullet point. I think it's a dangerous practice, it hurts programming as a profession and it's not helping to dismiss the "Crunch" mentality. You're implying that spending your free time to do side projects makes you a better programmer and that's not true. It could tell me a whole lot about the applicant like if he or she is obsessive, creative, productive, hard worker, narrow minded or it could just mean that he or she doesn't enjoy their current job and they need to blow off some steam with a side project. There's plenty of oportunities for me to grow as a programmer within the context of a 40 hours weekly job and it's likely that I'm getting more from an applicant if he or she keeps their focus and motivation on the project I'm paying him or her for. Don't get me wrong, side projects could be a valuable asset for an applicant to have, but discualifying someone because of this reason hurts everyone, both the employer and the employee. I wouldn't imagine anyone not hiring, let's say a doctor, who doesn't take patients in his or her free time. It doesn't make sense imo. Anyway, I hope you reconsider it. I really like your content. Keep it up!
You're not wrong, it shouldn't always be a disqualifier... But I think of it like this. If I'm hiring a basketball player for my NBA team, do I want the guy who only plays basketball during official practices and games? Or do I want the guy who lives and breaths basketball all day long? The one who gives 100% during their 40hrs may be great. But the one who's engulfed in the game all day every day... they're much more likely to be your allstars. I've seen this play out plenty of times in coding too. Lots of developers who code 9-5.. they can do their job fine, but they're not usually the ones who make waves of vast improvements. I guess it's just not so much that you shouldn't hire someone who doesn't have side projects, but given the choice between two similar candidates, I'd say the obsessed coder is gonna be a much safer bet. :)
OK, adrian's post made me think about that point but reading your response to it did it. Can you reread your answer post and then honestly say that there is nothing wrong with it?
I dunno that I could say that there's nothing wrong with it.. In an ideal world, it wouldn't matter which one you hired, and if it were really ideal, you'd be able to hire both of them. But given how hard it is to hire and keep someone, and limited resources, I still think the obsessed coder is gonna win out over the day job coder in an interview process most of the time, and will likely bring more to the team in the long run. Of course there are plenty of people who fall in-between these ranges too (or way off one end).. but that's not what I usually see :)
I just find it sad. Someone you hire will not exclusively be an "asset" for the project, it's also a person and may add something more than just work hours done. It's how I think anyway. The workplace is shitty enough like that I find. But anyway thanks for your additionnal input.
I dont agree that experience in other language is meaningless. Basics and theory for the groups of languages are the same. It wouldn't help to move from oop to functional language, but c++ to c# - why not
Not meaningless, but don't hire someone for a C# position when they only know C++. Because they're going to require a ramp up of a few months to get to grips with the syntax of the language. And sure, if they know a fairly similar language, it'll be a quicker ramp up time. But C# has features that C++ doesn't, LINQ for example. And sure you can learn LINQ in a day. But actually being good at utilising it? That takes time and practice.
I went through university and got my degree in Computer Science but never ever heard of the SOLID principle. So I will definitely look into SOLID principle right now!!! This video is quite more informative than the title presents.
Interesting video topic. Since it sounds like you've had quite a few jobs in the industry and have hired a few people yourself it might be interesting if you propose a issue or a system to be added to a game lets say on a Monday and then on a Friday explain how you would go about either solving that issue or how you would go about it. It would give people a way to think a problem through and test out a few things and then either have their solution confirmed by you or at the very least how and why you decided to go about it the way you did. Sort of sets up a system where we can teach our brains to go about situations in the correct way.
Thanks for providing HR&Tech's visual way to view the interview.
It's quite a useful video for interviewees as well :)
5:13 WTF Why? What should that image tell me?
Programming languages are often very similar. If you know one, that's not a good indicator that you can code in multiple, but if you can code in two or three, you should definitely have the skillset to learn a new one quickly. That's not a myth. Now, you might not want a dedicated web developer leading a game project, but that's not necessarily because the programming languages are too different. They're two different design approaches that require more experience than just the language.
Anyway, those were some interesting points. Things like SOLID and some of the intricacies of C# are worth my looking into.
Yea you definitely can learn #2 and #3 faster. Just don't hire someone with the expectation that they're gonna learn #2 on the job & be proficient in any reasonable time. :)
Learning the syntax, sure. Learning the language and it's libraries/frameworks and its pitfalls takes a long time.
Wow, perfect timing. I am going to have to hire someone soon "for my side project" and I have no idea what I am doing, lol.
I am interviewing a guy in one hour and this show up in my feed! Awesome :D
Hi Jason. This video was really helpful, thanks! I've been in industry for a little while and I'm wondering about your question to do with architecting systems (like flappy birds, score system etc). Now I make systems regularly, but if you asked me to do an architectural design I for one I wouldn't know where to start. Is there any resources you can suggest to learn how to do architecture diagrams or any advice you can give?
I might be over complicating it and it really is just a matter of: Elicit requirements, list out some classes, stick some arrows on there to show what dependencies there are between them.
Thanks!
awesome content. Keep it up.
good tips, glad to hear Solid brought up.
I am a game dev with decent experience. 95% of the interviews I have done they rarely asked for side projects and got rejected either for experience or for not answering riddles or algos perfectly. And the jobs I had got they have 7-8 steps interviews where you show off good SOLID principles to find out later they dont use it.
About the side-project thing, I know someone who chose to work part-time to make their own side project, so that they can stand out in other companies they wanna work at. I thought about doing so as well. Sometimes you just can't do all the things you wanna do - working 40hrs and making side projects and have life .. So sad ..
Very good points there! Thanks for sharing.
Please make videos on unity ECS
Are you hiring for a 3 month project or for years? The longer people are around, the less knowledge of exactly your project is required. I had never heard of Lua and became the best programmer on the platform in 3 months. Hire people, not qualifications.
asking them do they know Jason ? if no then disqualify them.
oookaaayyy... So to addition to a full time development process, trying out new games to be aware of new and trending gameplay features, making sure I stay in shape working out with iron 4 times a week and sleeping at night I also need to have a side project for myself? Do you happen to know where can I find some more hours aside from those 24 provided by default? Come on, man. A Side project? Really? So that poor bastard can be "a star"? And then die of heart attack when he's 40 just because he didn't exercise? Well, I'm definitely not THAT into game development I guess...
Very good video
What kind of PC I better buy for modeling and programming
First off, I'm loving this video, and also, the idea about programming languages being the same has some degree of truth actually. However your example is a good one of two that are not similar enough.
But JavaScript and C# (and if I remember right python too) are pretty high level languages.. whereas C++ and Assembly are not. I think of languages as tiers; (closer or further from the base assembly level)
If you know one language in a certain tier, you'll likely do fine among the rest on the same tier, albeit not as proficient like you said. But someone who knows LUA, probably not gonna catch on to C# or JavaScript as easily as someone who's coded C# learning JavaScript or visa versa.
algorithms ones are the worst. They simply do not evaluate you correctly and many websites like hackerank and testdome have their answers online. This means an unexperienced dev with time to study the answers can do better than you in the interview. I have two interviews today, wish me luck!
This video has some good points but I have to disagree on the "no side projects -> discualifed" bullet point. I think it's a dangerous practice, it hurts programming as a profession and it's not helping to dismiss the "Crunch" mentality.
You're implying that spending your free time to do side projects makes you a better programmer and that's not true. It could tell me a whole lot about the applicant like if he or she is obsessive, creative, productive, hard worker, narrow minded or it could just mean that he or she doesn't enjoy their current job and they need to blow off some steam with a side project.
There's plenty of oportunities for me to grow as a programmer within the context of a 40 hours weekly job and it's likely that I'm getting more from an applicant if he or she keeps their focus and motivation on the project I'm paying him or her for.
Don't get me wrong, side projects could be a valuable asset for an applicant to have, but discualifying someone because of this reason hurts everyone, both the employer and the employee. I wouldn't imagine anyone not hiring, let's say a doctor, who doesn't take patients in his or her free time. It doesn't make sense imo.
Anyway, I hope you reconsider it. I really like your content. Keep it up!
You're not wrong, it shouldn't always be a disqualifier...
But I think of it like this.
If I'm hiring a basketball player for my NBA team, do I want the guy who only plays basketball during official practices and games? Or do I want the guy who lives and breaths basketball all day long?
The one who gives 100% during their 40hrs may be great. But the one who's engulfed in the game all day every day... they're much more likely to be your allstars.
I've seen this play out plenty of times in coding too. Lots of developers who code 9-5.. they can do their job fine, but they're not usually the ones who make waves of vast improvements.
I guess it's just not so much that you shouldn't hire someone who doesn't have side projects, but given the choice between two similar candidates, I'd say the obsessed coder is gonna be a much safer bet. :)
OK, adrian's post made me think about that point but reading your response to it did it. Can you reread your answer post and then honestly say that there is nothing wrong with it?
I dunno that I could say that there's nothing wrong with it.. In an ideal world, it wouldn't matter which one you hired, and if it were really ideal, you'd be able to hire both of them. But given how hard it is to hire and keep someone, and limited resources, I still think the obsessed coder is gonna win out over the day job coder in an interview process most of the time, and will likely bring more to the team in the long run. Of course there are plenty of people who fall in-between these ranges too (or way off one end).. but that's not what I usually see :)
I just find it sad.
Someone you hire will not exclusively be an "asset" for the project, it's also a person and may add something more than just work hours done. It's how I think anyway. The workplace is shitty enough like that I find. But anyway thanks for your additionnal input.
I dont agree that experience in other language is meaningless. Basics and theory for the groups of languages are the same. It wouldn't help to move from oop to functional language, but c++ to c# - why not
Not meaningless, but don't hire someone for a C# position when they only know C++. Because they're going to require a ramp up of a few months to get to grips with the syntax of the language. And sure, if they know a fairly similar language, it'll be a quicker ramp up time. But C# has features that C++ doesn't, LINQ for example. And sure you can learn LINQ in a day. But actually being good at utilising it? That takes time and practice.
2 Girls & 1 Cup