Lots of people set out to learn a language, take a course and then at the end of it don’t know what to do next. They don’t feel they are a coder, they still can’t do anything of substance. We all go through this. There is a chasm between knowing a programming language and being able to do things with it. The next step is to learn to write an application. The real challenge here is to pick an application that is the right size and complexity.
Many of us enter the world of programming with a dream to build some killer application. We read of other people who knocked up some great visually appealing application overnight. The reality is that the people who brought us Facebook, Twitter and Google did not do it on their own. They didn’t do it over night and for each company that made it you can find many more that didn’t.
We may well go on to build a great application but first we need to build our basic skills. Once we have the basics sorted that will allow us to apply ourselves and our skill to a great idea when it presents itself to us.
So how do we bridge this chasm between learning a programming language and being able to build applications?
We can use YouTube examples, we can use blog post, we can use online tutorials, we can go to boot camps. All of these things we can do and to be fair I offer many of these to help people learn and improve their Java programming skills. However, just following what other people have done is not enough. We need to learn to solve our own problems. Use these other resources to provide ideas of what can be done and how to do things and then come up with your own idea.
Once you have an idea then sit down and write out how we think we will do this. We are not talking about writing the book “War and Peace”, just enough to describe what the application needs to do. This will allow us to know when we are finished. For example, we might decide to write a notepad application but decide not to implement the find and undo options. This reduces the amount of code required for our first application but still delivers something meaningful.
The challenge is to pick something that is sufficiently challenging but not overreach ourselves. We want to build success on top of success to gain confidence, not end up in abject failure, disillusionment and ultimately give up on our dreams.