Tuesday, June 7, 2022

High Paying Jobs after Learning Python

Everyone knows Python is one of the most demand Programming Language. It is a computer programming language to build web applications and scientific applications and to conduct data analysis. 
python is Object Oriented and high level programming language and it is a general purpose programming language that means we can develop different types programs or applications irrespective of specific purpose. 

 Now a days most of the candidates preferred to learn python programming language only because it is easy to learn and understanable for beginners. Now Let us talk about what are the Highest paying IT jobs after learning core python. 

 Here are the List of Highest paying jobs after Learn python: 

 1. Python web Developer: 

 After Learning core python then learn python web development framework such as Django or Flask. Flask is easy to learn compare to Django. But Flask is used to develop medium size applications or projects. If you want develop complext web applications then use Django framework. You will get package if you are 3 years experienced candidate around 8 to 14 LPA. It depends on the company and your skill set and interview performance. 

 2. Data SCIENCE: 

 Python have set or rich librarires to develop Data science projects like Numpy, Pandas, Matplotlib, Scipy etc.. You can high package if you have 4 years experience then you can expect 17 LPA TO 25 LPA depends on the company 

 3. Machine Learning or Artificial Engineer: 

 If you learning Machine Learning related python libraries like scikit-learn , keras,Pytorch and Tensorflow etc..then you can become Machine Learning engineer. You will get good package like if you have 3 years of experience you will get around 16 LPA to 20 LPA it depneds on the company. 

 4. Full stack Python Developer: 

 Full stack developer means who know front end technologies and backend technologes that person is called full stack developer. so to become python full stack developer you should know fron end technologies like HTML, CSS, JavaSCRIPT and front end framework like Angular or React JS and Back end framework like DJango or Flask and one database application and any cloud service provider like AWS/AZURE/GCP. You will get good package like for 4 years experience candidate around 15 LPA TO 24 LPA it depends on the company 

 5. Data Analyst: 

 you should have good skills like Data visualization tool like power bi or Tableau, data warehouse skills and ETL SKILLS and database modeling skills then you can become Data analyst. You can expect good package like 3 years experience candidate 9 LPA 13 LPA Along with above skills you should have Good Logical Thinking Good analytical thinka and problem solver and Good Communication Skills to get high package.

Friday, November 20, 2020

Top 10 Programming Languages to Learn in 2021

 Hello Everyone in this post you will know Top 10 programming Languages to learn in 2021 and also to get job in 2021. These programming languages are very demand in 2021. •Programming language is a computer language which is used by programmers to develop software programs. In today’s world people are getting smart and they want to use applications and tools. 

Software engineers use a programming language that’s appropriate for the platform for which they’re building an application. It depends on what kind of software do you want to write? Web-based? Machine learning? Mobile? Device drivers? Robotics? Virtual reality? Video games?

ALL IT COMPANIES ARE HIRING WHO ARE GOOD AT ANY PROGRAMMING SKILLS AND WHO ARE STRONG CODING SKILLS THOSE PROGRAMMERS GETTING HIGH PACKAGE. 




1. JavaScript:

JavaScript is one of the most popular languages in 2021 all over the world. It is used for front end web development and increases interactivity to the website by using graphic effects, animations, dynamic styling, forms. JavaScript language is widely applied in Game Development, Web and Mobile Development and Desktop Applications.

2. Python:

Python is quickly gaining its popularity by its applications in projects of Machine Learning and Data Science. The best thing about Python programming is that being a high level language it is easy to learn. Python language is used to develop Web & Desktop Development, Network Servers, Machine Learning, GUI Based Desktop applications, In Enterprise and Business and Data Science.


3. Java:

Java is again a popular language to acquire. It is also easier and faster to maintain with fewer bugs. It is well known for its features such as it has great portability as of JVM, Java can nearly run on any system. It is highly scalable. It another important feature is "Write once, run anywhere". Java has been applied in numerous fields, some of which are Scientific Applications, Banking & Financial Services, Web & Mobile Development and Desktop Development.


4. C#:

C# is a general-purpose language to acquire as it is one of the oldest and most popular languages. It is an Object-Oriented language. It runs on a .Net platform and is effective to build Windows desktop application and games using the C# language. It can be applied in creating VR Games, Windows 8 & 10 and in Game Development.


5. R is an open source software, which works best on GNU, Linux and Microsoft Windows. Compared to Python, R is difficult to learn. The application of R programming language is in the field of Data Science, Statistical Computing and Machine Learning.


6. C++ is considered as one of the most highly efficient and flexible to use programming language.

This language is used for writing device drivers and compilers and programming robots and the application of C++ can be seen in Game Development, Web & Mobile Solutions, Desktop Applications and Embedded Systems.

7. Go Language:

Go language was developed at Google to overcome the failings of other coding languages used by developers.

Go displays large data sets in an easy to understand workflow. Its’ most important feature is its concurrency, the ability of a program to run multiple tasks simultaneously. There are no complex abstractions or clever metaprogramming in Go—just basic features specified in a straightforward syntax.

8. Swift:

SWIFT is a general purpose, open source, compiled programming language developed by Apple. So, if you love using iOS apps and want to develop native iOS or Mac apps, then SWIFT is the one for you.

9. Kotlin:

Kotlin one of most used programmng language by Google for android development. It also supports functional programming languages. The application of KOTLIN is for Android Development, Web Development, Desktop Development and Server Side Development.

10. PHP

Php is used to create Web pages, which are written in HTML. PHP language is mainly used to create dynamic and static websites.


