Programming Reality Vs Expectations (What You Think Vs. How It Actually IS!)

Written By John Sonmez

Programming reality can be very different from its expectations. #programming #programmingreality #programmingexpectations

If you're a new developer, or even an aspiring developer trying to break into tech, you probably think that, by becoming a programmer, you'll be coding all day long, writing code that will change the world.

You couldn't be more wrong.

Coding is much more than just writing code. When we expect to be writing code all day long, software development is much more about solving problems than it is to writing code all day long.

In today's video I'm going to tell you the reality vs expectations of programming and let you decide if this is the right career choice for you.

[responsive_video type='youtube' hide_related='0′ hide_logo='0′ hide_controls='0′ hide_title='0′ hide_fullscreen='0′ autoplay='0′]https://www.youtube.com/watch?v=xNU_DNDGF9Q[/responsive_video]

Transcript Of The Video

John Sonmez: Today I'm going to be telling you guys about the reality of programming. I know a lot of you that are just getting started in software development or maybe you've been around for a while and you've realized that the truth might be different than what you thought it was. I'm going to give you a reality check here and tell you what it really is like to be a software developer. I was a software developer for 15 years. I coach a lot of developers. I own SimpleProgrammer.com, and I write articles on there, and I deal a lot with developers. So, I'm pretty familiar with a lot of different development environments, a lot of different programming languages. Welcome, you're in the right place for developers, anyone who is interested in developing their soft skills as well as their technical skills and becoming a better software developer, making more money in their career, connecting with other people who are interested in the same like minded community of really good people, really good developers. So, make sure you click that subscribe button if you haven't already and click the bell so you get notifications.

I think a lot of people when they think about becoming a programmer or taking a software development job they think that what they're going to do is they're going to sit and they're going to write code all day and they're going to write new code and that's not exactly the reality. Now, I'm not saying that you can't ever have a job doing that but in the 15 years that I was a software developer I never just sat down and wrote code all day. That never happened, that was not the reality. It might have happened for a day or two but the day to day did not look anything like that and that's because I think a lot of people misunderstand what the role of a software developer is. It's not just to write code, it's to solve problems, it's to automate the solution to problems more specifically, that's what programming is. A large portion of that is going to be thinking about the problem. The reality of the situation is that what you're probably going to do in your programming job is you're going to spend a lot of time in meetings because you have to get the domain knowledge. You have to understand what is the problem that you're trying to solve. And you need some organization. You're working with different people, you're dividing up tasks.

You have to understand really what is this big thing that we're trying to build here. So, that's a lot of it. A lot of it is going to be thinking. You're going to be figuring out what you need to do. It's not like you're just going to sit and write code. A lot of times you're going to be solving issues, you're going to be thinking about the best way to do things. You're going to be talking with colleagues about this because you're not writing a simple program in many cases like you are when you might be writing on your own or you're learning how to program. You've got a complex program with a lot of interactions, a lot of people. And a lot of times it's going to be legacy code. What does that mean? It means that the code basis has been around for a long time, it's not a new thing, it's not a new software that you're creating. Sometimes it is and that's great when you get to work on a green field project but most of the time it's going to be brown field meaning that it's been around for awhile.

So, there's a lot of bugs, there's a lot of issues. You're going to have to spend more time interpreting someone else's code and dealing with it then you will creating new code. You're going to be fixing bugs. Fixing bugs is not something that they tell you that you're going to be doing but you're going to be spending a lot of time doing that because a lot of software development. More time is spent in the phase of software development, in the maintenance phase, which means that the code is already out there, it's shipped, it's already in production, customers are already using it, and it's being maintained. More time is spent during that phase than any other period. You create the software, you test the software, you release the software, but you maintain it for a long period of time.

The other thing you're going to be doing is answering a lot of emails. It's just going to happen. You're going to have to do regular work and deal with politics. You're going to do a lot of design. That might be fun, you might enjoy that going and coming up with ideas on white boards, going into meetings discussing things with people, and what not. So, that's really what the reality is right is that you're going to be spending a lot of time really thinking things through. You're going to be rewriting your code. You're going to be fixing bugs. You're going to be doing paperwork as you follow up, as you follow the process to go through the bug fix cycle and to log defects as you find things, writing some tests, helping out with some testing. There's a lot more than just sitting there and writing code.

The problems that you work on are going to be a lot different than probably what you think of. Because a lot of times in the hypothetical world of software development where you're learning to write code, the problems are not realistic to the reality. They're going to have clear solutions. As a software developer writing code in a real environment there is no clear best way to do things a lot of times. It's going to be up to you. You're going to have to decide. You're going to have to spend a lot of time learning and reading books. And you may think that you become a software developer and you just know how to write code but that's far from the truth. So much of your time is going to be spent going and researching things, reading blog posts, reading articles, reading books on software development so that you can learn how to use the new technology, looking up the API's, and documentation, and stuff like that. Especially today when we have so many libraries and frame works you have to stay up to date on these things and that's really what's going to improve your ability as a software developer.

I don't want to paint a blurry picture. Software development is great. I loved being a software developer. I had a lot of fun doing it. It was a very enjoyable experience, a very rewarding experience to be able to write code, to be able to see the code that I've written that other people are able to use that. I've actually created something to just be there solving problems everyday. But I just want to prepare you. I want you to know that you're not going to be sitting there just pounding out code. It's going to be a lot more things but overall your goal is to create the software it's not just to write code. Anyone, well I won't say anyone can do that but that can be outsourced.

If you are a software developer, or a software engineer your job is really to solve the problem. And if you keep that in mind you won't be frustrated. Because when I started in this field I was frustrated. I said, “Well I just want to write code. Why can't I just write code?” And I didn't understand I've got plenty of time to write code eventually but in reality there was a lot more to the job than that. And I will say this, if you don't like learning then you should really get out of this field 'cause you're going to be spending a lot of time learning 'cause there's always new things coming up and new technology. So, make sure again that you click that subscribe button so you stay up to date. I'll talk to you next time, take care.