Armstrong Number using C#


An Armstrong number of three digits is an integer such that the sum of the cubes of its digits is equal to the number itself. 
For example, 371 is an Armstrong number since 3**3 + 7**3 + 1**3 = 371.





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            int number, remainder, sum = 0;
            Console.Write("enter the Number");
            number = int.Parse(Console.ReadLine());
            for (int i = number; i > 0; i = i / 10)
            {
                remainder = i % 10;
                sum = sum + remainder*remainder*remainder;
 
            }
            if (sum == number)
            {
                Console.Write("Entered Number is an Armstrong Number");
            }
            else
                Console.Write("Entered Number is not an Armstrong Number");
                Console.ReadLine();
        }
     }
  }

Angular 2 Development and Production Environments

In this tutorials we will discuss the differences between a development build and a production build in angular. 

To generate a development build we can use either 

ng build 
OR
ng build --dev 

To generate a production build we use 
ng build --prod 




Here are some of the differences between a development build and a production build in angular.

Source Maps : Development build generate Source Maps where as production build does not. 

What are Source Maps
To improve the performance, the application's JavaScript and CSS files are combined and compressed. It is extremely difficult to debug those compressed files. A source map holds information about the original files and can be used to map the code within a compressed file back to it’s original position in a source file. So with the help of these source maps we can easily debug our applications even after the the files are compressed and combined.

By default, a development build produce source maps where as a production build does not. However, we can change this default behaviour by using --sourcemaps option along with the ng build command. It's alias is -sm.

The following command produces a development build without source maps as we have set -sm option to false
ng build --dev -sm false

On the other hand, if you want source maps along with your production build set -sm option to true as shown below.
ng build --prod -sm true

Extracts CSS : With the development build global styles are extracted to .js files where as with the production build they are extracted to .css files. To change this default behavior use --extract-css option or it's alias -ec with the ng build command.

The following command produces a development build with global styles extracted to .css file(s) instead of .js ones.
ng build --dev -ec true

Minification & Uglification : A Prod Build is both minified and uglified, where as a Dev Build is not.

What is Minification 
The process of removing excess white space, comments, and optional tokens like curly brackets and semicolons is called Minification. 

What is Uglification
The process of transforming code to use short variable and function names is called uglification.

The minified and uglified version of the file is smaller in size than the full version, resulting in faster response times and lower bandwidth costs.

If you look at the bundles generated by the prod build, you will notice that they are minified and uglified. Notice, extra white spaces, comments, and optional tokens like curly brackets and semicolons are removed. Also notice, the code is transformed by using short variable and function names. On the other hand, the bundles generated by the dev build, are not minified and uglified.

Tree Shaking : A Prod build is Tree Shaked, where as a Dev build is not.

What is Tree Shaking
Tree shaking is the process of removing any code that we are not actually using in our application from the final bundle. It's one of the most effective techniques to reduce the application size.

If you look at the bundles generated by the production build, they are significantly less in size compared with the bundles generated by the development build. This is because with the production build the code is tree shaked to remove dead code i.e the code that is not referenced by the application.

Ahead-of-Time (AOT) Compilation : With a production build we get AOT (Ahead-of-Time) compilation, i.e the Angular component templates are pre-compiled, where as with a development build they are not. We will discuss Ahead-of-Time compilation in detail in our next video.

The following table summaries the differences between a development build and a production build

FeatureDevelopment BuildProduction Build
Source MapsYesNo
Extracts CSS.js file.css file
MinifactionNoYes
UglificationNoYes
Tree ShakingNoYes
AOTNoYes

Angular 2 Interview Questions for fresher



Que 1> What are the new features of Angular2 ? 

Angular 2 is not a simple upgrade from angular 1. Angular 2 is completely rewritten, 
so it has lot of improvements when compared with Angular 1. Let's look at a few of these improvements. 

Performance : -
From a performance standpoint, Angular 2 has faster initial loads, change detection, and improved rendering time. not just performance, we also have improved modularity, Dependency injection and test ability. 
According to angular conference meetup, Angular 2 is 5 times faster compared to AngularJS 1.