Friday, October 23, 2020

Project Manger Interview Questions and answer for Automation Testing

 In this post you will know real time project manager interview questions and answers for automation testing experienced engineers. These manager round interview questions helpful who are going face technical round. 


The following are the  FAQ's for automation Testing engineers:


if you want answers with explanation watch this video:



1. Explain about your project?

2. Explain about responsibilities in your project?

• Identification of test cases for automation from existing test case documentation.

• Applying Designing and Test Automation Strategy Document

• Creating an automation test plan and getting approval.

• Configure Selenium Test Environment for setup(ex: Java, Selenium WebDriver and TestNG etc.).

• Participation in Selenium Environmental Setup with IDE.

• Automation framework design and implementation according to project structure.

• Creating, Enhancing, Debugging and Running Test Cases.

• Organizing, monitoring defect management process Handling changes and conducting regression tests.



3. How will you receive the project Requirements?

Project requirement will be receive from project repository like github. Once SRS completed then this SRS will put into the repository from there every tester will access.

4. What are the challenges you faced in the project?

5. What is your team size?

6. What you people discuss in sprint plan meeting?

7. How many test cases will execute per day?

8. Have you involved in the project release process?

9. Do you run all regression tests for every bug fixed?

10. Have you written any SQL Queries in your project? If you write SQL Query in which situation you used.

When we are going to fill data in the application form to ensure that the data is stored in the correct tables and columns and retrieve the data from the database by that time we used SQL Queries.



Wednesday, October 21, 2020

what should i learn selenium with java or selenium with python 2021

 In this post you will know which is better career option selenium with java or selenium with python in 2021. Selenium is automation Testing tool it is used to automate the web applications. 

Python is a good language, no doubt about it and works pretty well with Selenium. But there are good reasons to choose Java for Selenium:


For More Information watch this video in detailed: 



a) Java is a more powerful language and has been evolving regularly with updated versions for every 6 months to one year that means that it will be able to constantly provide you more efficient code writing ability. 

If we learn the Java programming language, then we can learn Rest Assured tool for Web services Automation. Rest Assured API will use Java programming language. Similarly we can learn Appium for mobile Automation and JMeter for performance testing. So learning Java will make you as an Full stack QE easily.

These are highly demand skills in IT market now and upcoming years also. 

Selenium with Java community is much larger and it means that, if you are stuck, you will have plenty of support available to get out of that.

Job Opportunities : More than 70-80 % of companies uses Selenium with Java. , Means existing companies already they are having their own framework and they want expansion either in the existing projects or new projects. Probability of chances with Java with Selenium is High. Most of the level 4 and level 5 companies come under this strategy.


Python: 

 Python is mostly used in Telecommunications companies.

Who are introducing and traversing from Manual Testing to Automation they used selenium with python and who are working with Robot Framework they are using selenium with python.

The overall probability of getting jobs Selenium with Java : Selenium with Python = 7 : 4


My suggestion is to learn Java with Selenium and work for 2 years you will be hands on. Then learn Python language also, if you have both skills then you will better career scope in feature. After learning and getting experience with Selenium with Java. Learning Selenium with Python is easy.


You should be open to learn newer technologies, rather than going into comfort zone either you choose selenium with java or python

8. if you upgrade your skills will make you confident and also gives an upper edge over the other resources in the company.

Trends in current Market :

1. SDET is the most wanted skill set in the current market.

2. Learning Cloud based platforms such as AWS and Microsoft Azure is an added advantage.

3. Learning DevOps tools like Jenkins, Docker, kubernetes makes you to become Testing architect with high package. 


My conclusion words are choose any programming langue depending on the application you test. 


Tuesday, October 20, 2020

Page Object Model Interview Questions and answers for Selenium Tester

 In this post you will know Most asked page object model interview questions and answer for selenium automation Tester. These POM interview questions frequently asked for automation testing engineer.

The following are the POM interview questions and answers:

If you want more questions with explanation watch below Video:




1. What is POM ? Advantages of POM?

Page Object Model (POM) is a design principle to manage the test cases and page objects separately.Framework types like data-driven, behavior-driven, keyword-driven, etc. can be designed with the page object model. 

The main advantage of Page Object Model is that if the UI changes for any page, it don’t require us to change any tests, we just need to change only the code within the page objects.

improves code readability - Allows us to separate operations and flows in the UI from Verification

Re-usability of code - a locator or function can be reused in the tests.Eliminate 

redundancy – no duplicity of functions or locators.

2. What is Page Factory?

Page Factory is enhancement of POM. Page factory provide the facility to locate and initialize web elements of an page without using findElement( ) or findElements( ) method of selenium

Page factory provides annotations like @FindBy, @FindAll, which locate the web element and return the WebElement instance for the same

These annotations use the attributes for specific locator types like id, name, class name, CSS, link text, partial link text, class-name, and XPath

3. How page classes will interact with Web Elements in POM?

The Page object is an object-oriented class which acts as an interface for the page of your Application under test. Page class contains web elements and methods to interact with web elements. While automating the test cases, we create the object of these Page Classes and interact with web elements by calling the methods of these classes

4. What are the OOPS Concepts applied in POM?

Abstraction:
Both POM and page Factory  Design patterns inspired through abstraction.
Interface:
WebDriver driver = new FirefoxDriver(); 
Inheritance:
Polymorphism:
Encapsulation:

5. What are the Design Pattern used in the Project?

Most frequently used design patterns is POM (Page Object Model). Enhanced POM, also known as Page Factory can be used which helps you in resolving stale element exception, also provides cache management.Both POM and Page Factory design patterns are inspired through Abstraction 
Strategy Design pattern

