Don't learn to code.
Today, I'm going to tell you about a really important concept that I think is going to
help you in your career, which is the idea of learning to solve problems.
So many developers, they're focused on the syntax, they're focused on the language, they're
focused on learning to "code" or to program, but not on solving problems.
I can tell you why that's so important in a second here.
If you're just joining me for the first time, I'm John from simpleprogramer.com, and you
are in the place on the web to find soft skills training for software developers.
There no one that does it better and more than we do here at Simple Programmer.
Click that little subscribe button down there and click the bell so you don't miss any of
the videos that come out on this channel.
A lot of new developers, even a lot of senior developers don't understand, which is that
what you need to do as a software developer is learn to solve problems, not just to code.
I think there is a real emphasis, especially for people that are starting to learn programming
who want to get into this field, there's a real emphasis to learn about the structure
of the programming language and all the syntax of it, and to focus on that as being the important
thing to learn.
That's really not the critical skill because as a software developer, as a programmer,
you are not going to, I mean, it is important to know the language that you're using, but
the more important skill that you're going to be required to utilize and that is more
difficult to learn is the actual ability to solve problems, to break them down, and then
to translate to code, right?
You have to know both, but if you could only develop one skill as a software developer,
I would actually teach you to not even know any syntax of any programming language, just
pseudo-code, and just teach you how to take problems and to break them down into the smallest
components and pieces.
Ultimately, this is what determines whether or not you're a good software developer or
not, right?
As a software developer becomes good at their craft and is able to really excel, what their
ability really is, it's not knowing programming languages, it's not knowing frameworks, and
all those things.
Those are all useful, but it's not that ability.
It's the ability to essentially take what is a problem to break it down into small pieces
that can be understood, and organized well, and to break those pieces down into smaller
subsystems and components until that problem is broken down to the point of a single line
of code, or actually even within that, the actually operations that make up that line
of code.
That's what a really skilled software developer, that's what they're able to do.
They're able to see this big problem and they're able to break it down logically, and you keep
on refining, refining, refining until you get to a single line of code.
When you have that ability, it becomes really easy to write code.
Why?
Because at the point that you've broken it down that far it's just a simple translation.
It's just a simple translation from, I want this thing, this code that I know how to do,
and you don't even need to know programming language to do that, right?
You could literally have the ability to break problems down and break them down to smallest
atomic detail, and then you could literally go and look up the syntax and figure out in
that programming language how to write that line of code that will do that thing.
In fact, I've done that many times.
I have written code in programming language that I knew nothing about, and the way that
I was able to do that was that I refined the skill of learning to breakdown problems.
I have a couple of resources that I'm going to point to.
I've got one which is a company called Interview Cake.
We'll put a link in the card up here.
They're friends of mine.
They give you coding interview type of algorithm problems, which is good if you understand
how to do those.
I've got a course on Pluralsite that also teaches you that and shows you that step-by-step
how to do that.
You can check those up.
Go sign up for Pluralsite, if you haven't.
And then, there's, of course, a book called Cracking the Coding Interview.
I do feel like the other two resources will be a little bit better because they're a little
bit more interactive, but those are the kind of things that I'd recommend.
The point of this video is just to make you aware of the idea that, especially as you're
starting out as a beginner, or even if you're somewhat of an advanced programmer, but you're
struggling, like you don't feel competent, you don't feel like you can always solve problems
and write code, you feel like you could fix some bugs, you feel like you kind of get,
but you don't understand how these guys are able to like, how would I build an entire
app by myself?
These are questions I used to ask myself.
How would I, it doesn't make sense to me how I would create an entire web application,
or I could work on a piece of this, but I couldn't design and create the whole thing.
The biggest thing is everything is a problem, right?
If you can learn that skill of breaking down problems and translating them, and if you
can focus on that, you're going to get a lot further in your career, where so many people
are focused on the language.
Things have changed a lot over the years.
I've believe, probably, 20 years ago or so, even when I was first starting out and learning
programming, understanding the language and the syntax of it was way more important than
it is now because you didn't have as much resources, and you didn't have as many libraries,
it was a lot of, what you were doing was solving problems within the language, and knowing
the ins and outs of the language was critical.
Now, as a developer, it's all a mash-up, it's all these different technologies.
Everything is changing out from underneath you, so you have to really focus on actually
learning how to breakdown problems, and then translating that ability to whatever language,
whatever domain it is.
You're going to find that it's all the same.
It's all the same once you have that skillset.
That's the reason why, also, you can know one programming language, and if you've got
the skill to breakdown problems, you could go, literally, to a company that programs
in a totally different language, and I've done this before, I've gotten jobs like this,
and you could within a matter of weeks be able to program in that language at pretty
close to just as high a level as someone who's been doing for a longtime because the critical
skill is that ability to breakdown problems.
All right, guys.
That's all I have for you today.
If you have a question or a comment, leave it below.
Make sure you click that subscribe button, if you haven't already.
You don't want to miss the new videos that we're going to be putting out on this channel,
and I will talk to you next time.
Take care.