From a Reddit thread: What does it look like to actually work as a software developer?
Let's discuss! If you have comments from your own experience, share them!
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
hey folks I am just headed to CrossFit I'm going to go to Reddit today and I'm going to going into the software engineering subreddit not the experienced developers uh subreddit and we're going to talk about what it's like to be a software engineer so this is going to be more geared towards folks that are uh maybe in college or university going through their boot camp whatever it happens to be kind of anticipating like what that might be like when they're done or people even earlier than that where they're trying to consider like hey what what's a career and software development going to look like so I wanted to chat through that so for folks that have many many years of experience or even a few um you may I'm just giving you a heads up you may not find this super uh super exciting but
if you do want to hang out for the the quick drive to CrossFit here that would be awesome and uh of course I welcome you to share your experiences in the comments right if uh if what I'm sharing sounds different or you want to confirm for other viewers like you know sharing information is helpful and obviously I'm only one person sharing one perspective so um quick reminder too if folks want questions answered please leave them in the comments got to move my microphone around sorry if that was the beginning of that was pretty rough I just realized the microphone was like on my shoulder um yeah and if you want questions answered not in the comments you can send them to Dev leader on social media uh and when you do that I will keep them Anonymous uh so you can look for me on
Instagram uh LinkedIn will just be Nick centino on Twitter wherever um I post every platform okay so what is it like to be a software engineer software developer um probably a little bit different than you might expect uh based on uh I don't know what I what I think a lot of like perspective is like stereo typically of of software development right software developers are the most introverted people that never talk to other people super nerdy um you know basically zero social abilities you only talk to computers you basically speak in ones and zeros um yeah can't leave the house because you're too busy programming which uh there's nothing wrong with programming if you enjoy it right just a quick disclaimer but um when it comes to actually working at a company as a software developer you actually spend a lot of time with other
people now I don't mean like especially as a more Junior developer it's not like in an 8 hour workday I'm telling you oh you're only talking to people hey that person has the exact same car but it's silver I don't have the 360 cam on um just got to believe me so yeah it's it's not like your whole work day is just going to be sitting down talking with people but um I would say expect a chunk of it and the more senior you become the more likely it is you're going to be having interactions with other team more people other teams sorry more people still very early so my my speaking hasn't caught up but this is something like again expect that they becomes more of it right so if you're like hey I can't wait to be a software developer because I don't
want to talk to anyone and then I can just do programming stuff all day I would say like you're you're probably going to be disappointed at most companies if you expect to have no you know interpersonal communication stuff going on the other AMG no he's not going to get beside me he's disappearing to the grade Beyond or she so software development is a team sport you are going to be working in teams that means yes like I just said you're going to be talking with other people but it's uh if you're used to building even if you're building code and projects and stuff on your own like you are your own dependency right you are if you're building stuff like it's being built because you're motivated to do it you're interested in it you want to learn or you're having fun whatever it is that's
your motiv motivation now I would say in an ideal world you're still when you're working somewhere you're still enjoying what you're building you still find it fun however you wanted to find it I realize not everything's going to be fun in life but um my point is that the motivation for getting things completed is from you and timeline Wise It's probably you setting the timelines but I think a big um I don't know if I want to call it a hurdle I think or I don't know and I don't want to say like a rude awakening so I haven't figured out the right word yet um people that watch these videos are very good in the comments about being like at this time stamp this is the word you meant so thank you for that um but yeah it's I think a surprise takes something
that uh you know takes getting used to for people is that when you start working at a company it's like it's a business right and this can't be uh said enough that like the software is either the product or something that supports the product but it's a business the goal of a business is to generate money so when it comes to building software at a business you need to be shipping value to customers if you're not doing that customers don't pay because they're not getting value what are they paying for so this is a bit of a mindset shift and I and I seriously encourage people to just start thinking about this sooner rather than later which is like there's a reason why there's timelines on stuff there's a reason why people are trying to prioritize other things over the other you might not agree
with it all the time right but that's that's in a lot of companies that's literally someone or multiple people's jobs is to prioritize work based on uh dependencies based on what customers are asking for right so it's no longer just hey I get to build stuff cuz it's cool it's we have to build things and find ways to get value shipped to customers which things have the value that we're trying to ship well it's either I mean depending on the team structure and stuff that could be product manager it could be your engineering manager uh more general term that we'll use for that is sometimes called a product owner so they're the one who ends up taking responsibility for uh you know prioritization if surprises come up then you're talking with them about like hey we could go this path or this path in terms
of what we're delivering like what do you want um product owner is a sort of some more generalized term uh I don't personally I don't think I've ever seen like a title that's product owner but it's more of a I don't know a responsibility I guess that gets uh slaughtered alongside a title now the stuff like one of the things that I briefly saw in this thread I think it was this one um it might have been the one that I was looking at briefly before bed uh and the op was saying like I heard I need math or or I think they said it a little bit differently this time I think they said I heard um sort of a a math mindset is helpful and I think that was a better way to say it because historically I always hear especially for people
that are talking themselves out of software development they go I'm not good at math therefore I shouldn't do software development because I've heard that you need to be amazing at math to do software development and I'm just simply not and I don't agree with that um but the way that this person said it which is like mathematical thinking like I 100% agree with that right especially for more complex math right I'm not talking about like what's what's a good way to put this I'm not talking about like theoretically do you understand like what a triple integral is or how to do all the class transform like what conceptually what that means but in a lot of those more advanced things you're you're doing steps there's literally an algorithm to go solve the problem right so you you have some type of word problem generally so
you have to interpret that and then you have literally an algorithm to go carry out the steps to come to an answer now the reason personally I don't like like the strong math tie and I I actually prefer someone to say like the mathematical thinking I think was totally fair or someone to say algorithmic thinking I think is totally fair but I think a lot of people get spooked by math and that becomes you know uh almost like gatekeeping themselves from it now don't get me wrong I want to clarify too there's many and I've I don't know if I've talked about this on code commute Bute like in social media posts and stuff uh have long threads and debates with people or I mean they're debating with each other too about like math and software engineering like how much do you need and there
are plenty of roles plenty of roles in specific domains that really need math so for example if you are working on a graphics engine for a video game you really want math you're going to be doing a lot of math uh if you're working in finance you probably want to know a lot of math if you are literally building uh you know systems that model things you probably want a lot of math but it's because the math is specific to The Domain right it's not not just because it's programming so again I'm I'm sharing all this because if you're in your mind if you're like oh no like I don't love math I would say like I don't love math I hate doing math I used to be very very good at math but like it's not something I enjoy and I never have enjoyed
it ever even when I happen to be very good at it which is going back like I don't know prob 20 years now God I'm getting old um but never enjoyed it right and so it's not like like I love to program and it's not like when I go to program I'm like I can't wait to be thinking about differential equations and like and doing like vector algebra like absolutely not and when that stuff ever comes up like if I have to do Graphics related stuff or uh for whatever reason geometry and programming like really screws me up I don't enjoy that stuff but I'm still able to be a successful software developer right so I think it's very dependent on the domain and I just wanted to remind folks about that right it's okay if you're not like in love with math but I
do think the algorithmic thinking is very helpful so that could be you know if if you were looking for some motivation because you're going through school and you're like why the hell do they make me do all these math classes like uh you know this random bald guy on the internet said we don't need math um I would say one thing to lean into is try to think like hey at least like I'm practicing doing algorithms there might not be algorithms you love but you are practicing carrying out steps and thinking through Logic on things so a little bit of Silver Lining okay what else we talked about peopling we talked about teamwork um math shipping value to customers uh I would say a lot of the time you're going to be working in uh existing Legacy code bases and you might say well what
does legacy mean that sounds scary it sounds old it sounds archaic uh in some cases it might be right in some cases it might be many many years old um I would say I don't have like stats on this but I would wager most code bases you're looking at are at least a few years old uh this could of course be different at startups this could be very different depending on kind of what team you're put on to maybe you're on a team like I got put on to teams before in internships especially where I was building things from the ground up like prototyping things and and whatnot um so I mean I'm telling you this because it's like I'm I believe the common thing is you're going to be working on existing code basis so be prepared for that but I'm not telling you
it's impossible that you'll be working on you know fresh stuff um the reason I share this is because most of the things that people practice right especially if you're like hey I'm taking Tak the advice from the internet um Nick has said you know practice by building projects and stuff like that which by the way I do recommend um one of the things that will be different is that every time you go to build a project right you're starting something you're like okay Nick said to go build and I'm going to practice you're starting something from scratch right you get new environment spun up start coding things it's from scratch now a very different scenario is when you're working somewhere like I was saying you're probably not spinning up an environment from scratch you might be but it's probably unlikely especially in your first uh
software development role so if that's the case what I'm saying is that you're probably going to be spending a lot more time building an existing code bases so have you thought about what that might be like to go navigate you know many thousands of lines of code that someone else has written um because the reality is that a lot of the stuff we learn in school right uh if if you do learn about this stuff it's like hey like here's here are the design patterns here's like what a perfect solution looks like here's you know you get the theory and then you get the example and then or even your school assignments right you're getting graded on them so they better be perfect like you see very well structured code all the time and a big shocker is that a lot of code bases in
production look like absolute and I'm exaggerating a little bit but the reality is you might be like hey that's not what we were taught right or why does it do this right and it's it's because these things evolve over time there's a really good video by the primagen I've done reaction videos to it I think on my main Channel Dev leader um so if you just want to search for if you want to watch my reaction to his video you can search for primagen on dev leader on my other channel and uh he does a really good job explaining like man like if you're working in sof like a code base that's lasted like I can't remember the time frame he gives but let's say even like over a year if it's surviving over a year and there's like you know it's serving customers and
stuff like that he's like dude that's like that's pretty surprising right a lot of stuff like crashes and burns pretty quick or you have one developer that's kind of like holding it together and then they leave and then uh degrades very quickly so when you have code bases that have lived on for years and years it's like that's that's pretty awesome and you have to think right like you have to keep this thing running you have to keep building on top of it it's not trivial especially because business requirements change right so a lot of the time you're seeing a code base that has been evolving over time requirements are changing right it's like but we can't just like stop building or start from scratch all of the time so you're seeing stuff that's like just been evolving and I don't think a lot of
people mentally prepare for that when they go into the job they're like oh like this thing is you know tens or hundreds of thousands of lines and like what's going on here um why does it look like this there's a reason um and I encourage you to ask genuine questions about that not to say things like why the hell is this code so shitty go figure out and understand how it got to that point because there's probably a lot of very interesting stories around that so hopefully that helps I know that's not every possible thing in software development but um hope you got some value out of that if you did um I've been encouraging people if you I will try to put the link to the Reddit thread in the video when I post it probably in the description uh if I forget though
if you want to go look up the Reddit thread this one was from software engineering subreddit uh if you want to do that you want to comment the link that's great if you want to do me a favor if you enjoy this if you want to share it back to that subreddit I think that would be awesome because I am not going to be uh sharing my videos on Reddit because I will get banned for self-promotion but if you share it because you enjoy it different story thanks I'll see you next time
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.
- What is the social aspect of being a software developer like in a typical company?
- I spend a lot of time interacting with other people at work, especially as I become more senior. Software development is a team sport, so while I do spend time programming, a significant part of my day involves communication and collaboration with teammates and other departments.
- Do you need to be good at math to have a career in software development?
- I don't believe you need to be amazing at math to be a software developer. What really helps is having mathematical or algorithmic thinking, which means being able to think through logical steps and solve problems systematically. The amount of math required depends on the domain; for example, graphics or finance roles require more math, but many software development roles do not.
- What is it like working with legacy code in software development?
- Most of the time, I work on existing codebases that have been evolving over years, which can be quite different from building projects from scratch. These codebases often look messy or imperfect because they have to adapt to changing business requirements and have been maintained by multiple developers. Understanding why the code is the way it is requires asking genuine questions and appreciating the history behind it.