Is Coding At Work The Same As Coding At College Or University?

Is Coding At Work The Same As Coding At College Or University?

• 304 views
vlogvloggervloggingmercedesmercedes AMGMercedes AMG GTAMG GTbig techsoftware engineeringsoftware engineercar vlogvlogssoftware developmentsoftware engineersmicrosoftprogrammingtips for developerscareer in techfaangwork vlogdevleaderdev leadernick cosentinoengineering managerleadershipmsftsoftware developercode commutecodecommutecommutecollegeuniversitystudentcomputer sciencecomp scicodingcoding in schoolhow to code

Many of us go to college or university to learn to become software developers. But is there a difference between how we code in school vs how we code on the job?

📄 Auto-Generated Transcript

Transcript is auto-generated and may contain errors.

all right folks headed home from Crossfit I'm going to go to toedit here for a question after I clear off these windows so I can see um it's an interesting one I think it's uh time to beep um no I think it's a a good one for for people that are getting into the industry um probably a question that if you're not asking yourself you'll probably be either noticing or be curious about pretty shortly after starting so the question is regarding uh coding at University versus like coding at work like so once you start your job and really how different is it and uh like I said I think this is a good one for people to think about I I don't like I honestly it's been a while for me since I you know was in university so I and I had internships I

don't know for other people that kind of went through college or university without working internships or jobs doing programming like how um how much they think about this or if they just expect that what they're doing in school is going to be the exact same so that'll be good to talk about if you have questions you want to answer just leave them in the comments below I'm happy to try and answer them for you and if you have something that's more specific or you want to keep Anonymous uh just send me a message this person's about to run a red light with their lights off amazing um also I am contemplating getting a 360 camera so that for situations like that I can show you guys but the uh issue is that I am basically doing all of these videos in a way that doesn't

take me any extra time because my main YouTube channel I put out three videos a week and with this channel together I do about 12 to 15 videos in total uh I pay an editor for the other channel uh I lose hundreds of dollars every month doing that and I'm not ready to to sort of double that um to be completely honest with you so I'm thinking about it because I think it would be really fun uh but I I need to find channel sponsors or something if I'm going to be doing that because I I need to pay for an editor I'm not I don't have time to to go stitch together videos like that but I think it would be super cool okay um how different is it it's pretty different um I think a lot of the time the way that I

think back to University stuff uh was a lot more and I should I should preface this your mileage will vary um just because this is my experience I'm not saying this is going to be everyone's experience but I personally found that a lot of stuff in University was so much focused on like a a theoretical concept so we would be learning about data structures and algorithms and you would have to go make a pro program that is essentially like exercising the fact that you know how to go Implement one of these things so the the problem with this is that or okay let me let me start the other way I don't want to say the problem with it the the goal that they're trying to get you to do is is think about a concept right they're they're trying to to give you some

other way of thinking about the algorithm because if they present it to you in class and they kind of walk through um you know either why a data structure is effective in terms of like storage or performance costs or or they're showing you an algorithm like here's a you know a a graph traversal algorithm here's why it's optimal um when they try to give you homework on it generally I find the idea is like it's just to reinforce the concept and there's nothing wrong with that like that's I think how a lot of homework Works here's here's the theory behind it here's like maybe some some examples but in order to solidify it we're going to get you to be Hands-On and basically in order to go make it yourself you have to have some level of understanding of it not only that um again

I'm not an expert on this stuff but I feel like it's another modality of learning it right so someone's uh talked to you about it you're getting like this auditory part they're showing you visuals of it working you get this visual part and now they're going to say go build it so you get the Hands-On part and all of these are different ways to try and reinforce how to learn a concept so this is you know I I don't want to say great but I I think that this is absolutely a way that we learn things especially in in school in University or college um now on top of that I'm not saying that that's the only types of projects and stuff you get but I found that I either had classes like that where our projects would look like that or if we had

