The Developer Mindset

Congratulations! Just by reading this, you’ve taken your first huge step towards becoming a software developer (interchangeably referred to as software engineer). A lot of the developer journey has to do with having the appropriate mental approach. Not to say that there is an exact “appropriate” mental approach to becoming a developer, however, there are underlying concepts and strategies that will help you craft your mindset and approach software development.
Some qualities that immediately come to mind when crafting the developer mindset are:
- Curiosity
- Persistence
- Thinking Abstractly
- Creative Problem Solving
- Communication
- Attention to Detail
- Patience
Curiosity
Making the decision to become a developer is dedicating yourself to lifelong learning and having a strong sense of curiosity will get you very far. Your curiosity will unlock so many possibilities and create even more curiosity which will build upon itself and really ignite your learning. There is always something new to learn, whether that’s learning something in depth and learning by breadth. It’s safe to say, you will never get bored and there will always be something to unpack to feed curiosity.
Persistence
Software developers take on some of the toughest challenges, but that’s what makes the career so exciting - having the opportunity to tackle new problems every day! With that, one must have a lot of persistence to fully enjoy the journey and gain the satisfaction that comes with solving problems with code. That means practicing consistently and knowing when to take breaks so that you can get back to building your knowledge base.
Thinking Abstractly
Surprise surprise! As a developer, you will be working with computers - giving it instructions to handle inputs and asking for some output in exchange. Developing the programmer’s mindset includes having an intimate understanding of how computers operate and how they understand the instructions that you give them. Computers have a mind of their own (they speak in binary) and the reason programming languages exist is to offer a standardized way of giving computers instructions to execute the functions that we use on the web every day. What this means that you have to shift your mindset to think abstractly for the computer so that it can do what you want it to do, using the tools that exist to help you along the way.
Creative-Problem Solving
In your beginning stages as a developer, breaking down problems into smaller pieces and knowing what questions to ask is very crucial. There is a wealth of information on the internet to help your understanding of whatever problem you’re trying to solve. Many beginner developers don’t believe this, but your best resource for solving problems as a developer is GOOGLE! Over time, as you start to read and comprehend code, you will be able to make the connections that will enable you to break down the problem you’re trying to solve. With new terminology, it can be well worth it to google terms that seem unfamiliar so that you can understand how to use them in your code. Sometimes the amount of information may be overwhelming. If you’re coding in a particular language it’s good practice to include the programming language in your search. For example, if you’re coding in JavaScript and you’re learning about arrays for the very first time, you may google the following:
- What is an array?
- What is an array in JavaScript?
- Why and how do you use an array in programming?
Communication
One thing that distinguishes average developers from GREAT developers is communication. It is important to communicate your problem-solving process when learning to code. You’ll more than likely be working with other developers, product/project managers, clients and communicating the proper requirements for what you’re building. When interviewing for jobs as a developer, interviewers will gauge your communication skills to get an idea of how you’d communicate while working with a team of people. In fact, before developers at companies start actually coding on a new project (the planning phase), they will have many discussions on what to build, how to build it, who will be responsible for building what, etc. During the development process, being able to communicate what you’re working on, how it’s helping to solve the problems that were set forth in the planning phase is of the utmost importance.
Attention to Detail
A lot of a developer’s job is debugging existing code and as you build code on your own journey you’ll be doing a lot of debugging to get your code to work the way you expect it to. More times than not, debugging code will require you doing something that you already know how to do. Usually it’s something as simple as correcting your spelling or syntax (the proper grammar of your programing language). As you dive deeper into programming, you'll run into error messages that'll give context or details about where the program is having a problem. Reading the error messages, googling them, and trying different solutions based on your research will be a major key in your learning process.
Patience
Last but certainly not least, patience is essential as you lay the foundation for your developer journey. The information that you’re taking in is very new. It will take some time for you mind to adjust in understanding the concepts. There will be times when you don’t feel so great about your progress. Don’t worry, have patience with the process. It can be easy to feel let down because you’re not understanding something as quickly as you’d like. Use those opportunities to exercise your mind and trust that what you’re learning may take some time to click, but the knowledge will start to compound and accelerate your trajectory as you continue to persist.
GO CODE
Alas, programming is about learning how to learn in a way that works best for you, learning how to ask questions and how to solve problems. What's going to be the most important part of your coding journey is: ACTUALLY CODING. Getting that mind to muscle memory is very important for building the confidence and apitude needed to help you grow as a developer. It may a feel a bit unnatural at the beginning, but trust the process. New neural pathways will form the more you do it and you'll look back in disbelief at what you've been able to accomplish. That said, it's time to get to it. If you need some guidance along the way, here are some resources that you can bookmark to sharpen your developer mindset as you pave your developer path:
DWYL - a mission-based community of folks looking to change the world through tech
Coursera: Learning How to Learn
A Mind For Numbers: How to Excel at Math and Science (Even If You Flunked Algebra)
freeCodeCamp