Much like developing a code project, making yourself into a software developer is something that can’t be done in one sitting. What’s more, our enthusiasm about the idea of doing it is often at odds with our confidence about how to do it.
When we’re feeling lost, it becomes more tempting to give up. We’re in the danger zone!
We need to take a deep breath and realize that it takes time to become a developer. Just as writing an app involves putting together building blocks to create a more complex whole, we become a developer by learning skills that build on each other.
The journey to develop a software project from scratch usually starts with smaller details. As seen in the example above, if you were developing part of an online shoe store, you might start with one simple function.
Perhaps you have a function to check the age of a user. This might go into a component, including the display where the user inputs the age. The age input form is part of the order confirmation module, which is part of the whole store, itself.
You start with building small parts and put them together to make something big.
(Pictured above: a sampling of skills you might learn for Front End Web Development)
The project of making yourself into a developer also starts with small parts and builds them into a larger whole.
If you haven’t learned a coding language before, then you probably start with learning the syntax of a language online. Then you learn a design pattern, such as the React pattern taught in Codecademy’s React.js modules.
Learning a coding language is a bit like learning a spoken language. Learning to write good code and make things is more like learning composition, how to write coherent articles.
The main skills that you need to exercise or develop in this phase are studying skills, and the determination to practice. You should be doing a lot of example projects to reinforce your skills.
Around the time when you you’ve learned a language and how to program in it, you probably learn that you’ll want a portfolio of projects to help you get hired. When you start trying to make projects, you begin working on specific problems.
In every project, you’ll hit stumbling blocks where things don’t work the way you expected them to. From this, you learn persistence and problem solving. You get good at Googling solutions.
You should keep pushing through these obstacles to build your skills. Keep trying to push yourself with each project. Balance challenging yourself with staying within your competencies.
Push yourself but don’t break yourself.
This phase is like learning to use woodworking tools to make a nice piece of furniture. It’s all about learning to make a finished product with the tools you’ve learned to use. Your first attempts are not going to look like the best stuff out there. You have to keep practicing to get really good, like with anything.
Throughout the project of making yourself a developer, you are growing your ability to plan and break down the complex to move past uncertainty. You will face many challenges and low points. One of the best things you can do is stay connected to a community that can help you bounce back when you balk or falter!
You can’t do it all in one day, any more than you can make an entire app in one day. Many times, you may feel a ton of enthusiasm for the project but have no idea what you should do next. When you sit down to work, you might feel lost.
If you feel this way, it may be because, in that enthusiasm, you are trying to move in leaps and bounds. But it’s all about making little building blocks and putting them together one by one.
Don’t trip over yourself.
At any given time, try writing your goal on a whiteboard—or whatever medium you can use—and then see if you can break it down. When you have something that you can act on, it won’t be so hard to move forward.
Don’t be afraid to ask your community for help or for direction, as well. Just be sure to be tactful and polite, and people will be happy to help.
I hope this clarifies your attempt to tackle the big, complex goal of becoming a developer. Happy coding!