group projects I felt like the intention was that they are teaching us how software is built in the industry that's what I felt but um after having been in the industry for a while it kind of seemed like it was also exercising other parts of um I don't know like Engineering in general and all I'll explain what I mean by that because I didn't go for computer science I went for computer engineering I went to the University of water which is known to be a good engineering school in Canada and um in my opinion they focus a lot on like even within Computer Engineering or any engineering field there they focus on like um teaching engineering Concepts like ethics and Analysis are two that uh that really stand out to me so I actually felt like when we had group projects it wasn't to like

teach us how software is built in the industry it was again this reinforcing idea to try and teach us how uh or sorry to teach us about like how do you do an analysis because the project itself might be very basic but they're they're trying to get you to compare and contrast things so that you have to do a write up in addition and explain like we we chose this path because X Y or Z I have to switch lanes here because this person's going 10 mes an hour under the limit I don't understand people okay um so that like in general was most of my University experience which was like either reinforcing Concepts or felt like trying to address General engineering practices which you you might argue oh well that shouldn't that be like actual work experience and like kind of but also not

really because again the scenarios were kind of contrived I mean it's it's I feel like a lot of the time it's going to be that way for school assignments but the um the work itself wasn't set up in a way that was very much like the real world so I think those were the goals that they were trying to accomplish or at least in hindsight that's how it felt now to kind of go back to what I was saying near the beginning like what's good and bad about that or different is that I think what's not reinforced in school at least for me was that when you're working somewhere it's it's a business fundamentally everything that you're doing there is about operating a business and I think a lot of people miss this and they build resentment because of it because they they're saying well

that's not how we write good code or that's not this software development or that and I understand like it's frustrating but at the end of the day we have to remember this you literally work for a business and the business is not code okay so your job involves writing code absolutely but the business is not just code the business is being able to ship value to customers so that customers will pay money and the end of the day that is fundamentally what's happening and I do think that this often gets missed you absolute I cannot this is again need a 360 camera someone just tried to switch lanes into me with no signal I watched it happen like I knew knew it was going to happen complete I had to stop I had enough time to think about the curse words I wanted to use

and then not say them because I didn't want it to be recorded oh my God okay um the the point that I'm trying to get across here is that um it can feel very frustrating because if you are going through school and learning about software development Concepts and you're learning about um data structures and algorithms and you're seeing like what a clean slate of all these things looks like and then you get into the real world of building software you often have this rude awakening like why isn't the code base perfect why does it feel like we have to do these things that we're being asked to do and a lot of the time or like you know why don't we get time for addressing Tech debt and things like that like this code base is terrible they keep asking us to do things it's

because at the end of the day it's about trying to ship value to customers because if customers are not paying you money the company will cease to exist that that's the reality of it and then I think what I would recommend is working backwards from that it's not we need to write code how do we get money for this it's the other way around and I think and I know like this sounds kind of harsh but I'm saying it this way on purpose because I I I want it to stand out to you I think if you reverse this thinking right customers want to pay us money sorry customers want value and they are willing to pay money for that value how do we get them that value because what ends up happening is that like I said people get frustrated about tech debt and

uh there's pressure for deadlines and things like that but if you understand that customers are paying for Value to be delivered then you can start to have more effective conversations with other people that are prioritizing things so I'll come back to that in just a moment one of the biggest discrepancies I see is number one this sort of uh dichotomy between you know I was in school and I'm trying like I need to get graded on my assignment so I need to write what looks like perfect code from from whatever lens you happen to have on that but the reality is when it comes to the real world like and in general you'll learn that there's no such thing as what perfect code is so there is diminishing returns at some point when you're trying to refactor and clean things up and make things perfect

at some point you're just spending time doing stuff that has almost little to no return now not saying refactoring and cleaning up code doesn't have value I'm saying what I've noticed is that sometimes individuals that are freshh out of school and really have this mindset around computer science writing like what good code looks like from their their understanding is they spend a a disproportionate amount of time trying to write code that they feel like is perfect but it's like in reality we have to balance other things like there are constraints like time time is a resource that we have constraints on uh if given unlimited time you could write better and better code but at some point again diminishing returns for doing so now I know some people are probably frustrated about what I said earlier and they're already going to be missing some of

