What should I tackle first: Problem-solving or programming languages?
During the starting period of learning ‘how to code’ or ‘learning to program’, students are always confused about what should they tackle first…
Whether they should start learning the fundamentals of problem-solving that includes algorithms, complexities, etc. or they should start learning the core fundamentals of coding that includes concepts of any particular programming language, library, framework, etc.
To be honest, we are not going to prove that any one of them is less important than the other, but how to prioritise one of them depending upon the learning stage you are already at.
Depending upon the early stage of learning, we have divided the learning process into three chunks, which can give you marvelous result and speed if followed.
Stage 1: Learning the Basics of Coding
This does not mean that you should focus on programming language first. This part is learning very basics of the coding or learning how the computer works.
This includes :
- Basic Syntax ( Printing “Hello World” )
- Data Types
- Variable & Constants
- Loops
- Decision Making (If Else)
- Functions
No matter which language you prefer, all of them work the same way on basic properties. Still, it’s better to choose from C, Java, and Python.
By learning this, you understand the basic principles of how the computer works. Now, you are ready for the next stage.
Stage 2: Learn Problem Solving & Algorithms
After learning the basics of how computer works and what instructions a computer can understand, you are ready to learn to solve the problem for the machine.
This is the real part where you learn about problem solving and algorithms. You can follow the step by step process for learning about different algorithms and their implementation.
For the Data Structure part follow these :
- Scope Binding
- Array & Linked List
- Stacks & Queues
- Trees, BSTs and Binary Heaps
For Algorithms & Analysis part follow these :
- Analysis and Asymptotic Notations
- Divide & Conquer
- Greedy Approach
- Dynamic Programming
- Graph Traversal, Hashing, and Sorting
- Complexity Classes : P, NP, NPH, and NPC
The above are very big topics if you learn and go through them, you will learn about so many things like :
- Mixing and modifying data types as per your need and making a new data structure.
- Storing and retrieving data from complex data structures.
- Analyzing and comparing different types of problem-solving algorithms.
- Famous algorithms approach designed yet and which one to choose as per your need.
- To check whether the solution is feasible in the practical world or not.
Stage 3: Learning Programming Languages and Frameworks
After you have learned how to solve the problems from a machine perspective. You are ready to learn to give instructions to the machine so it can understand and perform your tasks as per your instructions.
At this stage, you are also able to decide on your own which programming language, framework or libraries you should start learning or use in your next project and will be able to use the full potential of the language and machine at this point of time.