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

  • how to pass the coding interview.

  • So check that out if you're interested.

  • Now for my fifth language, and this is where things

  • get a little bit interesting for 2020 opinion

  • because my pic is not really so much language

  • but the technology of server less platforms out there.

  • For example, if you want to build a real time back end

  • for your chat application, well, sure, you can go learn

  • no-js or Golang, but instead,

  • you could also just use Firebase.

  • And so back end services like this, essentially,

  • replace your entire need to go learn a new language

  • like no-js, and figure out how to scale that whole thing

  • out, make it secure, and everything.

  • If you want to build a beautiful landing page,

  • you can use like say Squarespace.

  • If you need email marketing, there are services for that,

  • if you need video uploads, image uploads, chat services,

  • payment services, well back in the day, you may use Stripe

  • to do credit card processing, wire up their API using

  • say Python connected to some back end

  • and to have that fill out some email form.

  • But these days, you can get all of that all set up.

  • You could use API services, like say, Zapier

  • that essentially glue multiple pieces together

  • such that many times you don't necessarily need to even

  • be coding a lot of this stuff.

  • So platforms and services have matured

  • to a point that if you're smart, you're able to utilize

  • these services out there instead of rebuilding things

  • from scratch over and over.

  • And that can actually save you from having to learn

  • additional languages if you can just use

  • these other services.

  • And then another new thing I would say for this year,

  • maybe number six is the language of social media

  • in which you know how to promote your apps or products

  • or services using Twitter, YouTube, Instagram, LinkedIn,

  • Facebook, TikTok or Snapchat.

  • I think that 2020 will be the year of these social media

  • platforms, essentially just dominating

  • a lot of internet traffic.

  • And if you're a developer, and you're out to promote

  • your app or platform, then you need to know how to navigate

  • these social media platforms,

  • and this is an essential skill.

  • And I may have mentioned this before,

  • but back in the old days, if you had a website,

  • oftentimes people would just build an iOS app.

  • And it would just be a shell, a wrapper on your website.

  • And the whole goal of that was to get your website

  • into the app store as an app such that you get more traffic

  • for your website that people would visit there.

  • Maybe they put a little app bookmark on their homepage,

  • and you would have to call up the shelf for that.

  • So the whole goal of learning iOS development

  • was simply distribution power.

  • These days, if you want the distribution power,

  • the language to know is that of social media.

  • And then after that, I would say my next language to know

  • would be SQL, the database coding language,

  • because these days, there's just so much data that,

  • there's a high need for data engineers, data analysts,

  • people are able to query these databases,

  • get the metrics and make sense of them.

  • Back at my job at Facebook, probably 25% of my time,

  • I was just writing SQL queries, building these dashboards

  • and metrics such that people could check the performance

  • of their features, make sure that launches would be going

  • accordingly, running A/B tests and measuring impact

  • such that we could justify bringing a feature forward.

  • This is all done through the SQL query language.

  • Now this video is getting a little bit long.

  • I can't mention every language out there but I wanted

  • to mention a few.

  • When they say CSharp.net using Unity development

  • for example, I think that Unity with C sharp has become

  • this great way to do cross platform game development.

  • If you're interested in game development, I think that would

  • be a pretty interesting technology to look into.

  • Similarly, we have flood are using the Dart programming

  • language to do mobile app development across iOS, Android,

  • and perhaps other platforms as well.

  • Flutter is something to definitely keep an eye out for,

  • it seems a little bit early though and at least

  • for native app development, performance, fast startup time

  • preserving the same look and feel I think that those

  • are things Flatter will have to now

  • if they want widespread adoption.

  • Then you've got Go language is also quite nice language.

  • My original interest in this was for real time applications

  • like say chat, but then I realized there's like Google

  • Firebase, you got Amazon ElastiCache.

  • So services like this aren't fully managed,

  • they scale out automatically.

  • If you're looking for something more custom, though,

  • then perhaps Golang can be the thing for you.

  • And then there are some lower level languages

  • like say C, C++, REST.

  • If you're building something that needs

  • that level of performance that may be for you.

  • It's not something I typically

  • work with though on a day to day basis.

  • C++, for example, though, it could be used for say

  • a cross platform development across iOS and Android devices.

  • Now, before I wrap up, I want to note that the best way

  • to think about this, is to think about a set of languages

  • that you want to know, not just one, maybe, let's say

  • three to five, because if you go into interview setting,

  • for example, and you just say, you know, one language

  • like say, Python, or you only know Java, it doesn't really

  • matter how good you are at these,

  • you're not gonna get the job offer.

  • It's pretty useless, actually, these days, if the only thing

  • you know, it's just one language, you just can't get

  • that much done with it.

  • So rather, I find it helps to have a more curious

  • learning based mindset where you're out there, just explore

  • whatever technologies may be useful for you.

  • And it's not really just the languages, it's really

  • all the frameworks, the ecosystems, the tools, the platforms

  • and services that surround that language,

  • that make it really more useful.

  • So ready to learn more?

  • Brilliant's courses have storytelling, code writing,

  • interactive challenges and problems to solve.

  • It's built for ambitious and curious people

  • who wants to excel at problem solving

  • and understand the world.

  • You'll come way better at problem solving.

  • With brilliant you unravel concepts bit by bit

  • and build up to an interesting conclusion

  • and discover deep truths in unexpected places.

  • It's such a fun way to nurture curiosity, build confidence

  • and develop problem solving skills crucial to school,

  • job interviews, or career.

  • In Brilliant stock provoking content breaks up complexities

  • into bite sized, understandable chunks

  • that will lead you from curiosity to mastery.

  • So go to brilliant.org/techlead and grab a subscription

  • to help a loved one spark a lifelong love of learning.

  • And as for 2020, I would say that a lot of these platforms

  • and services, they're being built out now, fully managed

  • auto scaling cloud services, that can save you some time

  • from having to learn another language.

  • And you can instead just interface with this through

  • some API, and use whatever other language,

  • that you may be currently on.

  • The simpler you can keep your tech stack the better.

  • So that'll do for me.

  • If you liked the video, give a like and subscribe.

  • Really appreciate that and I'll see you next time.

  • Thanks, bye.

- Hey, welcome back.

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it