6. What are the Challenges faced while Working with Selenium Automation?

Generally an automation engineer face is maintaining the code.
If your application is frequently changing html elements of the page and some new components are being added and so on, this may affect your code especially locators.
To get rid of these situations we have certain design patterns like POM (Page Object Model), Page Factory.
One more challenge is while working with Selenium is Synchronization.

7. How to Explain Project in Interview For Experienced?











Wednesday, October 14, 2020

Tell me about yourself interview question for Java Experienced Developer

 In this post you will know how to introduce yourself as senior java developer in the interview. This is one of the best answer for the interview question is tell me about yourself some thing or introduce yourself or how your friends describe you.





How to Prepare Java Interview for 3 Years Experinced

 In this post you will know how to crack Java Developer interview for Experienced Candidates. Java is one of the popular programming Language in the world. Java is every where. With the help of java we can developer Web applications, Mobile applications , enterprise applications and it also supports to work with Bigdata and IoT.

Now we will see what are the  concepts must prepare before attending technical interview. 

Core java : You have must have deep knowledge on String class, Collections Framework, Oops, exception handling, multithreading, Logical thinking,(You are going to asked 50% of the questions from Core java only)


If you want too see more Explanation on this topic then watch this video:



Core java 

• OOPS ( specially differentiating abstraction & encapsulation)

• String ( immutability ), String Buffer , String Builder 

• Threads (implementing ways ,race around condition, deadlock etc )

• Exception Handling

• Object class ( hash code and equals methods )

• Comparator , comparable 

• Interface , abstract class

• Collections ( differences and when to use )

• static class , static method , static block difference

• final keyword - significance and use

• heap area , stack area , string pool

• Singleton class and its implementation




Advance Java: Concepts of servlet, Jsp (Basics), life cycles(15% questions)

Advanced Java

3. Difference between JSP , Servlet

4. forward and redirect

5. life cycle of JSP and servlet 

6. JSP scriptlets , directives , declaration , expressions


FrameWork : 

Spring(Dependencynjection,AOP.JDBC,MVC, autowiring, annotations like @component @controller @repository, spring MVC related interview questions like validate data from spring web mvc, Transaction management, Dispatchservlet, Security,cache, spring integration) is must, 

SpringBoot related Interview Questions

hibernate Interview Questions 

 webservices Interview Questions like SOAP/REST (25% question )

Design patterns like strategy, singleton, factory, abstract factory.

Build Tools: Maven or Gradle

Version Control: SVN , Git

Servers: tomcat, web logic and Web Sphere

Project methodology: Agile, Scrum

Project Manager round: which domain you are working, who is you client, which part you have developed in the project, which App server you are using and version, Describe your role in project.(10% questions)


If you are attending Interview with product based company then you must prepare Data Structure and algorithms in Depth. Since Product based companies most focus on problem solving skills and algorithms. 

Data structure & Algorithm : this is one of the major section where you have to code on the provided question or explain the one. so prepare & practice well on trees, tries, BFS, DFS, String search, searching & sorting, Arrays etc


Monday, October 5, 2020

How to Learn Java 2021 | What are the skills required to become Java Developer 2021

 In this post you will now what are the skills required to become a java developer 2021 based on their experience. Java has been a leading programming language In IT. It is widely used for developing web applications, enterprise applications, cloud computing applications, Machine learning environment and IoT . Java is most popular choice writing android apps. 


Fresher or Beginner

Core Java

Advanced Java Servlets and JSP(Good to have)

Basic Knowledge Of spring framework

Database Skills like SQL , oracle 

Frontend Tech like HTML,CSS and JS

Basic knowledge on Linux and windows environments



For 1 to 3 Years Experience Java Developer

Core Java

Advanced Java Servlets and JSP

Web framework like Spring and Springboot framework

Hibernate Framework

Database skills: SQL, ORACLE

Micro services

Frontend Tech like HTML, CSS and JS

Web services like SOAP/REST(Intermediately) 

Java Build Tool: Maven, ant

Any web or application server like Tomcat, web logic

• Comfortable with Linux/Unix and Windows environments.



For 3 to 7 Years Experience Java Developer:

Core Java

Advanced Java Servlets and JSP

Web framework like Spring and Springboot framework

Hibernate Framework

Database skills: SQL, ORACLE

Microservices

Front-end Tech like HTML, CSS and JS

Web services like SOAP/REST

Design Patterns 

Java Build Tool: Maven, ant, Gradle 

Any one JS framework( React, angular,JQuery)

JUNIT( Testing framework)

Any application server like weblogic , JBOSS, Tomcat and web sphere

Software methodology like agile

Any automation Testing tool like Selenium

Any Cloud Services Exp like AWS , azure or GCP

Basic Network  related skills.

Comfortable with Linux/Unix and Windows environments.



For 7 to 15 Years  Experience Java Developer:

The above Skills and the following skills:

• Strong Experience with relational databases, SQL, ORACLE . Experience with PostgresSQL 

• Experience working with Docker

• Familiar with security, authentication , authorization (Oauth2.0) technologies

• Comfortable with Linux/Unix and Windows environments.

• Software development and engineering skills on large-scale, mission-critical infrastructure applications is a plus.

• Demonstrated ability to develop tests at the unit and component level for either frontend or backend.

• Exp with Agile SCRUM development methodologies

Experience with SaaS, container development strongly desired.


• Experience with distributed and/or big data systems 

