Detailed Notes
Our site has a number of tutorials (develpreneur.com) or check out more videos on this YouTube channel.
You can find out more through our online classes (including a Java bootcamp) at https://school.develpreneur.com and register for free. Registration will add you to our email list and you will periodically receive coupons for courses as well as notifications of the latest releases.
Transcript Text
foreign [Music] well hello and we're going to talk in this episode in this session we're going to spend a little time talking about what language is it that you might want to select if you're going to either add one that's you know to an existing list of what languages you know or if you want to start out in something because you don't really have a language that you can say is you know that's yours that you own or essentially that you have mastered now there are dozens if not hundreds of programming languages out there so it's a very valid question which one should I learn what should I learn now they have broad or narrow use there are some languages are very Niche or Niche there are some languages that are very specific to a certain platform or a certain task and then there are others that are very general purpose and you can use them for just about anything out there there are many ways and we're going to talk about these a little bit to base your decision there are many things to consider when you're trying to figure out which language it is that you want to learn or that you should learn now I'm going to start with five big areas that you should think about we're talking about the utility of the language or the languages that you're considering the popularity the community around them documentation and tools these are generic types of categorizations but I think they'll help us in our conversation and give you some things to essentially you know put some scores to or put some sort of metrics to when you're trying to make that decision first off utility what kind of applications can you build how useful really is this language is it very Niche and if it is that may be okay because that may be a niche that you want to get into for example let's say that you want to let's say you want to build Hardware integration applications like Robotics and stuff like that so you don't really need a UI what you need is you want to build something you want language allows you to build that the smarts behind making Hardware move there's certain languages or certain environments that are going to do that and those are going to be very you know Niche but if that's what you want to do knock yourself out that means that's probably you know something that's going to be maybe a mark for you however if you want to build applications that are let's say for you know for phones that mobile users on their phone can use and the language doesn't support that then that's a language that you're probably not going to want to you know use or learn now within this you not only want to look at platforms as far as like platforms and application so it would be things like and is it a web application can it do mobile can it do desktop because those are factors that you may want to consider and there's also things like is it is it going to allow you to custom like and there's a lot of ways to go but they allow you to do very intricate interactions as a user with the hardware for like example a drawing application or maybe like a really nice design type application graphic design those kinds of things are going to be limitations you know maybe it doesn't really work well for that language to do the type of applications that you're you're thinking and so that would be a reason to not learn it also what resources are needed there are some situations where you've got a language that it requires more power or more uh more modern configurations or maybe licensing and things like that that you don't have or don't want to do there are a lot of languages out there when you look at some of these sasses that are out there some of these software as a service or platform as a service there are things out there like a a sales force or a netsuite or some of those kinds of solutions or sap or body just name one of your major Solutions out there and they require sometimes that you you know you have to you have to have a real license a paid license to be able to get a developer license or you have to go through you know some hoops and some things to prove that you are a valid developer for them those things may be more than you have the ability to do right now maybe you don't have those resources so it's not a good language for you in that situation the popularity is a couple of different ways that you want to look at this one is not just general population as far as like how many how many people like doing this or how often do you see it in the trade magazines but how often do you actually see it used in projects what sorts of projects use this and this you can find if you go look at job sites and project sites and things like that if you look at the sites that are out there and what is it that are job postings related to this what are they looking for how many are out there what kinds of projects are they what kind of Industries are they in do these things make sense to you they may not it may be that it's a situation let's say that you have a language that you see is really heavily being used in healthcare and you don't want anything to do with health care for whatever reason so that would be a language that you wouldn't but if it's you do want to get into Health Care then that would be a language you want to look at and then so with this where will you use it is it is this a language that is a and it goes a little bit back to how they're used is it something that you would use day to day like every day for example like a general purpose language like would you be a Java developer or a c-sharp developer where you're using this all the time and you're building things Solutions with this or is it something more where you would have some other skills and you would use this like let's say although it's not maybe a perfect example but maybe like SQL maybe you would be you know a developer of some sort and you would use SQL you would use it as part of database Integrations and working with databases but maybe that's not your primary language and this goes into which would you want to do yeah where do you want to go with it if you want to be a database administrator then yes SQL is critical if you want to be a front-end JavaScript react developer you know pick your favorite you know front-end framework then maybe you don't need it at all maybe it's absolutely useless to you so is this something that you're going to use in the kinds of jobs that you want to have or in the kind of job that you have is it a way to advance your career directly or is it something that would now take you off into different projects and that in itself is a question that you you need to decide whether that would be something you would want to do are you you know for lack of a better term bored with your day-to-day work and you want to do new things or do you love your day-to-day work and you want to become more proficient in the tools related to that because how you answer these questions where these languages lie is also going to tie into what did you what do you want to do where do you want to go Community is critical with a language where can you get help is there support and it's really where can you get help if you're sitting there at you know midnight or 2 A.M you've got a problem you've got to solve is there enough content out there on the web that you can do some searches and you can find ways are there people out there that are active so that if you put a CO a question out to you know a code side or a group or something like that that you'll get a reasonable response back in a reasonable amount of time and by that I mean a response that's actually helpful and you know you can get within hours or maybe a day or two at most not something where you post and there's no responses for six months so you can jump into a language without a community but it's going to be a lot harder and definitely if it's your first one you know you want to get something where it's it's established you've got that community when you get further in when you've got dozens of languages under your belt okay then maybe that might that might not matter but particularly if this is something you're going to use a lot this is a daily use language you want to have that kind of community you want to be able to and it it doesn't have to be on the internet it could be your organization it could be something that everybody else in your company uses that and so that is your community but it's really you know comes back to where where can you get support and it may be from the vendor and maybe they're really good but more often than not what you're going to want to have is that community that also provides support whether it's sponsored by the vendor or not documentation because sometimes it doesn't matter how many people are out there how big the community is sometimes you need some sort of documentation you need a technical reference because it's just too slow to go out there and say hey what's the you know what is the Syntax for this kind of call or what are the parameters for this or what does this parameter do are there you know technical references type documentation so maybe like tutorials that will help you get started and get you to understand the the basics and the fundamentally fundamentals of it but also how do you take it beyond that how do you go beyond the hello world program or something similar to that and actually learn and master that language what are their you know books written on it are there really good technical references within their documentation do they provide tutorials are there third-party people out there vendors in that to provide tutorials you may even consider certifications are there certifications available and if so how are the what are the paths basically to get certified how would you learn those how would you get to that point and are those things that you have available so that you could you know take your general understanding and turn it into mastery now tools this is another key that I think gets overlooked sometimes until you've been in a situation where you've got a language and you've got good tools and then you try to go to one that doesn't have those this is basically what is available to help you leverage your language knowledge and to be productive now it may be that the language has zero tools or the tools are hey you can find an editor you can write code in the editor and then save it and compile it or something like that but that's gonna be slow and you may say I can write code fast and all that but when you start getting into especially any kind of a a complex type of a solution or problem that you're solving you're going to want things like some sort of you know tracing and debugging tools you want to have something that allows you to work with and integrate with Version Control and now a lot of tools have like syntax highlighting and things like that that make it just they're common editing tasks that you may be able to do in a general code you know developer type of environment and there's some really good ones out there but it is nice to have that that extra level of tool available so that you can really you can be productive and sometimes even it helps you learn the language better so with all of this I know it's mostly been questions but it does come down to a very individual choice when you're thinking about learning another language or mastering one that you sort of know you really want to consider the time that's invested or that you're in some cases that you're willing to invest is this something where you're like hey I've got a weekend and I need to know something and for whatever reason I need to like get through this in a very short period of time or is this something where you've got months and years where you say well I want to just start working on this and get better and better and better those things are critical differences and will weight all of these questions we've talked about for example if you don't have but a weekend to learn it and there are no tutorials there's no real documentation and that's a that's a non-starter right there also consider the value which is sort of within this time invested what's the value to Career your career is this something that is totally going to be a a hobby type of language or skill that likely will never be used in Anger you'll never get paid to do it that it will never put you in a situation where you can solve problems that are going to advance your career then maybe you don't want to do it there is not nobody gets bonuses or you know gold stars for knowing more languages it's about being able to utilize the tools you have just like if you were in construction if you go and buy a let's say a drill and you never do construction jobs that need a drill then that thing is useless you can be really awesome with it but it's no good you know it's not really helpful so it would only be just because you want to do it you know sort of like for fun or for a hobby which does bring up are you thinking about this for fun because it's something that you just think would be cool to learn in the projects that it does are cool to learn or are you looking for these to be things that are profitable that would Advance your career a really good example would be things like Raspberry Pi or Unity or things like that where and just a step back a little bit to that so Raspberry Pi is being able to basically build your own machine I know I'm simplifying but let's just I'm going to keep it at that because I don't want to get too far off but it would be something that could be I know a lot of people it's like it's cool it's fun it's a hobbyist type project it may be something they eventually use to build a a development machine or laptop or something like that or a gaming machine that they're going to use but it's really not something that they see directly helping their career it may eventually do so but you know not at this point it's like hey this is something I want to learn something like Unity some gaming language could be the same thing where you're professionally have nothing to do with game development but you want to write your own games you just you want to do that for fun and maybe it is something you want to do it for fun but you don't want to get paid because it would ruin the fun of writing your games however you do this though plan your approach think about it don't just and this happens so often it it's I think it's gotten better because it used to be that you would go to bookstores this is places that were like brick and mortar that had these things called books that were actual physical things and not digital and you would see rows and rows of learn this in 24 hours learn this in 21 days learn this and you know by lunchtime or whatever it is and these things were there's a whole industry that was built on we're going to teach you something you know a language or an environment super fast and then you can use it but in a lot of cases people didn't they're just like oh well I'll just throw away a weekend and I'll go learn this and then they realize that it really didn't they didn't learn it enough they didn't give enough investment and it wasn't valuable to them so think about it you know step back a little bit before you jump into that next language you want to learn and walk through some of these questions ask them of yourself what is it you know what are your goals in this and then use those questions to sort of interview the languages that you're thinking of learning if you do so I think it'd be far more likely to have something that is a a skill that you enjoy that is helpful for you and you will not have that buyer's remorse of time invested that just never really came to fruition so plan your approach and I think you will find yourself much happier at the end of the the process thank you for your time hello this is Rob with developing or also known as building better developers wanted to announce that we have school.developmentor.com feel free to check it out if you like any of this information any of the content that we've sent and you would like to see more you can come out you can enroll for free we have free courses we've got places for you to get better at just learning a technology or how to's you can work on your business skills we can help you with becoming a better developer as encoding and things like that a lot of the stuff you've seen on YouTube we also have out at school.developmentor we just have it a little more of a educational format and a way for you to track your progress as you move forward becoming a better developer foreign [Music]
Transcript Segments
foreign
[Music]
well hello and we're going to talk in
this episode in this session we're going
to spend a little time talking about
what language is it that you might want
to select if you're going to either
add one that's you know to an existing
list of what languages you know or if
you want to start out in something
because you don't really have a language
that you can say is you know that's
yours that you own or essentially that
you have mastered
now there are dozens if not hundreds of
programming languages out there so it's
a very valid question which one should I
learn what should I learn
now they have broad or narrow use there
are some languages are very Niche or
Niche there are some languages that are
very specific to a certain platform or a
certain task and then there are others
that are very general purpose and you
can use them for just about anything out
there
there are many ways and we're going to
talk about these a little bit to base
your decision there are many things to
consider
when you're trying to figure out which
language it is that you want to learn or
that you should learn
now I'm going to start with five big
areas that you should think about we're
talking about the utility of the
language or the languages that you're
considering the popularity
the community around them
documentation and tools these are
generic types of categorizations but I
think they'll help us in our
conversation and give you some things to
essentially you know put some scores to
or put some sort of metrics to when
you're trying to make that decision
first off utility
what kind of applications can you build
how useful really is this language is it
very Niche and if it is that may be okay
because that may be a niche that you
want to get into
for example let's say that you want to
let's say you want to build
Hardware integration
applications like Robotics and stuff
like that
so you don't really need a UI what you
need is you want to build something you
want language allows you to build that
the smarts behind making Hardware move
there's certain languages or certain
environments that are going to do that
and those are going to be very you know
Niche but if that's what you want to do
knock yourself out that means that's
probably you know something that's going
to be maybe a mark for you however if
you want to build applications that are
let's say for you know for phones that
mobile users on their phone can use
and the language doesn't support that
then that's a language that you're
probably not going to want to you know
use or learn
now within this you not only want to
look at platforms as far as like
platforms and application so it would be
things like and is it a web application
can it do mobile can it do desktop
because those are factors that you may
want to consider
and there's also things like is it
is it going to allow you to custom like
and there's a lot of ways to go but they
allow you to do very intricate
interactions as a user with the hardware
for like example a drawing application
or maybe like a really nice design type
application graphic design
those kinds of things are going to be
limitations you know maybe it doesn't
really work well
for that language to do the type of
applications that you're you're thinking
and so that would be a reason to not
learn it
also what resources are needed
there are some situations where you've
got a language that it requires
more power or more uh more modern
configurations or maybe licensing and
things like that that you don't have or
don't want to do there are a lot of
languages out there when you look at
some of these sasses that are out there
some of these software as a service or
platform as a service there are things
out there like a a sales force or a
netsuite or some of those kinds of
solutions or sap or body just name one
of your major Solutions out there
and they require sometimes that you you
know you have to you have to have a real
license a paid license to be able to get
a developer license or you have to go
through you know some hoops and some
things to prove that you are a valid
developer for them those things may be
more than you have the ability to do
right now maybe you don't have those
resources so it's not a good language
for you in that situation
the popularity is a couple of different
ways that you want to look at this one
is not just general population as far as
like how many how many people like doing
this or how often do you see it in the
trade magazines but how often do you
actually see it used in projects what
sorts of projects use this and this you
can find if you go look at job sites and
project sites and things like that if
you look at the sites that are out there
and what is it that are job postings
related to this what are they looking
for how many are out there what kinds of
projects are they what kind of
Industries are they in do these things
make sense to you
they may not it may be that it's a
situation let's say that you have a
language that you see is really heavily
being used in healthcare and you don't
want anything to do with health care for
whatever reason so that would be a
language that you wouldn't but if it's
you do want to get into Health Care
then that would be a language you want
to look at
and then so with this where will you use
it is it
is this a language that is a and it goes
a little bit back to how they're used is
it something that you would use day to
day like every day for example like a
general purpose language like would you
be a Java developer or a c-sharp
developer where you're using this all
the time and you're building things
Solutions with this or
is it something more where you would
have some other skills and you would use
this like let's say
although it's not maybe a perfect
example but maybe like SQL
maybe you would be you know a developer
of some sort
and you would use SQL you would use it
as part of database Integrations and
working with databases but maybe that's
not your primary language and this goes
into which would you want to do yeah
where do you want to go with it if you
want to be a database administrator then
yes SQL is critical if you want to be a
front-end JavaScript react developer you
know pick your favorite you know
front-end framework then maybe you don't
need it at all maybe it's absolutely
useless to you so
is this something that you're going to
use in the kinds of jobs that you want
to have or in the kind of job that you
have is it a way to advance your career
directly or is it something that would
now take you off into different projects
and that in itself is a question that
you you need to decide whether that
would be something you would want to do
are you you know for lack of a better
term bored with your day-to-day work and
you want to do new things or do you love
your day-to-day work and you want to
become more proficient in the tools
related to that
because how you answer these questions
where these languages lie is also going
to tie into what did you what do you
want to do where do you want to go
Community is critical with a language
where can you get help
is there support and it's really where
can you get help if you're sitting there
at you know midnight or 2 A.M you've got
a problem you've got to solve
is there enough content out there on the
web that you can do some searches and
you can find ways are there people out
there that are active so that if you put
a CO a question out to you know a code
side or a group or something like that
that you'll get a reasonable response
back in a reasonable amount of time and
by that I mean a response that's
actually helpful
and you know you can get within hours or
maybe a day or two at most not something
where you post and there's no responses
for six months
so you can jump into a language without
a community but it's going to be a lot
harder and definitely if it's your first
one you know you want to get something
where it's it's established you've got
that community
when you get further in when you've got
dozens of languages under your belt okay
then maybe that might that might not
matter but particularly if this is
something you're going to use a lot this
is a daily use language you want to have
that kind of community you want to be
able to and it it doesn't have to be on
the internet it could be your
organization it could be something that
everybody else in your company uses that
and so that is your community but
it's really you know comes back to where
where can you get support
and it may be from the vendor and maybe
they're really good but more often than
not what you're going to want to have is
that community that also provides
support whether it's sponsored by the
vendor or not
documentation because sometimes
it doesn't matter how many people are
out there how big the community is
sometimes you need some sort of
documentation you need a technical
reference because it's just too slow to
go out there and say hey what's the you
know what is the Syntax for this kind of
call or what are the parameters for this
or what does this parameter do
are there you know technical references
type documentation so maybe like
tutorials that will help you get started
and get you to understand the the basics
and the fundamentally fundamentals of it
but also
how do you take it beyond that how do
you go beyond the hello world program or
something similar to that and actually
learn and master that language
what are their you know books written on
it are there really good technical
references within their documentation do
they provide tutorials are there
third-party people out there vendors in
that to provide tutorials you may even
consider certifications are there
certifications available and if so how
are the what are the paths basically to
get certified how would you learn those
how would you get to that point and are
those things that you have available so
that you could you know take your
general understanding and turn it into
mastery
now tools
this is another key that I think gets
overlooked sometimes until you've been
in a situation where you've got a
language and you've got good tools and
then you try to go to one that doesn't
have those
this is basically what is available to
help you leverage your language
knowledge and to be productive
now it may be that the language has zero
tools or the tools are hey you can find
an editor you can write code in the
editor and then save it and compile it
or something like that
but that's gonna be slow and you may say
I can write code fast and all that but
when you start getting into especially
any kind of a a complex type of a
solution or problem that you're solving
you're going to want things like some
sort of you know tracing and debugging
tools you want to have something that
allows you to work with and integrate
with Version Control and now a lot of
tools have like syntax highlighting and
things like that that make it just
they're common editing tasks that you
may be able to do in a general code you
know developer type of environment and
there's some really good ones out there
but
it is nice to have that that extra level
of tool available so that you can really
you can be productive and sometimes even
it helps you learn the language better
so with all of this I know it's mostly
been questions but it does come down to
a very individual choice
when you're thinking about learning
another language or mastering one that
you sort of know
you really want to consider the time
that's invested or that you're in some
cases that you're willing to invest is
this something where you're like hey
I've got a weekend and I need to know
something and for whatever reason I need
to like get through this in a very short
period of time or is this something
where you've got months and years where
you say well I want to just start
working on this and get better and
better and better
those things are critical differences
and will weight all of these questions
we've talked about
for example if you don't have but a
weekend to learn it and there are no
tutorials there's no real documentation
and that's a that's a non-starter right
there
also consider the value which is sort of
within this time invested what's the
value to Career your career is this
something that is totally going to be a
a hobby type of language or skill that
likely will never be used in Anger
you'll never get paid to do it that it
will never put you in a situation where
you can solve problems that are going to
advance your career then maybe you don't
want to do it there is not nobody gets
bonuses or you know gold stars for
knowing more languages it's about being
able to utilize the tools you have
just like if you were in construction if
you go and buy a let's say a drill
and you never do construction jobs that
need a drill then that thing is useless
you can be really awesome with it but
it's no good you know it's not really
helpful so it would only be just because
you want to do it you know sort of like
for fun or for a hobby
which does bring up are you thinking
about this for fun because it's
something that you just think would be
cool to learn in the projects that it
does are cool to learn
or are you looking for these to be
things that are profitable that would
Advance your career a really good
example would be things like Raspberry
Pi or Unity or things like that where
and just a step back a little bit to
that so Raspberry Pi is being able to
basically build your own machine I know
I'm simplifying but let's just I'm going
to keep it at that because I don't want
to get too far off but it would be
something that could be I know a lot of
people it's like it's cool it's fun it's
a hobbyist type project it may be
something they eventually use to build a
a development machine or laptop or
something like that or a gaming machine
that they're going to use but it's
really not something that they see
directly helping their career it may
eventually do so but you know not at
this point it's like hey this is
something I want to learn
something like Unity some gaming
language could be the same thing where
you're professionally have nothing to do
with game development but
you want to write your own games you
just you want to do that for fun and
maybe it is something you want to do it
for fun but you don't want to get paid
because it would ruin the fun of writing
your games
however you do this though
plan your approach think about it don't
just and this happens so often it it's I
think it's gotten better because it used
to be that you would go to bookstores
this is places that were like brick and
mortar that had these things called
books that were actual physical things
and not digital
and you would see rows and rows of learn
this in 24 hours learn this in 21 days
learn this and you know by lunchtime or
whatever it is
and these things were there's a whole
industry that was built on we're going
to teach you something you know a
language or an environment super fast
and then you can use it but in a lot of
cases people didn't they're just like oh
well I'll just throw away a weekend and
I'll go learn this and then they realize
that it really didn't they didn't learn
it enough they didn't give enough
investment and it wasn't valuable to
them
so think about it you know step back a
little bit before you jump into that
next language you want to learn and walk
through some of these questions ask them
of yourself what is it you know what are
your goals in this and then use those
questions to sort of interview the
languages that you're thinking of
learning if you do so I think it'd be
far more likely to have something that
is a a skill that you enjoy that is
helpful for you and you will not have
that buyer's remorse of time invested
that just never really came to fruition
so plan your approach and I think you
will find yourself much happier at the
end of the the process
thank you for your time
hello this is Rob with developing or
also known as building better developers
wanted to announce that we have
school.developmentor.com feel free to
check it out if you like any of this
information any of the content that
we've sent and you would like to see
more you can come out you can enroll for
free we have free courses we've got
places for you to get better at just
learning a technology or how to's you
can work on your business skills we can
help you with becoming a better
developer as encoding and things like
that a lot of the stuff you've seen on
YouTube we also have out at
school.developmentor we just have it a
little more of a educational format and
a way for you to track your progress as
you move forward becoming a better
developer
foreign
[Music]