Welcome to the second half of our two-part introduction to coding. While the first piece in this series discusses what coding actually is at its most fundamental level, this article will cover the realities of life as a programmer.
The image you have in your head of software development is probably a far cry from reality. Building tech products in real life often means more than sitting alone in front of a laptop for nine hours a day, so being a successful programmer requires more than just learning how to code.
Knowing your way around various programming languages is just one aspect of being an effective professional software developer. You’ll also have to lean pretty heavily on soft skills like communication and drive. You’ll work collaboratively with large teams that include more than just developers. You’ll have to contend with an industry that’s constantly shifting. And you’ll face new programming problems daily, no matter how long you’ve been coding.
Life as a programmer will vary by the kind of company you work for, what you’re building, and which stack you’re using to do so. That said, there are several things that all programming jobs have in common.
Patience and Persistence are Non-negotiable
Tech enthusiast Damian Wolf believes patience is the “number one prerequisite for being successful as a programmer.” Computer concepts can be incredibly complex and require huge amounts of hard work and resilience to understand, but if you can keep calm and code on, eventually you’ll crack the problem.
Naturally, these moments of clarity come when you are right on the verge of giving up, says Zapier’s Mariya Diminsky. “The moment where most people give up is the moment you need to keep going because this is when you improve,” she writes. “Everything uncomfortable is a gift so we can grow as individuals and strengthen our character.”
Failure will happen as well, though--and that’s to be expected. Even when you’ve got a good grasp on the programming languages you’re working in, you’ll still see semantic errors fairly often, says software engineer Benjamin Winterberg. The important thing to remember is that failure is not a bad thing; it’s an opportunity. The best programmers all make mistakes, he notes, and every mistake is a chance to grow.
There’s also a (pretty good) chance that as time goes on, one or more of the programming languages you know so well will be rendered obsolete by changes in technology. This is one of the most frustrating things about life as a programmer, says software engineer Sonny Recio. Learning one or even a set of coding languages isn’t enough. You need the persistence to keep re-skilling if you want to stay current in the labor market.
Coding Requires Both Creativity and Thorough Planning
You’d be forgiven for assuming that coding is repetitive work. Yes, the fundamentals of coding are the same whether you’re building a web browser or fixing a plane’s autopilot system, but that’s what makes coding so creative, says Gruntwork cofounder Yevgeniy Brikman. You can think anything into existence with code.
Software developer Henrik Warne agrees. By definition, coding is a creative act because you’re creating something that never existed before. What’s more, the solution you are looking for can often be expressed in several different ways. Choosing the correct solution for your specific product out of the many available--say, for example, by making the right trade-offs (like prioritizing speed over memory)--requires the imagination to think through all of the possible user experiences and choose the best one.
For developer Edmund Elder, coding is 70 percent creative thinking and 30 percent actually writing code. Most of the work is thinking, learning, and reading before finally executing on all of that prep work.
Just as with anything done well, computer programming requires that you first plan things out, conduct research, and make sure you’re prepared before you start executing, says Pluralsight’s Samer Buna. “One of the biggest mistakes I have made as a beginner programmer was to start writing code right away without much thinking and researching,” Buna writes. “While this might work for a small stand-alone application, it has a big, negative effect on larger applications.”
Blockchain and distributed systems architect Gautam Dhameja believes that planning out your code is actually more important than sitting down to write the code. Too often, programmers rush to solve problems by jumping into the editor straight away--but Dhameja thinks that approach, in fact, slows him down. When you rush, you miss the important things and this leads to bugs, poor performance, and regression. That might be okay when you’re just starting out, but in the working world, those problems delay the deliverable and cost the company money.
Your Communication Skills are Just as Important as Your Tech Skills
You can be the greatest programmer in the world, but if you can’t explain things clearly to other (non-technical) people, you won’t find the success you’re looking for in the industry. Communication--whether verbal, written, or even embedded in your code--is absolutely essential in the web development field.
Communicating well verbally is part of being a good team player, says Coder Coder’s Jessica Chan. “Working well with everyone on your team means that you need to explain code stuff to them, and in a way that they will get it,” Chan writes. “The first step of this is understanding that while you may see the world in terms of coding problems to fix, others operate around principles like money, deadlines, and clients.”
Developer Jeff Bargmann says that nothing in school prepared him for the amount of written communication he has wound up executing over the course of his career. He now considers effective communication a make-or-break skill for any developer who wants to get promoted. It might be frustrating, but communicating “clearly, concisely, and convincingly” is crucial to your success, Bargmann says.
And don’t forget about your code itself. It’s a powerful communication tool, too. HashiCorp’s Mitch Pronschinske believes the biggest challenge in computer programming is deciphering other people’s code—which requires that you understand their thought processes. Writing clean lines of code with comments is a must if you want future developers to understand why you solved a problem the way you did.
Just as your programming skills will mature with experience, all of these communication skills will improve over time as well, web developer Matthew Jones says: “This is not a natural skill for many of us, but just because we're not good at it yet doesn't mean we never will be. It takes practice and experience to become an effective communicator.”
Being a Great Programmer Goes Far Beyond Your Programming Abilities
To be a good developer, you must have a firm grasp of relevant programming languages--no question. But to take things further and build a long-term career, you’ll need to dig a little deeper. The best programmers are creative, quick-thinking collaborators, who keep learning as technologies change.
Coding isn’t done in isolation, and the ability to accept rapidly changing demands and work with a team to implement changes is crucial in this field. It’s one of the reasons bootcamp graduates tend to become great all-around programmers: Many have had the chance to develop sought-after soft skills in their previous careers and can then pair those skills with their more technical bootcamp knowledge for a competitive edge.
If you’re ready to find out how your skills will transfer to a career in programming, sign up for one of Fullstack Academy’s info sessions to find out more about our programs. We look forward to answering any questions you have.