Hey tech elite here and welcome back to coffee time today
We are going to talk about my top three programming languages for beginners for 2019
We are drinking coffee at this coffee time. This is instant coffee
That's sour now. I received an interesting question the other day from drew
He's some 14-year old kid and you know when I think about these 14-year old kids
I remember
Just how stupid their I just want to kick some kids right now now drew here is asking about how he can get into
Programming he wants to get into an internship or something about that. He's very interested in computer science
And I think that's a great question and I wanted to share some information about how you two can get into the field get into
Programming this video by the way is sponsored by brilliant org slash tech lead
There are fun educational website covering a wide variety of topics like computer science
Algorithms AI machine learning and soon Python programming all sorts of topics that can help you get ahead help you learn check them out
Brilliant org slash tech lead now when you get into programming
I think it's important to realize that there are a number of different paths that you can take
I might break it down into two paths one path is the traditional computer science path
And then the other is more towards the self path and with the traditional course
You may go through college you learn a bunch of computer science fundamentals
Data structures algorithms operating systems and you may work in a variety of languages
You might have a data structures class in Java a compilers course in C
Maybe another course in Python or something like that and you kind of slowly go through a number of languages
None of these courses really teach you the language very well
You just learn a few rudimentary
basics about how to use the language at the very high level and
Then you work on the assignments and it really focuses more on theory
eventually over time this path may lead to jobs in which somebody goes into a heavier weight language something like doing memory management and
C++ for graphics programming or working on the server back-end in Java or Python?
But I think that if you're like a 14 year old or if you're just starting to begin to learn to program and you don't
Really have time to go through an entire four-year course education and you might want results faster than that
You might want milestones as you go through such that within the first few months
Maybe you already want to be able to land some sort of internship some entry
Our job and then from there you build up your computer science education some more and learn some more programming
Get more into the theory into the fundamentals and algorithms and then get into heavier weight languages like say C++, Java
Objective C. Something like that
These languages may require more consideration for performance systems design organizing the code structure better
I think that it would be a lot to expect somebody who has zero programming
Experience to suddenly become very good si Android development
And so if you have absolutely no programming experience
And you want to get into the field and you want to get an internship?
I would say that even if you're on this four-year college course where you're going to get into these heavier-weight
Languages and maybe eventually you want to be like a C++ graphics programmer or something like that?
you're still going to want to be able to get some internships along the way just to bulk up your
Experience and this is to recommend the path I have for you get into web development
In my personal opinion web development is a great area to get into and there's plenty of job
Opportunities for every single level of experience and they can help ramp you up and get you those
Valuable internship experiences get you those entry-level jobs that will help you eventually build up a more solid
foundation for your programming career
So concretely I would recommend first getting into say HTML CSS make some basic websites get your environment set up
this will get you to actually understand what programming is going to feel like what's gonna be like and
Even though HTML isn't like a real programming language. It's essentially the same things code
It feels very similar to code and they will get you into that mindset
once you have most of that down you can start getting into say
JavaScript JavaScript is a great language because it's very visual
You can have colors you can draw things
You can position elements around and it's also extremely useful you can use it to create entire websites
Just knowing HTML CSS and JavaScript. You can already start setting up websites
You can even start collecting payments
if you wanted to you can connect to
JavaScript frameworks that say stripe or PayPal have set up and if the only thing you know is HTML CSS and JavaScript
Guess what? You can order to get the job
it's called a front-end engineer and there's many positions for this if you were to learn one of those newer JavaScript frameworks like Vijay s
Angular react, you know, these are newer areas. There's not that much competition
I mean, they're still going to be a lot of competition
But it's not going to be that bad and the field a front-end engineer generally doesn't require too much computer science fundamentals
algorithms data structures
It's really about gluing pieces together making a website
Functional delivering a product and there's a lot of fun to do as well in my opinion
targeting to be a friend and JavaScript engineer is one of the easiest and simplest paths to getting yourselves into a
Programming career from a position in which you have no prior experience
Now in order to better understand the field of software engineer
It's important to realize that there's not that many different types of Engineers. You got like algorithm programmers
These are people who are working and say C++ Python doing back-end artificial intelligence machine learning
Maybe on computer graphics, maybe on search rankings, and that's great
I would say that this area is going to be a little bit more difficult to break into it's possible to do but it's generally
an area that you might want like a complete computer science degree to get into and then you have a few areas like mobile and
web for mobile
We're talking about Android or iOS development for Android you're working in Java or Kotlin and for iOS you're working in Swift or objective-c
These are generally languages that may require some manual memory management and systems design
These are errors that you can get into if you're feeling confident
but the web stack is even simpler to get into for the front and you've got
JavaScript which we talked about and then for the backend you may be working and say Python or PHP maybe Ruby on Rails
And so looking at it this way after learning JavaScript. I might consider getting into a back-end language like say PHP or Python
I think Python is a more structured language PHP may be a little bit easier to get going if you were to get that set
Up and hook it up to your JavaScript code you'd be what we'd call like a full stack engineer
You're working on both front-end and back-end great area to be into this is an area
I would say that a lot of people kind of get stuck on
primarily because in order to
Get into the back of the work. What you need to do is go out and buy a server
You need to rent one of these and it's pretty cheap actually like you can get a back-end server for like five bucks a month
register domain name for like 10 bucks or a year and
you would be all set up you could have an entire website running and throughout all of this most of the code that you
Be writing would just be glue code to glue pieces together like Lego building blocks
you can get a lot done essentially and
Employers are going to be impressed because you're going to be launching products out there
one thing you might be careful about is just learning a language like say Python and
Not launching anything or say Java because the fact is all of us know Python all of us know Java
The question is really how well do you know these languages?
You know if I see 10 candidates and everybody knows Java what I'm really interested in knowing is well
What did you do with the Java?
did you launch an entire Android app and
Make it really popular or did you just learn a little basic Java and use it for a course project?
So this is why I recommend that you do project based of elements such that you don't only have a language that you add to
Your resume. You also have an entry an entire project that you can put on your resume that indicates
This is what you did. These were the challenges that you face
This is what you launched take a look and the website looks nice looks clean, and it's entirely functional the great thing
Is that websites are very visual? They're a lot of fun
They're very useful and you can show them off to your friends to your family. Lots of people can use it
It's going to be a good
Validation for you and be a good milestone as you progress forwards and your knowledge and say Python and JavaScript
They're going to be very useful for any other area that you may want to get into eventually
now from here
You might want to start specializing in to an area
Whichever area you choose you may want to get into say iOS development you go with Swift or objective-c for that for Android development
Java or Kotlin you could get into game programming using unity c-sharp
You could get into computer graphics programming using C++
Machine learning AI or you don't even have to get much deeper than that
You can just stop there as a full stack web developer and there would be plenty of career opportunities
For you right in that area
I would say though that in the typical project team in any large tech company
You're going to have three basic types of engineers
You have the Android engineer who's working on the Android side the iOS engineer and then you may have the back-end
Engineer this back-end engineer is working in say Python or PHP
Working on the API calls that the front-end mobile clients are going to hook into there may also be a friend an engineer doing JavaScript
Sometimes this engineer would also be combined with the backend engineered like a single full-stack engineer or something like that
So you might want to pick one of these areas to dig further into
and so you can see that the great thing about this plan that I've laid out for you is that if you get into mobile
development
knowing some JavaScript may be used for any ways because you may be working in the language like say react native which uses
JavaScript and mobile development
It's also going to just be good if you want to get into say front-end development almost every company is using a lot of JavaScript
These days it's going to be good to be able to read that code if you pick up Python for say back and work well
Python is a great all-around language for general scripting crazy and developer tools writing scripts to help speed up your workflow
So there you go. I think the way to think about this is not to think about learning just a single language
I think just one single language is not really going to cut it in this field
You want to think about a set of languages my recommendation then to HTML CSS?
Learn JavaScript first then get into say a back-end language, maybe Python or PHP
Then get into say a heavier weight language with memory management
Systems designs data structures heavier weight computer science fundamentals like that
I would recommend for iOS get into Swift or for Android get into Kotlin or Java
I might also give a special mention for c-sharp. I think that c-sharp is an excellent language
It's very fun, very easy to use and the code completion is just very good
I had a great time learning in c-sharp
The only reason I might hesitate from that is that I think it's one of those
Languages are a little bit more specialized maybe towards say game programming unity development Microsoft technologies if you want to get into it
Go ahead
I think that any language is interesting to learn about but those are my top picks if I were starting all over
That's why I would go with that do it for me
remember to check out brilliant org slash tech lead for fun educational courses
spread the love of math science or computer science to your loved ones by gifting them brilliant learn about math science or computer science through
brilliant org
It's a fun way to nurture curiosity build confidence and develop problem-solving skills crucial to school job interviews or career
Brilliance thought-provoking content breaks up complexities into bite-sized
understandable chunks that will lead you from curiosity to mastery visit brilliant org slash tech lead and grab a
Subscription to finish your day a little smarter. I'll do it for me
If you any tips for beginning programmers pose them in the comments below
I read them all if you liked the video give it a like and subscribe. I'll see you next time. Bye