Mobile Support : -
Angular 1 was not built for mobile devices. 
It is possible to run Angular 1 on mobile but we will have to use other frameworks. 
Angular 2 on the other hand is designed from the ground up with mobile support.

Component Based Development : -
Component based web development is the future of web development. 
In Angular 2, "everything is a component". Components are the building blocks of an Angular application. 
The advantage of the component-based approach is that, it facilitates greater code reuse. 
From unit testing standpoint, the use of components make Angular2 more testable

More language choices : 
There are several languages that we can use to develop Angular applications. To name a few, we have
1. ECMAScript 5
2. ECMAScript 6 (also called ES 2015)
3. TypeScript etc. 

Besides these 3 languages we can also use Dart, PureScript, Elm, etc, but among all these, TypeScript is the most popular language.


 Que 2> What is ECMAScript

The JavaScript language standard is officially called ECMAScript. 
Over the past several years many versions of ECMAScript were released starting with ECMAScript version 1 all the way till ECMAScript version 7.

Most of the modern browsers available today support ECMAScript 5. 
The browser support for ECMAScript 6 is still incomplete. However, using a process called Transpilation, 
ECMAScript 6 can be converted to ECMAScript 5 which is supported by all the modern browsers. ECMAScript 6 is officially known as ECMAScript 2015. 
ECMAScript 2015 introduced several new features like classes, modules, arrow functions etc.


Que 3> What is Type Script 

TypeScript is a free and open-source programming language developed by Microsoft. 
It is a superset of JavaScript and compiles to JavaScript through a process called transpilation. 
Using TypeScript to build angular applications provides several benefits.
1. Intellisense 
2. Autocompletion
3. Code navigation
4. Advanced refactoring
5. Strong Typing
6. Supports ES 2015 (also called ES 6) features like classes, interfaces and inheritance. 
If you have any experience with object oriented programming languages like C# and Java, learning TypeScript is easy.

Because of all these benefits writing, maintaining and refactoring applications can be an enjoyable experience. 
So obviously TypeScript has become the number one choice of many developers for developing Angular applications.


Que 4> What is a component in Angular 2 ?

A component in Angular is a class with a template and a decorator. 
So in simple terms a component in Angular is composed of these 3 things

Template - Defines the user interface. Contains the HTML, directives and bindings.

Class - Contains the code required for template. Just like a class in any object oriented programming language 
like C# or Java, a class in angular can contain methods and properties. 
Properties contain the data that we want to display in the view template and 
methods contain the logic for the view. We use TypeScript to create the class.

Decorator - We use the Component decorator provided by Angular to add metadata to the class. 
A class becomes an Angular component, when it is decorated with the Component decorator.


Que 5> What are the differences between template and templateUrl properties and when to use one over the other ?

Angular2 recommends to extract templates into a separate file, if the view template is longer than 3 lines. 
Let's understand why is it better to extract a view template into a seprate file, if it is longer than 3 lines.

With an inline template 

We loose Visual Studio editor intellisense, code-completion and formatting features.
TypeScript code is not easier to read and understand when it is mixed with the inline template HTML.

With an external view template

We have Visual Studio editor intellisense, code-completion and formatting features and 
Not only the code in "app.component.ts" is clean, it is also easier to read and understand

Que 6> what is nested components ?

As we already know Angular 2 is all about components. 
A component in Angular allows us to create a reusable UI widget. 
A component can be used by any other component. 
nested component is defined as (parent component and child component) relation

Que 7> What is AppModule ?

AppModule is the root module which bootstraps and launches the angular application. 
You can name it anything you want, but by convention it is named AppModule.


It imports 2 system modules - BrowserModule and NgModule 

BrowserModule - Every application that runs in a browser needs this module. 

NgModule - @component decorator adds metadata to an angular component class, 
similarly @NgModule decorator adds metadata to the angular module class.

Que 8> What is @NgModule?

