Hey, what's up?
John Sonmez here from simpleprogrammer.com.
Hey, I just want to give a quick thanks to one of our sponsors at Simple Programmer which
is DevMountain Bootcamp.
You should go check them out.
The link is in the description.
They are a coding bootcamp and they can teach you web development, iOS development, UX design,
a lot of good stuff.
I get a lot of feedback from a lot of you out there that email me have told me about
DevMountain, so I decided to check them out myself.
I like what I found.
I like their programs.
They offer some 12-week intensive programs.
They also offer some after-hours programs which I know that some of you will like.
Go check them out.
You can see the link in the description below, DevMountain Bootcamp.
A big thank you to them for sponsoring Simple Programmer.
I got a question about whether I should focus on learning one language or learn many others.
This question is from Santiago.
I like to say that, Santiago and he says, "Hey, John.
I'm going to start an apprenticeship this summer (Thanks to you).
I asked my future boss what language we'll be learning: Mostly Java, PHP and SQL.
Now, I am asking you if I should stick with these and really focus hard on them or if
I should learn some other languages (e.g. C, C#, Go, Python, Ruby) additionally to the
apprenticeship.
Are the languages that we are going to learn well for things like artificial intelligence
or if I would like to become a software architect?"
Additional info.
This is pretty cool.
He says, "I'm 14 years old so I never had any working experience.
Just built some programs and websites on my own."
Well, first of all, I have to congratulate you that you're 14 years old and you got this
apprenticeship, that you're watching these videos, that you actually are so focused on
your career that early in life.
That's awesome like no matter what you do, I think you're going to be fantastically successful
and wow.
That's just awesome, so great, great job on that.
As far as learning programming languages, I would really focus—I don’t think –I
mean as far as Java and PHP and SQL, are those good for artificial intelligence?
Maybe not the best.
I think Java perhaps.
I think Python is probably what I would say for artificial intelligence, although there's
plenty of people doing Java stuff, but I don’t think that's so, so important.
As far as becoming a software architect, obviously, any programming language will probably do
in that case.
Here's what I would say.
I don’t think it's very beneficial to learn a bunch of programming languages.
I've talked about this before a lot, this idea of people just like gathering knowledge
and putting it in their bag of knowledge for no purpose.
You should always learn things for a reason.
You should always say, "I want to learn X so I can do Y."
What is your Y?
Right?
Now, in this case, when you're doing an apprenticeship, it's though your Y might be so I can actually
do my job so I can get paid and do my job and learn what I want, right, because you're
so young and you've got this opportunity.
That makes sense, but eventually in life you're going to have to say your Y is going to have
to be something like you have to decide.
I want to do artificial intelligence.
At that point, you're going to say, "I need to learn whatever it is, Python and this artificial
intelligence library, or whatever that they're using in order to be able to write this artificial
intelligence bot that I'm working on or whatever that is."
The key thing is that you focus based on that outcome.
Getting a bunch of other programming languages right now is not going to be very beneficial
for you.
In fact, what you really need to focus on right now is getting a lot of depth.
If you learn a lot of programming languages that you're not using, you're not going to
have very much understanding.
If you don't apply what you're learning, it's going to go poof, out the window.
It's not going to be very valuable.
You might retain a small percentage of it, but it's just going to work as exposure.
It's not going to actually give you a true, true understanding which is what you need
to become a good software developer.
My advice to you would be this: Focus on the couple of things that you're learning or one
programming language.
Java, in this case.
It sounds like Java and PHP is what you're doing there.
Focus.
Put all your effort, all your energy into learning that with as much depth as possible.
Depth is really important and it's amazing how depth carries over.
There are so many people that enter the software development field that were experts in some
other field that had a lot of depth and they come into software development and, magically,
that depth carries over, even though it doesn’t directly apply but they've gone through the
process of acquiring depth of becoming really good at something.
You'll see this a lot in life.
You'll see that there's people that become really, really good at something, really good
musician or really good athlete and then they actually have a couple of areas in their life
that they become really—they try something else and they become like top in the world
at that other thing that they do and it's because that ability to get depth, to really
go deep, to really focus to work without motivation, to train hard.
That carries over and that's the more important skill.
That's the higher level principle.
It doesn’t really matter what programming language you're using.
It matters that you invest the time to understand the depth of that programming language and
programming in general.
My advice to you is stick with just what you're learning for now.
Don't try and learn all this other stuff until you need it.
When you need it then change your focus if you need to and focus specifically on that,
but Java could probably take you through your whole career if you want to.
I mean that would be fine.
Just focus on that.
Don't get distracted and don't worry about—you can't possibly know everything and you can't
possibly be good at everything, but it's way, way, way more valuable to have a very deep
specialized knowledge.
Again, I'll give you my playlist.
I've got a playlist on specialization which really hits home the point.
If you watch those videos, you'll see me time and time telling people again that they need
to specialize how important that is and how much to focus on that.
Learn one programming language and learn it really, really deep.
At some point, you could expand your knowledge and you can learn other programming languages,
but having a shallow knowledge of a bunch of programming languages is pretty useless.
It's like being a guy that can answer a bunch of—that's good at trivial pursuit.
Being good at trivial pursuit, worth the skill.
Same thing being good at a couple different programming languages.
Instead, it would be much, much better if you have a depth of knowledge in one particular
programming language.
Focus on that, especially now, especially starting out.
All right.
I hope that video helps you.
Again, congratulations on being so wise at a young age of 14.
You've got a huge career ahead of you.
If you liked this video, click that Subscribe button below if you haven't already and if
you want to ask me a question, you can email me at john@simpleprogrammer.com.
I'll talk to you next time.
Take care.