hey what's up john sonmez from
simpleprogrammer.com so I got a question
about when to learn a second programming
language I thought this was an
interesting question because this is
something that a lot of people encounter
especially if there are new developers
and they've learned their first
programming language and now they say
well what what at what point should I
dance my skills and try to take on a
second programming language so here's
the question here it's from Paul and he
says how do I know if I'm skilled enough
to move on to learning a second
programming language and he says I'm
still learning Python and I've gotten
decent at it so here's the thing there's
no reason to learn a second programming
language unless you need to use it or
you're planning on utilizing the second
programming language right so if you can
do your job and you can and you can
still advance and you don't feel stifled
or stuck there's no need to there's no
need to learn a second programming
language so what you shouldn't be doing
is you shouldn't be saying okay well let
me learn Python and then once I feel
like I've learned Python enough I'm
gonna learn a second programming
language now don't don't get me wrong
here I don't think there's anything
wrong with learning multiple programming
languages I think it's a great idea I
think that as you learn multiple
programming languages you're gonna see
things from different from a different
paradigm and/or from different paradigms
and that's going to enhance your overall
ability as a programmer as you see
different ways to do things and you see
what's idea Matic in one language
then what's idiomatic in another
language and that influences how you
think about the overall picture of
software development but with that said
too many beginners are trying to acquire
what I call the the Batman tool belt of
knowledge and the problem with that is
that you you hire all these you know
gadgets that you think that you're going
to utilize but you never end up
utilizing them so you end up wasting a
lot of time and today you can't get away
with that and the reason why is because
technology changes so fast right
everything is changing so rapidly you're
having to learn new programming
languages JavaScript frameworks all of
this stuff that's happening all the time
so you can't waste your time learning
things that you're not actually gonna
use or that you don't need if you learn
your first programming language okay and
you're moving along
and you say gee I would really be able
to expand I've sort of hit this plateau
and I would really be able to expand my
abilities if I learned a second
programming language so I could I could
you look at things a little bit from a
bigger picture I only know how to do
things in this one way and I'd like to
see things from a bigger picture then
that's totally fine it and you can
decide this early on right I mean you
don't have to become a master in a
programming language I would suggest
that you become at least an intermediate
level right that you actually have done
well that you can do most programming in
your first programming language before
taking on a second one although you know
a decent argument could be made to say
that you could learn multiple
programming languages at the same time
and that would enhance your overall
ability to learn how to program some
college programs actually do that which
is kind of interesting but but here's
the thing so yeah I kind of psyched out
there but what I'm trying to say is
essentially what you want to do is if
you're gonna learn a second programming
language is at least have something that
you're gonna utilize it for and a reason
for learning it otherwise you're not
actually gonna learn it it's not
actually gonna stick it's not actually
going to benefit you I always tell you
right if you've been watching this
channel that you you learn so that you
can do I want to learn X so I can do why
you always have to have that if you
don't have Y you don't have you
shouldn't be learning X okay just
learning for the sake of learning is not
usually beneficial now the only
exception to that is acquiring general
knowledge or base knowledge or you know
sort of things that you spend all that
you can acquire in down time that
doesn't cost you anything for example
listening to a bunch of audible books
audiobooks all the time while you're
running or driving in your car it makes
a lot of sense you know the more
practical they are obviously the better
but just acquiring that kind of
knowledge in feeding your brain can be
useful but if for programming for trying
to advance your career for trying to
adventure technical knowledge that stuff
doesn't work learning a programming
language never using it is not going to
benefit you much it might give you a
slight paradigm shift but in two to
three years you're gonna forget all
about it you're not going to use it it's
it's not gonna have any kind of benefit
so at the very least you should look for
some kind of project that you're going
to do in this new programming language
and make it something that
maybe he's gonna have a secondary
purpose maybe it's actually gonna be
some kind of tool that you're gonna use
for yourself maybe it's gonna be a tool
that you're gonna use for work maybe
it's gonna be a side project that could
actually generate you some money or
build a business out of that right or
maybe you find another job
that where you use that programming
language or you do some freelancing
where you're going to have some kind of
benefit where you actually need to learn
the language right in order to have some
some value some lasting value from that
thing because again a lot of people
trying to learn stuff they try to
acquire this tool belt especially a lot
of beginning programmers because they
think they need to know all this stuff
they need to check off all these boxes
so they know all this stuff and now now
they're a good programmer and what ends
up happening is they they end up wasting
a lot of time learning stuff that's not
useful right there's there's there's
broad kind of knowledge things right
there's a lot of things that you can
learn in the technology field that will
be widely applicable or that will have
cross-cutting concerns that will have
that will cross over into other realms
but there's also various deep specific
knowledge that is not beneficial not
extremely beneficial outside of its own
realm and programming languages for the
most part tend to fall into that right I
mean like I said again there's a
paradigm shift there's different ways of
when you learn multiple programming
languages it does carry over and
increase your overall knowledge and
ability but in general it's specific
knowledge and that specific knowledge
it's not gonna be so useful right if you
don't actually use it so all I'm saying
here is this it's basically like if
you're going to learn a second
programming language it's not a matter
of how much you master the first it's
not a matter of timing right you should
have at least an intermediate level of
the first programming language you don't
want to it for the most part you don't
want to try to learn multiple ones that
time at a time that's gonna be quite
difficult but what's really important is
that you just figure out the why why are
you learning this programming language
you know the the why could be because
you want to expand your knowledge you've
hit the plateau but you still need the
why of what you're gonna build you need
to know what is it that your I want to
learn X so I can do Y and you've got to
figure out what is that that Y right
I'm using two different y's here like a
variable Y and the Y you should do it so
that's a little confusing but I hope
you're following what I'm saying here
one other thing I would say about this
I'm gonna give a quick plug for if
you're trying to do this if you're
trying to learn a second programming
language if you're trying to learn
anything quickly one thing that you
might want to invest in before you
invest in actually learning the second
programming language is to learn how to
learn how to learn faster you can check
out my course I've put together a course
called ten steps to learn anything
quickly you can check it out there and
that course is all about teaching you
how to learn programming languages how
to learn anything
not just for grabbing languages I added
actually a bonus module that talks about
how to learn programming languages
lately but I use this right I use this
technique I developed this technique to
learn I probably learned in about three
years I learned probably like six or
seven programming languages and taught
taught classes on them taught actual
video courses on Pluralsight you can
check out all my Pluralsight courses
here and you can see and I'm not I'm not
kidding I'm not making this up I did go
to learn I learned the dart programming
language and in a matter of weeks and
then taught a course recorded and taught
a course on that go lua I'd have to
think about it they're a bunch of other
ones that are in there you can check
them out as well as well as frameworks
and all that stuff so anyway I hope that
answers your question it's it's it's
definitely a sticky question you know
there there's some good books like learn
I think it's learn seven languages in
seven weeks that's you know that's
probably the exception to this rule
where you're kind of dabbling and you're
just kind of taking an introductory view
of a bunch of different programming
languages and playing around with them
just to broaden your your perspective
that would be fine but as far as like in
depth learning of programming language
the advice I give you in this video is
what I'm sticking by you don't have to
agree in fact if you don't leave a
comment below I'm always curious to hear
other people's opinions if you like this
video if you want to get more videos
like this one if you want to see me flex
click the subscribe button below I don't
know I don't know why you know if you
could just subscribe but I'm gonna flex
for you
but if you haven't subscribed already go
ahead and click that and I will talk to
you next time take care