@NgModule is a decorator function. A decorator function allows users to mark something as Angular 2 thing 
(could be a module or component or something else) and it enables you to provide additional data that determines 
how this Angular 2 thing will be processed, instantiated and used at the runtime. 
So, whenever user writes @NgModule, it tells the Angular 2 module, what is going to be included and used in and using this module.

Properties of the @NgModule decorator

imports - Imports the BrowserModule required for an angular application to run in a web browser

declarations - Contains the components registered with this module. In our case we have two - AppComponent and EmployeeComponent

bootstrap - Contains the root component that Angular creates and inserts into the index.html host web page.

Que 9 > What is Angular interpolation ?

Interpolation is all about data binding. In Angular data-binding can be broadly classified into 3 categories

An example of interpolation is shown below:

<a ng-href="img/{{username}}.jpg">Hello {{username}}!</a>

Data BindingDescription
One way data-bindingFrom Component to View Template
One way data-bindingFrom View Template to Component
Two way data-bindingFrom Component to View Template & From View template to Component

One way data-binding - From Component to View Template : To display read-only data on a view template we use one-way data binding technique interpolation. 
With interpolation, we place the component property name in the view template, enclosed in double curly braces: {{propertyName}}. 



Top 10 LINQ Interview Questions and Answers

1) What is a Lambda expression?

A Lambda expression is nothing but an Anonymous Function, can contain expressions and statements. Lambda expressions can be used mostly to create delegates or expression tree types. Lambda expression uses lambda operator => and read as 'goes to' operator.

Left side of this operator specifies the input parameters and contains the expression or statement block at the right side.



Example :

               int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };  
               int oddNumbers = numbers.Count(n => n % 2 == 1); 


2) Explain what is LINQ? Why is it required?

Language Integrated Query or LINQ is the collection of standard query operators which provides query facilities into.NET framework language like C#, VB.NET.

LINQ is required as it bridges the gap between the world of data and world of objects.

3) What are the types of LINQ?

  i )  LINQ to Objects
  ii )  LINQ to XML
  iii ) LINQ to Dataset
  iv ) LINQ to SQL
  v  ) LINQ to Entities

4) Define what is Where clause and Let clause?

Where clause: It allows adding some conditional filters to the query.
Let clause: It allows defining a variable and assigning it a value calculated from the data values.

5) In LINQ how will you find the index of the element using where () with Lambda Expressions?

In order to find the index of the element using where () with the lambda expression

Where ( ( i, ix ) => i == ix);

6) Difference Between First() and FirstOrDefault() in LINQ

IDNameYearAddressIncomeUserName
1Sandeep2010-2011Bangalore50000S123
2Rakhi2012-2013Hyderabad180000S123
3Reena 2013-2014Pune200000S789
4Priya2013-2014Ranchi350000S253

A. First()

When we Use First() in LINQ in Query Syntax Or Method Syntax, At that Time If we Do not Get any Record Corresponding To Expression in Where Clause then It Will Throw You Exception as: InvalidOperationException: Sequence contains no elements.

var x =(from m in Member  where m.UserName=’S000’  select m.Name,m.Income,m.Year ).First()  

When There Are Multiple Records Releted To TO Matching Expression and If You want only the First One Then You can Use First().

B. FirstORDefault()

When we Use FirstORDefault () in LINQ in Query Syntax Or Method Syntax, At that Time If we Do not Get any Record Corresponding To Criteria in Where Clause then It Will return Some Default Value (Null).


FirstOrDefault () returns First Element Of Sequence.

FirstOrDefault () does not throws Exception when There IS No element Present in Table.

7) Compare two list and remove duplicates in c# using linq

        var list1 = new List<DownloadTask>();
        list1.Add(new DownloadTask{ OperationID = 1, MachineID = 1 });
        list1.Add(new DownloadTask{ OperationID = 2, MachineID = 1 });
        list1.Add(new DownloadTask{ OperationID = 3, MachineID = 1 });
        list1.Add(new DownloadTask{ OperationID = 3, MachineID = 2 });

        var list2 = new List<DownloadTask>();
        list2.Add(new DownloadTask{ OperationID = 1, MachineID = 1 });

        list2.Add(new DownloadTask{ OperationID = 3, MachineID = 2 });