the points I'm trying to make here I'm not saying don't test your code I'm not saying go ahead and write crappy code on purpose that's not that's not the point what I'm saying is I often see that sometimes people that are missing this mindset around like we have to ship value to customers they spend a disproportionate amount of time the other way and then they get frustrated because they don't understand why they can't have more time to write what they believe is like perfect code now I should add in because if you're like well who is this jerk that gets to talk to us like that I just looked it up as an EA manager at Microsoft obviously he's going to have this opinion okay to back up I was a software engineering manager manager and software developer simultaneously at a startup for 8 years

from essentially the beginning of that startup really once they started to build out their engineering team I'm telling you this because from working at a startup that ended up being very successful unfortunately after I left I got the worst timing in the world I guess um the reality is that you need to be focused on this kind of stuff if you had a whole team of developers that was just focus on trying to write perfect code and spending too long on it you might not end up shipping things like in a a timely fashion another person without their lights on and um the result of that for a startup can be devastating truly if you're if you're in at an early startup like when you need to be finding customers so that you can make money it makes a big difference so that's the the

sort of the second part to this this first point my numbering is a little off um which is like I I think that sometimes people don't realize um because it is a business like you you are part of like forming the getting the customer base and stuff right it's uh sometimes I mean this is maybe more from like a startup versus large company perspective but you what's a good way to phrase this um the work that you're doing should be direct like like an early earlier Stage Company the work that you're doing is going to directly have an impact on being able to get customers or retain customers and I think sometimes especially as if you're like say uh someone who came from College University and you're joining a larger company this is the point I'm trying to get at sorry um you may find

that if you missed out on this part of a company's growth where you're like how do we how do we get the customer how do we keep the customer and like kind of going through that struggle you almost take it take it uh not take advantage of it take it for granted right like you didn't get to live through and like it could be thankfully you didn't have to live through this period where the Company's trying to do anything to get customers and keep them so that they can stay afloat and sometimes I think that when you miss out on this like I said you take it for granted and then it becomes frustrating so the whole meta Point around this first aspect was that if you're misunderstanding that um you know you you really have to be thinking about how we ship value to

customers I think you may find um like it's a bit of a rude awakening when you go to develop software at a company versus like a School uh and that's because of con real constraints and the fact that you need to be focused on getting value to customers now the second part that I wanted to talk about my mouth is getting super dry now um the second part I wanted to talk about is like how much time you spend doing um what I would call like maintenance work I guess or working with Legacy code um in school and this is like again just some when I was talking about how school projects work every school project you do is basically like hey go build something new every single time every single time you get to go build something new and then what happens when you

go to work they're like here's an existing codebase it's 15 years old for some people that's most of their life when they start their their first job and uh someone's like okay dive in start uh start working in here and it can catch you really off guard because you're not used to that you've all of your programming experience has been I need you to go build from scratch this thing so you're like okay like how do I go do that you go pull some pieces together start it up but now you're going to be told you have this code base that exists that's a monster and you know go dive in go start fixing bugs go uh go you know change up this feature and it's the not only is it like overwhelming because you have a codebase to navigate uh and you're not used

by the way I do have videos on my my main channel it's called Dev leader about like navigating code bases if you're new so you could check that out if you're interested I think probably if you search like codebase uh on on dev leader you'll you'll find at least one video on it um so not only is it how to navigate that but the type of work you're doing is going to be very different because often and I'm not saying this is for everyone right you might very well be working at a place where you're a new developer and they're like hey we're building something new from scratch I'm not saying it's impossible but a lot of us uh spend a disproportionate amount of time in existing codebase and to you and to many people if you came into a team with a code base

that's already a few years old that's already the Legacy code right you're you're there maintaining it you're there uh you know adding more functionality to it but it's certainly not like a green field project where you're just starting from scratch so uh I I don't have stats on it to back up what I'm saying but um I'm sure if you if you're curious I'm sure you you could go search this online and there's probably some data on it but uh yeah a disproportionate amount of time spent in uh existing Legacy code bases now if you hate that kind of thing I'm sure you could structure your career and how you're focused on job opportunities to to work around that but um as much as like people don't like working in Legacy code because oh it's old and it's boring or whatever I think you end

