Hey, what’s up, John Sonmez from simpleprogrammer.com.
I thought I’d answer this question today about sort of what do you do when you get
stuck, how do you come up with ideas, get to the next level. Sort of a long email, I’m
going to try to summarize some of it, but I’m going to read a lot of it because I
think this is important. This email comes from Paul and he says, “I’ll start with
the basics about myself. I’m currently 14.” That’s pretty cool. “I started programming
about a year and a half ago, somewhat on and off. I started with Java, really just messing
around with it maybe 6 to 12 months ago. I started a project that started off as an obligation
and found the prime factors of a number. I later upgraded the application making—implementing
it into a GUI and throughout my free time I’ve made some more miniscule updates to
it. However, in the program I’m really quite happy with is a custom scoreboard I created.”
I’m going to skip a little ahead here. He goes on to say basically that he’s gone
through these projects and he’s advanced on these. But he says that basically—“Well,
that was longer than I thought it would be. Personally I’m not sure what I should do
next. I’ve really found the hardest part about programming so far is getting an idea.”
This is what I want to hit on here. He says, “At the moment I only know Java well with
basic knowledge of HTML and CSS but I’m planning on learning C++ throughout the year.
I guess the whole point of this was to ask if you have any suggestions in general how
to get ideas or even which ideas to follow through on. Really, this was just a rambling
of a mad man, but hey, if I get something out of that it’s even better. Thanks for
reading, Paul.” So Paul, congratulations, I mean you’re
only 14 you’re already tackling some pretty complex stuff. You’re doing awesome. Don’t
feel like you’re not living up to the level you need to be. You’re way ahead. That doesn’t
mean that you should rest on your laurels either. I’m going to give you some advice
to help move forward. What I didn’t read in your email, because
it is fairly long, what sort of came out was this idea of you’ve gotten so far in your
development and you want to know—you said that the hardest part is coming up with ideas
so you want to know what should you do next, right, so how do you come up with new ideas
in order to make new programs. You did, I think, a scoreboard you said, you did a prime
numbers program, so what do you next? Really—and this is a common problem a lot
of developers run into is you want to separate this idea from coming up with an idea and
practicing. You’ll see this, I’m going to give you a kind of analogy here so you’ll
see this in the art world. Great artists steal. They don’t reinvent the new thing. The reason
why is for a couple of reasons. One reason is because when you copy someone else’s
thing you can practice the techniques aside from the creativity.
There are 2 sides of our brain and in programming we sort of use both of these. One is the creative
side where we come up with the ideas or we come up with new things and one is the technique
side which is more analytical where we’re actually implementing.
If you look at great artists, anyone in that profession a lot of times they’d copy first.
That’s how they learn. I did a video on Van Gogh Museum when I was there and he was
a copier. He copied a lot of art work. I believe Rembrandt did as well. A lot of artists when
they’re developing their skill they’re not coming up with new pieces. They’re copying
the brush strokes, they’re copying the scenes, they’re painting the exact same picture
someone else painted and trying to copy it as much as possible. By doing that they’re
developing their technique. Once they have their technique solid then
they use their creativity and create new things. Sometimes they play back and forth but that’s
what you need to do is when you get stuck in software development, a lot of developers
get to this point. They’ve come up with an idea. You did your prime number thing,
you did some scoreboard thing. What do I do next? I can’t advance my programming unless
I have a new idea. Don’t come up with a new idea, instead, go and copy something.
Find another application, find the next level more difficult thing.
I often tell—I did this video on learning. You can check this here on one of the—How
Do I learn complex topics, programming topics. In that video I said “Well, if you’re
app and write that because you don’t have to come up with the idea. It will simplify
things. Really your next step forward from this point
is to figure out something, what is the next level complicated program? Look for one that’s
already existing and then copy it and see how many applications. When you get to the
point where you can take application that someone’s built and you can copy that and
you can write that code, then you know that your technique is proficient enough that now
you can go and create your own ideas. You don’t want to be bounded by your own creativity
and also it will stall you out in the process. If you’re creating while you’re trying
to develop technique you get confused and you wonder if you’re doing the best thing.
It’s better to just copy at first. Don’t be afraid to steal.
One other thing I’ll give you here on top of that is you can make things better. A lot
of times someone will copy someone else’s idea or program and then they’ll figure
out as they’re doing it ways to make it better and then they develop their own version
of that. Almost everything in the world when you see—there’s very few things that are
new. Everything is usually a copy of something that’s been improved. Really that’s the
skill that you’re going to need anyway. Anyway, congratulations on everything that
you’ve done so far. I hope this helps you. If you’ve got a question for me, email me
at [email protected] If you like this video, subscribe. Take care