var lst = (from lst1 in list1 here !list2.Any(
                       x => x.OperationID == lst1.OperationID && 
                       x.MachineID == lst1.MachineID )
                       select lst1).ToList();


     list1 = lst.ToList(); 

8) How to use the GroupBy in LINQ 

The ‘GroupBy’ feature in LINQ is amazing and very powerful. When you use a ‘GroupBy’ in LINQ, internally, it calls an extension method which returns a sequence of System.Collections.Generic.IEnumerable<(Of <(IGrouping<(Of <(TKey, TSource>)>)>)>).

empList.Add(new Employee() { ID = 1, FName = "John", MName = "", LName = "Shields", 
DOB = DateTime.Parse("12/11/1971"), Sex = 'M' }); 

empList.Add(new Employee() { ID = 2, FName = "Mary",  MName = "Matthew", 
                      LName = "Jacobs", DOB = DateTime.Parse("01/17/1961"), Sex = 'F' }); 

empList.Add(new Employee() { ID = 3, FName = "Amber",  MName = "Carl",
                     LName = "Agar", DOB = DateTime.Parse("12/23/1971"), Sex = 'M' }); 

empList.Add(new Employee() { ID = 4, FName = "Kathy", MName = "", LName = "Berry", 
DOB = DateTime.Parse("11/15/1976"), Sex = 'F' }); 

empList.Add(new Employee() { ID = 5, FName = "Lena",  MName = "Ashco",
                          LName = "Bilton",  DOB = DateTime.Parse("05/11/1978"), Sex = 'F' })


Example 1  
List of employees grouped by the first letter of their first name
To display a list of employees group by the first alphabet of their first name, use this query:

var grpOrderedFirstLetter = empList.GroupBy(employees => 
    new String(employees.FName[0], 1)).OrderBy(employees => 
    employees.Key.ToString());

Example 2
List of employees grouped by the year in which they were born
In order to group the employees based on the year in which they were born, use this query:
         
var grpOrderedYr = empList.GroupBy(employees => 
    employees.DOB.Year).OrderBy(employees => employees.Key); 

Example 3

Sex ratio
To find the sex ratio in the company, use this query:

var ratioSex = empList.GroupBy(ra => ra.Sex) 
  .Select( emp => new 
  { 
      Sex = emp.Key, 
      Ratio = (emp.Count() * 100) / empList.Count 

  }); 

How to Become Full Stack Developer

What is Full Stack Development, Definition?

Full stack development refers to the development of both front end and back end portions of an application. This web development process involves all three layer- Presentation layer(front end part that deals with the user interface), Business Logic Layer(back end part that deals with data validation) and the database Layer. It takes care of all the steps from the conception of an idea to the actual finished product.


Having a specialist work on each of the different subsystems of web development process proves quite complex and expensive. Companies are demanding full stack developers who are proficient in working across multiple stacks.
‘Sounds interesting! Let’s see what is the skill set required to enter this upcoming field.’

 

 

Full Stack Web Developer definition:

A full stack developer has the functional knowledge and the ability to work on all aspects involved in building an application. He is proficient in
  • Writing optimized front-end code in HTML, Java, JavaScript
  • Creating and using APIs and writing backend code in Ruby, Python/Java
  • Working with system infrastructure including hardware and OS
  • Networking, Security
  • Understanding, creating and querying databases
  • Project management and Client coordination
Hence a full stack developer can develop strategies for every part of the web development process. He develops this deep knowledge of the systems through years of experience in working in this field. So a full stack developer is nothing less than a veteran who has high responsibilities. Such skills are difficult to gather and people who possess these skills are greatly in-demand in the industry.
Scroll down to Learn how to become full stack web developer!
Though experience makes one an expert in this field, there are various courses that one can do to start off the journey and become a full stack developer. Here we have listed down the 4 most popular courses in full stack. Read on to find out which course matches your capabilities and interests.

Full Stack Web Development Course:

Companies are looking at hiring web developers who are experts in all facets of the web development process. They are looking at people who can play different roles like a designer, developer, and database specialist. Specialist in single subsystems like only front-end or back end cannot understand the bigger picture of the entire system. Moreover, when multiple experts work on the development process it becomes complex and time consuming. Coordination and strategizing also become an issue. That is why Full stack developers are the most sought after by companies today. Though there are several courses that one can do to learn different technologies, these courses are only a few pieces of the jigsaw puzzle. Even after learning a few of these technologies one will not understand how these pieces fit in to complete the puzzle. With a full stack web development course, you can gain expertise in multiple technologies and also learn how they work in sync with each other. These courses provide a seamless transition from a simple developer to a full stack developer. The developer learns how to use different technologies to design, develop, and launch the website.





A full stack web development course will teach you how to design and develop complete websites from start to finish. You will learn how to work on different aspects of web development including front-end, back-end, databases, debugging, testing, version control and other essential technologies. You will go through each of these segments in a step by step manner and gain expertise in each of them. The courses cover both theory based learning as well as practical application. Live projects give hands on experience to work as a full stack developer.
Here are some of the most common technologies that you will develop expertise in, under each segment.
  • Front end- HTML, HTML5, JavaScript, J Query, CSS3
  • Backend- Ruby on Rails, PHP, Angular2, Node.js
  • Database- MySQL, MongoDB, CouchDB
  • Debugging/Version Control- GIT, Grunt, Xdebug, Subversion
So basically these courses begin with giving you a fundamental knowledge of front end development. You will learn how to use HTML5, CSS3 to create simple applications. 

Then you will go on to learn advanced concepts needed to create interactive and responsive designs. With knowledge of popular backend technologies like Node.js and Ruby on Rails you will become a master in developing and coding complex server side applications. You will also learn how to make powerful use of relational database and how to secure and configure the server and host applications. 

You will explore how to implement a number of advanced features like email notifications, user authentication and many more. Working with servers, performing database integrations and troubleshooting development issues will be a piece of cake for you.
Rich learning content including training videos, online resources, e-books, interactive quizzes, exercises will be provided to you to facilitate learning. 


You will be taught by top industry professionals who have ample experience of working in this field. Assignments, Case studies, and live projects help you to learn by doing it hands on. Effective feedback on the projects and personalized attention will make learning a very smooth process.

Once you learn how to design, develop and launch a website single-handedly you will have a bright career path ahead of you. Some training institutes also help you with placements in leading companies, so that you can get a head start in your career.
So if you are a graduate with basic knowledge of computers, OS, and basic coding skills you can hope for a bright career in web development after taking this course. If you are already in the development field with the only front end or only back end knowledge, you can advance your skills to the highest level by enrolling for a full stack web development course.
After all, the future scope of specialists in only one area is slowly fading away. You should be an expert in the entire process right from designing, development to deployment. Software development companies, Website development studios- all are looking for Full Stack web developers who are masters in all fields.

Full Stack Web App Development Course:

Full stack web app development courses are meant for people who wish to be an expert in developing web applications. This course will familiarize you with each layer of the software technology including data base technology, web server environment, network protocols and user interface. 
Here you will learn all the fundamental concepts that you need to develop, test and deploy your own full-stack web app from start to finish. As you learn the theoretical concepts you will actually build a full stack web app along with the course so that you gain first hand working experience. You will also learn how to include features like user authentication and user accounts. 
A basic understanding of HTML, CSS and Javascript is a prerequisite for this course.

Full Stack Digital Marketing Course:

Whether you are a business owner looking to increase traffic to your website or an aspiring digital marketing expert, this course will help you to master the strategic marketing concepts and understand the tools needed to create a brand image in the digital world. Here you will learn about the various aspects of digital marketing including Search engine optimization, social media marketing, email marketing, Facebook Marketing, Twitter marketing, Youtube marketing, Copywriting, WordPress, Google Analytics and Adwords.  You will learn how to develop strategies and use these techniques to increase traffic, generate leads and grow any type of business.

Career as a Full stack web developer:

Well, by now you must have realized that it isn’t quite easy. Becoming a master in so many different technologies will take a lot of time and patience. So is it worth the efforts?
Career as Full Stack Developer