• Experience with concurrency issues in multi-threaded programs

• Experience working with Kubernetes

• Experience working with jenkins

• Should have good debugging skills, project set up etc..

• Project Management skills(nice to have PMP Certification)

• Nice to certifications like OCAJP ,Spring profession certification, aws solution architect, scrum master certification, pmp certification









Tuesday, September 29, 2020

How to Learn Python

 In this post you will learn how to learn python as beginner step by step easy way to learn python within one month.If your are thinking to start learning python then I guess you made the right choice by starting to learn Python because Python is the world’s fastest and most popular programming language not just among SDE’s but also among  Data Analysts, Scientists and even Kids too!!! The reason is simple because Python is a very beginner-friendly programming language and one of the most used programming language. Python has found its places everywhere such as web development, machine learning, and artificial intelligence or even the programming of micro controls – 

You may have  doubt why everyone says python is easy programming language the reason is due to its syntax and readability. hence it reduces the cost of maintenance of the program. The syntax of Python is smaller than most other programming languages like Java, C, C++.

Before starting learning about Python, it is very important to understand your areas of interest. Pick an area you’re interested in, such as:

 Data science / Machine learning

  AI

  Mobile apps

 Web Development

  Games

  Scripts to automate your work 

Now we will see step by step the best way to learn python programming




Step 1: ( one week to 15 Days)

Python Basics like history of python, variables, oprtaors, functions and control structures these topics extremely easy compared to other languages like JAVA, c, c++

Step 2: OOPS concept, Built-in Data Structures (10 to 15 Days)

OOPS in Python

List, Tuples, Dictionary.

String Formatting

Exception Handling

If you are a beginner then I would recommend you to focus on this section as it is widely used while making complex applications.You might not understand a lot of things at first, but give things time to sink in and it will make sense.

Step 3: Web Frameworks(2 Weeks)

There are so many frameworks for web applications in Python.

 Django: A high-level web framework mostly used in startups and enterprises for web development. It follows the MVC pattern and you can use multiple databases such as PostgreSQL, MySQL, SQLite, and Oracle.

Flask: Flask is one of the easiest micro-frameworks to learn in Python.

Web-crawler:   

Building a web crawler was interesting as well,  crawler which was used by search engines back in the early days to crawl web pages, find links and store those links in a file.

Step 4: Python Libraries ( 1 week)

If you aspire to be a data analyst/ data scientist then focus on learning these libraries.

Learned about the Numpy and Pandas library which are extensively used to perform data analysis with Python. 

Step 5:     ML: (2 weeks)

For learning you need to learn 

TensorFlow: It is one of the most famous and popular deep learning library developed by Google

Scikit-Learn: It is Machine learning library for Python designed to work with numerical libraries.

 PyTorch: It is the library that can handle dynamic computation graphs.

Step 6: Learn Automation with selenium(1 week)

After learning almost everything about Python selenium felt pretty easy.

Selenium is originally used for testing purposes but it turns out that you can automate various tasks with it. So overall It took around 10 - 14 weeks to complete the python course

Note that  you have to dedicate 2–3 hours every day for learning.

After learning everything try to build your own projects like calculator, weather applicaton, E commerce, online cv generator etc.. 

Here are the python best books for beginners

learn python

python cookbook

python essenstional reference

python in nutshell

online Resources:

Some of the tips from my side:

 Have patience, it’s not just in case of learning Python but also it’s in the case of learning another language. Learning a first language always requires more effort and time so understand that it will take time to sink everything.

 Be consistent, if you are not consistent in learning it will take a lot more time and effort.

The building project is always helpful in building confidence so don’t ignore its importance.

Due to some complex terms, errors, and issues, you will feel like giving up. Don’t do that, it happens with everyone in programming.

    






























Thursday, September 24, 2020

Interview Questions for experienced java developer

 In this post you will know 22 most asked core java interview Questions and answers for java developers who are having 1 to 4 years of experienced.

When you are attending for Java interview core java interview questions plays important role no matter you are fresher  or mid level developer or senior java developer. This technical round decides outcome of your interview. 

1. Why you override hashcode along with equls() method?

2. How to prevent a class from being sub classed in java?

When a final modifier is used with a class then the class cannot be extended further. This is one way to protect your class from being sub classed and often sensitive classes are made final due to security reason. This is also one of the reasons why String and wrapper classes are final in Java.


Want see all answers then watch this video:



3. Can we override static method?

No, you cannot override static method in Java because method overriding is based upon dynamic binding at runtime and static methods are bonded using static binding at compile time. Though you can declare a method with same name and method signature in sub class which does look like you can override static method in Java but in reality that is method hiding.

4. Can we access private method in Java?

Yes, we can access private method in the same class but not outside the class.


5. Can you explain final keyword?

Final is a special keyword it can be used in different context such as:

When the final keyword is used with a variable then its value can’t be changed once assigned.

When a method is declared final then it can’t be overridden by the inheriting class.

When a class is declared as final in Java, it can’t be extended by any subclass class but it can extend other class.

6. Difference between checked Exception and unchecked Exception

Checked Exception:  The exceptions which are checked by the compiler for smooth excetuon of the program at runtime is called checked exception:


It means if a method is throwing a checked exception then it should handle the exception using try-catch block or it should declare the exception using throws keyword, otherwise the program will give a compilation error.


• Ex: SQLException

• IOException

• ClassNotFoundException




Unchecked Exception: The exceptions which are not checked by the compiler are called unchecked Exception.


Ex: NullPointerException

ArrayIndexOutOfBound

