Subtitles section Play video
- Hey, welcome back.
Now in this episode, I want to cover my top programming
languages for 2020.
And I think it's important to recognize that you can
evaluate a programming languages
in a number of different ways.
For example, whether it is useful, practical,
or whether it can get you a job.
And in the past year, the landscape
for software engineering has changed so much.
In my opinion, I wanted to give an update on what I think
are the most relevant languages
and technologies that you need to know.
Quick pause.
This video is sponsored by Brilliant,
a problem solving website and app with a hands on approach
and over 50 Interactive courses, get 20% off premium
at brilliant.org/techlead.
All right, so first step, what is my number one
programming language?
Which language with I personally
want to know and learn in 2020?
And I know that there are some popular ones,
you may be thinking, well, there's Python
that seems very useful.
Everybody says Python is good.
I've said that JavaScript is very good as well before too,
but it's not what I would want to know.
I think they're great languages very useful, but personally
for me, I would go with the Swift iOS mobile development
and you may be wondering why.
And the reason really is competition.
In my opinion when you're learning a language like Swift
or Objective C for iOS mobile development,
the barrier to entry for this is actually quite high.
For example, number one, you need a MacBook,
you may need a membership to the Apple developer program
that's like $100 per year.
And so this creates a barrier to entry that actually
helps make it such that when you go and apply to jobs,
you're not competing against the billions of people
out there all the outsourced workers, all the other students
who may be flooding into the US from say foreign markets.
There's so many talented people out there in the world.
To me, it's an uphill battle.
And it's just the market dynamics at work.
iOS, mobile development, if you can get in, it's really
quite pleasant, actually, you get great hardware,
great technologies.
Usually the iOS code is cleaner
than the Android counterparts, at least as far as I've seen,
and it positions you were to land the role
at top tier tech company like say Facebook, Google, Apple.
Because a lot of these companies, they want
the mobile native developers to be churning out really
high quality performance code.
They don't really want like React native
type of hybrid code.
And in my opinion, mobile native development is still pretty
decent area to be in, although the heyday has come and gone.
App development these days is more difficult
than it was before and there's a lot more things
you have to take into consideration.
Like you have to make sure your code works for iPad, iPhone,
dark mode, light mode, accessibility, all sorts of different
screen sizes, dynamic text sizes, internationalization,
UI human interface design patterns.
So developing mobile apps may have a steeper learning curve,
you could be doing your own memory management,
doing distributed processing across multiple threads,
handling UI and scale performance issues layouts,
but still I just personally prefer the smaller playground
as the iOS developer community.
So overall, iOS development comes in at number one for me
not because it is the most practical language
but because it is a language with the largest
moat around it because you have to essentially shell out
$2000 for a MacBook Pro, pick up the Apple developer
program and that just locks out a lot of other people
and competition when you're applying to jobs.
Now, coming up at number two, I would put Kotlin, or Java,
Android development as the next technology to know.
And I say this because when I was working over at Google,
and then later at Facebook, I kept hearing people say
that there is a shortage of Android developers.
So Android development, it's in demand
at these FAANG companies, not to mention
the languages used like Java, Kotlin.
I mean, they're pretty decent, Kotlin is actually
quite nice, as well as a very modern language.
And Android has only been gaining market share against iOS.
Not to mention most internet browsing activity these days
has shifted from desktop over onto mobile.
So native mobile app development.
While it may not be that important for say a startup,
which maybe just needs a web presence, for these large
top tier tech companies, it is the primary battle ground
because they absolutely need to win on these platforms
and it is very important, they're making
their apps as fast as possible.
And for example, if you're working on say, the Facebook app
or the YouTube app, these mobile versions
and the developers behind they are just given
higher priority, they're given the spotlight,
compared to say, the web counterparts who are working
on site, the JavaScript versions, which usually, you know,
people are trying to push people off of their web versions
onto the mobile versions of these apps.
All right, so moving on, language number three.
Well, if you're to ask me, what is the most
practical language to know?
The one that you didn't have to worry about trying
to apply for a job, but if you just want to know it,
and then become an entrepreneur through that,
I would say JavaScript is the way to go.
Because you can just get so much done with it.
These days, you can build the complete back end
using JavaScript, you can use Node JS on the back end,
you can build the beautiful front end and website
using JavaScript, connect to a whole bunch
of different API's connect to a database.
And so if you're a small time developer, you want to build
the prototype a proof of concept, then JavaScript
can get you going, you build a simple website,
you don't necessarily need a full mobile native application
unless it's something specific you're trying to do.
But you can actually get a whole bunch done using,
say just JavaScript in building a website.
Now there are some problems with JavaScript,
number one it's pretty easy, there's no barrier to entry,
pretty much everybody and their grandmother
knows JavaScript these days.
And then the other thing is you have framework hell
in which you could be going through React at JS Angular,
View, so there could be a host Leo frameworks,
not to mention these days, people are trying to write
in TypeScript, which provides static typing
on top of normal standard JavaScript.
So there's no single one correct way to write JavaScript.
there could be more churn because you could be learning
different things, different ways of writing, you could
become very good as a Angular and then your next step
you need to write in React, or TypeScript
or no-js and so forth.
You could even do some native app development
using React Native writing in JavaScript.
Although these days I think that due to higher demands
for say performance and quality people have been
going for more purely native approaches instead
of building on top of another framework like that.
Okay, moving on.
Well, recently I was asked by a school professor
which language he should teach the students,
he had been teaching in Java.
And he was saying that it felt a little bit outdated.
What language should be universally
taught to just everybody?
And in my opinion, that would be Python.
Because Python is just something that everybody can use.
It's a very general and useful language.
It can be used for web backend development.
You got YouTube and Instagram being powered
on Python back ends.
It could be used for scripting, like if you want to wrap
on your internal scripts and tools, Cron back end jobs,
it could be used for data analytics, making SQL queries,
building up data pipelines, data engineering,
it could be used for machine learning as well.
As well as virtually every single API endpoint out there,
allows you to interact with it through a Python library.
So it's a great language, very simple to learn and read.
And this is the language that we also use for our course,
by the way techinterviewpro.com and which we teach you