Top signs of an inexperienced programmer


hey tech light here and welcome back to another episode today we are going to talk about the top signs of an inexperienced programmer it is coffee time we are having a coca-cola a lot of people like to hate on coca-cola but it’s not so bad nothing wrong with that this video is sponsored by coca-cola for fun times have a coca-cola is what I would not say because I’m not sponsored by coca-cola this video by the way is sponsored by audible.com slash tech lead check them out for your free audio book I use all the time I’ve been listening to audio books on my commute saving a lot of time currently I’m listening to 0 to 1 by Peter Thiel that’s great book lots of lessons from experienced people they’ve got tons of audiobooks available whatever you’re interested in reading remember that audible is actually owned by Amazon so their selection is massive check them out get your free audiobook of the boat ride home slash tech elite you know it’s a funny thing that all new engineers exhibit certain traits and just by looking at the way they act the patterns that they go about in their daily routines the code that they output you can pretty much tell who’s an experienced engineer and who’s new and these new engineers all go through the same things and it takes them sometimes months sometimes years to outgrow their behaviors to turn pro so to speak every new engineer has to go through this training and every single company and it’s just tiresome these same lessons need to be repeated over and over again I thought I would just give you guys the basic tip such that when you get started or if you’re already working then you’re going to be well on your way and people aren’t going to have to give to you the same lessons over and over again you know it’s funny that when you start working at say a company like Google they like to haze you in your first code reviews they will leave you hundreds if not millions of comments in your first div output that you’re trying to commit and people just say hey this is wrong this line of code wrong this line of code bad there would be so many pedantic comments that many people just end up quitting the next day and that’s the funny thing a lot of people don’t know is that of the people who get in to say Google as an engineer about half quit before they even submit their first line of code so let’s get into it the first tip and this has been repeated over and over again is keep your dev sizes small keep your commit small chances are when you first start you’re going to a starter project that’s going to require a sizeable chunk of code to complete some feature and the key to know here is this isn’t so much about completely in the future it’s probably a useless feature that nobody even cares about what people really want to see you do is start learning the coding practice is the development process in which you get a code submitted and this really involves the process in which you break down the project into bite-sized chunks and you submit targeted small pieces of code one at a time instead of submitting the whole thing and chances are when you submit this whole piece of code for a code review and it’s thousands of lines of code people are just going to look at it and say hey yeah this one line here this one way that you did this was entirely wrong and the whole thing needs to be redone when you get started there’s a high chance you’re going to fundamentally get some pattern some design or architecture of your program wrong it’s going to change the whole way that the thing is going to be written so if you submit small-sized ifs incrementally people can help make sure that you’re on the right track you’re not wasting too much time and it also makes it easier to land your diffs because it’s simply easier to get approval on small size chunks of code are very targeted instead of a whole menagerie of random divs many times I will actually write my code in an editor that shows line by line tips of what changes are making like Visual Studio code or Adam will show this and this helps ensure that you’re not just changing random lines of text that don’t need to be changed almost every company I go through they beat this one lesson about having small tips over and over to new engineers if you go into the company already knowing this you’re going to be set now the second sign of a new and experienced developer is just crazy tangled code crazy logic all over the place huge functions tons of if statements all over the place random helper methods everywhere premature optimization over engineered garbage code and so country – what you might imagine bad code is not simply code that has a ton of bugs doesn’t compile doesn’t work a decent engineer will at least be able to get their code to compile to work and is even going to run and function okay but the way the logic is set up the way the code is written is going to look completely horrible it’s gonna look like garbage code tangled totally messy complex stuff and it’s pretty much going to be a complete pain to read many times I would just get a headache after reading some beginners code and then I have to get up and get a coffee break my recommendation here is write at design talk right a document that describes what you’re going to build what the future requirements are how you’re going to set things up which functions you’re going to need which classes what data structures you might need and then just go build those out and that should help you organize your ideas is very obvious actually when I see code that was written without design dog because there’s just repeated duplicate code logic if statements all over the place it somehow manages to work I mean the code is going to work fine but it’s just going to look like pretty crazy code I’m probably going to go ahead and approve your code anyway but I know it’s going to cause you a lot of hell later on as you’re going to become the one maintaining this code throughout your career and it’s just going to slow you down through the rest of your job over the months as you’re going to have to start adding features to this code you’re going to have to start reading it and there’s just going to be bugs introduced every single time you tried to modify the code you’re going to have to make changes in the whole bunch of different areas the logic is going to be pretty loopy right design dog save yourself sometimes gonna make you look a little bit better too the third trait of a new and experienced developer is low effectiveness now don’t get me wrong everyone’s working hard everyone’s trying to prove themselves they know they’re new they’re trying to do things but they’re just not effective and they end up wasting tons of time I know guy who was working on this feature for months and it was a pretty complicated UI in fact the UI was essentially impossible to do you know the UI designers just came up with it and he started trying to work on it and coming up with totally convoluted code none of it was really done well it was very hacky stuff and I think he just wasn’t having his eye on the goal he was just obsessed with maybe doing a bunch of groundwork this project never launched by the way and later on I came up with a better solution for it I pushed back on the UI designers loop and said hey if we do it this way it’s going to be much easier to implement it’s going to look good too and so I would say don’t just code for coding sake look at the forest not the trees keep your eye on the vision the goal that you’re trying to make happen and make sure that your code at least ships and if you don’t foresee your code ship and try to clear the roadblocks for that make sure that you can get your impact in where you can you also want to keep an eye on your APM actions per minute I don’t love engineers they go in and they spend the whole day surfing reddit checking Facebook social media blogs Twitter surfing news and I look at these new engineers half the time they’re watching a YouTube video of someone playing the game maybe they’re the one playing the game maybe they’re even broadcasting that game and that’s all great people can work like that think of work on their own time if they like and I used to sort of do this – I was going to work and I would have one window maybe I’ll do some online shopping whatever it is I want to do but the thing is when you play a game like Starcraft you notice that whoever has the highest APM usually wins the match in the Starcraft game not always but usually it really goes a long way so that’s really the same thing for developers as well if you’re spending any available time you have on the job for instance just imagine how much more productive you might be able to be you know you could get probably a lot more code submitted read a lot Co learn about the codebase come up with ideas you could get a whole bunch done and I would say that one flaw of new engineers is sometimes I’ll take a look at that code output after a whole week and they may have submitted like one or two pieces of code the whole week and just a reminder how is it possible that somebody could spend five days I had a job and some a only two pieces of code or even one piece of code or none in the whole week and then I remember oh yeah that’s right they were probably playing games that whole time maybe they were doing online shopping who knows and it’s kind of no wonder that for a lot of these people their productivity is just very low my recommendation is tried to get at least one piece of code so made that per day that’ll keep you on track make that just a personal go for yourself that’ll keep you going the fourth son of an experienced engineer is they usually have a lot of pride a lot of ego a lot of arrogance and this is something that you see other lot of computer science students coming out of college for instance their arrogance is just incredible the worst is when I’m reviewing a new engineers code and I decide to leave like say a hundred comments and then the engineer comes by my desk and personally asks me about each comment and tries to justify why he’s right about each one and then I have to get in a little argument about each one with him and he’s trying to defend himself and laughing at other people who may be more stupid than him trying to sound cool trying to sound smart it’s like look I don’t care if you think you’re cool I don’t care if you think I think you’re cool if you want me to say you’re cool fine you’re cool I’m cool we’re all cool everybody’s cool I’m just cooler than you okay so the thing about arrogance is it has a lot of other effects as well for example it causes engineers to over engineer their code to make it look really smart and clever keep it simple also I would recommend that you swallow your pride and go as for questions as for help when you need it it can save you a ton of time this kind of goes back to being ineffective love new engineers just want to tackle everything on their own they spend a lot of time doing things on their own a week or two later they surface again with a bunch of garbage code that they’ve written and I have to say this whole thing was wrong this whole thing was just no good I wish they would just asked an experienced developer like myself what I would’ve approved and that could have saved everyone a lot of time my last time final tip the sign of an inexperienced engineer is somebody who does not identify and respect the tech lead that’s me make sure that you know who the tech lead is I’m not talking about your manager I’m not talking about your boss you may already have a tech lead at your company that may not be the tech lead that person could be X Microsoft for example I am X Google ok X could go tech lead you want to make sure you know who the tech lead is now I have a story for you one time there was this engineer he did not respect the tech lead he dared not to and let me just tell you what happened to him because this is going to be a good lesson for all of you he started proposing tons of random code for his project no design doc huge tips very complicated logic and I pushed back on and said yeah this isn’t going to work he did not respect my comments and kept pushing forward with his code he kept proposing tons of code disappeared came back two weeks later with a bunch more additional code didn’t listen to a single comment that I suggested for him and I blocked every single code that he tried to put in that’s right I would block his code I would just spend all my time writing millions of comments and he would have to write millions of replies back eventually we started just writing essays on these tips we stopped coding really his effectiveness his code output dropped to zero you know what happened to him he got fired that’s right so that’s one lesson for you if you don’t respect the tech lead I would recommend if I are you to actually be nice to the tech lead do whatever you can for him you know bring him lunch bring him tea one little trick you can do is instead of having you submit code come up with a diff mail it to the tech lead and then the tech lead to a patch your dip in and then submit that for you and that way the tech lead will get credit for the dips it just helps increase the number of dips that the tech leader is putting out what you can also do is when you write design documents but the tech Lee’s name on it even if I have no part in the design dock or presentation or email or post or whatever it is that your writing just put my name there in the authors to credit this line that would be great I would appreciate that that helps me get a little bit more credit a little bit more awareness for people like me who are here to take credit for your work buying me stuff give me things give me money any of that I’ll take it respect the tech lead they’ll do it for me feel free to share your table signs of junior engineers in the comments below if you liked the video give a like and subscribe I’ll see you next time bye

