Placeholder Image

Subtitles section Play video

  • Hi, everyone.

  • Welcome back to my channel.

  • In this video, I want to tell you about three mistakes that new and experienced programmers usually make.

  • So if you were interested, please stay tuned.

  • When I first started working as a software engineer a few years ago, I definitely was guilty off all these different mistakes that I will tell you about more in this video.

  • First time for most new software engineers are usually very afraid to ask questions and ask for help generally, because when you're new and you're new in the job and in the function, you are so afraid that someone will think that you do not know something or, God forbid, they think that you're not qualified for what you're doing and then they decide to fire you or something.

  • So that is completely wrong mentality.

  • No one will fire you.

  • No one will think that you are not qualified.

  • It is very much expected that you will have some ramp up time and just in general for senior engineers.

  • Also, if you do not know something and you spend some time trying to figure it out on your own, then it might be a good idea to ask someone for help because generally people are really open about helping others.

  • And more importantly, there might be something that you're not even supposed to know, and you would never find out If you just don't ask for health, I'm about to go to every lane ever.

  • Lane is a fashion brands that started maybe five or six years ago in California, and they started with an online store, and their premise was that you're getting high quality clothing for much cheaper because it goes directly to consumer, and at the same time they're business also treats their workers much better than a lot of workers In the Third World.

  • Countries are treated in fashion industry, and I really want to get booties type of shoe for women.

  • I've been looking for them for them for a long time, so I'm excited to see what ever laid selection is like.

  • When I first started first as a software engineering intern, I was so scared to ask for help because on top of being new at the job, I also didn't have a degree in computer science or software engineering, and I thought that Oh my God, they're gonna find out that I'm not qualified and I would just get stuck and sit there and try to figure stuff out on my own and just wouldn't be able to do things because I was not comfortable asking for help until someone just pulled me aside and told me like, Why wouldn't you ask for hope?

  • It's certainly find your new York, um, you by just not know something, and that is totally expected.

  • And then I have started getting more and more comfortable with it, and it's absolutely fine to ask for help if you do not know something.

  • Ah ha there is ever laying about to go there here, shoes that I was looking for.

  • Oh, also looking for some jeans.

  • Maybe these ones are gonna be fitting.

  • Room line is super long, so I just have to hang out here and wait for my turn.

  • And there is actually a really cool thing that they do for lines here that I've never seen you before.

  • They just give you a little buzzer like in some restaurants for you to just continue shopping.

  • Is a suit actually physically waiting on the line and then when it buzzes if it's your turn and the fitting room for you.

  • Another mistake that new software engineers make is not getting alignment from everyone else before going ahead and building something and also not right in a design dog that someone can agree on.

  • I will give you a concrete example.

  • A couple of years ago, I was responsible for migrating a code feature from one system where it was written and quite a hacky way to another system with just better refectory, and so that it's easier to understand and just easier to implement on top of it.

  • And what the feature was supposed to do is check whether the user has to verify themselves based on a bunch of different rules.

  • Basically, we had this rules engine that wanted to migrated to, which would very nicely check whether the user was supposed to verify something on top of what they already had.

  • And what I did is I created kind of pretty brief designed doc or what I'm gonna do, and I just kind of add Hawk talked to a bunch of people on my team together, agreement on that architectures.

  • But I was super lazy to update that doc and also aligned everyone together separately on the way I would do it.

  • Then what happened is I went ahead and I thought, OK, like everyone seems kind of cool with it.

  • So I'm just gonna go ahead and implemented because I just wanted to be done with it.

  • And then what happened is two months later, I'm pretty much already done with this migration.

  • And then people are reviewing my code, and they're also confused about why I did things the way that I did that they're like other cases that I didn't take into account.

  • And all of that could have been prevented if I just took the time to align everyone at the beginning and get like a solid yes from all the stakeholders and also, in general, created a better design dog constantly updated it.

  • So people are always on the same page about what is it that I'm even doing?

  • And as a result, you know what happens.

  • I had to redo the whole thing.

  • So sure, I was kind of lazy and cut corners on safe time of the beginning.

  • But then what happened at the end of it?

  • I just had to put in the same amount of work because I had to tear down whatever I builds and rebuild the whole thing.

  • So it kind of sucked that could totally have been prevented if I were to take the time.

  • Thio, you know, sit down with everyone and make them understand.

  • What is it that I was trying to do and just get their opinion and feedback on that specific way off building things?

  • Oh, my God.

  • The line waas 30 minutes long.

  • It was really long, but I'm trying on these jeans now.

  • This is a very San Francisco stall.

  • What about you?

  • We'll see if they fit quite well, but not tripping myself.

  • And last but not least, another thing that you don't want to do is jumping head first into building something without first understanding what the big picture looks like.

  • And how does your system, your piece of code or your feature fits into that big picture and how it's going to also scale long term.

  • So, for example, couple of months ago I was working on something related to reservations on Airbnb, And when we're building a new end point for the reservation logic, we noticed that there was a special case in Korea where we did something extra during their reservation flow.

  • And have we not have understood the bigger picture, the bigger system ahead of time and the fact that there is an edge case in Korea, it would probably have resulted in a bunch of customer support tickets or canceled reservations that would have costed the business a ton of money.

  • So it's extremely important to understand that big picture first.

  • Another good example is actually re factoring the code.

  • If you come into some code base and you think, Oh my God, who should have written and the way it's written that I should just crave everything and perfect for it.

  • And then you do so without really thinking off what thought came behind building it the way it is.

  • Are there any edge cases I should account for?

  • Is there something else that hooks into the way this code is written?

  • If you haven't done any of that blood work and you just perfected it again, my just results in a bunch off errors, bugs or even, you know, taking the whole feature of the whole system down because you didn't take the time to understand why things are done the way they are or taking into account that there might be other people that are working on that same feature.

  • If you're still learning how to code or want to learn how to coat, which is amazing, you should go to life of nuba dot com slash code to download my free.

  • Pdf on how to learn to coat I put together a bunch of free resource is to get you started.

  • I hope you guys enjoyed this video.

  • I hope you're not gonna make the mistakes that I talk about in this video.

  • Really learned from them.

  • And I always hope you have a wonderful, wonderful day bye for now.

Hi, everyone.

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it