Tuesday, March 9, 2021

What is Algorithms?

 Algorithms

An algorithm is the step by step expressly instructions to solve a given problem.

Let us consider the problem of making a maggie.To prepare an maggie, we follow the steps given below 
1. Take a pan and put one glass of water according to number of packets.

2. Put the maggie in it and make boil till little water evaporates.

3. After that put the masala in it and stir continously.

4. After some time put in plate and serve it.

In this we are providing the step by step procedures for solving it.

There are two main criteria for judging the merits of algorithms


a, Correctness
b, Efficieny

What is the need to analysis of Algorithms ?

If  someone wants to move from city A to city B by any means of transport like bus, train or flight. Depending upon the convenience and source available to person, Person will choose the particular mode.

Similarly, in computer science multiple algorithms are available for solving the same problem.
For example : Sorting have multiple sorting algorithms such as bubble sort, insertion sort, radix sort and so on.

Algorithmic analysis help us to determine which algorithms is best suited and chosen in a particular scenario.

Goal of the Analysis of Algorithms :


The main aim is to compare the all algorithms such that wisely chosen the algorithms in terms of the running time and other factor also play a vital role in that such that memory management etc.

What is Running Time analysis 

 
It is the process of the determining how the processing time increases as the size of the problem i.e the input size increases.Input size is the number of the elements in the input, and depending on the problem type, the input may be of different types. The following are the common types of inputs.
1. Size of the array
2. Polynomial degree
3. Number of elements in the matrix
4. Number of bits in the binary representation of the input.

How to compare Algorithms


To define a few objective measures :
1. Execution times?
2. Number of the statements executed?
3. Ideal solution?

The factors promote to choose the algorithms is the rate of the growth.



Monday, March 8, 2021

Data Structures and its types

 The Data structure is one of the main concept in computer science. As the name implies itself data structure is to give a structure to data.  In simple words, It will help us to organize or manage storage in particular format such that enables efficient use of main storage and modification.
 A Data structure is a special format for organizing and storing data. In another word more precisely. It is a collection of data values the relationship among them or operations that can be applied to the data.
General data structures types include Arrays, Files, Linked list, Stacks,  Queue,  trees, graphs and
so on.
Depending upon the usage particular data structure is used the factors promote to decide which

data structure is used in particular scenario and depend upon the organization of the elements.
Data structures are classified into two types
 1.  Linear data structure  :
  In this type of data structure the data  a store in Linea fashion that's  elements can be assessed
  in sequential order
 for examples : Arrays, linked list, stacks, Queue
2 Non Linear structure
In non linear data structures elements of this data structure are stored in a linear non linear order
For example : trees and graphs





Abstract Data types (ADTs)

For all user defined data types there is need to define operations. The basic operation are addition, subtraction. All prmitive data types such as int, float etc support these opeartions.
In general, user defined data types are defined along with their operations. In order to simplify the process of solving problems, There is need to combine the data structures with their operation and this is called as Abstract data type.

An ADT is consist of two parts:
1. Declaration of data
2. Declaration of operations.


For coding books,Follow
The book name here



Sunday, March 7, 2021

Improve Problem solving and Platforms to practice coding

 One of the main problem facing young ones who just started coding and decided to practice coding. To improve and get perfection in problem solving. To get perfection, We have to put hours of  hard work daily such that with the passage of time, We are gonna have a good hold in that particular skill. There are many platforms available out such that one can practice the coding and problem solving.

At first, We have to first basic knowledge of Data Structures such that  with that basic knowledge one can proceed to Algorithmic sessions.

The checklist is :

A. HackerRank

It is one of great platform which does not only just used for learning problem solving. Many giants companies are using these platforms for setting up test for hiring purposes such as Goldman Sachs.

It have wide variety of programming languages such as C, C++, Java , Python , Ruby and JavaScript. Not just programming languages more than that such as Databases, Sql , Linux  shell. and many more..



Certifications to and list goes on .



They provide ranking on the basis of question you solved and gave many contest , Jobs.

B. LeetCode

This platforms you provide better place to improve coding skills with larger Topics from all concepts. They provide monthy LeetCode challenge and daily .

Mock Interviews and coding questions which appear in the Companies test which they setup for hiring purposes

C.  CodeChef

It is one of the platforms with hundreds of problem solving question will be there to practice. Even many good developers who won hackathons and appear in coding test globally  platforms such as Codejam etc. prepared from there as it provides great problem solving question.

They offer DSA  learning series and for the beginners great tutorials .

Problem classification is also great feature of this platform such as School , Easy , Medium and so on..

D. CODEFORCES

It is great platform and knows for doing competitive programming. The rating of codeforces is worth for ones, Even many developers put their ranking in their resume. They have provided the larger number of contest. 

They have wide problem set. The coder who have good rating is rated under Top rated section with their rating and username . For the contributors they have section who contributed larger ranked under Top Contributors.

E. CODESIGNAL

Intro section is there for getting start to code then after that The Core section is there many more depth concepts are there in core section .

For Python Languages there are about 92 questions are there to start with and have grip in each cooncept.

Graph section is there for Graph data structure lovers.

Tech recruiters and engineering hiring managers use a technical skills assessment platform to gain deep insights into candidates’ skills and abilities. 

F codewars

The main aim of this platform is achieve mastery through challenge. One can improve their skills by training with on real based problem


Choose any one and start the journey of learning.

G. GeeksForgeeks

This is one the leading platform to learn any Computer Science subjects. All programming languages and many emerging technology tutorials are there such that one can start their CS carrier with it.

For practicing the platform provide all data structure concepts and classifies in different categories from basics , school and at higher levels.

Provide great content for GATE exam ,  ISRO CS exam , UGC NET CS.

Interview corner is there to get know about particular company  do hiring and asks which type of questions.

 H. hackerearth

Community for developers , assessments and hackathons.




Practice programming , prepare for interviews and level up your coding skills as much as .Don't see in the ranking wise as A means best one . I have just list all the platforms. Please first visit all and then decide to procced with any one .

I personally like HackerRank and GeeksforGeeks, codeforces


Comment down yours favorite one....

 


Thursday, March 4, 2021

Coding basics and skills all you need.

 

Everyone who is curious about to be get perfection in coding . Basically, Coding is all about the problem solving. Problem solving is only one way to get perfection in coding. If once master the problem solving then for person there are many new roadways will be there to start his company experience or work on real world based projects.


Its not about how many programming languages you know.  The only thing matters is how you can transform your ideas or problem in the programming language form. As of now, Every new ones who is taking part in this stream CS/IT stream eager to learn as many as languages instead of focus on one programming languages and build strong hand in that particular language.

Steps to improve coding skills.

1. Consistency:

Do daily minimum number of question from any platforms such that person can get hold in it. One have to be continuous in any anything.If we wants to be master in that may be it is sports or any subject . We have to put some time daily in that such that period of time you have good hold in that particular subject.

2. Learning:

The process of learning should be go on with person as their other life hustle is going on raise from the crowd . Learn new concepts while solving questions. The problem solving only helps you to identify problem and able to solve more problems.


3. Practice

After learning each new concept try to solve problem from that particular domain such that you will get good hold in that concept.

There are many platforms such as

a, HackerRank
b, GeeksForGeeks
c, Hackerearth
d, Codewars
e, Leetcode
f, CodeChef
g, Codeforces
h, CodeSignal
and many others too.

5. Problem solving

One need to be have the problem solving mindset.To achieve this thing “Do as many as problem solving question”.It will develop problem solving nature.


The great book to land in great companies follow this book 
In next one ,I will tell you to explore which problem solving platforms.
Stay tuned.