In this post you will understand how can i improve programming skills.Programming(coding) is just a part of process of problem solving, You should need to understand the underlying problem and efficient solution within given constraint.Constantly find small problems that you care about which can be solved programmatically and practice, practice, practice.
So i will better tell you,how to be better at problem solving:
Step 1: Learn
Programming Language & Computer science fundamental :-
First & foremost ,you should be proficient in any one of the popular languages(C/C++/Java/Python), I will advise you to chose between c++ or Java ,since both are widely accepted across all coding competitions and have better resources to get yourself trained. Apart from knowing the language
make sure you are pretty good in debugging and testing your own written code
with all the scenarios.
Some of the Resources you can go through it to improve your coding skills:
CodingBat java: www.codingbat.com/java
coursera c++: www.coursera.org/course/cplusplus4c
Data Structure and Algorithm:-
You can be a good programmer if you know a programming language well but to become a great programmer you need to understand underlying data structure and algorithms.
Learn all the basic data structures - array, list, tree, graph, trie, dictionary/map, set, etc.
Learn the advanced data structures whatever you can - suffix array, suffix tree etc.
Implement data structures in whatever languages you know.
Understand the basic operations (read, write, etc,) time complexity for those data structures.
Understand the strength & weaknesses of each of those.
Remember the data structure support by the language libraries (STL, classes etc.).
Algorithms:
Step 1: Learn
Programming Language & Computer science fundamental :-
First & foremost ,you should be proficient in any one of the popular languages(C/C++/Java/Python), I will advise you to chose between c++ or Java ,since both are widely accepted across all coding competitions and have better resources to get yourself trained. Apart from knowing the language
make sure you are pretty good in debugging and testing your own written code
with all the scenarios.
Some of the Resources you can go through it to improve your coding skills:
CodingBat java: www.codingbat.com/java
coursera c++: www.coursera.org/course/cplusplus4c
Data Structure and Algorithm:-
You can be a good programmer if you know a programming language well but to become a great programmer you need to understand underlying data structure and algorithms.
Learn all the basic data structures - array, list, tree, graph, trie, dictionary/map, set, etc.
Learn the advanced data structures whatever you can - suffix array, suffix tree etc.
Implement data structures in whatever languages you know.
Understand the basic operations (read, write, etc,) time complexity for those data structures.
Understand the strength & weaknesses of each of those.
Remember the data structure support by the language libraries (STL, classes etc.).
Algorithms:
- Learn all the easy algorithms - sorting, searching, graph algos, etc.
- Learn all the advanced algorithms whatever you can - dynamic programming, backtracking, etc.
- You need to master algorithm complexity computation.
- You need to learn how to design your custom algorithm as per the need.
- Keep implementing lots of algorithms
Step 2: Practice
Improve your speed and accuracy in coding by participating in various online resources.
STEP 3: Propagate
Form a study group and keep practicing daily. Try developing your own algorithms/applications; try answering a few questions on Stack Overflow.You can even organize workshops for the juniors in your college.
Finally i could say the following key points:
- Write a lots of code, compile, run, debug.
- Read lots of code authored by others, may be from popular open source projects.
- Keep learning new languages, new data structures, new algorithms, new tools year after year.
If your really love this blog share to your friends and follow the for more updates.