100 thoughts on “Top signs of an inexperienced programmer

  1. I'm gonna move this comment from a response up to the top. In my years working at game companies I have to say that overall Americans are not good at insuring that companies are run competently. Part of this is the result of a complete lack of realism about human nature.

    The end of this video was pure cynicism. He's saying what everyone in the world who knows what authority is and what human nature is like knows (but Americans don't): that as a junior person in a company you're not there to be perfect, you're there to make the people around feel like you're someone who makes their careers easy. You there to be used by people in authority or people who can hurt your career, so you have to butter people up and survive being treated arbitrarily and unfairly.

    That's the state of 99% of the human race. The shocking thing about American culture is the pretense that this isn't the case.

    Perhaps in a culture where people are better socialized companies can work better because they're better at keeping inexperienced or less talented people from having their egos run away with them to take over the company and trash everything. But lets face it, cultures where companies work well are the exception too. The main state of humanity is that 90% of countries are not first world countries, 90% of social organizations are failures. SNAFU is the norm.

  2. He may have been important at Google at some point, but this video is basically a random guy sitting in his car rambling at the dashboard for 12 minutes. If you have something to say, maybe add text with bulletpoints, or use a computer to show stuff that's interesting?

  3. Tip 4 must be an enormous hassle.

    Everyone knowing everything by the time they leave school, must be a common trait in all jobs.

  4. 9:19 is a pure example how it is in some IT companies, I bet Techlead is talking about himself when he was inexperienced developer, got techlead block, code output reduced to zero and got fired, happens to me as well back in a day, not because I was coding wrong but just the guy didn't liked me, didn't like my face, didn't like what I was doing, in his mind I should just sit back and observe how good he is

  5. "Respect the tech lead"…. am I the only one that would be willing to lose the job for the pleasure to punch this little prick in the face?

  6. Hahahahahaha. I am a Software Engineer, I am really cracked up by all your words, especially the part where you said: for a whole week writing two lines of code or none. Oooh! Ofcourse they are busy playing games.

  7. "Look at the forest not the trees". So true. But for those idiotic MBTI sensors out there, they won't understand this and insist on keeping the eye on the trees complaining why they don't work.

    Intuitives win the programming sector.

  8. I'm relatively new at coding, but experience in business and such. The over complication dilemma and overconfidence is real! I see that happening at all levels without notes!

  9. I'm amazed at the people who can submit 1-2 pieces of code a week. They somehow at least got the job and I've been applying to every place I can find for ages and can't seem to get a hiring manager's attention :v

  10. Very good points here, thanks for sharing.

    Did you know that you have a french version of your speech ?
    I hope that is official ! I left a comment on this french video but it have been deleted …

    Here the link for one who can speack french
    "LES SIGNES DES DÉVELOPPEURS INEXPÉRIMENTÉS (CODEURS DÉBUTANTS)"
    https://www.youtube.com/watch?v=n5ijHtR7GC4

    And the comment i left there and been deleted

    Les bons conseils sont là et je suis reconnaissant de l'information qui tu apportes.
    Pourtant je suis mal à l'aise avec ta vidéo sur un point essentiel :
    Tu ne cites pas de références quant aux emprunts :
    citations non référencées (= est-ce alors du plagiat ?),
    structure / plan de ton texte,
    voire anecdotes "vécues".
    Pour les anglophones, voici ce que j’appellerais l'original
    https://www.youtube.com/watch?v=-W_VsLXmjJU
    Et toutes mes excuses si tu n'as jamais vu la vidéo que je cite et si c'est un hasard !

  11. Go to programming slave. I am paying you 100k gimme the perferct code in 5 min. I dont know. I think something is missing in this crazy world of software development. Respect the tech lead !? Numbers, performance !! Deployment per second !!! hahah what idiot! The tech lead is the one that find a smooth way for the worse of their developers to improve its strength !!!! Developers are only a line of a excel payment sheet. Programming is a intellectual effort. Programming is art.

  12. Pretty funny about adding "TechLeads" name to everything. I used to work for a guy like you and he wasn't as nice as you.

  13. You sound like an awful person to work for. No wonder your girl left… you’re the complete opposite of cool bro… you need to change. Zero swagger.

  14. Just simplify your coding problems by just become the TechLead Slave. Productivity goes up and everyone gets to keep their job. Simple!

  15. ach informatiker sind eh das neue fussvolk. alle drängen in diesen beruf! gott sei dank hat man euch keine weitere technologie gegeben. wenn für euch albert einstein das non plus ultra ist, na dann prost.

  16. Top 3 signs of inexperienced tech lead:
    1. brags about his/hers previous positions in tech giants;
    2. acts like the smartest person in town;
    3. takes away the credit of your work.

  17. I don’t know you dude, but you look to me an arrogant guy because you worked for google?
    I don’t give a ** where you’ve worked. If you treat me with respect I’ll treat you respect. I don’t give you a cent, or a gift, just respect.

  18. These videos are great when I have trouble falling asleep. I can pick any of them and the droning monologue will knock me out within ten minutes. For that I am thankful.

  19. Ego caused me to fail a job interview on one occasion. They gave me a 8 hr coding challenge and I left an extra comment that was like 20 lines long titled: "The old way of doing things" with an example of a previous way to complete that part of the assignment. i asked the guy why I didn't get the job and he told me everything was correct but he mentioned that comment. I felt like a huge idiot because when I wrote it I had that gut feeling that it was stupid/prideful to keep it in there. The #1 thing they don't want in a team environment is ego…. lesson learned

  20. As a developer I never played at the company computers. In one company, we were three people working. Me as web developer and two other guys that were in administration. Our boss decided to use DesktTime and after I have installed my efficiency was from 80 % up to 95% despite for example I use Notepad++ as scrap book and my boss did it not list it as a productive tool

  21. If people actually play games while at work thats a sick joke. I struggling to get my first dev job I wouldn't dare play games at work, and they are probably getting paid upwards of 100k… wtf lol

  22. this guy is a master at trolling, i thought he was completely serious when suggesting putting techleads name on my code. My trigger was almost pulled.

  23. I always hear this advice of ask a more experienced engineer, it was pretty bad for me every time I did ask the guy (experienced engineer that was my assigned mentor) made me feel like I was an idiot for asking a question. Keep in mind I was new to the code base and was given a task to fix a bug. Eventually I was able to complete the task, but it definitely took longer than it should have because of that attitude.

  24. Signs of a beginner developer:
    -Does not focus on maintainability
    -Code is not decoupled
    -Code is overcomplicated
    -Does not follow SOLID
    -Code is not self explanatory
    -Functions have mixed levels of abstruction
    -Abstructions are leaky

  25. I think the performance issue is very common in cultures that have 'flexible' time. i see people coming in at 11:00am (i normally start at 8:30am, trying to push it to 8:00am since i am a morning person) and leave at regular hours like 5pm or 6pm. For junior engineers, Okay i am thinking about one specific person but i will use the pronoun 'they', besides not producing high quality code, most often they don't even solve the problem that are assigned to them, or even worse, they don't even understand what the problem was in the first place. One thingI noticed is they thought they are WAY better and capable than how they really are (at least in my eyes). They want to be the CTO of the company, they want to know where the company is in 5 years, they want to 'solve' the performance, scalability, service architecture, etc. those big big problems (some of them are not really problem, they are strategy), while they can't even get a test spec straight. Or they get caught up in the tiniest details when they don't have an idea what the big picture is. but that's okay, they are probably passionate and become ungrounded in taking steps they are capable of. one thing that bothers me the most is they have problem asking questions and say they don't know. when you point out something is missing or wrong, they just talk around it or change the topic, i actually don't understand why they are even working here, like…what are they here for.
    okay switch to another new graduate i was working with, yes he doesn't produce code very fast, sometimes takes a long time to understand a problem, but at least i know what they don't know so i can help, because they ask questions and they listen when you explain. actually, ask your self when was the last time the junior engineer asked a valid question, that give s you a lot of insight into how they are doing.

  26. OMG What an inexperienced tech lead you are, you sound like such a dick, no wonder that Facebook Legal looked for something they could use to fire you!

  27. Dry sense of humor on the culture. A company with internal egotistical people who rather appear cooler than cooperate will be a failure company, you cannot force teamwork with people with unearned pride.

  28. the tech lead part was quite funny xD but too bad you didn't mentioned the real reasons ppl leave google right away, and it's not the reasons you mentioned.

  29. backend developers used to look down on frontend dev claiming frontend is not for engineers! do u think frontend has recently grown to be as complicated as backend ?

  30. Low APM is the reason why FANGs stocks are there where they were a year ago(Oct 2018- Oct 2019). Ask me why MSFT is rising while these FANGs stocks are hurting

  31. With the strange arrangement of code of an inexperienced programmer, it makes your head hurt because you have more experience and simply go through the motions by muscle memory. It's also why in ten years you won't be able to learn newer frameworks as easily. You get stuck in a routine. I see it all the time with experience and old dudes. So one day you will be on the other side of the fence.

Leave a Reply

Your email address will not be published. Required fields are marked *