IllegalArgumentException

IllegalStateException

7. How to fix concurrentModificationException?

8. Difference between abstract class and interface?

9. When to use abstract class and interface in java?

10. Difference Btw method overloading and overriding in java?

11. Difference between encapsulation and abstraction?

12. Have you applied object cloning in your project?

Object cloning in Java is the process of creating an exact copy of an object. It basically means the ability to create an object with a similar state as the original object. To achieve this, Java provides a method clone() to make use of this functionality. This method creates a new instance of the class of the current object and then initializes all its fields with the exact same contents of corresponding fields.

13. Difference between HashTable and HashMap

14. When to use Transient variable?

when you want to make a variable non-serializable in a class, which implements the Serializable interface. In other words, you can use it for a variable whose value you don't want to save.

15. Tell me one example when to use ArrayList and when to use LinkedList?

Arraylist is best choice is if our frequent operation is retrival that means get(int) or when search operation need to be performed.

Whereas Linkedlist is best choice if our frequent operation is insert and delete operations in the middle. Since it does not need several shift operation internally.


16. Diff b/w StringBuffer and StringBuilder


Every method present in StringBuffer is synchronized that means at a time only one thread is allowed to operate on StringBuffer object, hence StringBuffer obj is ThreadSafe whereas no method present in stringbuilder is synchronized that means multiple threads are allowed to operate simulountesly hence stringbuffer is not thread safe.


Stringbuffer increases waiting time of threads and hence performance is low whereas threads are not req to hold and hence performance is high.


17. How to create custom exception? Or user defined exception

To create user defined exception we need to write subclass simply extending the java Exception class and you can override toString()function to display your customize message on catch.

  

In the Exception class provides methods to show error message to the end users. They are

getLocalizedMessage()

getMessage()

toSting()


While you want to develop user defined exception in your programming project no need to override any of the above methods which are available in the Exception class in the sub class. Based on your project requirement you have to customize your message to show end users.


Simply says You can Override toString() method to display custom message.

           You must extend the Exception class to create custom exceptions 


18. When we should go for join() method?

If a thread wants to wait until completing some other thread then we should go for join() method. Join() method throws interruptedexception which is checked exception, hence we should handle either try-catch or throws keyword.


19. What type of exceptions faced in your project and how you resolve it?

I have faced different types of exceptions but some of the exceptions like nullpointerexceptions, concurrentmodification exception and illegalmonitorstateexception.

Wait(), notify() and notifyall() methods are available in Object class but not in Thread class becaz thread can call these methods on any common object.

To call wait(), notify() and notifyall() methods compulsory the current thread should be owner of that object that is current thread should has lock of that object that is current thread should be synchronized area. Hence we can call wait(), notify() and notifyall() methods only from synchronized are otherwise will get Runtime exception says Illegalstatemonitorexception.


Tell me some java8 features with example

Java 8 has been one of the biggest releases after Java 5 annotations and generics. Some of the important features of Java 8 are:

1. Interface changes with default and static methods

2. Functional interfaces and Lambda Expressions

3. Java Stream API for collection classes

4. Java Date Time API



20. Why we need generics? Have you used generics in Your Project?

21. Difference between Loose coupling and tight coupling?

22. Difference between BufferReader and Scanner in Java? which one prefer?

23. Explain collection conepts with realtime examples?

24. Exalain oops concepts with real time examples

25. What is singleton class in Java?

26. Difference between ClassNotFoundException and NoClassDefFoundError

27. Difference between constructor and method

28. Explain public static void main()

29. Difference between Heap Memory and Stack

30. How to explain Spring MVC Architecture

31. How to explain project architecture?




 

 

 

 




 


Friday, September 18, 2020

Top 5 Best Microservices Books

 In this post you will know the top 5 MicroServices Architecture Books for java developers as well as software architect position developers. 

Microservices architecture allows developers to build and maintain applications with ease, and enterprises are rapidly adopting it to build software using Spring Boot as their default framework. With this book, you’ll learn how to efficiently build and deploy microservices using Spring Boot.


1. Hands - on Microservices with springBoot and spring Cloud

This book covers the following exciting features:


    Build reactive microservices using Spring Boot

    Develop resilient and scalable microservices using Spring Cloud

    Use OAuth 2.0/OIDC and Spring Security to protect public APIs

    Implement Docker to bridge the gap between development, testing, and production

    Deploy and manage microservices using Kubernetes

    Apply Istio for improved security, observability, and traffic management




2: Building Microservices 


In this  book, sam newman covered the principles of Microservice Architecture as well as how to design, deploy, test and observe Microservice Architecture in length. He also pointed out the potential pitfalls about designing Microservices and how to migrate a Monolith application into Microservices in an evolutionary way. As a bonus, Sam Newman’s writing is elegant, clear and he has explained such a complex topic in a surprisingly simple way. This is a must-read book for anyone wants to be engaged in Microservices


3. Microservices Patterns


In this book: the topics covered  the advantages of Microservice Architecture as well as the disadvantages and challenges of Microservices. For every challenge, he has then offered one or more patterns to solve the problem and their merits/demerits. This book also summarizes all the patterns used in the Microservices world.


4. Spring Microservices in Action


This book teaches you how to build microservice-based applications using Java and the Spring platform. You'll learn to do microservice design as you build and deploy your first Spring Cloud application. Throughout the book, carefully selected real-life examples expose microservice-based patterns for configuring, routing, scaling, and deploying your services. You'll see how Spring's intuitive tooling can help augment and refactor existing applications with microservices.


5. Cloud native architecture