Yes, it definitely is. Newly set up companies and start-ups are increasingly on the lookout for such experts who can help them achieve the same results in a lesser budget. So rather than having a front end, back end and database expert, hiring one full stack developer who can do the job of all 3 individuals prove to be cost effective. Moreover, the full stack developer understands the bigger picture and can provide a seamless integration of various subsystems in the development process. So if you learn all the aspects of web development you surely have a bright future ahead of you. According to the job trends of the popular website Indeed, the no. of job openings for full stack web developers has increased 8 folds since 2012.

Full Stack Developer Salary in India, USA:

In India, the average salary of a full stack developer ranges between 3.9 lakhs to 7 lakhs depending on the number of experience in the field. Major IT companies like Wipro, SAP, TCS, Deloitte, and HCL hire full stack developers who are a jack of all trades.
Full Stack Web Developer Salaries in India, Full stack developer salary
In USA, the average pay of a full stack developer is $76,000. Wells Fargo, HP, Walt Disney, Expedia are some of the major employers of full stack developers.
Full Stack Web Developer Salaries in in USA, Full Stack Developer salaries USA
Hence a versatile full stack web developer will have tremendous opportunities for growth, and will never have to worry about job security.
Bottom Line:
Full Stack web development is an upcoming field that will continue to grow in the future. With ample job openings, lucrative pay-scale and opportunities for advancement considering a career as a full stack developer is a wise decision.
So if you are all set to ride the information technology wave as a full stack developer take one of the courses in full stack development and be an expert in the field. Various courses mentioned above will make you an expert in front end technologies, back end technologies and databases. With knowledge of programming languages, servers, databases, networks and hosting environments you will know how to link the different pieces of the puzzle to create perfect web solutions.
Just one small tip in the end- It is not just about learning different technologies, but also experience in working on real projects that will help you achieve mastery in all the areas. So the more you practice, the sooner you will achieve success.

How to Become a Full Stack Web Developer -The detailed Guide?

Start-ups and newly set up companies usually have limited budgets. Even big businesses are finding ways and means to reduce their costs to survive the cut throat competition in the market. In such a scenario the ability to get a work done by a single individual instead of three can be nothing less than a god sent a gift.  A full stack developer is a person who can handle front end, back end and database aspects of a web development project. So instead of hiring a front end expert, a back end developer, and a database specialist, companies are increasingly demanding a full stack developer who is a jack of all trades.

If you become a full stack developer you will have ample job opportunities waiting for you with open hands. Your skills set will give you an edge to command a higher salary than other developers.

Full Stack developer Vs Software Engineer:

So if you are a software engineer ready to upgrade your skills and take on the challenge lets first see what is the prime difference between a software engineer and a full web stack developer. What is it that you need to know to stand out from the rest?
A full stack web developer is someone who has both front end as well as backend knowledge. They are well versed with programming languages needed for client side development. They know how to write back end applications and APIs that power the website. They can work with databases, operating systems and they can also handle project management activities. Basically, they are comfortable working on all tiers of application development.
A software engineerOn the other hand, is a computer programmer who develops software applications that run on a computer. They write the code using a programming language and test it rigorously to ensure that the software runs without errors and achieves the desired objective. They are specialists in only one tier of the application development.
If you are a software engineer you must have done some development courses to expand your skill set. Let’s find out how a full stack web development course differs from other development courses.
Most development courses focus on a particular layer of application development. Some focus on the front end development. In these courses, one learns languages like HTML and CSS that deal with the front look of the website which the user sees and experiences. These enable the developer to create engaging content that provides an impressive user experience. Some other courses deal with the back end aspects of server, application, and database. In contrast, a full stack web development course offers a complete package of front-end, back end and database knowledge. These courses prepare the learners to work cross functionally on the full stack of technology.

Full Stack Web Development Guide:

Follow this guide and give wings to your dream of becoming a full stack developer.
There are some essential technologies that you must learn in order to call yourself a full stack developer. Here is a quick guide to what technologies you must learn.

