What skills are required to be a full stack developer? – Full Stack

– [Instructor] All right, let’s move on to the next one, the skills of a Full Stack Developer. Now there are have five different skill sets that you need to have, if you want to become a full stack developer. The very first one, right, no brainer. Front End. The front end long story short, right is the short front, the everything that your users is going to see, basically is your forefront your look and feel right, everything your user sees and interacts. But this is the part that I mentioned earlier. HTML and CSS. They are not programming language. HTML is basically just a markup language where you use it to markup to define, how is the structure of your web page, where’s the header, where’s the body where’s the title? Which paragraphs come first, which paragraphs come second, or this paragraph should be wrapped with inside a division block and after this division block here, you have another block right? So along this line, a lot along this train of thought you can see HTML code is that a couple of different blocks and pieces that we’ll put them together under a structure. So the browser’s when they read our HTML code, they know which content to display first, which content to display later. But don’t forget HTML codes only handle these structures, right, it does not handle the look and feel. Now in order to make your fonts bigger, you change your color from yellow to sorry, to black to yellow, you change your foreground color, background color from white to blue. And to change your font from Times New Roman to Comics, for example, right, this is the job of CSS. CSS is basically like putting on makeup for you. So if you want to change how your website looks like, it’s not the job of HTML, but it’s the job of CSS. And last but not least, JavaScript handles the interaction. What happen when your users grow to the end of the page and want to look another set of records? What happens when my users click on a particular button? I want to display a pop up box, for example, right? What happens when my user has been idling for more than five seconds? What should I do that? …those are the jobs, right? The logic, the front-end logic is handled by our JavaScript. Okay. Now, when you have Front-end, immediately, you should be thinking about something called the Back-end, right. Now, before you understand the Backend, you have to understand how does the internet work? Now the internet works this way. In web or internet, right, everything you see is actually handled by a server. It doesn’t matter you’re accessing a website is called google.com, you’re accessing a website called thelead.io or you’re accessing Gmail, right? You are accessing a server or a groups of server, a clusters of server sitting inside the data center. I give you a quick example, right? If you go to Chrome or Internet Explorer, you type in google.com is actually contacting your DNS server domain names server. So these DNS server’s jobs is to translate google.com into an IP address of the server. Now, if you visit google.com, it will then contact Google server in US, the IP address should be something along the line. And if your location is detected, that you’ll be routed to a server nearer to us like Singapore or Sydney, same thing. So if you visit Lazada, it will be hosted in Malaysia. So each of these company these website, they have their own server and server farms. Even thelead.io, we have our own server. We have our database servers, we have our WordPress servers, we have our class.thelead.io or our online class servers, for example. So what happen is, when you browse a web page, you enter google.com in the address bar, you’re actually sending a request to the server. The server will respond to you based on your request, right? For Google’s case, your request is a query string of the keywords that you want to search, Facebook will be a profile picture of the person you want to visit, Airbnb will be a list of houses nearby your vacation area, right? So when you send a request, the server will return a response, which contain the webpage, and also the relevant images and stuff. So what is the back-end doing? The back-end job is to generate your front-end for you, which are HTML, CSS, and JavaScript, okay, so now you understand the relationship between front-end and back-end. Your front-end code is the code that you write to display things the look and feel and the interaction. Your back-end code, the job is to generate those codes, that are needed for your front-end, okay. So in long story short back-end is basically everything behind the scene. Now the popular back-end languages that I mentioned earlier, you have a couple of options. You have PHP, you have a Node JS JavaScript, if you’re using C sharp, you have ASP.NET, So these are considered the four most popular types of web framework that we use in our back-end. So the job of back-end development is very simple. Number one, generate the HTML codes that front-end needs. But functional wise is actually helps us to encapsulate the business logic so that the sensitive information for example, for example, Uber or Grab will not let you know what is the formula that they calculate your fare. So those calculations of fare, understanding the drivers, supply and passengers demand right, is hidden behind their back-end servers, so they encapsulate their business logics. By the same time they also integrate third party services that your email services, SMS services, inventory systems. And last but not least, back-end servers are actively involved in reading and writing data to the databases, so to decide what sort of information to be displayed to you, okay. So these are the some of the basic jobs that back-end development has to be done. So if you’re, if you realize the last thing that I mentioned is what, database, so you do need to learn how to handle databases. Now there are two main types of databases out there in the market when it comes to web development. 80% of the websites are running on SQL servers, it could be MySQL or it can also be SQL servers from Microsoft, Microsoft SQL. Now database is where we store our data and these two database are the most popular database engines for structured and also relational data, okay. That’s because back then when we have our data, the data is, you know, has less variety, we don’t have Facebook, we don’t have Twitters, we don’t have all this massive data or Big data that comes in, so we always use a structured database to store up the data. Now, as time goes by, if you have a less rigid, you require very flexible data format, like when we work with IoT devices or sensors data, right? We can also use a non relational database such as MongoDB, or Firebase, which is what we call the unstructured database. So unstructured database for the two examples that I show you here, right, they are usually document-based database because a lot of times when we collect data, they’re just in different formats of documents, like Facebook posts, Twitter’s tweets, et cetera. Okay. But for you as a developer, right, you’re just beginning to enter your coding career, you just need to know that there are two major types. One is SQL for relational data and one is no SQL for unstructured data, that’s about it that you need to know and along the way you pick up the coding skills and language skills to help you to interact and communicate with the databases. Okay. Next, we look at Hosting. So you have a front-end center, you have your back-end center, you know where to store your data and a way to retrieve your data. Now you need a house, you need a place, to put all this information into your server right? Now, if the server is sitting on your laptop, people from the internet people outside of your house, they are not allowed to access your computers because of privacy issues. You’re worried about hackers, you’re worried about your data being wiped off. So what do you need to do? You need to host your website and web applications at somewhere that’s more secure, more reliable and more professional. Now there are two main types of hosting solutions here. Hosting is like your physical storage space, where you keep all this stuff, right? So if you use a shared hosting like Hostgator or GoDaddy or even Exabytes, right, is like you are renting and unit inside a shopping mall. So basic features like electricity, internet securities are provided, but you have very little flexibility, meaning that everything you want to add or you want to change something, right, you need to speak to the management, you need to write into the management and say, “Oh, I want to have a little bit of space “on my hard disk, this is that, okay?” Or, “I want to extend my bandwidth to 10 gigabyte “download per month,” something like that. So that is what share hosting is about and share hosting a lot of times the performance rely on your host, and also rely on your core tenant as well, right. If somebody who shared the same server as yours, always occupied a lot of the resources, of course, relatively their resources that you are going to get is a lot lesser, right? Now the second option is Cloud Computing. Cloud computing is that you run a shop lawn on the main street, you have your own flexibility, is your own place obviously, you rent servers on the cloud. But you have all the flexibility and it comes at a price where you need to sort out your own stuff. So you need to sort out your own internet, your company secretary, your mailing address, mailing address here means your domain name, right? Because you need to have SSM registration and also you need to have IP address. So how do you merge these two things together? And a lot of things you do, you need to know but you have the flexibility. So a popular cloud hosting solutions in Malaysia, we usually use AWS, Amazon Web Service, Google Cloud GCP, Google Cloud Platform, Microsoft, Microsoft Azure and Digital Ocean. So these are the popular options that you have, when you are opting for cloud hosting. For LEAD, we are the partner of AWS and DigitalOcean. So our students get to play around with different cloud options as well cloud hosting options. And last but not least, now you know how to write your front-end code, you know how to write your back-end code, you know how to store data using databases and you know how to put your applications online, so that people can see that, right. Last thing is you need to think about Mobile Applications. Now remember I said earlier, mobile applications traffics do takes up about half of the traffic that we seen, and if you go to any places, right, restaurants, when a family go out to ‘makan’, and what do they do? dia jaga handphone, right? And when you go to a bus or you go to MRT, people use their mobile phone all the time. So mobile phone is definitely one of the key trends in the future. But a good news for you is mobile applications architecture is exactly the same as our web architecture. I’m not going to repeat a story about you go to google.com, but now I’m telling you, right if you if you pull up your handphone today and you go to Facebook app, right, what it does is essentially a Facebook app is still sending the request to Facebook server, and we’re going to retrieve, but this time now we’re not retrieving HTML, CSS and JavaScript, we’re retrieving the data in the format called JSON, JavaScript Object Notation most of the time, or XML. And once we retrieve this data, we are going to use our mobile applications to render this data into a format that suits your operating system, whether it’s iOS or Android. Now, when it comes to mobile applications development, right, we can broadly categorize them into three types. Number one, Native Application. Most of the time, right, for business applications, they don’t really go into native applications unless you’re very rich, because you need to hire two sets of developers, one to develop iOS, the other one to develop Android. But when you see this most often? You see this in games and apps, that require a lot of native features. So most of the time, games they cannot afford to use hybrid solutions, they must access to all the native features of a phone in order to get all the graphic or the processing power. If you are using a less taxing approach, right, meaning that you are just using it for business applications, browsing, you know, people just enter some details, browse catalogs, and you can opt for something called Hybrid Applications. Now hybrid application is still a native app, right? It looks like a native app, it behaves like a native app and the processor are the same, except inside your hybrid app, right, your, is a native app wrapper that wraps around your application. Now these applications are written using hybrid framework like Fruiter, React Native or even Ionic. So when we write application and wrap them in those wrapper, it will run properly and function like as per normal in iOS or Android platform. And this is what we do with our most of our business applications. And this saves you a lot of time because you just need to write once and then it can be used on both iOS and also Android. Now if you are really, really tight on budget, right, you can still do something called Web Application. Now web application is some, is applications that is, I would say fine tune or is quick to display and function properly on a web browser, that comes with your mobile applications, okay? So these are the three different types of mobile application development that you can, you can refer to, you can consider. Long story short, mobile applications, right, runs on top of web architecture as well. Unless you’re really doing an offline version like the offline mobile games or offline notebooks, offline to do list, but nowadays, everything’s on cloud, everything is interconnected. So I can safely say that majority of the web applications and majority of the mobile applications run on the same web architecture as well.

1 thought on “What skills are required to be a full stack developer? – Full Stack

Leave a Reply

Your email address will not be published. Required fields are marked *