The book starts with a quick introduction to cloud native architectures, helping you get up to speed with what cloud native architecture is. You will learn what a cloud adoption framework looks like and even go on to develop cloud native architectures using microservices and serverless computing as design principles. You'll then explore the major pillars of cloud native design including scalability and availability, cost optimization, security, and operational excellence to build on your knowledge of effectively running and managing cloud environments. In the concluding chapters, you will learn about a variety of public cloud architectures, right from Amazon Web Services (AWS) and Azure through to the Google Cloud Platform (GCP).


What you will learn

Understand the difference between cloud native and traditional architectures

Explore different aspects of migration, including when and why you should migrate

Identify the elements you need to consider when selecting a technology for your architecture

Automate security controls and configuration management

Use Infrastructure as Code(IaC) and CI/CD pipelines to run environments in a sustainable manner

Understand the cloud native application development capabilities of AWS


Who this book is for

This book is for software architects who want to design resilient, scalable, and highly available applications that are native to the cloud.


Friday, September 11, 2020

Top 15 Mostly Asked SpringBoot Interview Questions and answers

 In this post you will learn mostly asked springboot interview questions and answers. Nowadays interview expects more knowledge of Spring Boot from candidates. Spring Boot aims to simplify Java development with Spring by removing major pain points with respect to configuration, dependency management and ease of development.

In order to answer Spring Boot question with confidence, you not only know what problem Spring Boot solves but also in-depth knowledge of some of its core features like auto-configuration and starter dependencies. These two features eliminate a lot of configuration and setup work from Spring-based Java application.

Here is the List Top SpringBoot Interview Questions and answers




1. What is springboot?

It is a framework for rapid application development built on top of the Spring Framework. We can say in simple words springboot is the combination of spring framework and embedded servers. It is used to create a stand-alone Spring-based application that you can just run because it needs minimal Spring configuration. In Spring Boot, there is no requirement for XML configuration (deployment descriptor) that means it decreases the effort of the developer.

2. Why Springboot is used?
To design any spring based application, a developer needs to be taken care on manual set up on Hibernate data source, Entity Manager, Session Factory, Transaction Management everything.

To Design all those common set up, a developer doesn’t need to define everything individually, SpringBootConfiguration annotation enough to manage everything at the time of deployment.
Spring MVC application some of the XML configuration mandatory to manage. Whereas Configuring Spring Boot Application nothing needs to be managed, the only annotation managed everything.
As configuration can be easily handled by manually, so Spring or Spring MVC can manage to not loading some of the unwanted default features for that specific application. In case of Spring Boot, it automatically handled on default loading part, so the developer doesn’t have as such concept of not loading some of the specific unusable spring default features.

3. what is use of @SpringBootApplication annotation and how it works internally?

The @SpringBootApplication annotation is equivalent to using @Configuration, @EnableAutoConfiguration, and @ComponentScan with their default attributes. Spring Boot enables the developer to use a single annotation instead of using multiple. But, as we know, Spring provided loosely coupled features that we can use for each individual annotation as per our project needs.

4. What are starter dependencies?
Spring Boot starters are maven templates that contain a collection of all the relevant transitive dependencies that are needed to start a particular functionality.
For example, If we want to create a Spring WebMVC application then in a traditional setup, we would have included all required dependencies ourselves. It leaves the chances of version conflict which ultimately result in more runtime exceptions.
With Spring boot, to create web MVC application, all we need to import is spring-boot-starter-web dependency. Transitively, it brings in all other required dependencies to build a web application e.g. spring-webmvc, spring-web, hibernate-validator, tomcat-embed-core, tomcat-embed-el, tomcat-embed-websocket, jackson-databind, jackson-datatype-jdk8, jackson-datatype-jsr310 and jackson-module-parameter-names.
pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

5. What is Spring Initializer? why should you use it?
One of the difficult things to start with a framework is initial setup, particularly if you are starting from scratch and you don't have a reference setup or project. Spring Initializer addresses this problem in Spring Boot.

It's nothing but a web application which helps you to create initial Spring boot project structure and provides Maven or Gradle build file to build your code.

6. What is Spring Actuator? What are its advantages?
This is an interesting Spring Boot question and mostly asked on Java roles which also has some support responsibility. Spring Actuator is another cool Spring Boot feature which allows seeing inside a running application.

 It allows you to see inside an application. Since Spring Boot is all about auto-configuration it makes debugging difficult and at some point in time, you want to know which beans are created in Spring's Application Context and how Controllers are mapped. Spring Actuator provides all that information.

It provides several endpoints e.g. a REST endpoint to retrieve this kind of information over the web. It also provides a lot of insight and metrics about application health e.g. CPU and memory usage, number of threads etc.

It also comes with a remote shell which you can use to securely go inside Spring Boot application and run some command to expose the same set of data. You can even use JMX to control this behavior at runtime.

Btw, it's important to secure your Spring Actuator endpoints because it exposes a lot of confidential information and a potentially dangerous one-two. For example, by using /showdown endpoint you can kill a Spring Boot application.


7. What is Spring Boot CLI? What are its benefits?
Spring Boot CLI is a command line interface which allows you to create Spring-based Java application using Groovy. Since it's used Groovy, it allows you to create Spring Boot application from the command line without ceremony e.g. you don't need to define getter and setter method, or access modifiers, return statements etc.

8. What are some common Spring Boot annotations?
Some of the most common Spring Boot annotations are @EnableAutoConfiguration, @SpringBootApplication, @SpringBootConfiguration, and @SpringBootTest.