HTML and CSS- 

To begin your career in web development you must have the fundamental knowledge of HTML and CSS. They are the basic building blocks of web that enable you to add content and styles to your webpages. So start your journey of becoming a full stack developer by gaining a sound understanding of these front end concepts.

JavaScript-

The fact that JavaScript can be used both in front end and back end development makes it very popular. It is one of the hottest technologies in the market where continuous innovations take place. With new tools and frameworks getting released every year, one needs a sound knowledge in this area. Knowledge of JS frameworks like AngularJS and ReactJS would help one to write long codes with ease. A solid understanding of jQuery would be an added advantage.

Backend programming languages

After gaining a strong foothold in the front end arena next comes backend languages like Ruby, Python, PHP etc. which handle application logic, user authentication, and data operations. Start with a language which is easier to learn. Whatever language you choose, just make sure you are thorough with its nuances. You may learn NodeJS which is based on JavaScript that you would have already learned before reaching this point.

Database& Web Storage-

In order to design and develop dynamic websites, one should surely know how database driven websites store and access data. Learn the benefits of relational database management system like SQL. Understand how to connect a backend language with a database. Gain knowledge about web storage so that you know how to store cookies, sessions and cached data in the browser.

HTTP and REST-

You must gain insights into HTTP- that is the protocol required to facilitate communication between the client and server. You must also know how REST is important to HTTP protocol and web applications. Knowledge of Chrome DevTools and SSL certificates would be advantageous.
Additional skills set to adopt as full stack developer are as follows.

Application Architecture-

Developing complex applications would require a deep knowledge of how the code should be structured, how the data needs to be structured in the database, how to separate files, where to perform computational tasks and where to host large media files. So a full stack web developer surely needs a deep knowledge of web application architecture.

Version control system-

A full stack web developer needs to be well versed with a version control system. An understanding of GIT will help you keep track of any changes that you make to the codebase.
The best way to begin your journey is to take up an online course in full stack web development that will not only help you build on your theoretical concepts but also give you practical insights. Let us explore some good tutorials available online.


Full Stack Developer Tutorials:


Coursera:
One can master the skills of a full stack web developer by joining a Specialization course with Coursera. Through a series of rigorous courses taught by top instructors using a step by step approach, these courses provide a wonderful resource for learning. Recorded video lectures, assignments, quizzes, discussion forums and hands on projects based on real business challenges make Coursera a wonderful training institute.
Udacity:
Through its Nanodegree programs, Udacity aims at imparting real skills in Web development. One can get a 360 degree view of the entire web development process, learn about industry best practices and gain confidence to tackle real life challenges. Udacity has a very focused approach, it imparts those skills that you need to gain a strong foothold in the industry. It involves the learner in real projects from the start and teaches by examples. The best part about learning with Udacity is that one develops a very good professional network here.
Udemy:
A global marketplace for online learning, Udemy also has very well constructed and comprehensive courses in full stack web development, that combine theory, demonstrations, and assignments.
Lynda:
Lynda has an extensive library of engaging top quality courses taught by the industry experts. The quality and clarity of these courses are what sets Lynda apart from other online courses.
Get hands-on Experience:
Remember learning about various technologies is just one side of the coin. Courses, books, blogs can only prepare you till a certain level. So once you have the foundation knowledge the next step is to put it to practice. Create something of your own to gain expertise.
Start by building simple and easy applications and put your front end as well as back end skills to use. Only when you do an actual project, will you understand the nuances of the job. Moreover, an employer wants to see more than just the certification courses on your resume. They want proof that you know how to create a tangible product. They want to see whether you can solve their problems. A list of projects that you have worked on will help in winning their trust.
Acquiring expertise in so many technologies and becoming an expert in all the layers of web development may seem like a daunting task in the beginning. But take my word, things get easier with time. You just need to have an urge of learning new things. Be persistent and don’t lose focus. As you gain experience in one technology learning the second one becomes a lot easier. Also, the experience will teach you how everything you learn fits in to create the big picture.

We wish you luck as you embark on your journey to become a Full Stack  Web Developer!