Placeholder Image

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