The @EnableAutoConfiguration is used to enable auto-configuration on Spring Boot application, while @SpringBootApplication is used on the Main class to allow it to run a JAR file. @SpringBootTest is used to run unit test on Spring Boot environment.

9. What is the difference between @SpringBootApplication and @EnableAutoConfiguration annotation?
Even though both are essential Spring Boot application and used in the Main class or Bootstrap class there is a subtle difference between them. The @EnableAutoConfiguration is used to enable auto-configuration but @SpringBootApplication does a lot more than that.

It also combines @Configuration and @ComponentScan annotations to enable Java-based configuration and component scanning in your project.

The @SpringBootApplication is in fact combination of @Configuration, @ComponentScan and @EnableAutoConfiguration annotations

It's also very powerful and can auto-include a lot of library in Groovy's default package if you happen to use it.
For example, if you use JdbcTempalte, it can automatically load that for you

10. Can we disable the default web server in the Spring Boot application?
The major strong point in Spring is to provide flexibility to build your application loosely coupled. Spring provides features to disable the web server in a quick configuration. Yes, we can use the application.properties to configure the web application type, i.e.  spring.main.web-application-type=none

11.Can we override or replace the Embedded Tomcat server in Spring Boot?
Yes, we can replace the Embedded Tomcat with any other servers by using the Starter dependencies. You can use spring-boot-starter-jetty  or spring-boot-starter-undertow as a dependency for each project as you need.

12. How to do unit testing and integration testing in a spring boot application?
Typically any software application is divided into different modules and components. When one such component is tested in isolation, it is called unit testing.
Unit tests do not verify whether the application code works with external dependencies correctly. It focuses on single component and mocks all dependencies this component interacts with.

To perform unit testing, we can take help of specialized annotations such as :
• @JdbcTest – can be used for a typical jdbc test when a test focuses only on jdbc-based components.
• @JsonTest – It is used when a test focuses only on JSON serialization.
• @RestClientTest – is used to test REST clients.
• @WebMvcTest – used for Spring MVC tests with configuration relevant to only MVC tests.
• In integration testing, we shall focus on testing complete request processing from controller to persistence layer.
• The @SpringBootTest annotation helps in writing integration tests. It starts the embedded server and fully initializes the application context. We can inject the dependencies in test class using @Autowired annotation.
• We can also provide test specific beans configuration using nested @Configuration class or explicit @TestConfiguration classes.

13. How to enable debug logging?
To enable debug logging,
1. we can start the application with the --debug switch.
2. we can set the logging.level.root=debug property in application.properties file.
3. We can set the logging level of root logger in supplied logging configuration file.


14. How to enable HTTPS/SSL support in Spring boot?
The SSL support in spring boot project can be added via application.properties and by adding the below entries.
application.properties
server.port=8443
server.ssl.key-alias=selfsigned_localhost_sslserver
server.ssl.key-password=changeit
server.ssl.key-store=classpath:ssl-server.jks
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=JKS

15.Is this possible to change the port of Embedded Tomcat server in Spring boot?
Yes, it's possible to change the port. You can use the application.properties file to change the port. But you need to mention "server.port" (i.e. server.port=8081). Make sure you have application.properties in your project classpath; REST Spring framework will take care of the rest. If you mention server.port=0 , then it will automatically assign any available port.

16. Where do you define properties in Spring Boot application?
You can define both application and Spring boot related properties into a file called application.properties. You can create this file manually or you can use Spring Initializer to create this file, albeit empty.

You don't need to do any special configuration to instruct Spring Boot load this file. If it exists in classpath then Spring Boot automatically loads it and configure itself and application code according.

Wednesday, September 9, 2020

When to use SQL and NoSQL

 In this post you will know when to use SQL and NoSQL . This is question may rise from many of software developers what exactly difference between SQL and NoSQL and when to use SQL and NoSQL.

First let us understand why nosql came into IT Market though sql already exist.  The main reason is, with rise of social media,E commerce, search, and the explosion of data, SQL was struggling to manage all the requests, transactions, and activity occurring online. NoSQL is designed to manage lots of traffic and data.

SQL is used to communicate with Relational Databases. It is used to store ,update,delete the data.

 RDBMS stores the data in a very organized way in tabular format.




Examples for RDBMS are:

oracle, mysql, sql server

whereas nosql(not only sql) can store the data in different types of data together. Data is stored in many ways which means it can be document-oriented, column-oriented, graph-based or organized as a Key-value store. It is used for flexibility and therefore speed and scalability in managing large volumes of data.


There are four types of NoSQL databases.

Key value: data is stored as attribute names or keys with values

Document: contains many different key value pairs

Graph: used to store data related to connections or networks

Column: data is stored as columns instead of rows


Examples for nosql database are:

MongoDB, Cassandra, Redis, Couchbase, DynamoDB and Hbase


Now lets talk about when to use SQL and nosql


Use SQL instead of Nosql

You’re working with complex queries and reports. With SQL you can build one script that retrieves and presents your data. 

NoSQL doesn’t support relations between data types.

 SQL databases are a better fit for heavy duty or complex transactions because it’s more stable and ensure data integrity.

if you’re not working with a large volume of data and not expecting constant changing in your project then sql is best choice.


use nosql instead of sql


if You are not concerned about data consistency and 100% data integrity then no sql is best choice. 

For example, with social media platforms, it isn’t important if everyone sees your new post at the exact same time, which means data consistency is not a priority.

