tl;dr
How do you start a project? Do you plan from beginning to end? Try conducting an experiment instead, one which approximates part of your goal. Then show it to someone, and ask for help to guide your next steps. This same activity, starting towards a goal, is how we grow as developers.
Thinking about Starting
"Thinking about" a project is an important activity. While a lucky few have stepped in greatness before, we often have a goal before we start. A goal isn't a plan though, it's a direction in which to move.
A goal might be "Build a server that responds to an endpoint." or "Add validation to the payments form." or "Build a giant Sudoku puzzle." It could be big or it could be small, at the start it's hard to tell!
The Danger of Planning
The plan comes in when we pick a goal that is, by itself, hard or impossible to achieve. How do we build that server? We can't wish it into existence, so there are some smaller steps.
In my experience, plans are needed in software when there is real risk involved. Should we invest thousands of human hours into an idea? Is the change irreversible? Then let's come up with a plan!
This is where I see many people get stuck. They pick a goal that is for them very large, and they try to plan a path there. This is a hard task, that requires some experience in the problem domain.
Starting an Experiment
There is often a more direct path though, although it may seem less obvious. That is to think of an experiment you have an idea how to do, that approximates some part of your goal.
This experiment could be absolutely anything that you can do, and it may still involve some research. It could be a basic application, or some pseudocode, or a spreadsheet. The operative word here is do, as in to bring a task to completion.
It may seem silly to build something so basic when your goal is so lofty. But the reason is fairly straight forward. You can't walk the path by sitting on your hands, and if a plan is sitting between you and your goal then go around it.
Supercharge with Feedback
Now you have your pseudocode, or spreadsheet, or application! Now what do you do? That's a great question, I don't know! But someone else might if they observe your experiment! Just forming the words in your mind to explain what you've built can transform your knowledge of it.
And this is for many people I think the hardest part of it all, which is to grow the fastest you have to ask for help! You could just ask your future self for help by staring at your work for a while, but even they'll do better with a second opinion.
How to Grow
How to grow as a developer is really just having the courage to start over and over again. Each time you start you confront the unknown, and overcoming that is the genesis of eventual knowledge.
In the end, you can't plan inspiration and personal growth. You can only till the soil in which that inspiration grows. So experiment, start, and most importantly do.
Top comments (0)