So you want to learn about coding huh maybe you want to get into software development or be a software engineer well this video is going to give you that 10,000 foot view of what coding is and how to get started the thing you want to remember as you learn more about coding is not only the coding but also how to interview for a job with that this video was brought to you by pram cramp is a site where you can do mock interviews to prepare for software engineering or software development jobs at companies like Google Microsoft Twitter and more as you get more experienced pram will actually allow you to do interviews directly with the companies that are looking for coding talent as you guys know there is a huge rise in software jobs but the competition is fierce so stop preparing alone get real coding interview practice with pram I'll leave the link for you guys in the description alright let's get started and to intro to coding coding is the process of building software and software runs almost everything every website you visit behind the scenes is an application that was built using code every single app on your smart phone was built using code every video game you play was created with code software exists for all kinds of things including facial recognition fraud detection and it powers essentially all modern vehicles drones jets there is such a huge variety of applications for all this software but it all comes down to the basic one thing and that is cove so code powers the entire world code is essentially a word to describe what we create with a programming language so we use a programming language which is like english for example but much more simple there's only a couple key words and we type this out and that process is called cody so just like with normal languages we have english spanish french and all kinds of different languages there are a ton of computer programming languages we've got see we've got C++ c-sharp Java Python Go Scala F sharp Ruby the list literally goes on forever now this video is going to be very basic but it is going to have a lot of vocabulary if you're new so because of that I'm going to switch to the chalkboard so I can write some stuff out so I'll see you then before I get started I just wanted to introduce you guys to my secondary sponsor her name's Paula curry she's a little darling hey you covering the microphone as you can tell she's a little evil okay okay so yeah that is my long coat German Shepherd I just got her this weekend and she is so stinkin cute irresistible hey that's a camera Oh family it tastes good so I'm gonna be bringing her into some of my new videos because she is officially named cava the coder yeah I don't think she likes to go that much but we'll see no don't bite my laptop as we mentioned earlier coding runs everything so if you wanted to break down everything into a simple simple definition you can think of coding as a black box it's called a black box but obviously in this situation it's a white box so when someone says a black box it essentially means you don't have to worry about what's going on on the inside and this is from the users perspective so someone opens up their iPhone or their Android and opens up an app they don't care what's going on with the code behind the scenes all they care is that when they push a button which is the input something happens which is the output so all computer programs are broken into input something output the user only really cares about this and this but as the coder we go one step farther and we focus on this middle area right here the stuff that makes this work is the code and the whole concept of a black box is an example of something known as an abstraction which is just hiding the inner details and just allowing a very simple interface so if you think about it in our app let's say this is the code we create an interface which is right here this is how the user interacts with the application that interface is very simple very easy to use and that is how an abstraction works all this detail behind the scenes is blocked away no one cares about that except the person writing the code there are two primary types of interfaces a command-line interface and a graphical user interface CLI or GUI if you create a CLI it allows the user to interact with your code using commands so if you have a Mac and you open up the terminal or if you have a Windows PC and you open up the command prompt this is an example of using commands you can write code to allow people to type in commands in those terminal windows and your code can do things part of the reason people like command-line interfaces is one it looks really cool when you're just typing out commands and it feels nice and you can also get very granular by adding extra flags and you can be very specific on what you want to happen the second primary reason that people like command-line interfaces is you can actually write applications to interact with these interfaces so now that we have a program interacting with a program so this input now becomes an application which consists of code so this can actually interact with your application so once again the CLI allows you to interact with your code using commands and you can also write scripts to execute those commands for you and then it will do the interaction the second thing here is a GUI a graphical user interface this is when you actually create buttons so it's clickable and it's visual so typically if I had to generalize this a little bit the CLI is for coders the GUI is for clickers and that's just a rude word to say people who don't code so there's two possible ways to interact with your application you can do it there code or you can have someone you do it themselves the CLI you can do both you can write applications to interact with your code or you can interact it with it yourself by typing in the commands yourself the GUI only allows one of these options which is the user interface generally coders like to learn the C lies because it enables them to do more options additionally often a user interface will be very simple with a couple of buttons and let's say there's only four buttons here well the CLI might have five six or even twenty more options that are not listed in the GUI so by using the command-line interface we can open up a lot more variety of possibilities a lot of times people will call this interface here an API and that's only if you can write code against this interface so if you had a command-line interface or something very similar it might qualify as an API essentially an API will it stands for application programming interface and essentially this is going to open your application to certain commands right so you might have a command to add a user you might have a command to delete a user you might have a command to edit a user you might have a command to find a user and all of these things become the API endpoints so once we have these endpoints I can write an application over here to search for a user to add a user to do all of these various things through this API often you will find social networks for example open up an API so you might have a Twitter API so for example let's say this is Twitter and Twitter might have an API to do a bunch of things this means that I can write an application over here to view people's Twitter stats and to socially rank them or a website that allows you to schedule tweets these kinds of things are all going to use this API you you kind of figure out the theme here right we start with something simple just a small application but then we can write applications to interact with this application and we end up growing to this more complex system.