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 trying to learn JavaScript then copy the g-mail
app.
Make your own clone of the Google mail 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 john@simpleprogrammer.com.
If you like this video, subscribe.
Take care