up having some of the most like unique engineering challenges this way when you start something brand new you have so many options you have far fewer constraints than when you have something that already exists and someone says well you already have this existing service there's already you know hundreds thousands millions of people using it now go make a change to it and by the way don't disrupt anyone like that has some unique con straints and I think that's where like you might not love the um like oh the code base is old or it's like spaghetti it's brittle or it needs more test and like that's all sure that's we're going to have our whole careers to complain about that but when you're working in existing code bases with um you know live users if it's a live service or you know product that's shipped

to people uh even like an app or whatever right like there's going to be backwards compatibility like with you know if it's making requests to your servers and stuff like that there's there's so many interesting challenges that you have uh as an engineer when you have to work in existing code bases so um you know to answer it in a a succinct way I would say it's very different college or university compared to the real world and it's just because I think in University or college the uh there's focus on let's reinforce the concept and in the real world it's it's not let's reinforce a concept it's how do we ship value to customers and it's I'm I'm just thinking about some of the people that have probably watched this or the comments they want to leave or if they're going to thumbs down it

because they're frustrated like when I'm when I'm telling you that a business is about shipping value to customers it's uh it's almost like it's not an opinion I'm not saying this is my opinion on what a business is I'm telling you that's what a business is um now again if you were triggered by what I said and you're still watching this at the end my my goal is again not to tell you that in the real world all we do is write crappy code what I'm the reason I'm telling you this is that if you understand that that's the goal of the business then you can approach writing software in a way that you know going forward will hopefully make that feel less frustrating for you so if you find oh my goodness we're spending so much time in these areas because no one wrote

tests this is a nightmare make sure as you're going forward you are adding the test in that becomes part of how you're estimating or forecasting the amount of work so again I'm telling you this because if those are things you value and you think and believe that they will help make writing software in the future more effective for your team to make the code base better do that I'm just telling you that that's why you're getting this weird pressure or this friction to not go address Tech that it's because at the time you might say I don't like how that code looks and if someone who gets to prioritize things says I don't care what it looks like is it working and you're like yeah they're going to say great then people are paying for it like basically shut up and keep moving but if

you have a good reason to be able to say hey look if we address this Tech de this will allow us to move more effectively in this area of the code because that's where we're continuing to add more features or we're spending so much time fixing bugs here like a disproportionate amount of time we need to add tests we need to refactor we need to clean it up make a business case for it it's not like no one who's working in uh product management or in sales is going to understand that like the code is ugly or that you don't like like it they like it it it's the wrong messaging to them that might be how you perceive it but if you want to have an effective way to message this explain how it's going to have a business impact and you'll have a

lot more success anyway that's that's it for this one hopefully you didn't hate the video too much but I'll see you next time take care

Frequently Asked Questions

These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.

How is coding at work different from coding at university or college?
I found that coding at university is often focused on reinforcing theoretical concepts like data structures and algorithms through projects designed to teach those ideas. In contrast, coding at work is fundamentally about operating a business, where the goal is to ship value to customers rather than writing perfect code. This means dealing with real-world constraints like deadlines, legacy code, and prioritizing business impact over ideal code quality.
Why do developers spend a lot of time working with legacy code in the industry?
In school, you're usually building new projects from scratch, but at work, you often inherit existing codebases that can be many years old. I spend a disproportionate amount of time maintaining and improving legacy code, which presents unique engineering challenges because you have to make changes without disrupting existing users. This is very different from the greenfield projects you might be used to in school.
How should new developers approach technical debt and code quality issues in a business environment?
I recommend understanding that the business goal is to deliver value to customers, so you need to balance code quality with shipping features on time. If you want to address technical debt, make a clear business case explaining how it will improve productivity or reduce bugs. Communicating the impact in terms of business value is much more effective than just saying the code looks ugly or is poorly written.