You have a lot of data, many different data types, and your data needs will only grow over time. NoSQL makes it easy to store all different types of data together and without having to invest time into defining what type of data you’re storing in advance.

It can’t guarantee ACID properties. In such cases like financial transactions, etc., you may go with SQL databases.

If you have local data transactions that need not be very durable.

if You are constantly adding new features, functions, data types then nosql is better choice.

The choice of the database will depend upon your preferences, business requirements, volume, and variety of data.

NoSQL databases are gaining large popularity these days due to their capacity to integrate big data, low cost, easy scalability, 


and open source features. However, it is still a relatively young technology and lacks standardization, unlike SQL which in 


turn creates some issues during migration. Lack of ACID compliance is also a concern with NoSQL.




Thursday, September 3, 2020

Will you Leave this company if you get better opportunity?

 In this post i am going to sharing frequently asked HR Tricky Interview Question and also who attend for government jobs also may face this type of tricky interview questions. In this session you will find Best answer for the HR interview " will you leave this organization if you get better opportunities? 


Okay, these kinds of questions are quiet tricky. Either of a straight YES and NO can create a negative image of yours. You need to be sincere enough to deal with such a situation.

Sometimes it's good to be diplomatic to get an offer with a handsome paycheck. Let's find out the consequences of saying yes or no:

If you directly say YES then it leaves a negative impression about you which is not acceptable in the corporate environment and it would be significant enough to disqualify you for the further rounds. So not a direct yes on this question.

 


If you directly say NO then the interviewer might think that you are lying to land into a job.

What should be your ideal take on this???

This question must be answered in a somewhat diplomatic manner. I would answer this question like — “For me, better opportunities does not mean a raise in salary. If I would get better opportunities in terms of learning, opportunities to showcase my skills, better career growth options, good working culture, opportunities to work in my areas of interest only then would I consider leaving the organization. Working for this organization has always been my dream and I would not leave the organization just for a mere hike in my salary.”

 

Second answer should be like “First of all, I will explore the information about the opportunity to figure out the outcomes of joining. Everybody loves the comfort zone and once I start feeling comfortable here, it would be hard for me to switch my loyalty and compromise my comfort level. Comfort in terms of cordial relationship with my peers, not finding comfort in my tasks.

I love challenging tasks only. To be honest, I will try to seek advice from my college seniors and the elders in my family. If the opportunity fits all the aspects then I will definitely reveal the same to my reporting manager and I hope your employee retainment policies must be reasonable enough to retain my employment with this organization.”




Monday, May 4, 2020

How to become full stack .Net Developer

In this post you will know how to become a full stack .net Developer and also known who is full stack developer and what are the skills required to become a full stack .net developer.

A full stack developer is capable of working both front and Back end Technologies and also should have worked on servers, database, software design, cloud technologies etc..



The following are the skills required to become a full stack .net developer:


Front End:
·  HTML
·  CSS
·  Bootstrap
·  JavaScript
·  jQuery/ Angular JS
·  AJAX

Back End:
·       C#
·       ASP.NET
·       .NET Core(Newly released)

Frameworks:
·       Web API
·       MVC

Database:
·      Sql Server

Cloud Technology:
·       Microsoft Azure

Added Skills:
·       Devops
·       Testing skills
·       Software Design skills
·       Version Control : GIT (or) SVN
·       Communication and Presentation

Friday, February 14, 2020

When to use SQL and when to use NoSQL

In this post you will know what is SQL and NoSQL and the main differences between them and also covered when to use SQL and Which scenario recommended to use NoSQL,

SQL stands for Structured Query language, pronounced as "S-Q-L" or sometimes as "See-Quel". SQL is the standard language for dealing with Relational Databases. SQL can be used to insert, search, update and delete database records. SQL can do lots of other operations including optimizing and maintenance of databases. Relational databases like MySQL Database, Oracle, Ms SQL server, Sybase, etc uses SQL.

 NoSQL is not a relational database. The reality is that a relational database model may not be the best solution for all situations. The easiest way to think of NoSQL, is that of a database which does not adhering to the traditional relational database management system (RDMS) structure. Sometimes you will also see it revered to as 'not only SQL'.





Now we will see the key differences between SQL and NoSQL

                SQL
 NoSQL
1.                      SQL is Relational data base(RDBMS)
2.                      It is a query based language
3.                      These databases are table based databases.
4.                      SQL databases are vertically scalable.
5.                      SQL databases are suitable for complex query intensive work environments.
6.                      SQL follow ACID model such as:
·      Atomicity
·      Consistency
·      Isolation
·      Durability
Examples: oracle,mysql,sql server etc..

1.          These databases are called non relational databases or distributed data bases.
2.          This database is no declarative query language.
3.          This database can be document based, graphs, key-value paired data bases.
4.          NoSQL databases are horizontally scalable.
5.          It is not suitable for complex query.
6.          NoSQL follows BASE model such as
·       Basically available
·       Soft State
·       Eventually Consistent

Examples:  MangoDB, DaynoDB, Cassandra etc..


when to use SQL:


SQL Preferred when building customer reports
When the requirement is to store and get data from a database.
If communication is required from different related tables then should use SQL
If you want write complex queries using joins, views , stored procedures.

When to use NoSQL:
Need to handle large volumes of structured, semi-structured, and unstructured data
Follow modern development practices such as agile sprints, quick iterations, and frequent code pushes
Prefer object-oriented programming that is easy to use and flexible
Used when logging data from variety of sources.

High Paying Jobs after Learning Python

Everyone knows Python is one of the most demand Programming Language. It is a computer programming language to build web applications and sc...