0% found this document useful (0 votes)
471 views

What Have You Gained From Competitive Programming

Competitive programming provides several benefits according to responses to the question. It can help with job offers and everyday problem solving skills. It also provides specialized knowledge in algorithms, data structures, and programming languages. Competitive programming turned out to be a better way of learning for some compared to traditional university courses. It allows for traveling and meeting new people. Lastly, competitive programming can provide a strong background for careers in software engineering and game development. However, some responses note it is important but not the only or most important skill, and other skills like understanding large complex systems are also valuable for industry.

Uploaded by

Mathews
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
471 views

What Have You Gained From Competitive Programming

Competitive programming provides several benefits according to responses to the question. It can help with job offers and everyday problem solving skills. It also provides specialized knowledge in algorithms, data structures, and programming languages. Competitive programming turned out to be a better way of learning for some compared to traditional university courses. It allows for traveling and meeting new people. Lastly, competitive programming can provide a strong background for careers in software engineering and game development. However, some responses note it is important but not the only or most important skill, and other skills like understanding large complex systems are also valuable for industry.

Uploaded by

Mathews
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 313

What have you gained from competitive programming?

Did you go into research? Did it help you in any aspect as


a software engineer? Did it help you get an in-depth
knowledge of a programming language? Did it affect
your problem-solving skills?
This question previously had details. They are now in a comment.
Answer
Request
Follow387
Comments2+
Downvote
Share

32 Answers

Przemysław Dębiak, aka Psyho; won 4 TCOs + bunch of other stuff; ranked #1 in MMs
Answered Jul 15, 2015
Yes, a lot. It actually redefined my whole life (in a good way).

In no particular order:
 Job offers. Not that I care about them, but it's good to know that I have a backup plan
in my life.
 Everyday skills. Problem solving, focus, time management, stress management,
mental stamina, etc.
 Realistic self-esteem. I know what I'm capable of and I know my good and bad sides.
 Specialized knowledge. Algorithms, AI, machine learning, computer vision, low-level
optimization and bunch of others.
 Less time wasted at university. Competitive programming turned out to just be a
better way of learning things for me. Much better than many courses I had at
university. Ultimately, thanks to my results in competitions, I was able to safely drop
out from my studies.
 Traveling and meeting new people. Priceless.
 $$$. Well, sometimes  € € € too.
 Back pain. Oh...

Last but not least, it gave me a great background when I recently switched to being a game
developer/designer. Honestly, I can't imagine having a better background for this.

Each time I see "competitive programming is bad for you" I want to punch the author over
TCP/IP. It's like arguing that going to gym is bad. Sure, if that's the only thing you do in your
life, it might not be the wisest choice. But... well, you get the idea.
53.7k Views · View Upvoters · Answer requested by Bohdan Pryshchenko
Your response is private
Is this answer still relevant and up to date?
YesNo

Upvote648Downvote
Share
 
RecommendedAll

Robert Neuhaus, Software Engineer at Facebook


Updated Dec 19 · Upvoted by Nikhil Garg, ACM-ICPC World Finalist (2011, 2012) and Jessica Su, CS PhD student
at Stanford
Originally Answered: Do you find skills you achieved during programming contests to be useful outside of them?
I did a a lot of programming contest programming in 2004 to 2006.   I was a low to mid yellow
in topcoder (you'll find plenty people who are much better), and I qualified for the ACM ICPC
world finals from a relatively weak region in the US.

I've worked at Google for 7 years now.  I think I personally over-invested in programming
contest ability in terms of pay off for real, day to day work.  Of course, programming contests are
really fun, and it helps a lot in the interviews.  But solving well defined algorithmic problems
quickly is not a super important a skill to have to be an effective software engineer.  I think it's
more useful to be able to understand large, complicated systems.  It's important to be able to
solve complex, poorly defined problems in the span of months, rather than simple problems in
the span of minutes.

It's not that the skills relevant for programming contests aren't useful; to be able to break down
problems, cast them as things I already know, to learn tons of algorithms, to see right through
dynamic programming problems, and quickly debug small programs are certainly not useless
skills for a software engineer.  It's just that the marginal utility of hours and hours spent
practicing is fairly low, those skills might be 10% of the job, and improving from very good to
great at it doesn't help with the remaining 90% of day to day things.

If I were to do undergrad over with the intent of being immediately useful as a software engineer
for Google, I'd probably invest less time time in programming contests, and more time building
large projects and studying machine learning and statistics.
63.5k Views · View Upvoters
Upvote637Downvote
Share

 
RecommendedAll

Vivek Bhageria, Curious and confused


Answered May 5, 2015
Originally Answered: Does competitive programming really help in the industry to write a good code?
I would like to share an answer by Nikunj Mundhra to the question 
What is the best short story on hard work?
Here is Nikunj Mundhra's answer that should answer your question.

Have you met Rancho from Bollywood movie 3 Idiots in real life?


No!
Well then, you’ve got to meet Anudeep Nekkanti. He is passionate about Computer Science,
and despite being a non-IITian  or non-NITian, he has got a job offer from Google; Reminds you
of the  famous dialogue, “bacha kaabil bano… kaamyaabi toh saali jhak maar ke peeche
aayegi… (Pursue excellence and success will follow).”

Anudeep  hails from Samalkot, a small town near Visakhapatnam. While in school,  he did not
know much about JEE or AIEEE, and his father gave him freedom  to do anything he wanted,
rather than focus on JEE training. He  appeared for the state level engineering entrance exam
and reached  ANITS. His sister insisted that he take CS because, “CS is easy, you can start
preparation one day before exams and clear them.” He was looking forward to having fun in
college and accepted her advice.

In  his second year, he started doing competitive programming. He gradually  excelled in it while
solving problems on different online judges. Soon  he started winning state-level and national-
level coding contests. Last  month, he was invited to Russia to compete in the ACM World
Finals,  where his team finished 45th, surpassing some of the IITs and other top  institutes of the
world.

He had to risk his job for Zurich. He  was initially offered London, Bangalore and then
Hyderabad. He told he  do not want to take those position, and was in a situation of being 
completely rejected by Google. But it was okay with that too so he told  no to those 3 positions.
70 days after his onsite interview He was  finally given Zurich with package 1.32 cr INR
(approx.).

What helped him get this job - Competitive programming. That is all he did right from my
second year till date. What ever he  could answer in interviews was because of what he learned
for  competitive programming. :)

This  is the best success story i heard till date about a tier-2 or tier-3  colleges. He is considered
to be GOD for many fellow programmers  including IITIANs etc.
2.3k Views · View Upvoters
Your response is private
Is this answer still relevant and up to date?
YesNo

Upvote12Downvote
Share

 
RecommendedAll

Varun Gambhir, Competitive Programmer


Answered Aug 30, 2016
This answer does not deal with the fact whether competitive programming is useful in dealing
with situations mentioned in the question description. Instead it is about a girl who got into
MIT just because of her stellar competitive programming record. This answer is
about Malvika Raj Joshi.

Any person who follows competitive programming enthusiastically in India must have heard the
name of this outstanding girl. The thing that will leave many people dumbstruck is that she was
homeschooled. She does not have class X and class XII certificate!

So what made her unique? What makes her so special that she is admitted to one of the finest
institutes of higher learning in the world? The answer is competitive programming. She started
out at an early age and now has 2 silver and 1 bronze medal which she won at the prestigious
International Olympiad of Informatics(IOI). In a recent interview to a popular newspaper, she
herself mentions that - “When I started unschooling, that was 4 years back, I explored many
different subjects. Programming was one of them. I found programming interesting and I used
to give more time to it than to other subjects, so, I started liking it at that time”. CMI's
Madhavan Mukund, who is also National Co-ordinator of Indian Computing Olympiad says-
“This is possible only for a student whose academic achievements are outstanding, which is the
case with Malvika's performance at IOI”.

Here is a brief account from her own mother, Supriya Raj Joshi from Mumbai:

“To all who doubted, accepted, rejected, supported, respected, cherished, criticized our
unschooling journey and our fellow homeschoolers.

It was never a smooth journey but it was different in two ways, no teacher, no board, no
government but we ourselves chose to take responsibility of our own learning and we pursued
that with tremendous freedom and conviction. Secondly, more than marks and medals, we
believed and practiced the “joy of learning”.

And I remember a quote I read sometime back,

“What if I Fall? Oh, but my darling what if you fly?”


I just said so to cheer her up but she took it literally. And that made all the difference.

My elder daughter Malvika left her formal schooling at the age of 12.

Scholastically she was a bright student and so people were even more concerned. and I repeat,
the journey was never a smooth journey but you see when I say this I am not talking about
socialization or assessments. Those are really petty things and this is not what I say, this is
what our daughters say because they had more challenges to tackle.

And yesterday Malvika received this note from MIT, world’s top college for science and
technology!”

So to answer the question, competitive programming is not useless and has


benefits apart from being a fun activity. It is one of the things that can make a
person reach great heights if one excels in it.

PS: I know this does not answer the question exactly but a little inspiration for competitive
programming to youngsters won’t do any harm.

Sources & additional reading: ‘Unschooled’ Mumbai teenager Malvika Joshi makes it to MIT

From no school to MIT

7.6k Views · View Upvoters
Upvote44Downvote
Share

 
RecommendedAll

Mehedi Hasan, Student, Contest Programmer


Answered Jul 15, 2015
Though I haven't been much into that like the authors of other answers to this question, Frankly,
I started competitive programming in the last year. In case you want to know how it affects the
life of a newbie computer science student:

1. Firstly and primarily, you have a bit of fame in your department and among your
friends.
2. You manage to solve almost all the problems you face in your programming labs.
3. You meet a lot of smart people around you.
4. Your life-style changes in a way which invokes you to think about any problem (even
which might not be related to programming) you see around you.
5. You get some values while making any decision among your non programmer friends
(since they will start to think you are kind of genius :P).
6. MOST IMPORTANTLY, you discover an entire awesome, restless, cool and amazing
world full of excitements which you would never be able to discover otherwise
3.7k Views · View Upvoters
Upvote12Downvote
Share
 
RecommendedAll

Nikhil Garg, ACM-ICPC World Finalist (2011, 2012)


Answered Jul 6, 2012 · Upvoted by Greg Skinner, 25+ years of software engineering, mostly in C and Perl, mostly in
the BSD networking stack and Uni… and Jessica Su, CS PhD student at Stanford
Originally Answered: Do you find skills you achieved during programming contests to be useful outside of them?
I did a lot of programming contests for sometime and qualified to world finals of ACM-ICPC
twice. Second year, we were very close to a medal, staying in top 12 for most part of the contest,
only to fall out in last hour due to a strategic mistake. 

I'd answer this question at multiple levels :

1. Do I find skills gained from such competitions to be useful outside of their


domain?

Yes, I do. Through extensive problem solving I understood several concepts of


Computer Science much better. I'd go to the extent of saying that I learnt more
computer science from such contests (and related ecosystem) compared to all other
courses combined, that I did at my school. I learnt how to code well - making my code
both fast and beautiful. I learnt how to struggle with hard problems for hours without
giving up - I learnt perseverance. As most of my practice was with my ICPC team, I
learnt to solve problems in groups of 2 or 3 - I learnt team work. Reading code of top
people is a significant part of learning and so I learnt to read other's code as well. I'm
very well versed with both C++ and Java and understand internal implementation and
associated performance of a lot of relevant operations and containers. So in short, I
learnt a lot of very general skills that are useful to all computer programmers.

2. Do I think that the skill set I gained from such competitions is sufficient
and complete in a sense?

No. Such competitions don't teach me how to work on large code bases. They don't
teach me how to use modern tools and technologies. They don't teach me fundamental
abstractions useful in software design. Even for research, they don't teach me how to
approach an incredibly difficult problem (say NP complete) over months. 

3. Do I recommend doing such competitions to others?

I did such competitions with lot of vigor for a few months only. After that I lost that
vigor and passion - though I'd still do them every now and then and would learn new
stuff as well, I lost a sense of competition and virtually stopped doing individual
competitions focusing primarily on team competitions. After an initial learning curve,
I see them more as sports. You can participate in such contests only if you've an urge
to compete. Good CS skills might be required to do well in this sport, regular practice
might improve regular skills as well. It is like wrestling. People who do it are usually
strong, constant practice of wrestling makes one further strong as well. But more than
that wrestling has nothing to do with strength - it is a sport in its full right.

So seeing such competitions as ladder to learning/success is wrong. See them as competitions


and participate because you get a thrill in competing. So I recommend such competitions to only
those people who enjoy competing in them.
25.7k Views · View Upvoters · Answer requested by Sherjil Ozair
Upvote452Downvote
Share

 
RecommendedAll

Neeraj Pai, Neeraj Pai


Answered Oct 11, 2014
Originally Answered: What is the benefit of doing competitive programming from a job perspective?
The aim of competitive programming contests is to test whether people participating in it can
solve known CS problems quickly and efficiently.
Yes the problems will be known CS problems (simple ad-hoc problems, graph problems,
problems which involve the use of CS paradigms like greedy, divide and conquer, dynamic
programming, basic number theory, enumerative combinatorics etc and also sometimes very
small versions of known NP hard problems like travelling salesman problem which can be
solved within given time and memory limits.

If you diligently do competitive programming, with the intention of improving


everyday, you will get to see the following changes:
1. You will become good at mapping problems to known CS problems.
2.  You will able to quickly and correctly implement small problems.
3.  Acquire the ability to find out cases where our implementation fails and rectify them(debug
your own code).
4. Become good at data structures, algorithms, discrete mathematics and thus improve at
computational thinking.
5. Have a fairly decent idea about time limits required for executions of algorithms over given
input limits.

Now how would all of these help from a job perspective?


1. All of the above qualities are implicitly needed to be a good programmer.
2. Companies want good/ very good programmers.
3.  Hence having these skills would increase your chances of getting selected for in such
companies. 

But having said these there are a lot of other jobs like data scientists, Sys admins etc which may
or may not require these skills and would require other 
specific skillsets.
2.5k Views · View Upvoters
Upvote14Downvote
Share

 
RecommendedAll
Abhimanyu Mongandh Ambalath, I code
Answered Jul 6, 2012
Originally Answered: Do you find skills you achieved during programming contests to be useful outside of them?
Programming contests are no different from mathematical puzzles, 
1 .Doing them would make you sharp, 
2. would enable you to think more clearly and properly, 
3. Might help you in getting into Google, fb etc.

but they suffer the same drawbacks 


1. an idealised case problem far from real world, 
2. a more or less repetitive base problems. 
3. Wouldn't probably help you once you are in Google, fb etc.

So just like a math wiz would have to be a lot more than a wiz at math puzzles being good at
programming contests is just a bonus not the goal (Unless you are like a global topper, then you
wouldn't need to ask this question).

It will definitely help you in analyzing each and every piece of code you actually write, and in
general, on a micro level the code of  PC guys tend to write much better, and usually their code
sucks at macro levels. 

So ideally what you would want is to do such contests when ever you want to have a bit of "fun"
and pick up a few talents along the way.
6.1k Views · View Upvoters
Upvote28Downvote
Share

 
RecommendedAll

Thanh Trung Nguyen, Software Engineer at Google (2016-present)


Answered Jul 1, 2015
Originally Answered: How can one benefit from skills gained in competitive programming?
Yes, for most people with high rating that I know, it is just a hobby. How can a hobby be useless?
It keeps you happy: thrilling moments when you finished debugging 1 minute before the end of
contest, wonderfully happy moments when you figured out a smart & beautiful solution after
couple of weeks thinking about a problem, awesome moments when you beat mostly everyone
and finished amongst top in a contest, and maybe won some (small) prizes..

And it does have some other up sides too:


 You are spending time on coding / debugging, of course these skills get better. (Surely
other coding types help too, but I'm not making comparison here)
 It's good excercise for the brain. It's like math, but with more awesome contests.
5.2k Views · View Upvoters
Upvote34Downvote
Share

 
RecommendedAll

Jeff Ronne, OO, Java, C++, C, noSQL, Big Data, automation, control systems, AI
Answered May 19, 2014 · Upvoted by Jeff Nelson, Invented Chromebook, #Xoogler
Originally Answered: How much does competitive programming help you in future programming jobs?
In industry what matters are large software projects built over the course of months by teams of
5 to 20 to possibly even more programmers.

The required skill is not speed, but to be able to decompose problems in to manageable,
maintainable, reliable subcomponents and integrate into the larger design.  Everyone needs to
design, implement, test, integrate and maintain their components.  The SW lifecycle.

The preeminent skill is the SW architect who oversees the design and decomposition into major
functional units.

OOP is a favorite.

I have played far to much chess in my life, there is a huge difference between expertise in speed
chess and being a great grandmaster.
4.4k Views · View Upvoters
Upvote12Downvote
Share

 
RecommendedAll

Oscar Bralo, Coder


Answered Dec 13, 2013
Originally Answered: What are the benefits of competitive programming?
A LOT of them! I will enumerate five of the most important for me!

First of all.. it´s a good way to practice code! If you are self-learner, maybe to practice code is
one of the hardest part, and competitive programming, if you like it, is a good way to practice
tons of code!

Second one, you learn to think in the right solution. You learn not only how to find a solution,
but, how to find the right one! (And not only in competitive programming problems, I mean in
life too)
If you face one problem, you will think and will find more than one kind of solution, and this
process will be really quick, because you are used to do it.

Third one, is addictive, but not the bad addiction! I know a lot of people who are addictive
(including me) to competitive programming. I love it! 

Fourth one.. let me think.. you meet great people! I think that you can apply this not only to
competitive programming, but of course, is another benefit here!

Fifth one.. In some interviews, they will ask you algorithmic questions, which will be easier if
you have done competirtive programming.

In my personal case, the first point was the most important because, thanks to all that practice,
was easier for me to get a job as software developer.
2.4k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Prakhar Awasthi, CS Undergrad | NIT Bhopal.


Answered Mar 22, 2016
Originally Answered: What is the ultimate benefit of practicing competitive programming?
Ultimate Benefit : You can get a very good job because of competitive programming.

But for some, getting job may not be the ultimate benefit. For example I do competitive
programming because it motivates me to cross my limits each day. The problems which were out
of my scope few months back, are now a lot easier. So for me ultimate benefit from competitive
programming is slightly different.

For others it might hold some different meaning. So there isn't any specific answer to this
question, just an individual perception.
Find out why you jumped into competitive programming in the first place and you'll have your
answer.

SLEEP. EAT. CODE. REPEAT.


2.3k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll
Suchith Javagal (ಸುಚಿತ್), I did competitive programming for some time.
Answered Feb 5, 2017
I did competitive programming for some time. Unlike people here who have won competitions
like TCO, or participated in World Finals. I didn’t go that far. My career in sport programming
ended after 4 regional ICPC contests. I never made it to div 1 in Codeforces. Let me share my
perspective.

Does it help? Yes, it does. It is a fun way of learning discrete mathematics, algorithms and data
structures. I managed to learn a lot of data structures which are not usually taught in the basic
DSA course (I’m not a CS student. But I heard this from my friend). I got interested in
algorithms and bought the famous book, CLRS and started studying it. It is just the beginning. It
helped my problem solving skills. I didn’t prepare much for the algorithm interviews I faced
previously. But I could clear it without much effort. That is a plus.

Is it everything that you need to know if you want to be a software engineer? Hell


No! You might beat Gennady Korotkevich in some prestigious contests. You might win World
Finals. But don’t think that you have conquered the world, you know everything you need and
you’ll be the best software engineer. If you do, you are wrong. You miss a lot of stuffs

 Learning to write clean, maintainable code: The only thing that is rewarded in


contests is cranking fast code which runs under the time-limit and produces correct
solution.
 Software architecture and design patterns: This is essential to develop robust
software. You don’t learn to software design here.
 Parallel / concurrent / distributed / asynchronous programming: I agree
that there is a distributed version of Google Code Jam. But most of the contests don’t
care about it. Writing a parallel / multithreaded program is more difficult. These days,
this has become very important.
 Impact on the real world: Nope, after you get AC, neither the judge nor you (most
of the times) care about it. Read the first point.
 Dealing with ambiguity and imperfect / approximate solutions: Problems
in contests must be specified unambiguously. But problem description in the real
world is not like that. You need to use the domain knowledge to resolve them. Plus,
many problems don’t have perfect solutions. Sometimes it is okay to have approximate
solutions.
 Using various tools to boost productivity: At the maximum, competitive
programmers use their own library, copy paste the code from it. By the way, copy -
pasting code is bad many times. Build tools, dependency hell - any idea, folks?
That said, all those things I mentioned can be learned with experience.

Conclusion
For university students, a lot of job opportunities open up. Personally, I improved my
programming skills A LOT. I had trouble dealing with recursion or writing backtracking
solutions before and I can do it comfortably now. You also learn to come up with test cases and
identify the corner cases. You learn to handle the pressure.

But you miss a lot of things if you go too much into it. That said, if you do it for a job or for fun
or as a hobby, it is perfectly okay. But don’t make a big deal out of it because being red in say, CF
or TC doesn’t make sense much sense. It is just an arbitrary cutoff. Don’t think that is everything
you need to know. You don’t have “editorial” for real-world problems. You have to figure out the
solutions yourself.

I know this is a bit controversial. But that was what I felt.


Thanks for reading the answer.

2.3k Views · View Upvoters
Upvote29Downvote
Share

 
RecommendedAll

Denis Mită, Competitive programmer, Digital artist, Anime freak


Answered May 30, 2016
I started competitive programming in highschool, and got serious in 10th grade or so, when I
started participating in Codeforces rounds. My target was to reach IOI by the 12th grade but
unfortunately I was the first not to reach IOI in my last year. But, I didn’t give up! Now I am a
freshman and I train for ACM. But all of these are not what I gained. Right now, I am working
on a new competitive programming platform ( and more than that ) and we want to improve the
user experience in a contest ( no matter what your skill level is ). By the way, we have our next
round tomorrow so check it out! Also, we have implemented virtual contests, so feel free to
check our previous rounds :).

CS Academy

1.3k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Ankush Jain, Data Scientist at CleverTap - App Analytics and Mobile Engagement (2016-present)
Answered Oct 10, 2014
Originally Answered: What is the benefit of doing competitive programming from a job perspective?
Any competition award gives credibility to your point. 
The higher the award or the popular the competition, the better your resume will be trusted. 

In many cases, you can directly qualify ( at least for the interview process ) if you mention that
you have achieved a significant position in a well known competition. 
Believe me, if there is tie between 2 candidates, a point mentioning that you reached ACM-ICPC
finals/regionals will be a tie breaker!
1k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Brian Dean, computer science professor, USACO director


Answered Jul 14, 2015
Yes.  

My experience working with the competitive programming world has greatly influenced both my
teaching and research (several of my research publications are inspired by "tricks" that I
originally learned in the context of competitive programming).  And the problem-solving skills I
learned from competitive programming were probably a substantial factor in helping me
through a PhD at MIT and an ensuing academic position as a computer science professor. 
When I was interviewing for things like summer internships while back in school, my
competitive programming experience made technical interviews much easier.  I also have
stronger coding skills as a result, which has helped me in both academic and industrial settings.  

On being a competitive programming fanatic -- there is also a lot of great stuff beyond the
boundaries of competitive programming, so do also be sure to balance your time and efforts
accordingly.  Many unique and exciting career possibilities should be within reach if you study
"competitive programming plus X, Y, and Z".
13k Views · View Upvoters
Upvote71Downvote
Share

 
RecommendedAll

Rafael Cartenet, Participating competitive programming since years


Answered Oct 8, 2016
Originally Answered: What skills does competitive programming help develop that are more broadly useful?
I would say competitive programming is a great way to get different skills :

1. Language skills. When you do competitive programming you have to master the
language you're using ! And use the right one according to the specific problem. You
have to write code like your speak your native language. Most of the times competitive
programming challenges have time limits and you really don't wanna lose your time.
Thus, it's quite a funny way to learn a language as you mostly participate a challenge
for fun !
2. Team work. Often, competitive programming challenges are team based
experiences. You may only have one computer for your whole team so it has to be
organized. That's a great way to learn how to work inside a developers team. You have
to make your ideas clear for your team and be efficient at every moment
3. Rigor. For the same reason it's not acceptable to produce dirty code. You're expected
to write self readable code that your teammates will understand and complete. Even if
you're not in a team it's really important to make sure your code is structured and
organize. You'll have to try your code and change it many times, according to the
opponents strategies if it's multiplayer or simply for time limit for example. That's also
a great skill you'll need as a professional developer.
They are the main 3 skills according to me but there are many many.

That's basically why all big companies like Google Facebook and co. are always really up to date
concerning these challenges. Participating to these challenges is according to me the best gate to
these dream jobs.

Hope it helped and good luck for everything :)

2.1k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Andrés Ibañez, Software developer.


Answered Jun 7, 2012
Originally Answered: Do you find skills you achieved during programming contests to be useful outside of them?
That depends. Maybe I haven't had enough projects to work on with what I learned for the
ACM-ICPC. I don't know if I could ever do use of the whole STL in C++, for example.

But I learned to carefully read and understand the problems I'm facing. It tought me to think
very well about what I'm fascing and how I could go about solving it.
2.2k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Aradhya Upadhyay, I know something about music and love.


Answered Mar 23, 2015
Originally Answered: Does competitive programming really help you become a top coder?
Yes it surely does.!!
Lets see why

1.You'll learn how to solve a problem trivially.


2.You'll learn how to make solve it in optimal space (taking lesser memory).
3. You'll learn that we can solve a problem by method A, method B, method Cand many
more.
4.Finally you'll learn the best solution to solve a given problem.
5. You'll learn how to write code of 20 lines in 10 lines, I mean how to shorten code or how to
reuse the code.
6. And the most important you'll learn intensive debugging.

Further in your life when you'll become a developer, it will help you sometimes.

For example, I never did scraping(extracting data from a site, for example you want to extract
contacts of all dealers in a particular area) with PHP, nor did I learn PHP earlier.

But it took me very little time to do it. The guys with me who had not done competitive
programming earlier wrote lengthy codes to parse the data but 
my code was shorter and precise.
So yes not everywhere but sometimes it'll definetly help and anything you learn
never goes in waste.
Good Luck. :)
1.1k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Anonymous
Answered May 2, 2013
Originally Answered: Do you find skills you achieved during programming contests to be useful outside of them?
Yes, but those skills can be learned in a plethora of different ways.
It's nonsense that we should prostitute Computer Science by turning it into a
competition. 

In my opinion, doing programming contests is the worst way to spend your valuable free time in
college. Programming contests boil down to solving imaginary algorithmic problems. Yes,
solving a hundred DP problems will make you extremely good at recognizing the next problem
that can be solved via DP but in real life you won't ever encounter such problems. The amount of
time that you are going to spend to become good at programming contests can be used much
more productively.  While being one-dimensional algorithm junkie can impress your future
employer, I think that having a broad knowledge of the field is more beneficiary. 

Yes, hot tech companies will ask you to solve an algorithmic problem during an interview but if
you have genuine interest in CS you will do just fine.

1.6k Views · View Upvoters

Upvote6Downvote
Share

 
RecommendedAll

Livepro, Ecommerce website, Application, ERP and all kind of website development service
Answered Mar 22, 2016
Originally Answered: What is the ultimate benefit of practicing competitive programming?
There are many benefits of practicing ultimate programming. Like my friend Prakhar said, I
totally agree with him. If you do programming everyday, one day you will be a master, day by
day you will cross your limits and one day any program will be just a click away. There are
different definitions of ultimate programming for different people. But I think, by ultimate
programming practice, you will get good job also and it will be easier for you to code.

Gkinstitute.in is one of the best coaching institutes where I have seen people taking admissions
when they don't know anything and getting placed in brands.

368 Views
UpvoteDownvote
Share

 
RecommendedAll

Richard Leddy, Have been programming computers more than 35 years.


Answered Aug 26, 2016
Having done only a little. I have already worked many years.

But, over time the companies a little less professional.


I have been fired for incompetence. This is after writing programs for a bunch of ungrateful
people, getting titles into distribution, working in research groups.

The truth is that people backstab, lie and cheat.

I have been fired for not fitting in a research group that loved a man who got naked in the office
and tried to convince be that I should be gay. That was from a number one computer science
school.

I was fired by a woman who is best friends of a friend of that same man. I was fired from a
contracting firm at a NASA space center.

I was fired twice by a teams in SF, the member of which had made porn films. And, they didn’t
really like me. But, then, I never made a porn film, never used or sold drugs, etc. And, these
companies get a lot of shiny press and investment.

The last place that fired me, I had a chance meeting with the manager once in SF. She was
walking around in the nude propositioning men. She propositioned me. Some years later, I met
a professed Christian who sent me in to interview the company. I had forgotten the people in
this company. I forgot meeting this women in town with the Christian dude, where they were
sitting having coffee. I forgot that I had brought up that she and her group were known in town
for having made a porn film, and that she happily told me that it was great fun doing that and
that they had this wonderful consultant to train them in the proper “dance movements” for their
film. So, I interviewed this place, and then started going to work. One day, the lady wore a pair
of shoes that was the same pair of shoes she wore in SF the day she was wearing only that pair of
shoes. I found out more about the company. And, I while I was there, one of the “engineers”
signed up for a porn film in Florida with some sick team, I don’t know. His desk was just across
the cubicle space. And, I saw him go on line, find this porn company and apply for a role. He was
accepted to the role, and another manager congratulated him for going and getting more money
for his family. But, he then went into some histrionics declaring that his laptop was broken and
hacked into. He had the company replace his laptop, which he took home and never brought
back to work. Apparently the parent company, which had purchased this group of miscreants
had some strict rules about porn and firing. The guy had to get used to it. Anyway, I started
getting unhappy there, and they fired me for incompetence.

Strangely, I did find another contract job after that company. The next one was considerably
more legit. A kid form India, who was better to work with than many other kids from India was
using a problem solving site to get a rank. I went onto it and got a really good rank in a short
time.

I think back on the people who fired me, and I think about what kinds of people they were or
still are. And, I wonder if any one of them could begin to solve the problems I did on this sort of
competitive site. The answer to that question is an absolute no.

My input into the problem solving sites has yet to turn into a real paycheck. But, I am much
older than those who go onto these sites. Yet, I get to know in myself that I have my integrity. I
am really a very good programmer. I am also good as the architect, partial business person, and
all the other things I need to be good at to be in this business that I have been in for a long time.
Those who fired me never had really good reasons to do so. Their behavior was abominable.

So, these competitions, taken seriously or not too industriously - as in my case, where I do feel a
little old to grind away with it - these competitions have helped restore some faith in myself. I
am hoping that I can restore faith in others and find better employers than the ones I had
before.

Yes, the problems found on the competition sites led to reading more or more reviewing
literature for finding the bleeding edge of solving problems. Some curiosity has been restored.
And, I took this course on multi-core programming this summer because I have become more
aware of algorithmic solutions for some problems being improved by multiprocessing. If the
money was there I would love to dive into some this research, or work on problems that I have
thought of while solving the problems on these sites and in these courses.

If I can get back to an economic stability, I can leave all the bad stuff behind and just forget
about it and the people who felt empowered by their sicknesses. And, in time society and history
will also forget those people. But, if I keep solving those problems, I might get to make history at
best while at least I will be able to have my integrity.

1.1k Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Dima Korolev, https://dimakorolev.quora.com/Against-Justificationism


Answered Jan 14, 2014
Originally Answered: What are the benefits of competitive programming?
Frames one's mind to tell right from wrong, strive for being right, be persistent and know that
the outcome depends entirely on your own level of competence and confidence.
3.4k Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll

Mariya Mykhailova, Nickolas @ TopCoder and Codeforces. Problem writer. Not a coach :-)
Answered Jul 14, 2015
Yes, of course
Mariya Mykhailova's answer to How did one small decision change your life?
6.1k Views · View Upvoters
Upvote10Downvote
Share

 
RecommendedAll
Gregory Popovitch, C++ and Haskell - nothing else!
Answered May 19, 2014
Originally Answered: How much does competitive programming help you in future programming jobs?
Since you don't trust what "Nearly every answer on Quora says", what is the point of asking
again? Do you just want someone to confirm what you clearly want to believe?

Look, even it it doesn't translate directly to software development in the industry, competitive
programming can't hurt, and if you do get good at it, you will have a very good understanding of
data structures and algorithms, their efficiency and when to apply them. So go for it, and see
where it take you.
2.3k Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll

Arun Krishnamurthy, works at Infosys


Answered Feb 16, 2013
Originally Answered: Do you find skills you achieved during programming contests to be useful outside of them?
True,i too had some experience with the likes of SPOJ(Sphere Online Judge
(SPOJ)) ,Topcoder,Codechef during my college days,those were simple mathematical puzzles
and most required good theoretical knowledge of algorithm/math concepts,but they never
helped me in the industry after my university days by any means :|
1.7k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Anonymous
Answered Aug 17, 2014
Originally Answered: In what way does Competitive Programming help you grow as a programmer?
It allows you to explore the terrain of data structures and algorithms well beyond what your
regular algorithm courses in college or your job could ever allow you. As you indulge yourself in
knowing more problems, you begin to see an entire timeline of how the different algorithms and
data structures came into being at different points in the history of computer science. In this
way, algorithmic problems allow you to realize the origins and importance of these different
algorithms and data structures and their evolution. And competitive programming makes it
more exciting as it brings in gamification into solving those algorithmic problems. 

So you see, even without realizing, competitive programming allows for a great proxy into the
complex world of data structures and algorithms, which otherwise could possibly be done only
in a rather difficult and costly academic setting.
739 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Jonathan Paulson, Software engineer and competitive programmer


Answered Mar 26, 2013
Originally Answered: What are the practical benefits of competitive programming?
1) Debugging
2) Writing code
3) Standard algorithms
4) Problem-solving

Competitive programming is extremely similar to tech interviews except that you actually have
to implement your solution and it actually has to work. That's probably the best thing in
compare to.
6.8k Views · View Upvoters
Upvote30Downvote
Share

Dan Zhang
Sounds like the benefits to regular CS coursework (or a small side project) to me. If that's not ...

Mithun Mohan K
Answered Aug 13, 2015
Originally Answered: How has competitive programming helped you?
I find myself fortunate to have got the opportunity to know about competitive programming.One
of the most significant impact of it in my life happened when i cleared GATE 2015 with a descent
score without any preparation. Being a CSE student i loved learning about data
structures,algorithms and programming. I answered mostly questions related to them, but never
expected to clear the exam. I personally thank codechef and codeforces for everything i have
learnt :)
1.2k Views
UpvoteDownvote
Share

 
RecommendedAll
Anonymous
Updated Dec 12, 2015
Yes a lot.

1) made friends with lot of like-minded people

2) self-discipline and hardwork

3) prioritizing things in life

It also helped me in software development

1) near error-free code

2) patience to debug

3) getting a job

also read this 12 Reasons to Study Competitive Programming - Red-Green-Code

1.1k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Toby Thain, Started at around 10 years old. Still learning.


Answered May 9, 2012 · Upvoted by Greg Skinner
Originally Answered: Do you find skills you achieved during programming contests to be useful outside of them?
Absolutely. All practice in thinking and problem solving is valuable.

(Disclaimer: I don't do it "on the clock", but I do as many problems as I can in my spare time.)
1.8k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll
Alex Wang
Answered Feb 25, 2015
Originally Answered: How much does competitive programming help you in future programming jobs?
It helps you crack the coding interviews and get into a company, where you get to solve real
software engineering problems.

How can I improve programming skills?


Answer
Request
Follow2.6k
Comment1
Downvote
Share

100+ Answers

Edmond Lau, Author of The Effective Engineer, Fire-starter @ Quip, Coach


Updated May 7, 2017 · Upvoted by Jessica Su, CS PhD student at Stanford
Originally Answered: How can I quickly improve my programming skills?
Start by carving out 20% of your time to devote to your own skills development. If possible, it'll
be better if that 20% comes from one or two hours a day rather than a day a week because you
can then make a daily habit out of improving your skills. Your productivity may decrease
initially (or it might not change much if you're replacing web surfing or other distractions), but
the goal is to make investments that will make you more effective in the long run.

So what should you do with that 20% time? Since you're at a well-known tech company, you
should take advantage of the resources available to you. Here are 10 suggestions:

 Study code on core abstractions written by the best engineers at the


company, and understand why certain choices were made and how they
were implemented. For example, if you're at Google, read through code in some of
the core libraries written by early engineers like Jeff Dean, Craig Silverstein, or Ben
Gomes. Start with ones that you've used before, and ask yourself if you would've
written similar code for various parts and how you might learn from their examples.
 If you're not too efficient on your text editor or IDE, ask some of your
more effective co-workers if they'd mind you watching them for a bit while
they're coding. Are they using keyboard shortcuts or editor functionality that you're
not familiar with but that make them much more efficient? If so, learn and practice
them. Search for productivity tips on Google for whatever development environment
you use. When I was first learning Emacs, for example, Steve Yegge's very good 10
Specific Ways to Improve Your Productivity With Emacsmade me noticeably more
efficient. Even in re-reading parts of that page for this answer, I've learned something
new.
 Read through any technical, educational material available
internally. Google, for instance, has a wide array of codelabs that teach core
abstractions and high-quality guides of best practices that veteran engineers have
written for various languages based on decades of experience. If your company doesn't
have similar resources, Google's open sourced some of their
guides: https://code.google.com/p/google....
 Master the programming language(s) that you use. Read a good book or two
on the languages. Focus on developing a solid grasp of the advanced concepts in that
language, and gain familiarity with core, language libraries. Make sure that at least
one of your languages is a scripting language (e.g. Python) that you can use as your
Swiss army knife for quick tasks.
 Send your code reviews to the harshest critics. Optimize for getting good,
thoughtful feedback rather than for lowering the barrier to getting your work checked
in. Ask for a more detailed review on implementations that you're not too confident
about.
 Enroll in classes in areas you want to be stronger at. These could be ones
offered on the company campus, on nearby university campuses, or online. Many of
the larger tech companies will even pay for your classes. If you want to get better at
programming, take more hands-on classes on topics like design patterns or on some
programming language.
 Build a good reading list of technical books, and start reading. Your
company may even reimburse you. Here's a start: What is the single most influential
book every programmer should read?
 Work on different types of projects, and use them as learning
opportunities. If you find yourself always doing similar tasks using similar methods,
it's going to be hard to get out of your comfort zone and to pick up new skills.
 Make sure you're on a team with at least a few senior engineers that you
feel like you can learn from. If you're not, consider changing projects or teams.
This'll help increase your learning rate for the remaining 80% of your time.
 Write more code. If you feel like programming is your weak point, spend more of
your time on building and writing code since you won't get better unless you practice
the craft. To the extent that you can, shift time away from other engineering-related
duties like managing projects, fixing bugs, attending meetings, designing products,
etc.
Good luck!

Looking for more ways to excel as a software engineer? Download a free, sample chapter of
my book, The Effective Engineer. It's designed specifically for today's software engineers,
based on extensive interviews with engineering leaders at top tech companies, and packed
with hundreds of actionable habits and techniques to accelerate your career.

292.1k Views · View Upvoters
Upvote2.3kDownvote
Share

Leon Guianu
Working at Google would imply using C++, Java, Python, Go and Javascript (as you also said in ano...
Vipin Tiwari, Learner 1.0
Answered Aug 14, 2014
Originally Answered: How do I improve my coding skills? And get a good foundation in coding?
Coding is just a part of process of problem solving, You should need to understand the
underlying problem and efficient solution within given constraint. So i will better tell you,how to
be better at problem solving:

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.

Resources:-
CS106A: Programming Methodologies (Stanford Java tutorial)
Eclipse And Java Video Tutorials
CodingBat Java (Elementary problem on java programming to kick start the things)
Coursera (C++ course )
Buy The C++ Programming Language (Bjarne Stroustrup)
Page on stanford.edu( CS101 course by stanford university for non cs students/beginner 
computer science student)

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 algorithm.

Resources:-
Introduction to Algorithms Book(CLRS) ,easy language,very detailed explanation about each
and every algorithm technique(bible book :) )

  The Art of Computer Programming: Fundamental Algorithms v. 1 Book 

Data Structures and Algorithms Made Easy : Second Edition: Data Structure and Algorithmic
Puzzles Book 

YouTube Channel:- 

 mycodeschool    

  saurabhschool

Coursera(Algorithm course offered  by Stanford university)  

Do's:- 
1. Try to implement every solution on paper first before starting the code
2. Analyze the problem, define the constraint , compare your own solution with the parameter
of  time/space complexities  and then start coding (It may be hard to do at first but it will surely
make you a better programmer)

At this point of time you would be pretty confident enough to imagine ,which technique shall i
follow or which algorithm shall i utilize to solve a particular problem, Now it's Practice Time!!!
1. Start solving problem on Sphere Online Judge (SPOJ) ,200 problems 
2. Once you finish step 1, try topcoder problems for DP and other algorithmic techniques ( solve
around 300 div2 or div1 ,until you feel confident in yourself)
3(Optional) If you are looking for interview preparation ,Start solving problems from 
Cracking the Coding Interview: 150 Programming Questions and Solutions 
GeeksforGeeks - A computer science portal for geeks

Bottom Line:- It's not the  only "The" way to achieve a good programming mindset but it's a
better way that helped me to equip myself with better programming knowledge.
25.6k Views · View Upvoters
Your response is private
Is this answer still relevant and up to date?
YesNo

Upvote90Downvote
Share

 
RecommendedAll

Jeff Standen, programmer for 23+ years, creator of Cerb


Answered Sep 25, 2014
Originally Answered: How do I get better at programming? For school only not competitive
Constantly find small problems that you care about which can be solved programmatically and
practice, practice, practice.  If having a solution to those problems would create value for you,
then you'll be more likely to persevere.  If you have a concrete goal, then you will know exactly
when you've reached it, and you'll know what parts are missing along the way.  You will
serendipitously learn thousands of useful and interesting things that weren't part of your
original project, but will be forever useful in the future.

Be curious about how the software you currently use is built.  Have you ever wondered how
Gmail identifies messages as spam?  Try building a basic spam filter using Bayes' theorem (it's
more simple than it sounds!)

Ignore design and interfaces in the beginning.  You can learn an incredible amount by just
working with text, and you won't be overwhelmed with trying to make things look polished.

If you're mathematically inclined, take a look at something like https://projecteuler.net/ and try


to solve the challenges.  Try solving them in a new and unfamiliar language (Swift, Go, etc).

Want to see your code affect the physical world?  Buy a cheap Arduino micro-controller
(http://www.arduino.cc/) and experiment with different sensors.  Blink an LED when a passive
IR sensor detects motion.  Sound a piezo when you push a button.

Purchase a Pebble smartwatch and make a simple watchface that displays the time.  Have it
display the weather for your zip code using a public web API, even though that has been done a
thousand times before.  It's a concrete and clearly defined goal that will teach you how to utilize
any kind of data from external web APIs.

Download Unity - Game Engine for free and start by making incredibly simple apps using its C#
scripting.  They don't have to qualify as games.  Make spheres shoot into the void when you click
the mouse button.  Add sound.  Add physics.  Play with cannon-like acceleration where the
projectile is launched and propels through the air using momentum before eventually falling. 
Programmatically create a wall of boxes (nested arrays!) to shoot your spheres at.  Have the
boxes change color depending on the force they experience. 

You'll soon realize that being able to program is like a superpower.  You can encode an immortal
bit of yourself into electronics, and then clone it thousands of times.  That piece of your
consciousness will continue on indefinitely and free you up to do something else.  Those digital
pieces of you will even interface with other people.

If you feel like you were born to code, the process of getting better will take care of itself.  Just
clear as many distractions as you can, pick something interesting, and start typing.
23.6k Views · View Upvoters
Your response is private
Is this answer still relevant and up to date?
YesNo

Upvote56Downvote
Share

 
RecommendedAll

Naman Attri, A Quick-witted, Sagacious & Polymath Software Engineer - Coding is wonderful!
Answered Oct 11, 2014
Originally Answered: How can I develop programming skills?
Programming like Mathematics require nothing but practice.

As a starter, I would suggest you begin with the Mother of all modern programming languages
"C". Studying that you'll develop the basic skill set that will give you an insight of the syntax and
semantics. This information will later help you master other programming languages.

Programming revolves around three logical constructs also known as the flow of logic:


 Sequence: Instructions supplied to computer written in sequential order to be
processed one after the another.
 Selection: or Decision Making, select one of the many possible routes for the flow of
logic.
 Iteration: or Looping, perform repetitive tasks without re writing the same logic
again and again.

Programming Languages are divided into two broad categories.


@Procedural programming
@Object-oriented programming

C is Procedure Oriented while C++ and Java are Object Oriented.


Once you are comfortable with basics of "C" programming language you will in no time move
ahead and learn advanced languages which follow the Object Oriented Paradigm like C++ and
Java.

Later on after practicing and polishing your Object Oriented skills you can move on to Mastering
Design Patterns for example @Model–view–controller for Enterprise level programming that
get's you ready for developing Robust and Scalable applications.

If you are looking for making a career in Computer Programming that I strongly recommend
that you do. Then I would suggest you quickly move to server side technologies on which all the
current and future humanity depends upon.

A nice start on server side technologies: @W3Schools Online Web Tutorials

Computer Programming is not enough one should also look into database administration to add
a cherry on the cake. You'll love it when you give it a try. As a beginner start with @The world's
most popular open source database

Hope you'll enjoy this journey, being a Software Engineer myself I welcome you on this fun
adventure.

Good Luck!
2.5k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Akshayarka Deka, studied at Don Bosco Senior Secondary School, Guwahati


Answered Jun 6, 2016
Originally Answered: What should I do to improve my programming, given I’m doing a BTech in computer science
engineering and I’m in the 3rd semester?
STEP 1: Learn

Choose one language (one of C++, Java and C#). Learn to live, eat and breathe in that language.
You can learn from books, or go for the various online courses. A few of my favorite book are:

 Programming -- Principles and Practice Using C++ : this is a pretty useful book for
those with little or no experience in programming; it’ll help you refine you technique.
Thinking in Java by Bruce Eckel is a good beginner level book.

C# 4.0 The Complete Reference by Herbert Schildt

Various courses are available on Learn to code. Sign up.

Also join Stack Overflow - an online Q&A platform dedicated to programming. If you need help
in understanding concepts, or you’re having trouble with some exercise, you’ll find plenty of
help here.

STEP 2: Practice

Improve your speed and accuracy in coding by participating in various online hacathons. Sign
up for HackerRank, or Sphere Online Judge (SPOJ) where you’ll find plenty of challenges.

Once you’re done with algorithms, try solving real-life problems at HackerEarth - Programming
challenges and Developer jobs

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.

Happy hacking

7.5k Views · View Upvoters
Upvote36Downvote
Share

 
RecommendedAll

Swarup Sahoo
Updated Jul 26, 2014
Originally Answered: How can I improve my programming Skills?
To enhance programming skills, you need to focus on the following 4 topics.
 Programming Languages
 Data Structures
 Algorithms
 System understanding

To keep my answer short, I will not suggest any books, but keep myself limited to overview of
each topic.

Each topic is a big subject of interest in itself. But you can try to grab as much possible gradually
in long term.

Programming Languages
 Never limit yourself to one language. Keep learning multiple languages - one
procedural, one object-oriented, one scripting, one functional, etc.
 Also, don't try to learn too many languages in a short time span. Gradually keep
learning one new language every year. But never forget the old one you learnt.
 Don't focus only on syntax. Focus on the paradigm of the language, its weaknesses and
strengths. Understand where each language fits well. Learn what the language
designed to offer.
 Good hold on 3-4 languages will give you a very nice insight about these languages,
which will be useful to you.
 Keep practicing a lot. Almost daily you must write a program, even if it is a 10 lines
program. Make it a never dying habit.

Data Structures
 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.).
 Keep playing a lot with those.

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.

System Understanding
 Understand your target OS nature. What your OS supports? How a process is being
executed? etc.
 Understand program segments - data, text, stack, heap, etc.
 If your language is based on virtual machine, then learn how your VM works at a high
level.

Tools [Optional]
 Choose a suitable editor.
 Prefer compilers, build tools which follow the standards.
 Learn static analysis tools, profiling tools.

Finally
 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.

Hope this helps.


12.8k Views · View Upvoters
Upvote84Downvote
Share

 
RecommendedAll

Arun Venugopal, Writing Java Programs for Teamcenter PLM


Updated Dec 25, 2014
Originally Answered: How do I improve my programming skills?
There are some thumb rules so that you can learn programming and enhance your skills.
 First of all do not worry about learning a programming language.Try to improve your
problem solving skills.
 If you are taking up a problem analyse a problem once.....twice.....thrice.......as a
beginner try to arrive at a solution. Don't try to write code before analysing the
problem.
 Always prefer group discussion among a team of friends regarding the problem.Brain
storming is the best way to learn things.Always have a question "why".
 Next, pick a programming language of your choice and try to convert the solution into
code.
 If you are good at programming languages, try to fit in the correct programming
language for the correct solution.for example: Java,C# for abstraction and rich
libraries.R,Python language for mathematical problem solving.of course C,C++ if you
are comfortable.The decision of opting correct programming language reflects the
quality of your solution.
 Try online forums like HackersRank, CodeChef and SPOJ for problem solving.
 Once you achieve a milestone of reaching a intermediate stage programmer,Try to
optimize your solution.Optimizing the solution is reduction of time complexity
(Running time of your program), Cyclomatic complexity (that includes space
complexity).Do code reviews.
 At last,Open a Git Hub account and push your solutions.Try to make your solution
available to people.Source control is the one of the best practices in programming.
 Please note that this not the only way to learn programming,This is one of N ways that
i tried and experienced.Finally !!! Happy programming.......:)
1.4k Views · View Upvoters
Upvote10Downvote
Share

 
RecommendedAll
Scott Danzig, I've been programming for 30 years, in many languages but lately mostly Java and
Scala.
Answered Dec 9, 2013 · Upvoted by Jessica Su, CS PhD student at Stanford
Originally Answered: How can I quickly improve my programming skills?
 While you're actually building something, learn whatever you don't know.  Look it up
online and RTFM.
 Be an expert in one technology at a time.  Even a small API you're working with...
think reading the instructions, and really understanding the design and the
functionality of it.  Read a book on the programming language you're using, cover to
cover.  You'll find you can even teach the experts a thing or two about the things you
have mastered.
 If any of your "superiors" take the time to educate you, take advantage of the
opportunity and learn all you can.  If you don't understand something, look it up later.
 Don't be shy to ask when you get stuck on Stack Overflow.  I find that usually while I'm
properly formulating a question, I'll figure out the answer on my own before I post it.
 Don't slack off, but try to learn about technologies to make your life easier, BEFORE
you write your code.  Figuring out if there's existing code out there that you can reuse
is not an easy task.
 Enthusiastically take advantage of code reviews.
25.5k Views · View Upvoters
Upvote41Downvote
Share

 
RecommendedAll

Sumit Arora, Full Stack Software Engineer With Cloud,Networks and Web
Answered Jun 22, 2013
Originally Answered: What are the good ways to improve programming skills ?
I will suggest you the following approach :-

You need to follow a very organized and disciplined approach If you are  preparing for the
Software Engineering Job at Facebook/ Google/ Amazon/Microsoft etc.

(Example: You may use following approach, for a two months plan - around 250 hours)

Actually all these companies e.g. MS, Google, Amazon, Facebook, Apple follow an approach on
which that measure the thought process of a candidate.

And they use different means to evaluate that, but yes most of them uses Algorithms/Data
Structures/Open-ended questions(If you have applied for a software engineering job) as one of
the approach to evaluate the talent.( As those are the base to develop the technologies).

To be accustomed with algos/data structure/coding , you must have understood/practiced the


minimum e.g. :
(Step-1): You should have practical understanding of the Algorithms (e.g. When to use
BackTracking, When to Use Divide and Conquer, Why double hashing required?, Where brute
force concept can be applied?) (50 Hours).

(Step-2): You should have practical understanding of Data Structures e.g. (Practical use cases
related to :when to use circular buffer , or when to use adjacently list or the combination of both
or something else to solve the problem ).
(50 Hours)

(Step-3) : You must practice several coding problems to implement the things which learn
from Step-1 , and Step-2 (you may do the following choose any coding language for the choice of
yours (C, C++ or Java or Python or PHP or any one else ).
(50 Hours)

(Step-4): Solving the problem doesn't mean just to solve it, but to understand the best way to
solve it e.g. The given technical problem can use various ways to come to solution, and you
might want to use the optimal one. (How you connect the given solution with the
computing/memory resources e.g. Memory/Processing Power) 
(50 Hours)
Most Important One.

However other than programming you might need to understand the main concept for the
interview is to keep the interview active and this requires some action from your side, such as
the following:

You need to talk.

You need to explain.

You need to discuss.

You need to express your views.

You need to understand clearly the questions given to you.

You need to understand the interviewer’s expression and mindset to un- derstand those
questions.

You might need to ask appropriate questions to understand the question or any other discussion
item. (50 Hours)

And also :

Prepare : "Please tell me about your self" , "Your skills related positive/negative further interest"
, Basics for the most needed computer science concepts or anything as you presented on your
"CV/Resume".
(10 Hours)

Above is just a sample plan, you may customize the way you want(e.g. 50 hours to 10 hours or
something else) - Click to Amazon, to find the best books you might need (e.g.
cormen algorithms)

(Here Google doesn't mean the Google, it means any company which is very creative to
introduce the computer science related products ).

(Assuming you are spending 4 hours everyday )

4.6k Views · View Upvoters

Upvote34Downvote
Share
 
RecommendedAll

Mario T. Lanza, Why more when less will do?


Updated Oct 19, 2015
Originally Answered: How do I get better at programming? For school only not competitive
Learn a few languages espousing different ideas and philosophies and build something
significant in each.  

Choose an object-oriented language like C#, Java, Ruby, or Python for exposure to the industry
standard that is OOP.  From what I've seen the .NET and Java platforms are the big players, so if
you're interested in learning what wins jobs, bear this in mind.

Choose a functional language like Clojure, Racket, or Haskell to gain exposure to functional
purity, state management, and immutable data.  Definitely peek at an ML-based language (F#,
OCaml, Haskell) if only to see what's so incredible about algebraic data types and strong typing.

Choose a language like Clojure, Erlang, or Go having a good concurrency model.

Choose JavaScript because it's everywhere.

Build things that are suited to the language you're using.  For example, make something in
Erlang that capitalizes on its actor model.

Extra credit: There's a good deal of value to being able to compare and contrast languages.  To
that end, it would be useful to build the same thing in different languages.  For example, you
could build a game (maybe a roguelike) in each of your 3 or 4 languages taking care to notice
how each language's properties play out in the design.

The long view: If you build 10 things in 3 languages (30 things) you'll be a more capable
programmer than the one who built 30 things in 1 language.  I would definitely not extrapolate
that building 1 thing in 30 languages is yet again better as it takes a while to master a language. 
Concentrate on 3 or 4 languages until you feel you've learned all they have to offer.  I'd estimate
no fewer than 2 years per language so 3 or 4 languages should take you 6 to 8 years, bare
minimum.

I would contend that to become truly advanced as a programmer one should know at least 4
languages well not counting faux-languages like HTML and CSS.  I used to think I was a pretty
good programmer coding professionally in COBOL for a stint and then in .NET over my twenty-
plus year career.  And then Rails caught my attention and opened me to a community embracing
Ruby and doing more amazing things than I had seen in my consulting job.  That whet my
appetite for programming languages altogether.  I've been learning one after another and
watching countless talks in each.  I learned more in the past five years than I learned during the
15 years preceding.
The real eye-opener, however, has been functional programming.  The ideas abuzz in the FP
community are some of the best in technology, in my humble opinion.  (I'm enamored by the
ML- and Scheme-based languages.)  F# for fun and profit is the best of the best when it comes to
showcasing the power of FP: read everything!  If you grok all of it, you'll be coding at a whole
new level.
5.3k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Suman Adhikari, can't live without coding....


Answered Apr 21, 2017
Originally Answered: What is the best way to develop the programming skill?
If you want to become a good programmer, just remember the following things:

1. Run every code: You should run every code you write because only then you will get
the joy of coding.
2. ALWAYS try to do it yourself: Always try to solve the problem yourself before
taking help of others.
3. NEVER try to copy other’s code without understanding it: If you are stuck at
a point, you may see other people’s code for reference. But, never try to copy
anybody’s code blindly without understanding it.
4. ALWAYS clear your concepts: Before going to the next part of a programming
language, you should understand the current part very well because these part are
related to each other.
5. Practice AS MUCH AS YOU CAN: Without the practice of writing code, you can’t
be a good programmer. You should use HackerRank, CodeChef etc. for practicing new
codes.
6. ALWAYS try to understand what is happening inside the computer: Always
try to think that what is actually happening inside the computer when you write
particular line of code. This will help you to understand programming languages
better.
7. ALWAYS try the WRONG things: Always try to see what will happen if you code
the program wrongly (For example, try to find out what will happen if you include 2
main functions in your C code) (Click here to find out why we can’t use 2 main
functions in C: Suman Adhikari's answer to Why can’t C have two main functions?).
This will make you understand the working of a programming language in a better
way.
8. Ask questions: Keep asking as much questions as you can until you have understood
the topic well.
And try to learn C very well. Because, once you fully understand C, you will find it very easy
when you learn other programming languages.

Hope my answer helps you. And best of luck for your future. Happy coding :)

359 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Masireddy Srikanth, Tech Blogger at Srithegeek (2017-present)


Answered Apr 21, 2017
Originally Answered: What is the best way to develop the programming skill?
Though i agree with the answer of suman ,There are many things to be covered

Ways to develop programming skill

1. Try to solve a problem(puzzles,quizzes,math logics)


2. Try more no.of solutions for that problem
3. Try to identify best solution among them
4. Try to develop code using best solution
5. Debug and run the code
6. Start solving a new problem
7. Keep repeating the process
If you are newbie and want learn programming below are few good resources

If you also wan to look at Best Android Apps to learn and practice programming[1]

Programming Hub, Learn to code



Learn programming

SoloLearn: Learn to Code

Udacity – Learn Programming

C Programming

Encode: Learn to Code

Treehouse

Code Monk

Learn Python

After picking up good pace in programming you can start competing with programmers across
the globe .There many websites on the internet for competitive coding with programming
challenges,puzzles&hackathons.Lets us have a look on Top 10 websites[1]

1. HackerRank
2. LeetCode Online Judge
3. HackerEarth - Programming challenges and Developer jobs
4. Programming Competition,Programming Contest,Online Computer Programming
5. Deliver Faster through Crowdsourcing
6. Technology and India's Largest Tech Community
7. Codewars: Train your coding skills
8. CodeFights
9. Codeforces
10. Sphere Online Judge (SPOJ)
Footnotes
[1] Top 10 popular coding challenges websites 2017

535 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Leo Harsha, Product Manager at Forhyre


Answered Jul 6, 2017
Focus on the problem and not the tools ceremony around it. Don't follow the herd and
the hype. When given a problem, keep drilling the problem until it is absolutely clear to you and
then only work on solution.

Meta-habit: learn to adopt different habits for different situations. With that in mind, some
techniques I've found useful for various situations:

Maintenance programming for a large, unfamiliar code base:

Take a look at file sizes. The biggest files usually contain the meat of the program, or at

least a dispatcher that points to the meat of the program. main.cc is usually tiny and
useless for finding your way around.
 Single-step through the program with a debugger, starting at the main dispatch loop.
You'll learn a lot about control flow.
 Look for data structures, particularly ones that are passed into many functions as
parameters. Most programs have a small set of key data structures; find them and
orienting yourself to the rest becomes much easier.
 Write unit tests. They're the best way to confirm that your understanding of the code is
actually how the code works.
Performance work:

Don't, unless you've built it and it's too slow for users. Have performance targets for how much
you need to improve, and stop when you hit them.

Before all else (even profiling!), build a set of benchmarks representing typical real-

world use. Don't let your performance regress unless you're very certain you're stuck
at a local maxima and there's a better global solution just around the corner..
 Oftentimes you can get big initial wins by avoiding unnecessary work. Cache your
biggest computations, and lazily evaluate things that are usually not needed
 Don't ignore constant factors. Sometimes an algorithm with asymptotically worse
performance will perform better in practice because it has much better cache locality.
You can identify opportunities for this in the functions that are called a lot.
General code hygiene:

 Don't build speculatively. Make sure there's a customer for every feature you put in.
 Control your dependencies carefully. That library you pulled in for one utility function
may have helped you save an hour implementing the utility function, but it adds many
more places where things can break - deployment, versioning, security, logging,
unexpected process deaths.
 When developing for yourself or a small team, let problems accumulate and fix
them all at once (or throw out the code base and start anew). When developing for a
large team, never let problems accumulate; the code base should always be in a state
where a new developer could look at it and say "I know what this does and how to
change it." This is a consequence of the reader:writer ratio - startup code is written a
lot more than it is read and so readability matters little, but mature code is read much
more than it is written. (Switching to the latter culture when you need to develop like
the former to get users & funding & stay alive is left as an exercise for the reader.)
Hope it helps!

820 Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Brajesh Kumar, Software Developer at Virtual Employee (2016-present)


Answered Dec 4

Programming is one of the most valuable skills you can pick up in these modern times, whether
for career prospects or to stretch your brain and create something awesome. If you're just
getting started on your coding journey, here are ten tips and resources to set you off on the right
foot.

10. Figure Out Why You Want to Learn to Code

The direction you go in will depend in large part on why you want to learn to code in the first
place and how much time you have to devote to learning. If you want to be a professional
programmer, signing up college courses might be your best bet. (Google has a list of suggested
skills and courses for would-be software engineers.) If you want to build websites or games for
fun (and possibly profit) in your spare time, interactive tutorials might be better. Bloc has
a comparison of course options based on workload, cost, and reason you're picking up
programming. And if you're still deciding on a tech career, Switch will recommend one based on
your interests.

The Tech Skills and Courses Google Recommends for Software Engineers

Software engineering is one of the most in-demand and best paying careers, but learning
computer…

Read more
9. Choose the Right Language

There's no one "best" programming language, and once you've learned one, it's fairly easy to
pick up another, so don't get hung too up on choosing your first language. That said, some
languages are more beginner-friendly than others. The language you choose to start with might
depend, again, on your purpose. (For example, if you want to write an iOS app, you'll need to
learn Swift.) There's a case for starting with C if you're serious about programming, although
higher-level languages, like Python, are easier to jump into right away. Here's an infographic
comparing a few popular programming languages.

Programmer 101: Teach Yourself How to Code

You've always wanted to learn how to build software yourself—or just whip up an occasional…

Read more

8. Start Small (and Be Patient)

No matter which language or learning method you choose, you should start at the very
beginning (a very good place to start). When David Sinsky taught himself to code in eight weeks,
for example, he spent one weekend getting an introductory grasp of Python and one weekend
getting an introductory understanding of Django—going through the tutorial, deleting all of the
tutorial code, and working through the tutorial again from scratch. Start with the basics and be
patient with yourself as you progress. To take your first coding project from start to finish, break
down the project into simple steps. And if one method of learning isn't working for you (e.g.,
books), try another method before giving up.

How I Taught Myself to Code in Eight Weeks

To a lot of non-developers, learning to code seems like an impossibly daunting task. However,…

Read more

7. Try a Kids App

Even toddlers are learning to code these days. That's actually a great thing for all of us. Although
many of the programs designed to teach kids to code are very simplistic, many of them,
like Scratch, are suitable for all ages. It doesn't matter how old you are; even kids' animation
apps can get you started with the basics of programming (edX has a new course
on Programming in Scratch, by the way).

How and Why to Teach Your Kids to Code


Whether or not your child grows up to be the next Zuckerberg, programming is a highly useful
skill…

Read more

6. Use Free Online Training Sites

Free online training sites like Codecademy and other Hour of Code participants can help you
write your first computer program. Tutorials from KhanAcademy, Codecademy, The Hour of
Code is here!, and many other organizations will introduce you to the basics of programming—
all while creating a new game, site, or other project. Find the resources you need according to
the language you're learning with Bento. These are good starting points, but you'll need to take
the initiative to further or continue your learning after these introductions.

Bento Showcases the Best Resources for Learning to Code

Want to learn web development and programming? Bento will start you off on the right foot by…

Read more

5. Take a Coding Course

Online computer science courses offer a bit more of rounded educational experience compared
to online training sites focusing on one language. These courses are designed to teach you
fundamental skills over several months in college-level classes. I can't personally recommend
Harvard's CS50 (which you can take for free) enough, but there are many others you can take
(many listed on our Lifehacker U series). You can even build a college-level computer science
education with this selection of fifteen online courses.

Introduction to Computer Science

An introduction to the intellectual enterprises of computer science and the art of programming.

Read on edx.org

4. Grab Some Free Programming Books

When you get stuck on a problem or just need to look something up, reference books come in
very handy. There's a huge collection of over 500 free programming books posted on GitHub,
and another collection of Ebooks covering 24 programming languages.

Grab Over 500 Free Programming Books from GitHub

Whether you're learning to code or are already an experienced programmer, this GitHub…
Read more

3. Play Coding Games

Often the best way to learn is through games. While plenty of coding tutorials have you building
simple or complex games yourself, a couple of teaching sites are literally games: Code
Combat and CodinGame are two you might have fun with.

Game Maven Teaches You How to Code While Making Games

There's no dearth of resources for learning to code these days. Add to your collection Game…

Read more

2. Get a Mentor (or Teach Someone Else)

The programming community is full of people who are willing to help the next generation of
programmers. Hack.pledge() is one site that will connect you to a mentor, or you can sign up to
mentor someone else. Even just planning to teach what you've learned can help you retain the
information better.

1. Hack Someone Else's Code

When you reverse engineer someone else's code, testing each line to see how it works, you get a
better understanding of the big picture. Thanks to tons of open source code, you can learn just
about anything—and keep learning through the incremental-hacking cycle. Just remember to
share your code back with the community if you improve on a program.

1.1k Views · View Upvoters
Upvote13Downvote
Share

 
RecommendedAll

Matthew W. Christenson, 15+ years with a strong focus on Microsoft and Open Source technologies.
Answered Feb 24, 2016
Originally Answered: What is wrong with my coding skills?
It sounds to me like you're experiencing something that many developers experience...  Tunnel
vision.

As a software developer, your job is not to write code, it's actually to research to figure out what
code you're supposed to write.  Research is generally over 50% of our work, sometimes over 80%
depending on your role in the team.
Too many developers will only research what they need to research to complete the task at hand,
and not spend time researching general technologies or areas that are new.

You will never grow as a developer if you chose only to learn the facts that you need to learn to
solve the problem ahead of you, because there are some very important things that you'll never
think to look up.

There are four categories of your own knowledge:

1. Things that you know that you know.


2. Things that you don't know that you know.
3. Things that you know that you don't know.
4. Things that you don't know that you don't know.

It's the bottom one on that list that will hold you back from becoming a better software
developer.  You'll never encounter a problem in your day to day work that will directly lead you
to learn something that you don't know that you don't know.  You have to actively go out and
look for things that you don't know that you don't know.

After you learn one of these things, it's okay to forget it if you don't need it for your work,
because that knowledge will move into the "know that you don't know" slot and you can go look
it up when you need it.

Set aside 6 hours a week minimum to read up on new stuff.  Here are some ideas for you:

 Do you know what AngularJS is?


 Do you know what TypeScript is?
 Do you know the ins and outs of multithreaded programming?
 Do you know how to apply asynchronous design patterns to both multi-threaded
programming but also to scenarios where you're waiting on outside resources like a
stream from a disk or the response from a web server?
 Do you know what regular expressions are?  Do you know if there are alternatives to
them that might perform better?
 Do you know what different search algorithms are?
 Do you know what different sort algorithms are?
 Do you know how to create an object that throws it's own events that other objects can
subscribe to?
 Do you know what LESS and SASS are?
 Do you know about Bootstrap, Skeleton, and Foundation and what makes them
different?
 Do you know how SQL works?  I mean really works - like how does it turn that query
into the correct execution plan?
 Have you ever attempted to write anything in Assembly?
 Do you know what a State Machine is?
 Are you familiar with an Arduino?  What about a Raspberry Pi?
 Do you know what the different types of NoSQL databases are?  Do you understand
what a Graph Database might be used for, or what benefits a Key Value database
might be used for?
 Do you know what in-memory database are, and can you think of any reason to use
them?
 Have you ever heard of Command Query Segregation and Event Sourcing?

The idea is to force yourself to learn about technologies that you don't need to know about, even
if you never use them, even if you forget what you read - because down the road you'll start to
notice you've got a much larger toolbox of resources in your head because you are aware of so
many things that you don't know - where previously you didn't even know that you didn't know
them!!
2.9k Views · View Upvoters · Answer requested by Theodore Teler
Upvote5Downvote
Share

 
RecommendedAll

Prashant Nair, Project lead with over 7 years of professional software engineering experience
Updated Apr 19, 2016
Originally Answered: How do you improve your programming skills?
There are 3 aspects in which programming skills can be improved for any programmer -

1. Efficiency - This comes mainly with practice and studying a particular language. The
more you code in a language, the faster you get because you get used to the functions,
framework, configurations, IDE etc. This happens naturally. I've often worked with
programmers who have just 1 or 2 years of work experience but code quite fast. In
hindsight, I was that sort of programmer in my early years. I thought everything is
possible and as long as it's possible I could quickly write code and make it work.
2. Pragmaticalness - This is the most important aspect of programming skill. This aspect
depends on how good your thought process is. If you have to write code for a feature,
do you just open a text editor and start coding away like a champ, or do you think and
plan. The programmer who does the latter is usually the better programmer. To
improve approach and thought process, you should learn how the masters do it. I
recommend reading a few books mainly "The Pragmatic Programmer". This book is all
about programming wisdom. Being pragmatic means you do think ahead, plan
well and identify the major flaws in your logic and refine your algorithm to a point
where you are convinced there's no major loophole in your approach. Then you simply
execute(write code). The best programmers don't worry about coding speed as much
as quality. They usually don't rework on features. Their code has only a few minor
bugs and their features last for years because they write it in a way that you can build
additional features on top if it and scale it. They write code which looks so neat
and simple that anyone can understand it easily. You won't find lengthy complicated
functions or methods that are hundreds of lines of code. Everything will be broken
down(delegated) into smaller functions such that when you read any function, you
will understand what it does in just a few lines(all details are delegated to other
functions/methods just like a manager breaks down a task and delegates it to his team
members). You won't find waste code lying commented etc in their files because good
programmers refactor early and refactor often.
3. Using best practices - Again this involves reading. Whichever language you program
in, you will find articles on best practices for that language. You should read those and
follow them after understanding the purpose of those practices i.e. without blindly
following them and being willing to break the rules when it really makes common
sense.
Without having the right thought process, you can be as fast as you want and still be an
underachieving programmer. But with the right approach, your efficiency will increase with time
while keeping quality high. If you continue on that path, you will achieve mastery.

As for what to learn, start by reading a few good programming books. Jeff Atwood, the co-
founder of stack overflow, has recommended some books that he thinks every programmer
should read:

Recommended Reading for Developers

A good programmer with a few years of experience knows that any programming language will
have the basic programming constructs such as variables, conditional statements(if-else,
switch), iterations (for, while) etc. All MVC frameworks are basically the same, only the details
are different. All OOPS languages have classes/objects/methods. So you can pick any
tool(language) and become comfortable with it in a few weeks, if your know how to use these
basic constructs very well and you write smart, neat, simple and reusable code.

All the best.

545 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

NAVEEN MANIKANTA KODIGUDLA, studies at Indian Institute of Information Technology,


Allahabad (2019)
Answered May 26, 2017
If you want to increase your programming skills just do practice.

Practice is the only best way to increase your skills.

Tips:

Learn Data Structures and Algorithms. If you want to be a good programmer you



have to be strong in algorithms. Learn techniques like dynamic programming, greedy
etc.
 Try to participate in programming challenges and hackathons.
 Read famous persons blogs. They might help you gaining some programming
knowledge and some tips .
 There are many platforms like hackerearth, codechef, codeforces, hackerrank to
increase your programming knowledge.
 Also try to contribute to open source projects.
I have a process to practice programming :
First try solving the problem by your own.

Don't code as soon as you read the problem.

Make a rough psuedo code on paper. Just draw some rough diagrams .

Don't see solutions of others before you solving the problem by yourself.

Give your own test cases to the problem before submitting the actual solution.

If you got your solution incorrect don't disappoint and try to think in different way till

you get the answer.
 After solving the solution try to watch others solutions so that you can learn different
technique of solving the problem.
 Again repeat the process again and again.
Hope you find this answer useful . :)

Happy Coding :)

746 Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll

Rudra Nil Basu, C,C++, Java. Nothing more, nothing less. Next stop - Python.
Answered Dec 16, 2015
Originally Answered: How do I increase my programming skills?
You learn by doing.

Step 1: Forget what college is doing. They are trying hard to complete the syllabus somehow.
Don't be in that hurry. Rather, try to find out what "powers" you truly get once you become great
at programming. See how programming is used in various fields like solving problems, building
apps, building games, etc. Once you understand that there is more to it than "somehow scoring
great marks in exams", you will be far better than where you were yesterday. Be inspired to get it
all started.

Step 2 : Stick with one language in the beginning. Try learning the basics of coding if you
haven't done it (properly) already, there are tons of online videos/tutorials out there. (Do not
overestimate/underestimate yourself in this point)

Step 3 : Practice. The more hours/day you spend behind typing codes and solving problems, the
better you become. As simple as that. Learn algorithms, implement them. To start with, I would
recommend  to practice the problems from SPOJ ( Sphere Online Judge (SPOJ) ) sorted from
easy to hard. Also there are tons of other good websites like GeeksForGeeks ( GeeksforGeeks | A
computer science portal for geeks  ) which you should keep an eye on. If interested, you can
also take part in programming competitions held on CodeChef( Programming
Competition,Programming Contest,Online Computer Programming  ) and similar other
websites. (Note: There are several different ways to practice programming, and I just mentioned
one such way to do so, which works best for me). Remember - The more you practice, the better
you become. As simple as that.
Step 4: Hang out with other (great) coders. Maybe your college friends, seniors or just on any
online forums. The more you hang out with them, the more you learn new ways of doing things.
See how they write codes. How they approach to solve a particular problem. You will learn a lot
here.

Step 5: "Your training is nothing. The will is everything. If you make yourself more than just a
man, if you devote yourself to an ideal, you become something else entirely. Are you ready to
begin?"

- Ra's al Ghul

Batman Begins

2k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Rajkiran Rajkumar, writes code for food.


Answered Nov 25, 2014
Originally Answered: How should I improve my coding skills? I’m a 3rd year student studying IT and have basic
knowledge in C, C++, Java, J2EE, and html. I'm currently learning CSS and JavaScript. Should I participate with
online contest sites? Which site is the best?
Thanks for the A2A, Vaidyanathan Pk.

First glance at the question and the only thing that caught my eyes were "7-8 months". That is a
lot of time. By doing competitive programming, you will get the confidence to approach unseen
problems which is a major asset during interviews. By simply concentrating on data structures
(DS) and algorithms, you will miss out on the ability to churn out quick and correct code. Most
of the time, you will not be allowed to use the standard template library (STL) during interviews
(although if the focus of the question is an algorithmic concept which is aided by a DS, then you
might be allowed to use a STL DS).

There's one thing to note: Improving your coding skills and preparing to get placed are
not the same.

Preparing to get placed involves a lot more than proper knowledge of algorithms & DS and the
ability to churn out correct code quickly. It involves proper communication of what you know,
the ability to explain your code properly and not be confused by tricky trap questions posed by
interviewers. In my opinion, a lot of interviewees fail to pay attention to these aspects, which
adversely affects their interview performance. 

Anyhow, coming back to point - to get good at competitive programming - get started
with topcoder , attend SRMs to see how you fare against a clock and use the practice rooms to
strengthen your weak areas. Then head over to Jan's LightOJ to practice problems topic wise.
Getting better at competitive programming involves practice, smart practice. There are no
shortcuts.

However, if your aim is to not sweat it, get better at programming only to get placed (which is a
bad idea, but I don't judge you) Page on geeksforgeeks.org is for you. Head over to LeetCode to
practice interview questions. Leetcode also has an active discussion forum. 

LPT: This is what I used to get familiar with interview questions. Take a problem. Read through
the concept and the solution (don't bother wasting time and coming up with the solution, find
it). Make sure you understand it properly. Head over to Ideone.com and paste the solution, clear
the function block. Try to recreate it. Create edge cases and see if your code handles it. This will
help you to write tight code and also help you in writing test cases which is also an integral
component of interviews. On the downside of this being a time consuming process (but you
having 7-8 months, shouldn't be worried about it), it is highly effective. 

All the best!


16.1k Views · View Upvoters · Answer requested by Vaidyanathan Pk
Upvote70Downvote
Share

 
RecommendedAll

Manu Raj, I try to learn.


Answered Nov 16, 2015
Originally Answered: What should I do to improve my programming, given I’m doing a BTech in computer science
engineering and I’m in the 3rd semester?
I beleieve lots of good tips can be found here itself regarding the same question. So, I would
encourage you to go through all the related questions first. 

Coming to the question again, could you please share your current situation so that we can
provide tips tailored to your needs. Your question is just in general - how to improve your
programming skills. There are a lot yet general answers. Will jolt them down for you in points:
1) Practice more - do hobby projects, start a project and COMPLETE it. Good or bad, finish it.
Get it reviewed if possible. Learn from it.
2)Go to github and check for projects that you are interested in, read and learn from the code.
Yes, read good code and learn what all tricks are used there and understand and try implement
the same
3)Improve your understanding regarding computers and its functioning, dont just learn a
programming language. Learn more of computers - its functioning, networking etc. This may
not improve your programming but will defenitely help you grow.
4)Understand various data structures and there uses. Give a try on algorithmic problem solving.
Implement them in a language you choose.
5)Interact with people with similar interests. Share ideas and get feedbacks. 
6)Participate in hackathons and contests if possible. It will be good to have a team for this. Find
people of similar interest. 

...also, keep coding more. Push out projects. To improve on anything, it is just practice. Practice
good, take tipcs. 
These are just minor stuff with not much detail. Give specifics if you require specifics. Also, as
mentioned earlier, please go through all the similar questions. This is an essential part of
learning to program, not asking questions already asked. Rather, look at the provided solutions
and if it does not suit you, then put out question which do justice to your situation and say why
something is not working for you. People will help you more then.
382 Views · View Upvoters · Answer requested by Aastha Sharma
Upvote4Downvote
Share

 
RecommendedAll

Dinesh Kumar, NodeJs is my thing


Updated Nov 17, 2014
Originally Answered: How do I improve my programming skills?
It looks like you're talking about meta-programming AKA algorithm design. It might look like a
daunting task in the beginning, but over a course of time, with a little practice, after you become
familiar with the common problems it will become easier. 

Don't get worried looking at your rank in the beginning. Recently I read a post somewhere, a top
ranked guy wrote how he managed to move higher in the ranks. He started at nothing, failed a
lot of times, almost believed programming isn't for him. But after a coarse of time, after solving
a bunch of problems, things became easier for him. Because after a while, most problems can be
related to some other problem you solved somewhere a long time ago. So it's just a repetition in
a new flavor.

Start studying on the basics of algorithm design and learning common data structures like
bubble sort and quick sort. Learn important problem solutions like dining philosophers problem
and traveling salesman problem. You'll be good to go.

Programming essentially means writing code and algorithms. However development is an


entirely different domain. So if you're not talking about building applications, then with a mild
touch of basic data structures and well known problem solutions, you can move up through the
ranks faster than you think.
657 Views · View Upvoters · Answer requested by Nitin Khare
Upvote6Downvote
Share

Chandan Boruah
Who is that top ranked guy, could you share that post?
Jianmin Chen, worked at Mplighting
Updated Sep 26
I like to write down what I have done last 12 months to help me improve my programming skills.

1. Play over 20 hackerrank contest, and win 10 medals, include one gold. I documented
the journey First Gold Medal on Hackerrank.
2. Ask over 30 algorithm questions on User Jianmin Chen, and also answer a few of
questions.
3. Write coding blogs to document my practice of Leetcode. I just learn to read the
statistics and respect the result. Do one thing a time, Julia's coding blog - Practice
makes perfect
4. Code review my own code 8 years ago, it was tough moment to read my own code and
see so many issues to work on. Julia's coding blog - Practice makes perfect
5. Try various activities, like mock interviews, I wrote down my mock interview and
tracked my progress. Julia's coding blog - Practice makes perfect
6. Have a good sportsmanship. Learn to share your progress no matter how small it is,
and also learn from some professional sports players. I learn a lot of WTA tennis
players and specially through the practice video, interviews. Get good understanding
of mental toughness and help yourself to stay physical health and mental strong. How
to overcome fear is my favorite research topic this May. Sports research - How To
Overcome The Fear Of Losing In Tennis
I think that the smart programmer spends less time to write code, more time to get connected
best talent in the world. Just practice daily, read code, write code, share your idea. Enjoy the
journey to one of the best competitive programmers in the world.

2k Views · View Upvoters
Upvote17Downvote
Share

 
RecommendedAll

Shariq Shaikh, Software engineer


Updated Jul 20, 2015
Originally Answered: How should I improve my coding skills? I’m a 3rd year student studying IT and have basic
knowledge in C, C++, Java, J2EE, and html. I'm currently learning CSS and JavaScript. Should I participate with
online contest sites? Which site is the best?
Coding is an Art, and like any other art  it requires practice, a lot of practice.
Have a dosage of in the breakfast, make that RegEx in the lunch and graphs in the dinner. 

As you mentioned, you have basic programming skills in C and Java, hence now the next logical
step is to start learning and implementing algorithms in those programming languages.  For
learning algorithms I suggest the book titled "Introduction to Algorithms, 3rd edition"
which is Co-author'ed by Thomas Cormen. 

Competitive programming in conjunction with algorithm learning &  Data Structures is very
helpful. So instead of learning algorithm or competitive programming. Do both. Doing this will
make you more proficient in understanding, applying and modifying algorithms. 
Most recommended competitive programming websites are CodeChef.comand TopCoder.com. 

Try to get a part of any open source project, preferably the one which is having an active
development going on. Find open source projects that interests you, and c
convince the members that you can become a part of the team, this can be achieved by learning
the programming, finding bugs and coding patches to fix them or a simple Skype interview. 
Becoming a part of open source project helps you increase your skills drastically. It also helps
you learn how to collaborate among team mate. 

Also, you mentioned you have vacation coming ahead, you can use the vacation to grab an
internship. 
Internships can add an extra value to your resume and gain you a lot of knowledge.  Assuming
you're from India, some sites to find suitable internships
are www.internshala.com and www.letsintern.com

You can also Complete some free online courses in different branches of algorithm, data
structures and programming during your vacation.  There are many website that provide you
with free courses. Complete 8-10 courses in 25 days. And you'll be a highly evolved coder.  My
favourite website in this regard is www.coursera.org

Talking about placements, if you're in 


India and looking after getting hired by big names such as Microsoft, LinkedIn etc .You should
know that programming skills is probably the last thing that matters.  They usually ask
questions about algorithms, data structure and computer science.  And you have to Crack an
aptitude test to reach the interview phase, hence it is highly recommended to prepare
for aptitude test parallely if you're not good enough at it.

Now to divide your time, let us look at a dummy schedule which you and I might follow when we
have vacations going on. (assuming the desire to become better is intense). 

 Start your day with listening to a TED talk in technology, you could either listen to
the full talk or set your time preference and area of interest and let TED decide which
talk is best for you..
 Login to your computer, check out forums, you should be subscribed to a good
number of programming and development related forums. One of them
is www.stackoverflow.com. Check out what questions are emerging in your area of
interest, and learn new things everyday.
 Read a book based on algorithms, maybe a chapter everyday? And perform the given
exercise when done.
 Take a good nap. Listen to some Pink Floyd.
 Prepare for aptitude test, practice for about 1-2 hours daily. Some good websites for
this is www.indiabix.com and www.m4math.com
 Log on to any competitive site and code a program. Some programs take at least 3
days. For example, www.CodeChef.com
 At the end of the day, you can read about a new computer science concept. Hence
you'll improve everyday, and regular practice for a month should make you a great
programmer. Or at least get yu going. I'd recommend geeksforgeeks.com for this.

Good luck. Hope this helped.


9.6k Views · View Upvoters
Upvote68Downvote
Share
 
RecommendedAll

Jayant Isswani, lives in Raipur, Chhattisgarh, India


Answered Dec 30
Originally Answered: How do I improve my coding skills so I can crack company interviews?
I am into my third year of graduation and I am also working on improving my coding skills.

The important thing to understand is that one cannot nail the interviews by mugging up all the
important questions of data structures and algorithms. One needs to practice
and implement the concepts of data structures in a programming language. And the best way
is to start competitive programming and participate in the contests conducted by them. But how
should one get along with competitive programming?

I had started by solving problems from Codemonk - Hackerearth, in which problems were


classified on the basis of various DS and algorithms. However, the questions were of a higher
difficulty level and often included many concepts together. I also solved a few problems
on Hackerrank, but could not continue much. Spoj also contains several problems based on
tags, but the test-cases seemed to be quite easy.

Recently I have discovered the Data Structures and Algorithms Certification by Codechef. The
preparation phase of the certification is quite good. It starts from the beginner level, mentioning
articles on where to study and then contains some practice problems which would get one
acquainted with competitive programming. So it is a good site to begin competitive
programming.Apart from this, one should participate in Long Contests of codechef. And then
after the competition is over, one should try to solve the remaining unsolved problems with the
help of editorials.

For being able to pass the coding round of any company, one needs to solve problems in
a specific time. So the speed at which you solve a problem also matters. This could be
attained by participating in Short Contests of codechef.

Apart from this, one should know about the libraries of at least one programming language,
which would aid in the implementation of algorithms and data structures. The most
recommended is Standard Template Library (STL) of C++, however one may go for
libraries of other languages as well.

And for updating ourselves with what kind of questions are asked in interviews, we must go
through geeksforgeeks website. However, as earlier mentioned , we must not mug up the
solutions and always try to implement them.

Links to the mentioned sites -

Prepare | CodeChef

Contest Page | CodeChef


Contest Page | CodeChef

GeeksforGeeks | A computer science portal for geeks

All the best!

283 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Mayank Jaswal, B.Tech Information Technology, Northern India Engineering College, New Delhi
(2017)
Answered Mar 25, 2017
Originally Answered: How can I improve my computer programming skills?

Improving programming skills require constant practice and patience. It is not like one can
become master of programming in just one day.

 Coding is easier said than done, and there is a huge difference between good code and
bad code, but how do you know? Until you have seen a good code and know why a
particular code is good, you can not understand the difference. This is where books
come to help, more often than not authors are great programmers themselves.They
offer their experience in the form of a book.
 Writing small programs lets you write more programs in the same amount of time,
this will improve some of your programming skills much more rapidly.
 Modify existing programs written by other people. Reading code without having
previous knowledge of it is a valuable skill you can't debug without it and you don't get
much practice with it when you're writing programs from scratch by yourself. If you
reflect on what you've found hard to understand, it can also help you learn how to
write maintainable code.
 Contributing on the Open source code, especially from Apache, Google and some other
projects helps you to listen the discussions between good programmers and also helps
in understanding the problem and their approach, solution and view which
automatically develops good programming habits in you.
 Most of the good programmers are really good in data structures, algorithms, and
basics. By learning these things, you take better advantage of what is available. Since
data structure is a key piece of any program, solid knowledge of them helps during
problem-solving.
 Look code of open source projects, your fellow programmers code, your existing
proprietary code, code from Java SDK and try to understand how they work, try to see
what they are doing and why they are doing. Find patterns, develop navigation skill,
initially you will find it boring and difficult, but with time you will develop a good code
sense.
Participating in StackOverflow and answering others queries, commenting on blogs

and forums is a nice little way to revise knowledge and same time correct your
misconception.
Apart from the natural talent of programming and problem solving, it requires a lot of hard
work, constant learning, and perseverance to become a better programmer.

ALL THE BEST!!

261 Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Sourabh Chaurasia, studied Computer Science Engineering at Lakshmi Narain College of


Technology, Bhopal
Answered Jan 31, 2017
As the world becomes more connected and technology continues to evolve, your success as a
programmer depends on your ability to learn and adapt. Any seasoned developer knows you
should always be looking for ways to improve your programming skills. On that note, whether
you’re new to the industry, or a vet, we have you covered with timeless techniques for
continuous improvement.

1. Know your learning style

We all learn differently. Some learn best by reading a book. Some prefer hands-on experience, or
need the structure provided by a formal course. Fortunately, there are plenty of free or low-cost
learning resources only a quick search away so you don’t have to waste your time on methods
that don’t suit you. Whether you. Here are a few great sites to get you started.

Code School

Udacity

Safari Books Online

Lynda.com

Pluralsight

Coursera

Confreaks.TV

Free programming books

2. Learn from others

One of the fastest ways to improve your skillset is to leverage the knowledge and experience of
people who entered the field before you. While a formal mentor is a great asset, it’s not required.
Seek out expert help from sources like your team lead, members of your local user group,
or Stack Overflow. Show your code and ask for feedback. And don’t let fear of criticism or feeling
like you’re bothering people prevent you from tapping into one of the most powerful resources
available for leveling up your skillset. You’ll be surprised at how eager to help many people are
to help. It’s flattering to be asked to share expertise.

3. Use the 15-minute rule

If you’ve been stuck on a problem for more than 15 minutes, ask for help! Turn around and ask a
coworker how they would solve the problem, or describe your issue in detail on Stack Overflow.
Regardless of whom you ask, the very act of describing your problem in detail puts you on the
path toward the solution. Most problems are not unprecedented, and someone will be glad to
share their experience or to team up on the issue.

4. Work on real projects

The surefire way to improve? Practice and challenging yourself. This means you should always
be working on a coding project. Even if you have a full-time programming job, the work may not
be challenging enough to build your skills—so find something that will. Some of the best
developers always have a side project to work on. Not having an idea is not an excuse. Find an
open source project to contribute to regularly, build web apps for charity, or tackle that silly app
idea your buddy keeps pitching to you.

5. Look under the hood

Most programmers rely heavily on frameworks such as Spring, Rails, or Angular to get the job
done. While these frameworks promote productivity, they are also a treasure trove of examples
and inspiration you can apply to your own solutions. Check out their source code and study it. At
first you may feel lost, but over time you will learn to navigate large codebases, identify design
patterns, and quickly understand code.

6. Share what you learn

As the old saying goes, the best way to learn is by teaching. When you learn something new,
don’t keep it to yourself. Share your new skill or finding in a blog post, record a screencast of
yourself building a new feature, package your code into a library and put it on GitHub, or
present new discoveries at a local meetup. Not only does sharing reinforce what you learn, but it
demonstrates your skills to future employers and clients. It makes you feel good, too!

7. Make small, daily improvements

No one masters programming overnight. It takes consistent, deliberate practice. Take a few
minutes to slow down, and make one small improvement every day. It could be learning a new
language feature, reading a page out of the manual, or changing your editor configuration to add
a shortcut for a common task. When compounded over time, these small, daily improvements
add up to major breakthroughs.

8. Explore

Take a timeou...

(more)
Upvote8Downvote
Share

 
RecommendedAll

Ben Turner, Head of Customer Experience (2014-present)


Answered Apr 7, 2017
Here is some advice, based on good amount of research. But before you went through it - I have
one personal advice to all who would like to become great programmers, it is based on my
professional experience - guys nothing is more valuable than focusing on specific cases every
day, this builds your creativity and problem-solving skills which trust me makes the biggest
difference to employers. Make sure you work for a business that values your contribution and be
proud of what you achieve there. If you haven’t found your dream workplace yet - you can sign
up for free in our platform here: TalentSnap, we are a talent market places that aims to connect
US and Canada tech professionalswith the most inspiring startup businesses.

Practice

 Write lots of programs, especially big programs. A lot of good practices become


obvious once you've made the typical mistakes.
 Writing small programs lets you write more programs in the same amount of time;
this will improve some of your programming skills much more rapidly, but others not
at all.
 Modify existing programs written by other people. Reading code without having
previous knowledge of it is a valuable skill - you can't debug without it --- and you
don't get much practice with it when you're writing programs from scratch by yourself.
If you reflect on what you've found hard to understand, it can also help you learn how
to write maintainable code. Also, this lets you work on many more big programs than
you would have time to write yourself from scratch, which helps a lot with those skills
that only apply to large programs.
 But... CodeLessTestMore.
Refactor

 Learn about ReFactoring.
 Spend a lot of time ReFactoring and improving programs, even if they work fine.
Design

 Learn about SoftwareDesignPatterns!
CodeReview

 Find some good mentors and let them review your code, and try to do
some PairProgramming with them.
 Find some peers with whom you can review your code. People of similar skill levels
can teach each other a lot. And this gets around problems with sharing your "bad
code" with a senior person who might give you a harsher critique than you want (not
to mention a bad performance review.
Learn from good programmers

 ReadGreatPrograms.
Adapt some good code (I learned a lot about C idioms while adapting a Btree Index

library in order to add compound key index feature).
 Team with good programmers. Sit at their knees and learn. Emulate their habits.
Do not insist they adopt your practices/tools/habits because you think you know a
better/faster/cheaper way.
Broaden your horizon

Learn multiple programming languages. Each language you learn will give you ideas

about how to do things better in other languages. (The worst programmers I know are
the ones who think that language X is the only one they need to know.)
See LearningProgrammingLanguages for related tips.
 Learn different kinds of programming languages: procedural,
functional, ObjectOriented, etc. See GroundBreakingLanguages.
 Learn multiple operating systems. Learn to write portable code.
Read

Read books about code quality, like CodeComplete. It can save you a lot of time.

Buy the book ThePragmaticProgrammer and read it, learn it, live it.

Generally, read GreatSoftwareBooks

Read books about other subjects. Philosophy, history, art... anything. Become a

broader person. It doesn't directly affect your programming as such, but it widens the
mind, which has to be a good thing.
You can view some more advice here.

Hope you find it valuable.

762 Views · View Upvoters
Upvote9Downvote
Share

 
RecommendedAll

Aditya Singh, Trying to be the HERO of my OWN LIFE | A Looser | A Winner


Answered Jun 8, 2016
Originally Answered: What should I do to improve my programming, given I’m doing a BTech in computer science
engineering and I’m in the 3rd semester?
here is my list of things, which can help you to become a good programmer.
 
 1) Coding, Coding, and Coding
 Why have I coding at the top of this list? because it's difficult and same time its central piece of
programming. By doing coding, you also realize your mistakes in designing, error handling,
threading and then go back to those respective skills to improve. You just can not work in
designing only, coding produce output, which is important to learn and act as a success. By the
way, do not stop just after solving the problem, it's always better to throw away your first
solution, that is just a prototype, your next solution should address issues, missing requirements
which you have found building a prototype.
 
 
 2) Reading Books
 Coding is easier said than done, and there is a huge difference between good code and bad code,
but how do you know? Until you have seen a good code and know why a particular code is good,
you can not understand the difference. This is where books come to help, more often than not
authors are great programmers themselves. They offer their experience in the form of a book. I
love books, but one book, which is particularly helped me is Clean Code by Uncle Bob.
 
 By reading this book, I have found myself finding problems in my code and applying the advice
given in this book every now and then. My advice is if you ever find such books, grab them. I also
recommend reading this classic books many times and refer them every now and then.
 
 
 Another similar book is Effective Java by Joshua Bloch, which is full of good advice. . Also, by
reading books you are learning from someone else's experience, and there are only two ways to
improve yourself, either by learning from own experience (which is very limited) or learning
from others experience(which is unlimited).
 
 Remember more is not always good, rather than reading 5 books, I suggest read two books,
which you enjoyed reading multiple times. These two books are also from of my list of must read
books for Java programmer
 
 
 3) Contributing to Open Source, Signing-up mailing lists
 Contributing on the Open source code, especially from Apache, Google, and some other projects
is another way to improve your programming skill and become a better programmer. Just
signing their mailing list and following discussion teaches you a lot. Since most of the
discussions happen between good programmers, by listening to them and understanding
problem and their approach, solution and view, automatically develop good programming habits
on you. To get most of it, do not just sit passive, ask questions, offer your view, but same time
value others as well.
 
 
 4) Practicing data structure, Algorithms, and Design related problems
 I was thinking to put that as the second item, but it ended up fourth. In my opinion, this is the
most critical of things to do to become a better programmer. Most of the good programmers I
have seen and met are really good in data structures, algorithms, and basics. By learning these
things, you take better advantage of what is available. Since data structure is a key piece of any
program, solid knowledge of them helps during problem-solving. Similarly knowledge of key
programming principles, search and sort algorithms and other well know algorithms develop
programming skills on you. You can refer these books to improve your knowledge of data
structure and algorithms.
 
 
 5) Reading Good Blogs
 Reading good blogs is a small part of reading books. How does reading blogs help you to
become a better programmer? Well, it does. Since blogs are often written by programmer
themselves and most of them share their personal view, experience, you often find them
relevant. Also, blogs are a small piece of information so it digests well. A blog also helps to learn
new technology and new features of existing language and API. Many times, I have seen
something subtle or missed things from a really well-known part of Java described in a small
blog post.
 
 
 6) Reading Code
 If reading blogs help to become a good programmer, then reading code help more than that,
but same time reading blog is easy but reading code is tough. Do you see resistance? then you
should do it. Look code of open source projects, your fellow programmers code, your existing
proprietary code, code from Java SDK and try to understand how they work, try to see what they
are doing and why they are doing. Find patterns, develop navigation skill, initially you will find it
boring and difficult, but with time you will develop a good code sense, which will alert you when
you do a mistake, help you to spot others mistake, gaps, and code smell. This Code sense is one
of the signs of the better programmer, they often tend to look, what you missed.
 
 
 7) Writing Unit test
 Unit test complement thinking and coding process, and subsequently help you to design better.
Anything which is difficult to test has a chance of improvement. Also writing unit test helps a lot
in finding better names, better abstraction, better interface and abstract class design and overall
improves code quality. But like coding and designing, unit testing is also a tough job for average
programmers, you will see a lot of resistance there. Some programmer writes trivial test, instead
of thinking hard on usage scenario. Remember there is no substitute of think through the
process, after analysis, design and development, unit testing is another opportunity to think
through scenarios and gaps in your code. Make it a rule, always write a Unit test for your code.
 
 
 8) Doing Code review
 Like Unit testing, Code review is another thing which helps to become a good solid
programmer. Code review helps both reviewer and author, reviewer improves his code sense
and offers genuine advice while author learns from his mistakes. It often helps that the code you
think is rock solid, has some bugs which only other programmer can see, Code review and four
eye check does that for you. If you are lucky and get a chance to work in a company which has
unit testing, code review as discipline then you are likely to be a better programmer than rest.
These two things immensely help to improve programming skill.
 
 
 9) Talking to fellow programmer
 Reading is passive event compared to talking. Talking a program and discussing that with a
fellow programmer, often leads to a better solution, it's natural because your mind tends to
involve more when you talk and listen to other. I have then found gaps, missing requirements,
bugs and design flaws while discussing with teammates. In the software industry, where
programmers tend to isolate them with their computer, talking, sharing and doing whiteboard
sessions helps immensely. Don't just sit and code, talk, listen and think and hang out with fellow
programmers. participating in the event also helps.
 
 
 10) Participating Stack Overflow and forums, Commenting in Blogs
 This is another form of activity, which helps to revise knowledge. By sharing knowledge, the
first person who benefits is the one who share. Since programming is big and vast, you tend to
forget most of the things which you don't use for more than 3 months. Participating in
StackOverflow and answering others queries, commenting on blogs and forums is a nice little
way to revise knowledge and same time correct your misconception. By putting our knowledge
in front of others, we not only helps others but also put them to the test. Many times you will
see, someone benefiting from your knowledge but also you is getting your misconception
corrected.
 
 
Note : Every programmer wants to become a better programmer, but not everyone
succeeds. Apart from the natural talent of programming and problem solving, it requires a lot of
hard work, constant learning, and perseverance to become a better programmer. The more you
do real work e.g. Coding, Designing, Unit Testing and Code review, the better you will become. If
you just want to do one thing at this moment, I would say go and read clean code.

Good Luck :)

387 Views · View Upvoters
Upvote10Downvote
Share

 
RecommendedAll

Frank Harvey, chipping away at the enormous list of things I don't yet know
Answered Apr 12, 2013
Originally Answered: How can I significantly improve my programming skills in 4 months?
I won't give you any specifics, but I will give some general guidelines that I have developed and
think have worked for me.
 
1. Focus (but not too closely) on a technology.  I realized I needed to find a balance
between trying to do C++, Java, C#, Python, JavaScript, HTML, and CSS all at the same time on
one hand, and memorizing the minutiae of the PyGame API on the other hand.  You want to
develop a large toolbox, but I feel like having a strong foundation in at least one of those tools if
crucial.  You'll be much better at one language in 4 months than you will be at four languages in
that same time period.
 
2. Learn, but make sure to do. This hit me one day when I was on what must have been my
tenth different tutorial after several months of studying.  I spent a few minutes on it until I
realized something crucial -- I knew all this stuff already.
 
Now I want to be careful here.  My knowledge of programming is probably on the business end
of .01% of the entire domain of what's possible to know.  But I was rereading tutorials on syntax
incessantly, reviewing how to use print statements and while loops when I already knew how to
do all that.  And it struck me that I could spend my whole life reading how to program and I'd
end up being very well read, without anything to show for it.
 
I realized I had to build.  I had to find something that I was reasonably interested in and MAKE
something.  That one change on my part, actually applying what knowledge I've acquired --
while acknowledging that learning by reading is still a crucial part of it -- has accelerated my
development as a programmer immensely.  I'm solving problems, and then when I come across
the same problem later on down the line, IT'S ALREADY SOLVED.  Ctrl+C.  Ctrl+V. 
Programming is a lovely thing -- make sure you're programming.
 
3. Finally, whatever you do, don't get burned out. You have 4 months.  That's ~120 days,
or 2880 hours.  You cannot use all those for programming.  You're going to want to, god knows I
fall into that trap sometimes.  Luckily I'm married and I have someone who won't let me.  If
you're not as lucky as I am, you still need to set limits and don't try to spend 12 hours a day
programming.  Because I'll tell you something, I have never, EVER been more productive in the
second 6 hours than I was in the first 6.  We get tired, and that's when it's time to stand up for a
second, maybe go outside, or just get some rest.
1.6k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Joel Johnson, former Software Engineer at Google (2010)


Answered Dec 12, 2013
Originally Answered: How can I quickly improve my programming skills?
Break from the status quo and learn to think for yourself. Most people focus on code formatting
and efficient editor usage, but that is only superficial and not really at the heart of what software
engineering is all about (though it is good to have readable/maintainable code). You want to be
able to solve problems, then you want to be able to solve them quickly, then you want to be able
to solve then well, and with a great deal of elegance, stability, and readability/maintainability.
For this you have to learn to apply divergent things, divergent fields, and algorithms/approaches
from many walks of life to the problem you are trying to solve. You also want to learn how
to write as little code as possible to solve the problem, preferably none (that is,
quickly boil a problem down to its essence, and see what's really required, and what really needs
to be coded). If you learn this, then even with weaker editor skills, and code that's not quite
formatted according to spec (something you will be constantly nagged about), you will be light
years ahead of other programmers.

Read good code and learn from it. This is easier than ever with all the public repositories
available.

Constantly read books/forums/websites on coding (even if you only get one good tip, then it's
worth it), and constantly wrap your mind around new algorithms. When you are learning any
new algorithm, practice thinking of applications for said algorithm, as well as ways to improve it,
and practice critiquing/criticizing/assessing the algorithm. If you have to discuss the algorithm
online or with friends, then do so. Spend the necessary time on it. Code up all the applications
you think of. There are many books filled with algorithms, get them, and master them, rather
than using them as a reference.

Learn how to think and how to see patterns where others don't. Learn how to optimize.
Eventually, you'll be writing code, and instead of thinking of the next line you're writing, you'll
start searching for patterns in what you're writing to see if it can be automated away (that is, you
switch to writing a script that can write the code you were writing, etc), or if there is some
shortcut you can implement in your IDE to make writing those blocks of code quicker, etc. 
Study code you've written constantly and look for patterns in what you write. Not patterns like
the gang of four, but patterns like your code always takes on the same general overall form.
These patterns represent a combination of your habits and what's typically requested of you. Try
to tease the two things apart, and see if you can get any insight into ways you can improve your
habits. Also, once you are happy with the patterns you see (asking another's opinion can help),
then look for ways to automate the writing of them through shortcuts in the IDE that you use.
Things that can also be delegated to the IDE are control blocks that you write often (Ctrl+I+F
produces an if block that you can tab through to fill in, for example), or entire sets of files with
code templates contained within (it may eventually get to the point that you have to write a
quick script). But either way, delegating to a script or to an IDE saves you time, and minimizes
the number of opportunities you have to introduce errors/bugs with new code that you write.

Write code, write code, write code. Write constantly, and optimize and look for ways to improve
everything. 

When you write, first practice getting the code written down as quickly as possible, to help speed
up the rate at which you can crank out working code (even if the code isn't that good), then while
maintaining that speed, look for ways to push out code that's elegant, compact, and readable.
The idea is to not waste time getting stuck in a rut trying to figure out what to write, and then
once past that to bring that initial code you write to a higher level of quality. Learn a new
technique (like writing for testability), then integrate. Don't ever integrate anything blindly,
question everything if you have to, then find the answers to those questions before continuing.

Learn to "load up" and get on your mind all facets of the problem you are trying to solve, and
then to give yourself time to let your mind work it all out. If you could take a quick nap, then
that would be even better. It's like distracting yourself with something else between formulating
what you want to write a paper about, and actually writing the paper. It will help your mind
condense and work through countless details while you work on something else. This requires
time, so you need to be able to give yourself time to do these things.

You have to immerse yourself in this process (shut out the world, and focus in on it for extended
periods of time) for it to really beat good engineering abilities into you. 

But it will pay off, because eventually you'll have learned enough that almost every problem
thrown at you will result in a solution instantly coming to mind, and not only will you have the
solution, you'll know exactly how good the solution is, how much work it's going to take to
implement, exactly where to go to apply the changes, and you'll write the minimum amount of
code necessary. Also, rather than getting foggy and confused because too many things are going
on in your mind at once, you'll be crystal clear, and you'll just get on with it.

There are other things you can do to ease the process (like skimming the table of contents and
chapter headings of books before you dive into them, and using brainwave entrainment audio to
keep your mind in sync while you study and while you work) and you can search around or ask
around for those tips.
9.8k Views · View Upvoters
Upvote34Downvote
Share

 
RecommendedAll
Bruno Skvorc, SitePoint's PHP Managing Editor
Answered Apr 14, 2013
Originally Answered: How can I significantly improve my programming skills in 4 months?
Take 8 hours out of every day for furthering this purpose. I don't recommend doing more than
that unless you feel overly enthusiastic because it might cause a burnout.

1 hour every day to read a good programming book. Don't read tutorials, don't read guides. Here
are some essentials: "Godel, Escher, Bach", "Code Complete (2nd edition)", "Design Patterns",
"Introduction to Algorithms", "The pragmatic programmer", "Javascript - The Good Parts".
Anything from this list, really: resources - What is the single most influential book every
programmer should read? - Stack Overflow

1 hour every day to read through the content posted by influential companies and people in the
field which interests you. I'm into web programming, and I follow some web wizards and never
miss out on anything they post. Use this hour also to build a social presence in the communities
related to your interests. Ask some questions, answers others, write a blog, voice your opinion,
join the community. Google Plus is a great place to do that, feel free to connect with me and I'll
share some contacts with you: Bruno Škvorc - Google+ 

Spend the remaining 6 hours per day on coding. Do not go through tutorials and sample apps -
think of a problem that needs solving, something you're not happy with - and solve it. You'll run
into walls, you'll want to give up, you'll curse and cry and grow frustrated sometimes, but you'll
also have moments of epiphany and pure joy when you figure something out on your own.

The important thing is to avoid tutorials, newbie guides, sample apps and similar stuff. If you
really want to drastically improve, you need to learn from your own mistakes, not mediocre
samples.
12.5k Views · View Upvoters
Upvote52Downvote
Share

 
RecommendedAll

Divyadeep Sawhney, programming since 2010


Answered Nov 6, 2014
Originally Answered: How do I improve my programming skills?
You started early so it will be a advantage for you which will differentiate you from the rest of
your classmates/ batch mates. I will suggest the following :-

1. As you are in first year, I guess the language in your syllabus will be C or C++. So, you should
try to adapt that language first. Practice the basic concepts first.
2. The problem you are facing right now is of Logical Thinking or Algorithmic Thinking. So, I
will suggest you to start from very basic program and start writing their flowcharts or rough
algorithm on paper. When you are confident that your logic will work, implement that on
machine.

3. Seek help from friends and teachers. I cant help you much but they can as they are physically
present with you.
323 Views · View Upvoters · Answer requested by Nitin Khare
Upvote2Downvote
Share

 
RecommendedAll

Giacomo Sorbi, Self-taught programmer, passionate enough to become as good as it takes to answer
a question or two
Updated Jun 1, 2015
Originally Answered: How do I improve my general programming skills?
Come join us on CodeWars: your goal should be to do at least a kata (=problem) each day.

No. Days. Off.

I started a few months ago and I was rather poor (having to Google even simple syntax in some
languages T_T), but then it helped me grow more skilled and learn a bunch of different
tricks and neat ideas to solve problem after problem.

Oh, and problems are categorized both by difficulty and argument, that makes it much
easier to find your best degree of challenge, neither frustrating or too easy.

 And once you solve a problem, you get to read other coders' solutions, which makes an
excellent learning combo (I mean forcing yourself to solve X, then read other solutions to X).

Other quorans reached me there and among them, Russell is surely worth a mention as the best
achiever I met until now: he learnt a great deal, is constantly improving his own skills and I
must admit reading some of his smartest solutions is now a pleasure. Even or maybe
particularly when they are best than mine ;)

Final note: if I (an "old" self-taught that started when 35 yo with no formal education, more
about my path here) did it to the top 100, surely so can you :)

Hope this helps, happy coding :)


54.9k Views · View Upvoters
Upvote315Downvote
Share

 
Carlos Matias La Borde
Oooh a site with problems that are actually fun to solve.
1 more comments from Brandon Irizarry

Marcus Geduld, 30 years of coding.


Answered Feb 6, 2012
Originally Answered: How does one improve his or her programming skills?
Everyone in this thread is right. Do ALL of the above. Think about how people successfully learn
foreign languages. The don't just read books written in French (or whatever). They read books,
engage in French conversations, watch French films, drill vocabulary, write in French, etc.

- As Vijay Sarathy said, "Practice and enjoy practicing." Which I take to mean practice by
working on code that interests you.

- As Niall Peterson says, "Fail. Then succeed. Then Fail again. Then succeed. And continue this
circle. If you don't fail, then you know you need to do something harder." See
also: http://www.quora.com/quotesilike... and consider starting a journal like this, even if you'd
rather not make it public: http://www.quora.com/Marcus-Gedu...

- Find an open-source project (in whatever language you're learning) and read the code, working
to understand it. Find one that has a reputation for being well-written and one that has a bad
reputation. Continually read other people's code: the good, the bad and the ugly.

- Spend at least a little time studying all the major paradigms of programming, e.g. both
Functional and Object Oriented, even if you're not planning to use a Functional language. I
HIGHLY recommend working through "The Little Schemer." If you're like most programmers,
you'll enjoy the experience and find it enlightening. http://www.amazon.com/Little-Sch...

- Learn at least one low-level, close-to-the-hardware language, such as C or Assembly.

- Learn about Design Patterns, Common Algoritms, Data Structures, Refactoring, Unit Testing
and Agile, whether you agree with these practices, plan to use them or not. 

- Think about the importance of NAMING things. “There are only two hard things in Computer
Science: cache invalidation and naming things” -- Phil Karlton. Understand that programming is
about both "making it work" and communicating to humans. Take that second part very, very
seriously and always worry over your identifier names and the other ways your code may be
clear or baffling.

Anecdote: a co-worker of mine wrote code that extracted some data from an XML file with a
field called "description." He stored the data in a variable called "desc." That's not very
confusing, but it's just confusing enough that every time I read his code, I had a momentary
confusion, in which I thought "What does desc mean?" Like I say, this was momentary, but code
is already hard to understand. Don't throw roadblocks into it that make it harder to understand.

When it's a battle between ease-of-understanding and saving-yourself-keystrokes, err on the


side of ease-of-understanding. I changed the variable (and all references to it) to "description."

- Learn to step in and step back, step in and step back. Programming is about the tiny details,
like individual functions and, also, the large architectural concerns. So are many other
disciplines, but in most cases, different people attend to the small than the large. For instance,
on a film set, most directors don't attend to intricacies of the sound-recording equipment;
meanwhile, the sound guys don't worry about plot of the entire movie.

Many programmers must do both, and it's tricky to change mental modes. So give yourself lots
of practice stepping in and stepping back.

- If you're looking at the above list (which could easily be extended) and feeling daunted, you
need to work on THAT. If your expectation is to "get it all" in a year, you'll be disappointed.
Programmers must be lifelong students. They never graduate, they shouldn't expect to, and they
should enjoy never graduating. If you're the type who is unhappy unless you reach the finish
line, this isn't a good career for you.

UPDATE: this is a field in which mentors really help. If you can find a programmer who is better
than you (which should be easy, no matter what your skill level) who is willing to look at your
code critically and coach you, you'll grow by leaps and bounds.
19.2k Views · View Upvoters
Upvote32Downvote
Share

 
RecommendedAll

Ivan Marcin, Software engineer at Lookout Mobile Security, photographer, tea and coffee lover
Updated May 21, 2012
Originally Answered: What is the single most effective thing you can do to improve your programming skills?
The #1 key thing, is to code more and more. 
Code alone isn't enough so here are some thoughts: 

1. Keep coding. Make tools, write demos, try out new libraries. Coding is like a muscle
and needs to be exercised. Even if you stop coding for some time it takes time to get
back on track. Just keep coding.
2. Read code. Go back and read your own code, read other people's code. You'll be
surprised to see how different your old code was, and how much it could be improved.
Read other people's code but don't assume all code or massive amounts of code are
good coding practices. If you have access to other code repositories from your work by
all means read it, you'll gain lots of insight. Github makes this super easy as well.
3. Do code reviews and check out some code guidelines. Google publishes their code
style guidelines and they're quite good. Code reviews don't have to be formal and can
be for your own entertainment & knowledge. Read, understand, and try to think how
to improve the code. You'll learn some really clever techniques from other peoples
code, and as consequence, identify inefficient code in other places. Don't assume code
is good because it is extensive, because it comes from a big place like google or
microsoft, or because it belong to some famous project.
4. Know your tools like the back of your hand. You don't need to know 25 editors, the
newest IDE, or all vim and emacs bindings. Whatever is that you use, be comfortable
enough so it's not a distraction.
5. Step out and learn something else. Check out haskell or clojure, do some SQL or
NoSQL. Check some other scripting language. Just keeps things fresh in your mind.
6. Nail the basics. Read about what makes things work in the language you use the
most and how things work behind the scenes. Do you know what happens with
memory generations in your garbage collector? Ever stepped through code generated
by your compiler? There's plenty of articles of this kind online.
7. Read about programming concepts rather than languages or syntax. For
example, read about Design Patterns. Heads First Design Patterns is an awesome book
on this topic. There are others like Clean Code, Code Gems, Beautiful Code,
Refactoring to Patterns, Coders at Work.
8. Learn some heavy stuff debugging. Find out how to debug things after
deployment, try to trace back a crash from a crash dump.
17.2k Views · View Upvoters
Upvote122Downvote
Share

 
RecommendedAll

Anonymous
Answered Dec 26, 2013
Originally Answered: How can I quickly improve my programming skills?
There is a lot of good advice on this page. But here is a recounting of my experience, which, I
hope, will have something to add to all this.

I too, am an engineer at a well known company and was pretty much in your position few years
back. The big difference was that I did not know that I was bad at programming. Let me be clear,
I was great at problem-solving, math, algorithms - even coding (in some sense) but I lacked a
certain skill that I did not know at the time.

Then, two incidents happened that changed everything. 

Few new people joined my team. I did not know at the time but they were top notch
programmers. One of them reviewed my code and made comments that I wasn't used to
hearing. They were regarding redundancy in code. I had a great reputation on the team and so
being publicly criticized about my code was not something that was easy for me to take. I
remember clenching my fist, biting and taking deep breathes as I was typing my responses to his
comments. He kept saying something along the lines of "...this is not maintainable..." and I kept
saying things that amounted to "This is *my* code. Only I'm going to use this and it is throw
away code anyway." I believe that the problem was with the word "maintainable" - when I hear
that, I picture some vendor hired 5 years after I've left the company to make some changes to the
code. I obviously did not care about this faceless person. But that code review changed how I
thought about maintainability. What it really means is "change-ability" - the ability to change
what your program does. And this doesn't have to be by the poor vendor many years later - it
could be you - the next week. This made more sense to me - I should be able to get my code
dance to my tune - make it so beautiful that I should be able to very easily build on it.

Unlike in movies, in real life, such realizations take time to materialize and reflect in your
actions. So, it took me many months to internalize this concept. Along the way, I completely
changed my style of programming. I got much better - but then something else happened.

Few months later, a very senior guy (someone I respect a lot) happened to look at a small piece
of code that I wrote. As we were chatting about something else in the corridor, he mentioned
that he did not understand my code. I chuckled, thinking to myself how much smarter I was
than this smart guy that I looked up to. Very soon, I was to realize how wrong I was. He sat at
my desk, and began to dissect the code with me at the keyboard. He kept asking "what is this
code *really* doing?" and I kept thinking "I conceived of this to solve a problem I had and you
really thing I don't know what this code is doing?". Surprise, surprise, I was wrong again. When
it was boiled down to its essence, the code was simply performing a join of two streams of data.
This is something that I had not realized because of all the details. Then, we together, rewrote
the code. It is the single most educational experience that I have had in my working life. The
whole thing lasted for less than an hour. I learned a ton during that hour. The most important of
which was that even great programmers don't write great code the first time around. It is an
iterative process. At some point, I stopped to ask him something like "Do you think, it would be
better to implement it this way or that?" and I was expecting him to dazzle me with his deep
wisdom. Instead, he just said "I don't know yet, let's do it one way and see where it leads us". So,
that's what we did. We wrote the small function a certain way, looked at it carefully, removed
pieces until there was nothing more to remove and moved things around until we got it right.
And the result was beautiful.

As in the case of most things - I only have been able to see the full import of that experience in
hindsight. I slowly changed my style of coding. And more importantly, the attitude towards
code. (I like to think of myself as more a  "researcher" than an "engineer" - so, really changing
my attitude towards coding and caring about the little things was a big deal for me.) Because of
the newly acquired ninja coding skills, I was able to accomplish a lot in the following months.
Few months back, I made a big career switch to a much more challenging place and I have to
credit this success to the skills that I picked up.

I'd hate to summarize and give you a pithy idea to take away. But if there is one thing that I'd
like the reader to take away from this story - it is that learning to code well is a long and slow
process. It is something that you have to develop over the years in a very deliberate fashion.
There may be other ways of doing it but this is the only one that I have seen working.
15.5k Views · View Upvoters
Upvote115Downvote
Share

 
RecommendedAll

Pulkit Vashishth, former Senior Associate (Operations) at Zomato


Answered Feb 13
Originally Answered: What should I do to improve my programming skills?
Hi Rohini Ganorkar, thanks for the A2A.

Picture someone you know who is an incredibly good programmer.


You probably wish you could be like them. Right?
If You want to get better at something - Practice.

 Start writing programs. Build your own blog in PHP, build a JavaScript plugin, get a
feel for how these things work, so you’ll have the confidence. Remember Improving
skills usually enhances productivity.
 Modify existing programs written by other people. this lets you work on many more
big programs than you would have time to write yourself from scratch, which helps a
lot with those skills that only apply to large programs.
 Find some good mentors and let them review your code, and try to do some pair-
programming with them. This will help you to learn their approach towards
programming and will help you to understand your shortcomings.
 Find some peers with whom you can review your code. People of similar skill levels
can teach each other a lot.
 Broaden your horizon by Learn multiple programming languages. Each language you
learn will give you ideas about how to do things better in other languages. Read books
about code quality, like code complete, The Pragmatic Programmer.
 Get into the habit of understanding the problem domain. Try to create a mind-map for
the problem. Once your understand the logic behind the code, you will be able to write
it. You can refer to Raj Bapna’s book for understanding Mind-maps.
 Participate in Various Online Coding Communities. You will gain quality knowledge
on these platforms.
Here are links to top communities:
Reddit: https://www.reddit.com/r/program... 
Github: https://github.com/ 
Geeks For Geeks: http://www.geeksforgeeks.org/
Codechef: https://www.codechef.com/
Project Euler: https://projecteuler.net/
CodeAcademy: https://www.codecademy.com/
CodeMonk: https://www.hackerearth.com/prac...
 Practicing data structure, Algorithms, and Design related problems. When you try to
solve a particular quiz with your programming you end up with a solution. It must
execute faster, use less memory and still be accurate.
 Whenever you face a particular problem, You can share them on dedicated
communities.This will help you get answers to your problems quickly without wasting
a lot of your time and effort.
StackOverflow: https://stackoverflow.com
This is the biggest community for asking programming or computer science related
questions.

You can also read Daniel Coyle's The Little Book of Talent, this will help you to
nourish and improve skills.
142 Views · View Upvoters · Not for Reproduction · Answer requested by Rohini Ganorkar
Upvote3Downvote
Share

 
RecommendedAll
Ernesto Bascón, C++ programmer
Answered Dec 23, 2015
Originally Answered: What are the best ways to improve your coding skills?
Coding, just coding.

You can read a lot of programming languages, you can buy some books related to the
programming language you are learning, you can read blogs related to programming language,
but the only way you will be good at coding, is getting your hands dirty with it:

* Find a little real life problem YOU have and solve it through your program (something that
computes your savings/expenses, etc).

* You can find an open source and start contributing it (translating, fixing bugs, then adding
new small features, etc.)

* Create some cool program (try to implement a game, for example) and so on.

While coding, your coding skills will improve; coding will show you some barriers you will need
to bypass and you will find new problems you will want to solve.

Just do it

3.2k Views · View Upvoters
Upvote33Downvote
Share

 
RecommendedAll

Sumit Mandal, Engineering Student (computer science), Military Brat, Writer


Answered Jun 27, 2017
Originally Answered: How do I improve my computer programming skills?
Not only computer programming but to excell and improve at anything you
need PRACTICE. You must have heard a phrase “Practice makes a man perfect”. So, just
practice. Doesn't matter if you fail to run your program or if you are facing difficulties. If you
have doubts, ask your teachers or your friends or the best thing, Google it. You'll have your
doubts cleared right away. Perfect your basics and learn to implement them. Here are some
useful websites to give you a head start:

 HackerRank
 Programming Competition,Programming Contest,Online Computer Programming
 Stack Overflow
 www.w3schools.com
855 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll
Anonymous
Answered Sep 23
Originally Answered: How can I improve my programming skills?
First of all you need to Select your best programming language , in which you have interest while
executing it , after that you grow up with it. For improve you skill into it i suggest you watch
Youtube videos , Second if possible Purchase Books of it Like as follows :-

1. G.S. Baluja - For Data Structures


2. Ivan Bayross Book - For Java or For SQL/PL-SQL
3. G.S. Baluja - For C++
Another Thing is that you need select a specific programming language for Front End Language
and Back End Language , You should not Select more than one because it may be complex to
increase skill in caparison of One by one .

You Can Also Watch Oxford University Programming Language Course videos , they are good
for understand the actually concepts .

209 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Saurav, Software engineer and a Gamer.


Answered Fri
Originally Answered: How can I get better at programming?
I will keep it sharp and short:

1. Start from learning basic coding principles and get your base knowledge right,
be it in any language, here language does not matter.
2. Learn to write down codes on a paper. Writing codes on a paper helps you to be
precise in indentations and punctuations. And then run that code on an IDE and see
where you missed.
3. Be consistent - Consistency helps you to learn something subconsciously that you
didn't aim to learn at the first place.
4. Read code! Read as many code as possible, it also deals with learning through the
subconscious mind!
5. Set targets - Don’t try to learn all at once just because you are going good. Set target
on how much you have to learn and strictly follow it.
6. After all the basic concepts, learn Data Structure and Algorithms! You must
have heard it a lot of times and it’s true! Data Structure and Algorithms are the
backbone in the Software Industry.
7. After getting a grip on the above things, start doing competitive
programming! There are multiple websites for that, the most famous being :
a. HackerRank
b. | Deliver Faster Through Crowdsourcing
c. HackerEarth - Programming challenges and Developer jobs
8. Practice! Practice! Practice!
Kindly Upvote if you found it a useful read!

Keep learning!

Image source: Google

94 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
Anonymous
Answered Feb 25, 2016
Rising alongside the relatively new technology of Big Data is the new job title data scientist.
While not tied exclusively to Big Data projects, the data scientist role does complement them
because of the increased breadth and depth of data being examined, as compared to traditional
roles....You Can Visit This Link-:Data Science Courses from Intellipaat  A data scientist
represents an evolution from the business or data analyst role. The formal training is similar,
with a solid foundation typically in computer science and applications, modeling, statistics,
analytics and math

. What sets the data scientist apart is strong business acumen, coupled with the ability to
communicate findings to both business and IT leaders in a way that can influence how an
organization approaches a business challenge. Good data scientists will not just address
business problems, they will pick the right problems that have the most value to the
organization.

The data scientist role has been described as “part analyst, part artist .“A data scientist is
somebody who is inquisitive, who can stare at data and spot trends. It's almost like a
Renaissance individual who really wants to learn and bring change to an organization."

Whereas a traditional data analyst may look only at data from a single source – a CRM system,
for example – a data scientist will most likely explore and examine data from multiple disparate
sources. The data scientist will sift through all incoming data with the goal of discovering a
previously hidden insight, which in turn can provide a competitive advantage or address a
pressing business problem. A data scientist does not simply collect and report on data, but also
looks at it from many angles, determines what it means, then recommends ways to apply the
data.

Data scientists are inquisitive: exploring, asking questions, doing “what if” analysis, questioning
existing assumptions and processes

Data is doubling every two years, and everyone has heard of the preposterous growth numbers
stated in reports. Against this backdrop, the inevitable outcome is the emergence of the Data
Scientist. A data scientist needs to analyze vast amounts of data and cast the technology map to
make the transition of data to insights possible. The scope of the job of a data scientist includes
identifying data sources, quality of data, correlations between data points and dissemination to
the users of information.

For the moment, the role of a data scientist is played by a combination of people in the BI team,
such as the data warehouse architect, Business  analyst, and others of that ilk. As the situation
evolves, the data scientist would work above these professionals to unearth new trends and
associations that may be beyond the realm of current models and Business problems. The
Business analyst would work on the data that has been put together by the data scientist. James
Kobielus, a senior analyst with Forrester, in his Business, goes as far as to compare the work of a
data scientist with the work of scientists in the natural sciences and social sciences, stating that
they would need observational data and experimental data to work with. “Historically (data
scientists) have had to be content with mere examples.” With a full-fledged career emerging, this
will soon change.

Discussions on who exactly is qualified to be a data scientist do not vary too much from the
debate held earlier on whether a Yet, at the outset, industry experts have indicated that a data
scientist should have a master’s degree in mathematics or statistics. Meanwhile, , group CTO at
Shoppers Stop, states, “There is a shortage of professionals who can be called data scientists. At
the moment, whoever has a passion to work with data is filling the void.”

A data scientist will work at developing new algorithms and bring forth new patterns and
insights into the data that otherwise would stay hidden. “Along with statistics, a data scientist
can have a qualification in economics, and most definitely needs a dozen or more years’
experience with working with ten to fifteen BI tools,” says Chuck Hollis, VP for global marketing
& CTO, EMC.

a provider of decision science and analytics services says “Data scientists will also dabble in
experimental psychology, anthropology and social sciences.” With a need to establish BI centers
of excellence (CoE), analytics  will get institutionalized.

With the advent of social media impacting most facets of business, organizations look forward to
integrate technology, social software and BI to create a congenial decision making environment.
The data scientist will be responsible for providing a social context to information. BI and
analytics dance to a new tune when adopting new approaches such as Hadoop. They do not wait
for structured, cleansed, pristine data but work with a mixed bag of data to provide real- or near
time analysis. Descriptive analytics, inquisitive analytics, Predective and prescriptive analytics
are all part of the new paradigm, with the data scientist at the center.

The evolution curve is moving from decision support to becoming increasingly operational, with
an imminent progression that will take strategic competence to a whole new level with data
scientists in the picture. BI came on the scene fifteen years ago and IT owned these initiatives.
Now, BI is a Business function involving market research with a central focus on analytics.
Companies with large volumes of data (internal and external) would take to The Notion Market
without batting an eyelid, but smaller companies would think twice before paying someone
money to do something their BI vendor told them their BI product would do.

However, it is not as if there are data scientists in abundance, all clamoring for jobs. On the
contrary, as Hollis from EMC says, “There is a shortage of talent. For every data scientist out
there, there are thirty jobs waiting.”

In answer to this problem, Analytics as a Service presents itself as a feasible alternative.


Analytics as a service  is still nascent and evolving; as the complexity grows and mature service
models that are linked to outcomes and success emerge, the adoption rate will increase. The
possibility of Hiring a data Scientist through an analytics service provider is an intermediary
step for many mid-sized and small BUSINESS

522 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll
Mitesh Pathak, Y-ACE (Yet Another Computer Engineer)
Answered Nov 6, 2014
Originally Answered: How do I improve my programming skills?
9 question on SPOJ
Well done bro. You are on right track. Initially don't consider world rank to judge yourself.
When you solve 100-150 questions on SPOJ, comeback to this question and ask yourself - Have
I improved? I'm sure the answer will be yes... coz you will know 100-150 new concepts. You'll be
a better programmer (time/memory/algorithms complexity)... 
Cut the crap and focus on present. Dedicate 3-4 hours on each problem, brainstorm but don't
quit. Look for hints not for solutions. Learn the concept behind each problem. Practice smart &
have patience.

 Don't solve easy questions - waste of time

Thanks for A2A.


1k Views · View Upvoters · Answer requested by Nitin Khare
Upvote4Downvote
Share

 
RecommendedAll

Debasish Ghosh, Author - DSLs In Action, open source contributor, programmer at large, software
engineering enthusiast.
Updated Feb 10, 2011
Originally Answered: What is the single most effective thing you can do to improve your programming skills?
There is no silver bullet in improving your programming skills. There are in fact many things
practiced over a period of time that makes you a good programmer. The most crucial thing is to
learn how to think in your programming language. Over the years there have been many radical
mindsets responsible for doing ground breaking stuff in the usage and implementation of
programming languages. Learning them is certainly a good way to probe into the minds of those
thought leaders. Here are some suggestions in no particular order on a few things learning
which will change the way you think of programming ..

1. How the Lisp Interpreter is implemented in Lisp


(http://www.ee.ryerson.ca/~elf/pu...)
2. What is Erlang style concurrency ? http://ulf.wiger.net/weblog/2008...
3. Why functional programming matters (http://www.cse.chalmers.se/~rjmh...)
4. The joy of Programming with concatenative languages
(http://concatenative.org/wiki/vi...)
and there are more which fall into the category of groundbreaking thoughts implemented in the
domain of programming languages.

And last but not least, make it a habit of reading good (and bad) code. It exposes you to the
world of best and worst practices that you should be aware of when you will be writing code.
5.7k Views · View Upvoters
Upvote20Downvote
Share

 
RecommendedAll

Rituraj Borpujari, We can't control the situations we face, but we can control how we react to them
Answered Mar 3, 2016
Improving your programming skills involves a lot of things. Fortunately its not that hard if you
are determined enough to learn and master.

1. Be thorough with the basics. Being thorough with the basics will help you
understand and implement complex algorithms easily. You will be able to grasp more
of whats going on when you see some new code written by others. This will also help
you write effecient code.
2. Implement practical life problems. If you don't practice coding solutions to real
life problems, then its a good time to start it. This will help you gain expertise on
algorithms and program flow. It will also help you become good at using different
programming constructs. Practice daily life problems like railway reservation system
model, tic-tac-toe game, reminder system, etc.
3. Learn the concepts of how a computer hardware works in accordance
with software.Learn how low level operations like data fetching from memory,
calculations processed using registers, graphics pipeline in a gpu etc are handled by a
computer. Although these are not necessary for programmer, it will help you write
more effecient programs that takes advantage of the hardware.
4. Learn different programming languages. Learning different programming
languages will help you know and understand different programming constructs and
ways of implementing things. You will then have more options to choose a language to
code your program. You can then choose the language best suited for the job you want
to write the program for.
5. Code with style. This may not seem important but it surely is. Writing program with
good indentation and commenting style is a sign of an expert programmer. It also
helps programmers understand your code and update where necessary. In short, it
helps in maintaining and reuse of code. Coding in a standard style is a pre requisite for
developing in teams.
6. Practice practice and practice. You will never get anywhere without practice.
Practice more of programming. Try writing effecient code for already working code.
Optimisation is the key.
You may like to view my blog Become Developer

369 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Manoj Kalaskar, Just another human being.


Answered Dec 10, 2014
Originally Answered: How should I improve my coding skills? I’m a 3rd year student studying IT and have basic
knowledge in C, C++, Java, J2EE, and html. I'm currently learning CSS and JavaScript. Should I participate with
online contest sites? Which site is the best?
Keeping in mind the placement factor :

Step 1) Learn basic algorithms and implement them (DFS, BFS, Dijkstra,  APSP, LCS, LIS etc.) 

Step 2) Solve section wise, difficulty wise problems on HackerRank. (Need not go through all
sections and problems). 

Step 3) Solve problems from  LeetCode Online Judge. First try to write code on paper. Walk
through your code. Type the same code in editor and submit. Learn from your mistakes.

Focus: Speed, Accuracy, Efficiency(Time and Space).

All the best :)

Edit:
 1) Try avoiding IDEs, because you won't get to use them during test/interview. They will make
you their slave. So try to be your own master.

2 ) Competitive programming  skills are not required for placements. So try NOT to invest your
time there. Rather, strengthen your basics, and ability to write clean code in less amount of time.

3) Divide and Conquer - Code daily and not once in a blue moon.

4) Master one programming language(either C++ or Java). If you are going for C++,
refer cppreference.com for STL.
1.3k Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Tamil Selvan, Common Lisper.


Answered Apr 13, 2013
Originally Answered: How can I significantly improve my programming skills in 4 months?
The Algorithm Design Manual:    This book can give you little perspective and intuition  for
algorithms which is more important than the actual algorithms. Based on that i can say its better
than CLRS. (you can always refer CLRS/Sedgewick)

And may be whatever i'm about to give seems silly worthless piece of advice but it really works in
real world. Please learn HTML5 and CSS3 properly without any frameworks mambo-jumbo.
And understand all aspects and concepts of CSS3/HTML5 thoroughly. 

Learn to create beautiful websites. Since you already know programming just concentrate 4
months to  improve webdesign skills (esp. HTML/CSS) . If possible attend design classes. 

Learn about Color Science, Basic Design approach (a design book for programmers and
developers), Amazon.com: The Non-Designer's Design Book     etc..

Little Beauty brings enormous advantage to you. The Advantage is better than getting TopRank
in topCoder. (less work , more good impressions to business guys). with that.

1. You can create a beautiful  blog and blog your Algorithmic learning Experiences 
2. You can learn JavaScript and you can easily create your own framework
3. You can create tutorial blogs and make your choice of framework look marvelous.
4. In case if you have choosen any poison like (lisp,haskell), HTML/CSS skills alone makes you
instant celebrity. (may get a job offer or two).
5. You can make beautiful first impression.

p.s: Along with algorithm skills  you can really find easy money.

I may be wrong but i actually seen and experienced 


that with better design skills you can easily sell O(n^2) algorithms over O(1).
1.6k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Kris Ekenes, Software Engineer @ Skilljar


Answered Jun 13, 2017
Originally Answered: How can I evolve my programming skills?
Practice practice practice!

To get better at coding, you must code. However, effectively coding is most important. What we
do at Coding Dojo is provide the most effective learning environment we possibly can. From
project based curriculum that is meant to teach you all the fundamentals of web development, to
amazing empathetic instructors; Coding Dojo will help you change your life.

149 Views · View Upvoters
Upvote1Downvote
Share
 
RecommendedAll

Christopher Dumas, AA Mathematics & Computer Science, West Valley College (2021)
Answered Jul 21, 2017
A2A. I’ve written a lot about this on this site, and it would be more profitable for me (less time
spent here) and more profitable for you (more in-depth answer for each thing) to read my other
answers. Here they are, for your convenience:

When should I use higher order functions?



Can I know only one programming language to get a developer job and what language

should that be?
 As a programmer, what is your favorite motto?
 What are the supplies you need to become a web developer?
 What programming languages should I learn to build a good website in 2017?
 What are the easiest tools/platform for a system developer to start programming 2D
RPG games?
 Why should I bother using class instead of function in Python?
 How and in what langauge does a programming languge code communicate with the
OS?
 How do I keep overview of my code as a beginner programmer?
 I have to pick between taking C++, Java, or Python programming as a programming
elective for my Information Systems degree. Which would be the best?
 What are the best books on JavaScript?
 Why did my analog computer simulator become a 2000 line code monster?
 How can I learn web development properly?
 What is the best advice you have for someone wanting to get into programming?
 I want to learn Lisp, what dialect should I start with?
 How do you approach a programming problem?
 What is functional programming, and where can it be applied in real life software
development projects?
I hope all these help, and if you need to know more, don’t hesitate to ask questions and ask me
to answer them! (:

126 Views
UpvoteDownvote
Share

 
RecommendedAll

Daniele Petrarolo, Full-stack Web Developer (2013-present)


Answered Jul 9, 2017
Originally Answered: How can I code better and become a better programmer (regardless of the language)? I’d like to
know how things work and how I can make them better.
NEVER STOP LEARNING.

This simple 3 words are the base of my developer career: I repeat them every day, and I always
try to discover new things and be motivated and passionated on my job. Be corious, discover
latest technologies, try, fail and re-try.

Practice is of course another important aspect of this job: after work, in my spare time, I try to
learn new things and try to develop side projects, learning a new JavaScript library, new server
side framework, etc etc.

I want to link this simple post, maybe could be helpful: 7 tips to become a better web developer |
DailyGit

232 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

William Emmanuel Yu, I love learning new programming languages


Answered Aug 25, 2013
Originally Answered: How Can I Improve My Coding Skills To Get My First Job?
The best way to polish these skills is to use them. Putting them in a real life working
environment will do you good. It will also allow you to get deeper knowledge and experience.
There is only so much you can learn quickly on your own. Working with others will also allow
you to benefit from their experiences as well.

So you have roughly two (2) options:


 Take an internship. Try to apply to a company. Get a job as an intern so they don't
have to vet your credentials too much. Suggest going for jobs that allow you to work on
something whether it is a simple in-house logging system, a simple website or even a
QA job. The key is to get the opportunity to use your skills and work with other more
experienced people. If you don't get an internship because even your current skills
maybe insufficient then you can try the second option. Additionally, there are some
organizations and non-profits that could benefit from somebody IT help as a
volunteer. Maybe making a little database system for a charitable organization will do
a lot of good.
 Find an open source project and contribute. This allows you to try out your
skills and most open source project don't reject volunteers. You might want to start
with something simple such as localization or cleaning up interface bugs and fixes. Do
the fixes and contribute them back. They may or may not get accepted but you are
already in the road to getting better. Collaborate with the communities working on
these open source software. They are generally very helpful and you will definitely
learn and thing or two from them. There is so much to do in this space. 
Story: A few years back, I was running devops at a major IT outsourcing company. I had a walk
in applicant that wanted to do a career shift. He used to be a guidance counsellor at a highly
rated local high school. His undergraduate degree was AB Psychology and didn't have the
requisite IT background. When he applied, he signified his desire to enter a career as a DBA. He
told us what he did to self study database technology. He even took a few DBA courses at a local
vocational institute (that gives away low cost to free training). To cut a long story short, I hired
him as an intern. We didn't pay him but we did give him escalating amounts of work. After the
internship period, we hired him as an entry level systems administrator (with DBA functions).
Eventually, he got a job at Oracle. 

The key is to accept that no job is too small. You must start from somewhere. Every time you
work on code, you will get better. The key is to slowly by slowly build up some experience and try
to look into your what area you would like to focus on. After which, build up some "resumable"
experience (hence the internships and volunteer work). If you really like what you are doing
then it won't be a pain to build up all these credentials.
6.8k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Harsh Pathak, passionately curious


Answered Nov 6, 2016
Originally Answered: How can I improve my programming skill?
Many Java developers ask me How to become a better programmer, how do I improve my
programming skills, or I am good at Java but not so good on problem-solving skill etc. This is a
reality, today's era is full of language expert than real programmers. It's easy to understand
keywords, methods and API of Java programming language, but same time it's difficult to solve
real problems, design reusable and robust software and get the maximum of data structure and
algorithm. I have often seen Java programmers are not doing so well when asked to design and
code a solution in limited time, but same time they are really good with Java concept and all
theory. Even senior programmers of 4 to 6 years experience in Java programming, sometimes
fail to solve questions like designing

Anyway, here is my list of things, which can help you to become a good programmer.
 
 
 1) Coding, Coding, and Coding
 Why have I coding at the top of this list? because it's difficult and same time its central piece of
programming. By doing coding, you also realize your mistakes in designing, error handling,
threading and then go back to those respective skills to improve. You just can not work in
designing only, coding produce output, which is important to learn and act as a success. By the
way, do not stop just after solving the problem, it's always better to throw away your first
solution, that is just a prototype, your next solution should address issues, missing requirements
which you have found building a prototype.
 
 
 2) Reading Books
 Coding is easier said than done, and there is a huge difference between good code and bad code,
but how do you know? Until you have seen a good code and know why a particular code is good,
you can not understand the difference. This is where books come to help, more often than not
authors are great programmers themselves. They offer their experience in the form of a book. I
love books, but one book, which is particularly helped me is Clean Code by Uncle Bob.

3) Contributing to Open Source, Signing-up mailing lists


 Contributing on the Open source code, especially from Apache, Google, and some other projects
is another way to improve your programming skill and become a better programmer. Just
signing their mailing list and following discussion teaches you a lot. Since most of the
discussions happen between good programmers, by listening to them and understanding
problem and their approach, solution and view, automatically develop good programming habits
on you. To get most of it, do not just sit passive, ask questions, offer your view, but same time
value others as well.
 
 
 4) Practicing data structure, Algorithms, and Design related problems
 I was thinking to put that as the second item, but it ended up fourth. In my opinion, this is the
most critical of things to do to become a better programmer. Most of the good programmers I
have seen and met are really good in data structures, algorithms, and basics. By learning these
things, you take better advantage of what is available. Since data structure is a key piece of any
program, solid knowledge of them helps during problem-solving. Similarly knowledge of key
programming principles, search and sort algorithms and other well know algorithms develop
programming skills on you. You can refer these books to improve your knowledge of data
structure and algorithms.
 
 
 5) Reading Good Blogs
 Reading good blogs is a small part of reading books. How does reading blogs help you to
become a better programmer? Well, it does. Since blogs are often written by programmer
themselves and most of them share their personal view, experience, you often find them
relevant. Also, blogs are a small piece of information so it digests well. A blog also helps to learn
new technology and new features of existing language and API. Many times, I have seen
something subtle or missed things from a really well-known part of Java described in a small
blog post.
 
 
 6) Reading Code
 If reading blogs help to become a good programmer, then reading code help more than that,
but same time reading blog is easy but reading code is tough. Do you see resistance? then you
should do it. Look code of open source projects, your fellow programmers code, your existing
proprietary code, code from Java SDK and try to understand how they work, try to see what they
are doing and why they are doing. Find patterns, develop navigation skill, initially you will find it
boring and difficult, but with time you will develop a good code sense, which will alert you when
you do a mistake, help you to spot others mistake, gaps, and code smell. This Code sense is one
of the signs of the better programmer, they often tend to look, what you missed.
 
 
 7) Writing Unit test
 Unit test complement thinking and coding process, and subsequently help you to design better.
Anything which is difficult to test has a chance of improvement. Also writing unit test helps a lot
in finding better names, better abstraction, better interface and abstract class design and overall
improves code quality. But like coding and designing, unit testing is also a tough job for average
programmers, you will see a lot of resistance there. Some programmer writes trivial test, instead
of thinking hard on usage scenario. Remember there is no substitute of think through the
process, after analysis, design and development, unit testing is another opportunity to think
through scenarios and gaps in your code. Make it a rule, always write a Unit test for your code.
 
 
 8) Doing Code review
 Like Unit testing, Code review is another thing which helps to become a good solid
programmer. Code review helps both reviewer and author, reviewer improves his code sense
and offers genuine advice while author learns from his mistakes. It often helps that the code you
think is rock solid, has some bugs which only other programmer can see, Code review and four
eye check does that for you. If you are lucky and get a chance to work in a company which has
unit testing, code review as discipline then you are likely to be a better programmer than rest.
These two things immensely help to improve programming skill.
 
 
 9) Talking to fellow programmer
 Reading is passive event compared to talking. Talking a program and discussing that with a
fellow programmer, often leads to a better solution, it's natural because your mind tends to
involve more when you talk and listen to other. I have then found gaps, missing requirements,
bugs and design flaws while discussing with teammates. In the software industry, where
programmers tend to isolate them with their computer, talking, sharing and doing whiteboard
sessions helps immensely. Don't just sit and code, talk, listen and think and hang out with fellow
programmers. participating in the event also helps.
 
 
 10) Participating Stack Overflow and forums, Commenting in Blogs
 This is another form of activity, which helps to revise knowledge. By sharing knowledge, the
first person who benefits is the one who share. Since programming is big and vast, you tend to
forget most of the things which you don't use for more than 3 months. Participating in
StackOverflow and answering others queries, commenting on blogs and forums is a nice little
way to revise knowledge and same time correct your misconception. By putting our knowledge
in front of others, we not only helps others but also put them to the test. Many times you will
see, someone benefiting from your knowledge but also you is getting your misconception
corrected.

Every programmer wants to become a better programmer, but not everyone succeeds.
Apart from the natural talent of programming and problem solving, it requires a lot of hard
work, constant learning, and perseverance to become a better programmer.

204 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll
Vivek Khanna, website designer, developer in learning phase
Answered Nov 3, 2016
Originally Answered: How can I boost my coding skills?
hey buddy!

In this question you did not clear that you are on which stage of programming. so there is
difficult to give the exact answer of your question.

If you want to land up in a good company then I want to clear one thing that companies in today
scenario are looking the skills not only the percentages of the students. In many colleges, if you
do not get the 70 to 75% minimum than they do not give you the opportunity to take the campus
interview unless you have some thing extra.

I mean in today scenario companies are looking to the person who is multitasking and have
some thing extra in skills. Does not matter what is your educational qualification. If you know
the thing which they want then you are in a situation to fire all rounds in one single click.

so the competition is very tough.

One good thing that you know is the time limit or in other words the duration of time in between
you want to get your target.

1. analysis your self in which language you feel comfortable.


2. start from the basic of that language and if possible make your own notes.
3. for any question you can contact to your seniors or explore the google.
4. After some time you will feel that you have do nothing practical work but do not
disappoint. you are make the base of your programming and it takes time.
5. do not make hurry.
6. start writing small codes and programs. memorize it.
7. slowly yo feel that u have the better grip in comparison to others this will give you
motivation. in the above phase the motivation is very important so you can start your
day with some good quotes and you can read the stories of some legends how they
struggle and pass from it.
8. because you have to focus on other subjects so make sure that this process will not
affect your percentage.
9. there are many tutorial sites like W3Schools Online Web Tutorials , Learn to code, etc.
which will help you to do your task.
10. try to get the certificate for the language you are learning. there are many websites
which issue the online certificate courses.
like simplilearn.com , www.umassonline.net, howtogeek.com, are some of them.
182 Views
UpvoteDownvote
Share

 
RecommendedAll
Vaishnudebi Dutta, studies at Birla Institute of Technology, Mesra (2020)
Answered Jun 14, 2016
Originally Answered: What is the best way to improve ones programming skills?
There's only one way to improve in programming.
                          PRACTICE !
The more you practice the more you learn and more it becomes easy to solve them quickly. 
Go through different books of coding on that platform. Learn the basics well.

Don't give up if the program you want to solve is not giving you the best possible output. Try it
several times before taking help. This habit will make you cling to programming, which is useful
actually !

Also, one must always try to search for mistakes in the program by himself in case of error. This
may acknowledge you more about that programming language.

If you are done with plenty of books you may check this page: https://www.codechef.com/

here's lots of solved and unsolved programs/codes you'll find !

Also see: How can I improve programming skills?

enjoy ! :)
334 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Zoran Bogicevic, software developer, man of a few human and many computer words
Answered Apr 4, 2015
Originally Answered: How can I massively improve my programming skills?
I think good idea could be to visit some freelancing sites. You don't even have to bid, you are just
interested in users' requests. No matter what programming language, you are just there for
ideas.

Hire freelancers and find freelance jobs instantly


Hire Freelancers & Find Freelance Jobs Online

And, sure - practice, man, practice.


1.2k Views · View Upvoters · Answer requested by André Luna
Upvote1Downvote
Share

 
RecommendedAll
Vivek Joshy, Built some wierd GUIs for fun.
Answered Jul 19, 2016
Originally Answered: How could I improve coding skill?
Here are some methods:

1. Start writing code. You soon find yourself facing problems and coming across bugs.
Then fix those bugs and the cycle starts again.
2. Don’t be afraid to ask for help no matter how dumb the question may sound to you.
There are plenty of places you can ask your questions like stackoverflow or the
sub reddit for the language. But first make sure to google your problem before asking
on those sites to make sure you don’t get flagged.
3. Start an open source project. Then submit it to a website like Github. This will allow
other programmers to submit patches to your programs and provide revelation to
better or worse practices.
4. Version control systems and important nowadays. Learning to use git or mercurial
may seem taunting at first. But once you learn it, you will never have to worry about
damaging your programs or an endless chain of errors.
5. IRC is a wonderful place. If there is a reddit for your language then there surely is an
IRC channel for it. IRC networks like freenode have tons of users waiting live to help
out people who have problems with their code or other programming needs.
6. Reading a programming book may help. Either download a pdf or buy a book and start
reading and practicing the exercises given in that book.
7. Learn algorithms. Algorithms are so important for many reasons. Learning to do
something quicker is a good asset. This means writing less code that does more work.
You can practice learning to write clever code on hackerrank or buy a good book on
algorithms to start learning.
8. Watch video lectures, courses and tutorials on websites like Microsoft Virtual
Academy, edx, Codecademy and Coursera.
9. Go to a college or university and take a programming and or computer science course.
10. I know this is something not many people do nowadays. But writing down flowcharts
and algorithms on paper and then using them as reference to write code is a good way
to ensure you know what you’re doing. Writing code on the fly is fast, but it’s not
always sound logic.
174 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll
Pinank Patel, former Application Developer at Tata ClassEdge (2016-2017)
Answered Dec 31, 2014
Originally Answered: How can I quickly improve my programming skills?
- Programming what a nice word it is. First you should love programming -    like anything.You
should be just crazy about it.
- Improve your basics. Revise it every week or two it will help you to solve      complex problems.
- Tackle the same question in different manner.
- Think different i.e build your own programming style. 
- Take regular break's and give time for your mind to relax too i.e don't            pressurise your
mind. 
- Make proper indentation's and write comments it will help you to       understand and
remember your ideas  and way of approach next time. 
-Read the problem again and again until you analysis it take ample amount   of time for
analyzing the problem don't rush relax.
-Think about the requirements note them down and develop the program in such manner by
considering the performance(speed of execution, lines of code, memory usage by code).
- Draw your own diagram or algorithm before attacking any question.If     you don't want to
waste time in it than make or write anything in rough   for understanding the sequence.
-Ignore breaking your concentration while programming.
- And last but not least just enjoy every moment of programming.And never stop learning.

This are my thoughts how you can improve your programming !! I am also a learner!!Hope this
helps you all !!
648 Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Sharmad Nachnolkar, JS Developer.


Updated Mar 2, 2015
Originally Answered: How can I develop programming skills?
1. Observe other programmers when they code. Have tech conversations with them. This will
teach you a lot of things.

2. Know the basics. Any concept you learn try to dig to its basics. Once your base is strong you
can understand advanced concepts more easily and appreciate them.

3. Know what you are doing.  Whenever you are using any technology try to find out why you
should choose this technology over others. This will help you understand the advantages of that
particular technology and in which scenarios you should /shouldn't use it. 

4.  Don't be afraid to try completely new things. Get out of your comfort zone and learn and
implement new things. You can find a lot of help on the Internet. 

5. Don't concentrate too much on theory.  Though theoretical knowledge is important, it can
bore you and you may lose interest. Also successfully implementing something practically gives
you a lot of confidence. 

6. Do not try to learn too many programming languages. Knowing two or three is decent
(depends on what you are working). Master the technology you are working in. 

7. Move with technology.  Always try to keep pace with the latest technology. If the new
technology betters what you are using try to learn it. 

8. Build your logical skills. 

9. Don't go for quick fixes. Try to find a long term and stable solution to your problem rather
than using quick workarounds. 

10. When you solve an issue know what the problem was even if it was solved by trial and error.

11. Know keyboard shortcuts. Small thing but can help you code fast. 

12. Most important..  Enjoy what you are working on.


338 Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Ayoub Nejjari, Self-taught developer, books lover, Computer World junkie.


Answered Jul 19, 2016
Originally Answered: How could I improve coding skill?
The following three words are the only way to do that. Believe me, every one will tell you the
same thing, one way or another. The three words are:

Practice.

Build.

Get out of your comfort zone.

The last one may seem like the odd word in the list, but if you look at it, it is the only way that
will make you go for the first two. Because your question is repeated so many times cross Q&A
websites and forums, and the answer is always the same. Build and Practice. To be honest a lot
of people hate that answer (I was one of them), it is like the bitter truth. There is that quote:
“and those who fear climbing mountains, they will live between holes forever” . Trust me,
whether you accept it or not, it’s there, and you’ll never make a real progress, until you accept it.
Of course it is hard, this is the way we get better, right? So, you better try hard to embrace it.
Having a strong will, and passion will play an important rule.

Let’s get to the real part.


First, you need to make sure you know the core concepts of your language,its strengths,
weaknesses, the possibilities it offers (what can you do with it), and for that, there are books,
tutorials, blogs, documentations…etc.

Then, for the “practice” part, I personally use websites like, codewars, codingame… to practice
the concepts of my language (solving small problems). There are a lot of websites like that. All it
takes is a search and you can choose one. I recommend codewars, because, it has sections and
levels.

Build. You can design something on your own, and start building it, or maybe you wanna clone
something and implement it using your language. Also, joining a team or you know, a
community, will help a lot, it really does, it can increase your coding skills, exponentially.

And yeah, Hope my answer is useful! Good luck!

322 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Shaikh Bilal Mehmood, (2017-present)


Answered Dec 17
Originally Answered: How can I improve my programming skills for real world project?
I've found that doing interview puzzles is good practice. Look up "programming interview
questions", there are thousands. Pick one that seems easier, solve it, then read the answers, then
repeat. Do 2 or 3 every day. Interview puzzles are normally related to real world problems
instead of bookish knowledge.

To get master in solving real world problems, you need to choose a real world project and start
working on it under the consideration of a mentor so that you can ask for guidance
anytime. Holberton has been helping many students since years in getting actual software
engineering knowledge. Try attending a school like programming school, that is free of cost.

Good luck

128 Views
UpvoteDownvote
Share

 
RecommendedAll

Ravi Mandliya, Learner and explorer


Answered Jan 28, 2015
Originally Answered: How can I enhance my coding skills?
Competitive programming often forces you to think in just one approach as you are always
looking for the fastest solution and often in a pre defined manner. As you mentioned it enhances
your skills to use algorithms and basically enhance your ability to think analytically. (Although
This is one of the best skills a computer programmer should have). 

In competitive programming, you often think for a small yet a very complex problem and you try
to get its fastest solution.

When you are thinking to build something (software/app/website) you need to look at larger
picture. So apart from the skills you polish through competitive programming you also need
good coding skills. I would suggest to pick the most recommended books for language of your
choice. Read and implement its examples/exercises cover to cover, and then if you have an idea
to implement, explore it. Divide the goal into mini problems and try implementing them and
merge them eventually or explore github.com and see how people have implemented their ideas.
There are some really mind boggling projects you will find there.
1.9k Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Ashish Gupta, Passionate about technology, outdoors. Software engineer by profession - working at
Google.
Answered Oct 12, 2013
Originally Answered: How does one improve his or her programming skills?
This question is very broad in scope. But there are an insane number of dimensions you could
improve in, depending on where you are at right now. And it also depends on what your goals
are (large scale software engineering, mobile app, web apps, game programming -> they all have
very different paths to improvement). Some well known methods that are more generic are:

1. Educate yourself constantly: Read advanced books on all sorts of topics - depending on your
field and needs. These include software design, clean code, large scale engineering, functional
programming, algorithms, data analysis/statistics, new languages, team
collaboration/management, testing, refactoring. Amazon has ton of books on every imaginable
topic. Some obvious ones are "The Pragmatic Programmer", "Clean Code" , "Code complete".
These contain essential practices that are important to master to ultimately build more complex
skills/your personal style on top. 

Remember, just practicing/writing a lot of code without a good foundation isn't going to
automatically improve your programming skills, as is commonly suggested. You may converge
to the same ideas in your lifetime on your own, but it is better to take the shortcut and learn
from the current best set of practices. 

Youtube also has a ton of talks on these topics. Search for a few topics and you will find videos
on many connected topics from great speakers.

2. Write complex code: If it is not your full time job, pick a side project that is demanding and
potentially helpful to other folks.  If you do this full-time, make sure you can find projects that
involve creation of something new/grand/complex, apart from the regular day to day. Suggest
something if nothing comes your way automatically. Do this again and again, and grow your
scope. Pick something that sounds a bit ambitious for your current skill set.

3. Reading good code helps forms good coding habits and code patterns in your brain. Reading
large amounts of code and grasping it quickly takes lot of practice and experience. This is
something that's easier to do if it is part of your job. If you do this as a hobby, pick a nice open
source project and try spending sometime regularly understanding code written by pros.

4. Work on your coding memory. A lot of time can be wasted just looking up how to do things.
Availability of documentation can become a crutch. However a good memory is a programmer's
best friend. Develop a system to note down important code/library functions/patterns/snippets
that you find using again and again. Develop your own reference sheets for different domains.
With time the reference will become a part of your working memory and you can program more
fluidly, without interrupting yourself every few minutes.

5. Master domains that you are involved in. Ultimately everyone is programming in some
particular domain. A great programmer often comes with domain expertise, that can either be
expressed using programming or is a skill that greatly augments writing code. That can be data
science, statistical crunching, distributed systems, games, mobile programming or even solid
leadership/management skills. Domain knowledge will make you more valuable and impactful
then being a "generic" programmer. Strive to gain specialized scientific, CS or "soft" knowledge
outside just core software development and combine the two, depending on your context.

6. Read about best practices used in today's technology. There are many blogs/sites dedicated to
explaining the architecture behind today's top technologies and companies. It is inspiring and
educational to see what goes behind state of the art.
2.5k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Tajinder Setia, CEO (2016-present)


Answered Jun 28, 2017
Originally Answered: How can I improve my programming skills?
Practice is the standard answer you will get everywhere but most of the people do not
understand the underlying problem.

Just ask yourself a very simple question : A kid if does not know counting and multiplication ,
can we make him or her perfect in Tables by just practice

I think the answer will be a big No.


Same holds true for programming also . Yest you have to do the practice to become a good and
effective coder but before that if you have not learned your basics in a proper manner , which
you know better ask your self, then you should go for the theoretical concepts first. They are very
important to learn and then practice.

There is a simple rule of 1:10 means for one theory concept you study you should do minimum
10 exercise. Then only practice will yield good results otherwise, no matter how practice you do
not going to make you a good programmer.

Hope will help you.

If you find this answer helpful. Please UpVote this answer

If you want to learn Java. You can watch my Video tutorials at YouTube channel

Adroit Tutorials

155 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Mohit Tyagi, Java programmer, blogger, crypto trader


Answered Jun 12, 2017
Originally Answered: How can I evolve my programming skills?
The best way to evolve programming skills is to learn basic concepts of any language like Java
and do coding as much as you can. Make a proper strategy and then start learning step by step.

Following are the steps to grow you programming skills:

Step 1 : Visit good websites regularly which provides good tutorials.

Step 2 : Whatever you learn over internet always write down important points/concepts on
your online storage accounts like Google Drive, Drop Box, Google Notes etc. This is the best way
to access your notes when there is no internet connection.

Step 3 : Always do practicals what you learn over internet, create small programs on every new
topic you learn.

Step 4 : Give online test regularly to check your performance of programming.

For more info click here.

170 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Alistair Atkinson, Software Engineer


Answered Feb 6, 2011
Originally Answered: What is the single most effective thing you can do to improve your programming skills?
Learning a non-imperative programming paradigm, in my case functional programming
in Haskell (programming language). It knocks you out of the mindset gained in most undergrad
Programming 101 courses, and makes you think about programming in a completely different
way. 

Also, it has the happy side effect of being relevant to today's emerging languages which have
both imperative and functional features, such as Scala (programming language) and Ruby
(programming language), so learning it isn't purely an academic exercise.
2.4k Views · View Upvoters
Upvote6Downvote
Share

Dave Briccetti
For me it was learning Scala that did this. I made a huge leap.

Jessica Willson, works at The United Kingdom


Answered May 3, 2017
Computer programming is a creative pathway through which you can express your ideas
exploring the intellectual exercises of writing outstanding programs. Programming for Dummies
illustrates the functioning capability of computer programs without all technical details or
hardcore programming languages used in real projects.

Effectiveness of programming for dummies

Do you believe the programmers working at your office are magical wizards and hold
supernatural powers to manipulate your computers? Well, anyone out there can learn writing
programs, and trust me it does not take a higher math and science education to initiate.
Programming for dummies or virtual programming is a replicate paradigm used for the learning
PURPOSE. IT helps you explore common parts of coding languages and use them to write
programs for various platforms like Windows, Linux or Mac OS X.

Programming for dummies can prove to bea great achievement for the following groups:
 Are you a student who needs some authentic knowledge to enhance your
programming skills
 Being a stiff worker, are you interested in knowing the mechanism of your Android
mobile applications
 Are you a prospective graduate highly aspirant to join the booming sector of computer
programming
Programming for dummies is a perfect startup to enter the real world of programming.

Learning objectives of programming for dummies

1. Getting started

Before moving forth to the virtual world of programming, develop a general overview ofwhat
programming stands for. This is where you learn the evolution of programming, latest
techniques to make programming easier and faster, functioning mechanism of different
programming languages, tools used by programmers and how the programmers create large
projects.

2. Basics of programming

Programming follows a basic principle irrespective of any other determinants. Grip the
programming basics and evaluate the typical parts of a program, the mechanism of making a
program (a real project) work. Make sure to analyze the purpose of a user interface and the
components that make up a user interface.

3. Detail of data structure

In precise, computer programs typically manipulate data. Organized storage of data for its
optimum utilizationin closets or drawers is known to be data structure. Data structure forms the
heart of any computer program. Types of data structure vary with the variation of information
you need to storeor how you need to use the information, so on and so forth. Comprehend the
various types of data structures available, pros and cons of each in order to acknowledge the best
out of it for your written program.

4. Algorithms

Make sure the importance of algorithm is never suppressed. An algorithm is a systematic


method for solving a task. In addition, algorithm signifies infinite number of ways to solve any
computer programming task by running the same prototypes repeatedly. Well, it is your duty to
discover the most efficient algorithm relevant to your specific task.

5. Web programming

With the advancement in technology, Internet has evolved with all-new features. Traditional
programs run on computers, the other way round, anew set of programming lets you clutch the
entire globe! Web programs are installed on one computer(server) that is run through a series of
computers (known to be clients). Designing programs for web-pages, rather web programming
is not hard. Do you think it’s not your cup of tea? Well, it’s absolutely a misconception! All you
need to do is, learn the different types of programming languages and mechanism to formulate
them.

6. Programming language syntax (rules)


When you are through with the programming language,make sure to learn the language
syntax. Knowing the syntax of various programming languages would reveal the benefits and
flaws of each. You must know to implement the exaggerated features of various programming
languages in order to create a benchmark in the world of programming.

Programming for dummies makes a handy reference that leads you to accomplish a specific task
using programming language syntax. Language syntax lets you identify the unusual features that
distinguish one programming language from the other.

7. Programming applications

Knowing how to program a computer is appreciable; however, it is of no use unless you know
the mechanism of applying your programming skills to something productive. Programming for
dummies lets you explore the several fields of computer programming used in virtual practice.
Amalgamation of programming knowledge with your significant field of interest lets you carve a
niche in any field you choose.

335 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Ahmed Ayman, Scholarship Android & Computer Programming, Google and Udacity (2016)
Answered Jul 3, 2017
Originally Answered: How do I develop programming skill?
I agree totally with all of the mentioned answers.. to develop skills at something you would have
to practice it!

but talking about Computer science and programming.. I’m not sure that the Practice is the only
thing that would make you better at it.

you would have to learn how to think effectively.

and one of those who I learned so much from about this point is professor Michael Starbird .

he talked in his MOOC on edx about the effective thinking steps that everybody need to develop
himself and that said that to be an effective thinker you would have to :

 understand what you learning very deeply (focus on the details), and this is
really helpful in programming since you will be always learning things and build upon
it, so if the basics weren’t intuitive then you would no longer be able to do anything.
 ask questions about what you are doing... that’s very helpful also in
programming since in the coding process we always ask ourselves about all of the
possible probabilities.
learn from your mistakes … and in programming you would be always doing bugs

and you have to learn from your mistakes and think of a better way of doing it..like
another Algorithm or something.
 follow the flow of your ideas..hence you would be trying every idea..don’t just
think of a lot of ideas without trying them.
 have the ability to really change.
so, simply besides the practice you would have to think effectively, to have a better intuition of
what you are doing and to develop your skills.

finally, I would recommend checking out his MOOC , here’s an intro about it.

and here is the Course on EDX.

173 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Arthur Brooks, From 150+ Rejections to Job offers at Google & Microsoft
Answered Jan 9
Originally Answered: How can programmers improve their skill by themselves?
The best way to take your skills to the next level is by practicing more programming.

You need to expose yourself to different areas of programming.

Try to look at the things from different view points. Take something you have already
implemented.

Try to redesign it. Implement it usin a different approach.

You need to get your hands dirty. In your free time start a side project work on it. Implement all
the features you can imagine.

Second best option could be to start contributing to some well know Open source project.

Remember the more you try. The more you will fail.The more you fail, more you will learn.

Learning is a process very deeply rooted into the desire. So if you really desire to be great at
what you do.

You will find ways to learn and enhance your skills.

The learning process is like an alarm clock. You want to hit the snooze button over and over
again.

931 Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Ankit Tripathi, B.Tech. in CSE @IITP


Answered Nov 7, 2015
Originally Answered: What are the ways to improve coding skills?
1: learn new concepts/ algorithms
2: implement it
3: practice algorithm by solving questions
4: test your skills
5: find out where do you stand i.e. whats your  level currently
6: move to next level and go to step 1

for practice:
HackerRank
Codechef 
HackerEarth
  try to solve a number of problems. Explore approach of others as well, look at editorials. 
improve( algo ){
 learn;
 practice;
 return improve( algo );
}

also check out:


Data Science Tutorials
1.2k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Ishant Agarwal, Computer Engineer, College of Engineering Roorkee


Answered Nov 19, 2015
Originally Answered: How do I improve my coding skills and innovative ness in coding?
Practice programming as much as you can. Start with any one language. Here are some useful
websites that I also use to enhance my innovation in coding:
 HackerRank : This website will really help help you in building coding skills as it
provides challenges starting from beginner level.  Each level will have a set of
programs that needs to be completed and based on it, you earn points.
HackerEarth - Programming challenges and Developer jobs : After you attain some

good knowledge and hands on practice in coding , then you can complete challenges
on this website. And guess what!!, you also get hired by different companies based on
your performance in challenges provided!!
All the best friend!! and don't forget to monitor your progress and keep motivating yourself :)
129 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Sai Vishnu Vippagunta, Web Developer, YUI Expert


Answered Mar 19, 2015
Originally Answered: What can I do to increase his/her programming skills?
Stop Coding. Dont write a single line.

Start drawing algorithms, make practice of many types of diagrams. 

Get them free with the logic.


Once the logic design is good in them, ask them to start learning syntax.

Then go ahead with implementation of those drawings on the paper with sytax right beside the
drawing on the paper.

Now code on computer.


295 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Vani Ananthuni, Years of experience in Computer Sciences


Answered Aug 21, 2016
Originally Answered: What can I do to improve my programming skills?
Try to go through semantic coding for html. And for PHP, try going to standard coding style.
Make sure you prepare documentation for your code. Try to add comments when necessary and
also use a standard way for naming the variable/function names, something like camel case.

Go though coding conventions. Coding conventions are style guidelines for programming. They
typically cover: Naming and declaration rules for variables and functions, Rules for the use of
white space, indentation, and comments, Programming practices and principles, Coding
conventions secure quality: Improves code readability, Make code maintenance easier, Coding
conventions can be documented rules for teams to follow, or just be your individual coding
practice.

Check these sites for a simple idea. PSR-2: Coding Style Guide JavaScript Style Guide and
semantic HTML.

If you don’t do it already, try to reduce the code by using loops or recursive functions etc
whenever possible.

353 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

JU Han, Software engineer @ Teads


Answered Dec 18, 2013
Originally Answered: How can I quickly improve my programming skills?
One of a good way to improve programming skill is to re-implement some existing projects,
preferably in another programming language. The re-implementation process brings you to do
several things:

 Read the existing code, collect all functional features and grasp overall designs
 Coding, testing, discover problems when changing programming languages (say from
a typed language to a dynamic language)
 Fully understand some design decisions. Some times when you just read the code you
don't really understand why it is that way until you write the code and encounter the
same problem
 The fact that you'll actually re-write the code will (mentally) force you to read the code
more carefully
 Get to know a lot of libs (the code uses xxx in python and is there some equivalent
project in java that I can use for my re-implementation?)

In short, re-implementation saves you time of finding a project idea, crafting tests cases and let
you concentrate on the programming part. It's also a great way to fully understand the internals
of the projects that you are interested in. During this process it's also possible to find some bugs
in the projects that you are trying to re-implement and this even gives you some chance to
contribute to it!
5.8k Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll
Tushar Dadlani, Software Engineer at Pivotal Cloud Foundry
Answered Feb 28, 2014
Originally Answered: What is a good way to improve my coding skills?
Improving your coding skills is about the will to do something in a better way. Simple example: 
Let's say you write the following lines of C code:

1. #include <stdio.h>
2. int main()
3. {
4. printf("Hello World");
5. return 0;
6. }

Being a better programmer means knowing what can go wrong in this code and what can I do to
improve the functionality.

Examples of questions you can ask yourself: 

1. How will you random string instead of Hello World. 


2. How can you pass the string as an argument to the program. 
3. How can you ensure optimal memory allocation for the program. 
4. How is the memory managed for this program. Are there any bottlenecks? If yes, what are
they and when can they occur?
5. If I have multiple files how will I make them into a single executable (Learn about build
scripts and about make utils)

Another way to improve your skills around the same program, asking some 
other questions:

1. If I want to run the program a 100 times, what are the best ways to do it? (Will make you learn
about scripting)

2. If your libc implementation is incorrect (rarely happens, happens a lot with third party
libraries in all languages) , is there a way to correct it , if not, what is the information that I have
that so that I can defend myself from such errors. 

3. How does the compiler know where stdio.h file is located? Where can I see it? 

4. What information is stored in the binary (will lead you to learn about ELF headers in Linux/
other headers formats for other OSes) ? What does a file format mean? How do computers
recognize that they need to open Adobe Reader for a PDF document ? 

The list of questions you can ask about a computer program are endless. 

A holistic understanding of the environment in which you are running your software is
important (OS, Compiler/Interpreter, version of the OS, version of the compiler, the browser ,
the webserver and everything else in the software ecosystem. 

The other part is understanding the way the language you are using behaves for certain kinds of
problems and algorithms. What are the strengths and weaknesses of your language?

Lastly fundamental understanding of data structures (Theoretical and the ones allowed by your
language) and algorithms can go a long way in improving the way you code.
6.1k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Chetan Bhasin, Engineer. Poet. Learner.


Answered Nov 11, 2014
Originally Answered: How do I improve coding?
Since I'm a little short on time, I'll just quote my old answers to similar questions:

Chetan Bhasin's answer to I am a terrible programmer. I understand things well, but I’m terrible
at implementing them. What should I do to improve?

Chetan Bhasin's answer to How did Jeff Dean learn to program so well?

Chetan Bhasin's answer to How can I understand or manage a program with millions of lines of
code?

Chetan Bhasin's answer to I am a sophomore in high school, who is very good at math. I feel like
I would be good at programming, but currently, I have next to no programming knowledge.
Where, either through books or the Internet, can I learn to program well?

Chetan Bhasin's answer to What are some of the best ways to learn programming?

Chetan Bhasin's answer to I am not a software engineer by degree or by profession. I have


studied C and C++ in the past and now I want to learn new languages (especially Python and
JavaScript), coding, frameworks etc. as a hobby. How should I start?

Chetan Bhasin's answer to How do I become good at coding though it does not interest me?
623 Views
UpvoteDownvote
Share

 
RecommendedAll
Russell Adams, lived in Lawrence, KS
Answered May 18, 2015
Originally Answered: How do I improve my general programming skills?
To piggyback off what Giacomo Sorbi said, CodeWars is a great place to start. I think it's
structured perfectly for those who are just learning to code. It wouldn't be a bad idea to check
out codecademy.com either.

But, like mentioned before, it's important to practice everyday, even if it's just one problem. I
use my github as a calendar to make sure I do at least some coding everyday.

Also, nothing against Java, which you posted in your question, but I would suggest that you start
looking specifically at learning Python. You'll find that it's syntax is very much like the English
language. The biggest reason I think a someone just learning to code should start
with Python is because it's going to allow you to focus more on problem solving instead of
learning a bunch of foreign syntax. And that's what coding/programming is really about. It's not
about the languages you use, it's about problem solving, nothing more. So the faster you can
get to solving problems, the faster you're going to progress. 

If you have any questions or need any help, you're always welcome to send me a


message. That goes for anyone.
3.6k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Pratik Ratnaparkhi, Serious Coder. No puns


Answered Aug 29, 2015
Originally Answered: I need to improve myself in programming skills. What do I need to do?
There are plenty of courses you can take online. I would really recommend you to start with
C/C++ programming. 

http://www.youtube.com/playlist?...

Those playlist is sufficient for you to understand how it works. 


Once you get known with the concepts, go for Java, or any other language you're into.. You'll be
able to understand the concepts very easily. Please don't forget to join 
Freecodecamp.com

The will teach you web technologies, and you'll work on live NFP(not for profit ) projects.
Gaining you a real experience+ knowledge. 
Give it a thought. And please follow this thumb rule 

NEVER STOP LEARNING.

Upvote if it helped
1.4k Views · View Upvoters · Answer requested by Jayanth Kumar K
Upvote17Downvote
Share

 
RecommendedAll

Dhiraj Chandra Drj, Always experimental in real life.


Answered Jun 6, 2016
Originally Answered: What should I do to improve my programming, given I’m doing a BTech in computer science
engineering and I’m in the 3rd semester?
 Choose any one programming language like c,c++ or java…
 Write 5 programs on your own on daily basis, you can even start from just printing
“hello world”.then proceed addition,subtraction,….,prime,palindrome,……etc.I
guarantee you that even in effort of learning these basic programs you will learning the
core concept of programming.but just keep trying.
 If you face any doubts,refer the books or internet.
 Participate in coding contest . It will create the thirst inside you to explore more and
more.
 For actual knowledge,i am honestly saying you should join a good training
centre,because its facts that no one book can guide you properly,then provide thesis
with few practice,but your training centre will be providing you the material for
practice.
 Which one is good training centre,i can’t know about whole world,i am staying in
bangalore and in bangalore JLC is the best for java technology,for online you can refer
Durga sir java lectures on youtube.
197 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Neeraj Pai, Neeraj Pai


Updated Nov 9, 2014
Originally Answered: How do I improve my programming skills?
From what you say, you already seem to have decent programming skills.
what you need to improve upon is your "computational thinking".
To acquire that you need time and patience. In your second year, you will 
be introduced to discrete mathematics, learn it well. If you can wait that long,
read.
1.  Discrete Mathematics and its applications by Kenneth Rosen.
2.  Concrete mathematics by Donald Knuth.
You will also be taught Data Structures and Algorithms. These three will form 
the crux of the computer "science" part, master them well. In the meanwhile keep practising,
even if you are not able to solve questions, think hard about them and you can always refer to
solutions by others for the same problem(if they are available) or post it on forums where people
discuss such problems.
Remember the most important thing is persistence (most of the answers point to the same), if
you follow the above steps, you should see a huge level of difference in yourself. Good Luck.
1.3k Views · View Upvoters · Answer requested by Nitin Khare
Upvote17Downvote
Share

 
RecommendedAll

Pavan Koli, Living a happy life


Answered Jun 16, 2014
Originally Answered: How can we improve computer programming skills?
practice_resource=['topcoder  ',' Sphere Online Judge (SPOJ)','edX','Free Online Course
Materials ']

Good_at_coding=False

while(!Good_at_coding):

    for site in practice_resource:


        
        Solve problems, take courses present on the site

Contribute to open source projects Google Developers, Contributing to Open Source on GitHub


2.5k Views · View Upvoters
Upvote9Downvote
Share

 
RecommendedAll

Sawai Singh Charan, java


Answered Mar 3, 2016
Originally Answered: How can I improve my coding skill?
Practice

 Write lots of programs, especially big programs. A lot of good practices become


obvious once you've made the typical mistakes.
 Writing small programs lets you write more programs in the same amount of time;
this will improve some of your programming skills much more rapidly, but others not
at all.
 Modify existing programs written by other people. Reading code without having
previous knowledge of it is a valuable skill - you can't debug without it --- and you
don't get much practice with it when you're writing programs from scratch by yourself.
If you reflect on what you've found hard to understand, it can also help you learn how
to write maintainable code. Also, this lets you work on many more big programs than
you would have time to write yourself from scratch, which helps a lot with those skills
that only apply to large programs.
 But... CodeLessTestMore.

Refactor

 Learn about ReFactoring.
 Spend a lot of time ReFactoring and improving programs, even if they work fine.

Design

 Learn about SoftwareDesignPatterns!

CodeReview

 Find some good mentors and let them review your code, and try to do
somePairProgramming with them.
 Find some peers with whom you can review your code. People of similar skill levels
can teach each other a lot. And this gets around problems with sharing your "bad
code" with a senior person who might give you a harsher critique than you want (not
to mention a bad performance review).

Learn from good programmers


 ReadGreatPrograms.
 Adapt some good code (I learned a lot about C idioms while adapting a Btree Index
library in order to add compound key index feature).
 Team with good programmers. Sit at their knees and learn. Emulate their habits.
Do not insist they adopt your practices/tools/habits because you think you know a
better/faster/cheaper way.

Broaden your horizon

 Learn multiple programming languages. Each language you learn will give you ideas
about how to do things better in other languages. (The worst programmers I know are
the ones who think that language X is the only one they need to know.)
See LearningProgrammingLanguages for related tips.
 Learn different kinds of programming languages: procedural,
functional,ObjectOriented, etc. See GroundBreakingLanguages.
 Learn multiple operating systems. Learn to write portable code.

Read

 Read books about code quality, like CodeComplete. It can save you a lot of time.
 Buy the book ThePragmaticProgrammer and read it, learn it, live it.
 Generally, read GreatSoftwareBooks
 Read books about other subjects. Philosophy, history, art... anything. Become a
broader person. It doesn't directly affect your programming as such, but it widens the
mind, which has to be a good thing.

Learn the c2.comProblemDomain

 Get into the habit of understanding the problem domain. Try to create aMindMap for
the problem. Spend good amount of time learning about it. A good knowledge of the
problem domain goes a long way in creating good code.
 Work closely with end users. Get their honest opinions about the software you make.
It doesn't matter how many algorithms or data structures you know if you aren't
making someone's life better.
 And on a similar note: learn from your users. Try to understand where they're coming
from. If you learn the problem domain, their requirements make more sense and you
get closer to being able to give them results that will do what they wanted, not what
they asked for.

Reflect

 If somebody complains that they don't understand your code, find out what it is they
don't understand. ("That guy is an idiot" is generally not the reason.)
 Every time you fix a bug, think about how you could have avoided the error in the first
place, and what could help you avoiding it next time. Some of the answers lie
in GoodCode quality principles, and others in good programming practices.
 By the way, just stop thinking that bugs come to life just from disruption or fatigue.
Bugs proliferate in poorly written code. (But do remember that rest and
concentration are requirements for doing good work)
 Learn to quit habits and to adopt new habits.
 Take a break. It's hard to do any of these things when you're already coding all week,
as fast as you can.
446 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Mahesh RS, Programming a computer was my childhood dream. Then I realized it was overrated.
Answered Jun 2, 2015
Originally Answered: What should be my perfect road-map to enhance my programming skills during my 4 years of
engineering?
I don't think there's a perfect roadmap for anything in life, much less for programming.

Here are somethings you could do over the next 4 years to improve your programming skills:
 learn as many programming languages as you can
 learn as many programming paradigms as you can
 learn at least a few programming languages really well
 solve as many programming problems as you can
 read as many good books on programming as you can
 build at least a few large programming projects

4 years is a good long time. I hope you use your time wisely.

HTH!
155 Views · View Upvoters · Answer requested by Deval Saryam
Upvote1Downvote
Share

 
RecommendedAll
Srebalaji Thirumalai, Made in India. Startup enthusiast. Love to code
Answered Sep 23
Originally Answered: How can I improve my programming skills?
Practise. Practise. Practise.

Programming is all about problem solving skills.

First you have to learn and understand different algorithms and data structures used in
programming. Then you have to try solving problems using those algorithms.

I think the best place to start would be HackerRank . Start practicing problems in all types of
algorithms. Try to participate in online programming competitions in HackerRank , hacker
world Resources and Information. and in LeetCode .

Follow programming blogs, online magazines and experienced developers blog for best
practices.

Try to contribute to open-source softwares in Github. Open source softwares are maintained and
contributed by expert developers and by contributing you can learn many best practices from
reading their code.

Many people think that programming skills are specific to particular language. But its not right.
A good programmer should be comfortable learning any programming language and its features
soon.

160 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Irfan Noorani, Clarity Coach


Answered Feb 14
Originally Answered: What should I do to improve my programming skills?
Hi Rohini,

As I am not a programmer I cannot answer this from the prospective of technical advice. But I
can answer this from my own prospective as a Coach.
1. Are you already enrolled in a training program or something to improve your skill of
programming ?
2. Do you spend time with programming language experts that you want to master?
3. Are you practicing your skill daily ? As consistent practice will make you a master.
4. Do you have a mentor or coach who can check your work and recommend
improvements constantly?
5. Are you Thinking and Acting from the Identity of an Expert Programmer ? (THIS IS A
BIG ONE THAT WILL PROPEL YOU IN THE RIGHT DIRECTION AND
UNDERSTANDING THIS ONE QUESTION CAN CHANGE THE GAME FOREVER)
The answer to all the above questions should be a YES , for you to be on the right track of
becoming an EXPERT IN YOUR FIELD.

All the best.

Irfan Noorani - theclarityman@gmail.com

Irfan Noorani

92 Views · View Upvoters · Answer requested by Rohini Ganorkar


Upvote3Downvote
Share

 
RecommendedAll

Trần Thảo Ngân, I'm a supporter in a web design company


Answered Oct 30, 2015
Originally Answered: How do I improve my coding skills?
There are so many way to improve coding skill, just choose some really suitable for you.
1. Textbooks or Audios:If you are a beginner I think this is the easiest way to start. Read or listen
to them, follow examples in them, try to understand everything and PRACTISE.

2. Learn from seniors. It’s so important to learn from them, they have many-year-experience
about this field and some tips you will never know in school. If you are in a company, study from
the older ones. If you are in Google, I have some names for you: Jeff Dean, Craig Silverstein, or
Ben Gomes.

3. Focus on your programming language: Be a master of that. Focusing on 1 thing will help you
learn quickly and gain familiarity with core, language libraries. Make sure that it’s a piece of
cake.

4. Review: Send your code you made to the strictest reviewer to test for you. They can find the
smallest error you made that you cannot find our or ignore that. This is the best way to help you
better.

5. Study, study more, study forever: Enroll to the conferences, courses or join in topics to
enhance your skill. You can consolidate and even learn more things from the experts
6. List to learn: list everything you want to learn more, you want to know, and then find
anything related to that such as: books, expert… you can remember that much longer than what
you learn passively in school.

7. Think different: don’t solve many problems by one way, try to fix one by many ways as much
as possible. Keeps your mind diversity to improve yourself and get new skills.

8. Change environment: Don’t be hesitate to change the working environment when you realize
that there is nothing there to learn anymore. Quite and starting learning the new thing.

Source: 8 Ways You Should Know To Improve Your Coding Skills - Beau Magazine
902 Views
UpvoteDownvote
Share

 
RecommendedAll

Pranav Pandey, Software Engineer


Answered Dec 22, 2015
Originally Answered: What are the ways to improve coding skills?
Coding is something that you don't learn in a single day, you have to give time to it.

The best and the only way to increase your coding skills is practice. Period .

First of all, try to develop your maths, because I think coding is all about logic- how well you
can relate things to something logical that can be solved step by step by performing few
calculations . I think you should try doing some analytical questions to develop this ability.

Second, start small and make some programs on your own, pick up some problem, think about
it for a bit, develop the logic and by thinking I literally mean that you should think about it how
to solve it, what should be the logic, don't just give up and find the solution from the Internet or
somewhere. When you are able to do these small problems you are good to go.

Try registering on some websites that give challenge problems for coding, it will keep you
motivated.

Some of the websites are -

1. www.eulerproject.com
2. www.codechef.com
3. www.hackerearth.com
4. topcoder //this one is for expert programmers
Try

1.1k Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll
Jessica Su, CS PhD student at Stanford
Answered Feb 26, 2013 · Upvoted by Kiran Kannar, CS MS student, University of California San Diego and Adam
Leffert, Freelance Full-Stack C#/Web Architect and Developer, Entrepreneur
Originally Answered: What are the good ways to improve programming skills ?
Drink a shit ton of coffee.  You will code fluently and with better focus.  For me it takes around
300 mg of caffeine (the equivalent of three Starbucks caffe mochas), but your tolerance will
probably be different.

You could also try reading about algorithms or taking algorithms classes on Coursera.  This
should help you write time- and space-efficient code.
66k Views · View Upvoters
Upvote595Downvote
Share

Roman Trusov
Caffeine can actually do more harm in long term, because of exhausting your cardiovascular and ne...
3 more comments from Eivind Kjørstad, Carrie Cutler, Pratik Mehta

Evan Robinson, Nowhere Special


Answered Feb 7, 2011
Originally Answered: What is the single most effective thing you can do to improve your programming skills?
IMO, there are no short cuts.  Programming well requires two things: experience programming
and thinking about programming.  Therefore I have two suggestions:

1) Program more.

But not just more of what you are currently doing.  Program more things, in more languages, on
more architectures, using more techniques.  Writing OO c# on Windows is all fine and dandy,
but play with Java, and Objective-C (both OO languages which are not a big step away from C#,
so you're starting easy), and Perl, and Haskell, and just keep going.

Program for your laptop, and your phone, and for the web, and client-server applications.  Get
an Arduino and program it to do things to the real world.

If you are a UI programmer, learn to do 3D programming.  If you are a DB master, learn to


design and program good UI.

Become both deep and broad.  IME, most programmers become deep easily.  Broad requires
work.
2) Consider the nature of good code versus bad code.

I realize that this may sound overly philosophical, but code has characteristics, and some are
good and some are bad.

For example, code has varying levels of plasticity (the ability to be changed).  Good code is
plastic, bad code is brittle.

Two pieces of code are loosely or tightly coupled (dependent upon each other).  Good code is as
loosely coupled as can be managed.  Bad code is tightly coupled, especially when one piece of
code depends (in an OO environment) upon the internal (unpublished) representation of
another piece of code.

Code has robustness (the quality of working properly in unanticipated conditions, or of


degrading gracefully, or properly handling bad input).  Good code is very robust, bad good is
not.

And so on.
Different algorithms have different characteristics: they use differing amounts of cpu and
differing amounts of memory (which have differing characteristics -- CPU registers vs. on-chip
cache vs. off-chip cache vs. RAM vs. SSD vs. hard drive vs. cloud vs....).  They are easier to create
or harder to create.  They degrade gracefully or badly.

And so on.

Learn to recognize good code and bad code for what they are and why they are that way.  Don't
just look at a piece of code and say "I recognize bad code when I see it".
1.1k Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Nicole Julian, Software Engineer at Shoobx (2014-present)


Answered Jul 24, 2017
Originally Answered: How can one improve coding skills?
When I was preparing for interviews, I found the lessons at Codility to be pretty helpful. The real
world isn’t a whiteboard, though (and thank goodness for that!).

Honestly, it just takes practice. As a developer, you’ll happen across projects that challenge you
to learn new languages, explore new platforms, and work with people who might not have the
same priorities you do. It’s important to take allthese things into account.

More practically, try to reach a bit outside your comfort zone as you choose the next project to
take on. If you’re data mining the reddit API for fun, try doing it in a language you haven’t
touched. If you do a lot frontend stuff at work, try asking ops for a little scripting task. And so
on.

In my view, you don’t have to go far out of your way or be a weekend warrior in the open source
community. Just reach out, and push yourself bit by bit.

862 Views · View Upvoters
Upvote12Downvote
Share

 
RecommendedAll

Jason Slavin, Front End Developer (2017-present)


Answered Aug 21, 2017
Originally Answered: How can I improve my skill set in coding?
I think there are just a few things you can do to make sure you improve at a steady pace:

Try to learn something new every day, no matter how small or big. Whether

it be a new method, new structure, new technology, or new methodology, try to learn
at least one new thing everyday.
 If you don’t know something when you come across it, look it up. While
doing code reviews, or reading implementations of things, or even when browsing
Stack Overflow, if you run across structures, methods, properties, or whatever you do
not know, take the time to look it up and read the documentation.
 It’s better to fail trying something new and ask for help, then do
something deprecated to fix the issue. Sure you can use multiple nested loops
with several conditionals to create an array with only the items you want in it, but it is
likely there is already a method or function that does this for you (Array.filter in JS,
for example).
 Get out of your coding comfort zone. Try to do things you think you cannot.
Make personal projects that will necessitate you tackling facets of coding you are
unsure about or uncomfortable with.
 Use things you learn right away. If you spend the time learning something new,
make sure you use it wherever applicable. The more you use it, the better you will
understand it.
 Learn new things, even if you can’t use them right away. Taking the time to
learn a new method, or concept is never a waste. Even though you may not find an
application for your new knowledge right away, you will remember there was a
solution for your problem that you came across, and you can look it up. Just knowing
there is an answer you can look up, is better than not knowing an answer exists.
I try my hardest (and you have to try) to keep to these tenants, and they have helped me grow
exponentially over the last year.

Good luck.

197 Views · View Upvoters
Upvote2Downvote
Share
 
RecommendedAll

Sreejith Sree, App developer @TCS


Answered Nov 7, 2014
Originally Answered: How do I improve my programming skills?
Keep going. Not worry about the struggle and toughness you are facing. Everything happens for
a reason. Just visit websites like HackerRank and topcoder , participate in challenges seen
there . This help you to become more proficient in your programming skills. If you can do that.
trust me you are on your way to International programming contest like ACM-ICPC. All the
best :)
441 Views · View Upvoters · Answer requested by Nitin Khare
Upvote3Downvote
Share

Nitin Khare
"Everything happens for a reason" reminded me of mockingbird besides I have started with topcoder...

Michael Frederick, i eat computers for breakfast


Updated Dec 15, 2013 · Upvoted by Jessica Su, CS PhD student at Stanford
Originally Answered: How can I quickly improve my programming skills?
Ask questions.

Be upfront about your skills. Don't try to "fake it 'til you make it" -- people will see through that.

You have the best possible resource right at your fingertips: people that are great at what you
want to get better at. In my opinion, a truly great developer is not only very intelligent, but they
are excited to share their knowledge and teach others.

I personally get annoyed when people *don't* ask questions. If someone doesn't understand
something that I do understand, it's a huge inefficiency for them to work on it and not ask me
how it works.

Mark Johnson
Answered Jun 15, 2014
Originally Answered: How could I increase my skill in coding?
Google coding katas and find some you are interested in and learn them. Try writing some
games that you can play from the command line - something as simple as tic-tac-toe then add
networking to it.  Try writing a simple MUD. Try to replicate some other interesting programs,
write a file differ, check out github and see what you find interesting and try to contribute. Even
though you're learning C, C++, and Java go checkout nuget.com and try replicating some of
those smaller projects in your favorite language - like a command line argument parser.
Essentially you just need more time "hands on" writing code.  Find some meet ups
(meetup.com) and go learn more about the languages you are interested. 

The side affect of all of this is that you will learn more about the idiosynchrocies of your
language - but the real goal is to give yourself challenges to solve so next time when you're
coding something for real you'll recognize patterns that you've solved before and can therefore
solve again regardless of the language.

Cheers! Good luck!


296 Views · View Upvoters · Answer requested by Anil Silwal
Upvote4Downvote
Share

 
RecommendedAll

Kaitlyn Hanrahan, works at Adobe Systems


Updated Jan 30, 2015
Originally Answered: How can I quickly improve my programming skills?
First I would't worry too much. You are likely comparing yourself to the average that you are
surrounded which might be much higher than the average in general. Just knowing what you
don't know and wanting to close that gap makes it hard for me to think you are that "weak" of an
engineer. 

But improvement is always good! In general, if you come from a more academic background,
then you want more practice. So work on a side project on weekends. On the other hand, if you
come from a more practical/self-taught background, then you want to strengthen your theory.
Read some books! Or do some Udacity classes. I also like Lynda, but that's more on the
"practical" knowledge side than theory.
 lynda.com library | Trial Subscription

Here are some good books,


Programmers Don't Read Books -- But You Should
1.7k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
Manohar Reddy Poreddy, Top 100 rank. 33 Software projects,40+ programming languages
Answered Jun 12, 2016
Originally Answered: What should I do to improve my programming, given I’m doing a BTech in computer science
engineering and I’m in the 3rd semester?
1. Take C++ Tutorial course.
2. When you find difficult, say Recursion, then head to Wikipedia, for
example: Recursion (computer science)
a. Read it thoroughly on multiple days.
b. Make notes.
c. Re-read it on 5th day. Verify & update notes.
d. Soon, recursion will be your friend.
If you do this exactly, you might have a 80% probability of being ahead of your friends, in a few
months.

Hope that helped.

1.5k Views · View Upvoters · Answer requested by Trilok Reddy


Upvote12Downvote
Share

 
RecommendedAll

Johny K Johnson, java/python programmer, DB and Linux enthusiast at Softhints.com (2016-


present)
Answered Feb 1
Originally Answered: How can I develop programming skills?
My motto about programming is and the short answer is:

For me programming is more than a job. I believe you should have passion for coding.
Sometimes tools and languages don't matter as much as the fact that you are doing it with
love. You must enjoy your day to day.

The longer one should be:

This will be enough to drive your further everyday. I’m also trying to improve my programming
skills and I decided to write a tutorial : how to become better programmer, how we can measure
it. Is there a recipe - I don’t know - but this is what I want to know.

I put all my notes and personal experience here(please have in mind that it’s still working
version and I have a lot of work on it. It’s planned as personal reference guide):

A Better Programmer

Please feel free to comment and criticize.


In practice I do:

The 6 Keys to be Better Programmer

Never give up

Enter communities

Play with your code!

Have fun while programming.

Learn the basics

Use Lab Diary

Another important point for me is: be curious, observe, test and validate. This will give you
confidence and independence.

Better programmer - be curious, observe, test and validate

P.S. I don’t consider my self as a genius or grandmaster in programming. But since my start to
improve my programming skills - I’m able to complete projects without extra help, I’m not
afraid of code and bugs, I can face serious problems even in production without panic, I know
what and how to do it.

81 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Venkat S, former Founder at Addmylearning.com


Answered Jan 19, 2016
Originally Answered: I am weak in coding. How do I improve my coding skills?
Coding is an implementation of your logical thought process. Syntax is specific to the coding
language. You can learn syntax and other specifics of any language or technology from a trainer
or by yourself. But good quality coding needs an approach that is usually not taught anywhere.
Good logical reasoning and problem solving approach is needed.

For good coding below are some tips:

1. Don't try to take care of every permutation and combination of a requirement in one go.
Spend some time in understanding the problem and break it  into smallest possible logical parts.

2. Start coding the very basic simple step, then add/modify to implement validations,
conditions, and error trapping ONE by ONE, ONLY after each step is successfully tested. Keep
showing the work at different stages to a tester/reviewer/customer like a prototype. This is the
best approach. Remember that the earliest bug causes maximum rework later.

For e.g if you want to write a complex loan application, start with a simple calculation of interest
with proper numbers. Test it. Then add several validations & requirements with error trapping
one after one, only after each addition is successfully tested.
3. Always start with good coding principles from the very first line. Like nomenclature,
indentation, comments etc. Write in a manner that is visually very clear. Dont write long lines,
use line breaks liberally.

4. Regularly go through lot of code examples in help manuals or internet for solutions when you
are held up. Don't break your head too long on one issue as it will crunch available time.

5. Write crisp & clear english comments at key steps, especially where logical conditions are
used (if, where, when, switch, while etc). When you come back after some time to make changes
or fix a bug (or someone is asked to fix a bug when you are on leave), comments are the no.1
friends to make it easy. Write what is the purpose of every important variable.

Lot of people start with poor standards and no comments in a hurry thinking they will fix it
later, but the later never comes. It becomes so big and complex after a point that touching at any
place can crash the appl.

6. When making changes to an existing code, go through the flow several times to deeply
understand every possible variation of flow, under every type of expected input, to assess the
impact. Give some inputs and check the output.  This is very crucial as otherwise can result in
heavy rework.

241 Views
UpvoteDownvote
Share

 
RecommendedAll

Hari Shrawgi, Best thing in this world...Being alive!


Answered Dec 1, 2014
Originally Answered: How can I improve my computer programming skills?
You are on the right track, just keep coding, coding and coding.
You can code on the sites mentioned in other answers like Hackerrank, Codechef, SPOJ etcetera.
You will keep on developing skills in competitive programming.

You can try Dynamic Programming, as it is especially helpful in competitive programming.

As for algorithms start with any book on algorithm and data structures.
I suggest starting with Algorithms Unlocked by Prof. Cormen and then move onto CLRS.
You can go for Knuth volumes as the ultimate book for algorithms.

Just never stop coding and keep attempting new challenges. 

All the best :)

Thanks for the A2A.


421 Views · View Upvoters · Answer requested by Roshini Ravishankar
Upvote3Downvote
Share
 
RecommendedAll

Sumit Pathak, Software Development Engineer - IV at Rakuten (2017-present)


Answered Jul 3, 2017
Originally Answered: How do I develop programming skill?
Practice, practice and a lot of practice!

This is the only way to learn and to develop skills in any aspect, be it programming or anything
else.

Choose a preferred language of your choice and start reading and learning about it. Once you are
through the basics, start solving some programming puzzles/problems on various online
platforms available like Codechef, Topcoder etc.

This will not only judge your coding acumen but also help you learn from your fellow coders. 
Further you can work on optimizing your solution and following good programming paradigms.

Just never give up even if you fail as many times as you can, you will have a solid understanding
of the principles and techniques once you finally conquer any problem!

Get started, Practice and Repeat!

Happy Coding :)

246 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Tanner Dowhy, CS/Math Student, Competitive Programmer, Gamer


Answered Jul 8, 2015
Originally Answered: What should I do to improve my programming skills, I'm really bad at programming?
You have to learn to walk before you can run, just like you need to have the foundation
knowledge of programming, and the language you're using, before you can make your own
applications. 

It is tough to learn skills and retain them through just watching a video and copying what they
are doing. Though I agree that videos are a great supplement to learning I don't think that they
should be the sole source of information. If you are a CS student I feel as though it is fair to
assume that you have basic knowledge of at least one programming language.(C/C++ I'm
guessing since you want to do iOS development) 

Practice is the single best thing that makes programmers better at what they do. Redo some of
your old assignments and learn more advanced things if you haven't already. These things can
include data structures and algorithms. Look at lists and implementing them, trees, queues,
stacks, etc. and try to write your own. Videos can help when you are looking at a concept such as
what a list is but when you are trying to implement these things I would suggest looking at
simple code that is meant for teaching the concept.  

Once you have a strong foundation on data structures and algorithms as well as practice
implementing them, then you can move on to looking into what application development
entails. 

When I first started out, I wanted to make an iOS app and went about it the same way as you.
Sometimes I would come out with a similar product that I saw in the video, but the functionality
was never perfect and I realized that I didn't actually know anything. That's when I took a step
back and really thought about what I needed to change in order to make my situation better.
That's when I started my own projects. They don't have to be that hard. A lot of my personal
projects that I do have strong roots in what I am learning in my classes. I just take them a few
steps further and apply my knowledge to something that I think is cool.

I know this is a lot to take in but I hope it helped somewhat. Becoming a great programmer is a
process that takes a very long time. This will stretch into your career where the real learning
starts. 

In conclusion, what I would suggest to you is to first develop your skills in the language(s) that
you intend to use before you even look into developing your own application. This includes data
structures and algorithms. Also, give this site(or others similar) a visit and see if this is a
resource that will help you learn.

Code School - Try Objective-C


2.1k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Mayank Srivastava, works at Cisco


Answered Feb 1
Originally Answered: How can I develop programming skills?
Practice

 Write lots of programs, especially big programs. A lot of good practices become


obvious once you've made the typical mistakes.
 Writing small programs lets you write more programs in the same amount of time;
this will improve some of your programming skills much more rapidly, but others not
at all.
 Modify existing programs written by other people. Reading code without having
previous knowledge of it is a valuable skill - you can't debug without it --- and you
don't get much practice with it when you're writing programs from scratch by yourself.
If you reflect on what you've found hard to understand, it can also help you learn how
to write maintainable code. Also, this lets you work on many more big programs than
you would have time to write yourself from scratch, which helps a lot with those skills
that only apply to large programs.
 But... CodeLessTestMore.

Refactor

 Learn about ReFactoring.
 Spend a lot of time ReFactoring and improving programs, even if they work fine.

Design

 Learn about SoftwareDesignPatterns!

CodeReview

 Find some good mentors and let them review your code, and try to do
some PairProgramming with them.
 Find some peers with whom you can review your code. People of similar skill levels
can teach each other a lot. And this gets around problems with sharing your "bad
code" with a senior person who might give you a harsher critique than you want (not
to mention a bad performance review).

Learn from good programmers


 ReadGreatPrograms.
 Adapt some good code (I learned a lot about C idioms while adapting a Btree Index
library in order to add compound key index feature).
 Team with good programmers. Sit at their knees and learn. Emulate their habits.
Do not insist they adopt your practices/tools/habits because you think you know a
better/faster/cheaper way.

Broaden your horizon

 Learn multiple programming languages. Each language you learn will give you ideas
about how to do things better in other languages. (The worst programmers I know are
the ones who think that language X is the only one they need to know.)
See LearningProgrammingLanguages for related tips.
 Learn different kinds of programming languages: procedural,
functional, ObjectOriented, etc. See GroundBreakingLanguages.
 Learn multiple operating systems. Learn to write portable code.

Read

 Read books about code quality, like CodeComplete. It can save you a lot of time.
 Buy the book ThePragmaticProgrammer and read it, learn it, live it.
 Generally, read GreatSoftwareBooks
 Read books about other subjects. Philosophy, history, art... anything. Become a
broader person. It doesn't directly affect your programming as such, but it widens the
mind, which has to be a good thing.

Learn the ProblemDomain

 Get into the habit of understanding the problem domain. Try to create a MindMap for
the problem. Spend good amount of time learning about it. A good knowledge of the
problem domain goes a long way in creating good code.
 Work closely with end users. Get their honest opinions about the software you make.
It doesn't matter how many algorithms or data structures you know if you aren't
making someone's life better.
 And on a similar note: learn from your users. Try to understand where they're coming
from. If you learn the problem domain, their requirements make more sense and you
get closer to being able to give them results that will do what they wanted, not what
they asked for.

Reflect

 If somebody complains that they don't understand your code, find out what it is they
don't understand. ("That guy is an idiot" is generally not the reason.)
 Every time you fix a bug, think about how you could have avoided the error in the first
place, and what could help you avoiding it next time. Some of the answers lie
in GoodCode quality principles, and others in good programming practices.
 By the way, just stop thinking that bugs come to life just from disruption or fatigue.
Bugs proliferate in poorly written code. (But do remember that rest and
concentration are requirements for doing good work)
 Learn to quit habits and to adopt new habits.
 Take a break. It's hard to do any of these things when you're already coding all week,
as fast as you can.

Keep a Journal

See IsAnythingBetterThanPaper CollectingSeashells

20 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Judy Tyrer
Answered Jun 19, 2014
Originally Answered: How can I quickly improve my programming skills?
First: Read other people's code.  All of the other people's code you can find.  A lot of
programming is having tools in your toolkit.  The more different ways you see other people
solving the same problem, the more tools you'll have when you hit such a problem.  (I have been
told I rely heavily on bools by someone who seldom uses them).  

Second:  read about Imposter Syndrome.  Chances are all those people at your company who
you think are so much better than you feel the same way you do, that everyone else is better than
them.  Imposter Syndrome is part and parcel of the programming environment.  You're better
than you think.

Third:  design and write your own programs all by yourself without help from anyone.  DO NOT
ASK FOR HELP EVER.  Use Code Review sites (you can ask questions on forums, just no in
person - the purpose of this exercise is to teach you how to find answers without asking
colleagues).  

Fourth: Can you pair program at your work?  Try suggesting it for a project and see if you can
get paired with the best person at the company.  

At one point in my career I had a great boss who said to me, "You know the only difference
between you and Joe?  You think Joe knows all the answers, but all Joe knows is how to find the
answers.  Once you realize you know how to find the answers, you'll be as good if not better than
Joe."

I'm writing my own MMO.  I don't know what Joe is doing these days.  We parted ways after he
insisted the wrap party be held at a strip joint as payback to my complaining about not wanting
to have to look at crotch shot porn in the lab.  (The industry has always been heavily sexist, some
of us weren't in a position to complain as we were the only women in the industry at the time
and a complaint meant getting kicked out of the boys club so we mostly kept silent and
grimaced).
3.7k Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Daniel Conn, Software Engineer


Answered Jul 2, 2017
Originally Answered: How do I develop programming skill?
By doing it!

Pick a language that you want to get started with, perhaps Java, PHP, Javascript, Swift, perhaps
even C or Bash (just pick one)!

Find some online tutorials that will show you the basics!

Get practicing!

Repeat!

Easy as that, good luck on your coding journey :)

132 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll
Joshua Gross, I've used computers. Some were flat. Others kind of boxy. Some were even black.
Answered Jul 20, 2017
I’m unsure why I’ve been asked to answer this question when there are many answers already
that contain every possible thing I could say. If you are looking for a summary, you need to read
through these, and that will be worthwhile. However, the simple summary is that knowing more
programming languages is not nearly as important as having more programming experience,
which you get from writing programs. If you want to understand multiple languages and
paradigms, which is a good idea, take the same program and design/implement it in multiple
languages from different paradigms. You will see side-by-side that, for example, functional code
shouldn’t look like or try to replicate OO code. Then learn what should be implemented in what
kind of languages and do the opposite. Make an OO operating system, or a compiler in a
functional language. This will show you why most compilers are written in C.

179 Views
UpvoteDownvote
Share

 
RecommendedAll

Soham Hole, B.E. Information Technology, Sinhgad College of Engineering, Pune (2018)
Answered Oct 18
Originally Answered: How should we improve programming?
To improve programming skills one should take one project to do….

1.Decide a topic for your project.

2. Plan your project ,what you what to achieve

3. Identify the components or modules of your project.

4. Try implementing your modules one by one incrementally

5. Modular approach will help you while debugging and understanding the dependencies.

6.Identify and implement the possible algorithms ,use the best one which gives optimum result.

7.One your code is working try to Optimise it in terms of space and time. Trust me doing this
things will improve your development as well as programming skills

173 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Krishna Apurva, BTECH Information Technology & Computer Programming, Medi-Caps University
(2020)
Answered Jun 29, 2017
Every programmer wants to become a better programmer, but not everyone succeeds. Apart
from the natural talent of programming and problem solving, it requires a lot of hard work,
constant learning, and perseverance to become a better programmer but most important thing
is doing practice, the more you do practice you will get more cammand in programming and
logic behind programs is also clear.

While doing practice, think in how many way program can be run. Make programs using
different logic which increase your programming skill.

If you want to learn more about programming language please refer

Hackr.io - Find & share the best online programming courses & tutorials

Thanks for reading.

Happy coding

93 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Uday Singh, works at Tata Consultancy Services


Answered Sep 3, 2015
Originally Answered: How do I become better at programming?
You should choose your career path smartly and not follow anyone. We Indians have tendency
of following others. Why do you want him to beat in his own yard. If he is good in c/c++ then its
not necessary that you should also learn and master them for the sake of beating your friend. C
and c++ is the foundation of any programming language. Learn it, master it if you are interested
and then you should try to get expertise in those skill which is more in demand in IT industry.
Skills like Javascript, python, ruby on rails etc are highly demanded. Keep an eye on these skills
and master them accordingly.  IT industry is highly unexpected, you better get good score in
BE/B.tech and go for PSU jobs(just a suggestion).
140 Views
UpvoteDownvote
Share

 
RecommendedAll

Chris Cardinal
Answered Apr 11, 2015
Originally Answered: How can I quickly improve my programming skills?
Lots of good answers. But if someone were to ask me, I would say this:

1. Give yourself problems and solve them in code in whatever language you know. 
2. Repeat #1.
3. Review your code and improve it.
4. Repeat #1. 

Example: a long time ago, I wrote a program whose purpose was to model a contagion
(morbidity, diffusion, latency etc). The approach I took, the issues I encountered, the solutions
and workarounds implemented made me an immeasurably more resourceful programmer.
Other projects, equally interesting, further increased both my capabilities and my confidence. 

In other words, to be a better boxer, ya gotta be in the ring with a real opponent.
460 Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Vikas Tripathi, Maverick Seeker


Answered Nov 8, 2014
Originally Answered: How do I improve my programming skills?
1)Persistence. That's what is lacking . go to the drawing board and start from scratch. You know
JAVA? go solve the basic problems first and then start solving the questions .
2) Solve the programmes 5-6 times till the time you absolutely know the logic behind every
single step of program
3) Check out Programming Competition,Programming Contest,Online Computer
Programming and see if it's better 
4) For the time-being forget about rankings because you're a novice right now and focus on
improving your logical ability first
5) Also, if you can , start making some rudimentary apps so that you can get more knowledge
about coding
507 Views · View Upvoters · Answer requested by Nitin Khare
Upvote1Downvote
Share

 
RecommendedAll

Mariya Mykhailova, software developer


Answered Apr 13, 2013
Originally Answered: How can I significantly improve my programming skills in 4 months?
A lot of good advice already here; I'd add just two more points - try programming competitions
and try learning a bit of a language with different paradigm - Prolog, Haskell or something along
that path. You won't probably ever use either in "real-life programming", but both will give you a
different view of programming, and it's always better to have several views than only one. I do
regret that in my university years I haven't learned any weird languages and have paid only a
little attention to programming contests - it's much harder to do once you've landed in a regular
daily job.
10.1k Views · View Upvoters
Upvote18Downvote
Share

Toby Thain
A wise suggestion, but I would disagree with the characterisation of "weird languages"—Haskell is...

Anuvrat Parashar, I program for fun and it pays my bills.


Answered Oct 30, 2012
Originally Answered: How does one improve his or her programming skills?
tl;dr
By Programming of course. Because some things can't be learnt just by reading, one has to get
their hands dirty. And guess what, programming is one of them.

The question just mentions "programming skills" and does not specify which skills are being
referred here. As for me, I have been trying to improve my skills in following dimensions:

 Algorithmic Skills - The ability to come up with better solutions: Well there are quite a
few awesome websites which can help eg: codechef, codeforces,
topcoder, rosettacode.org, algorithmist.com etc.
 Software engineering skills: This can be improved only by working on big projects
which involve a team in some sense. One can get this kind of exposure by either
working in a company or contributing to an open source project. Colleges make the
students do group projects for this very reason.
2k Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Shashank Sharma, B.Tech-M.tech Dual Degree Metallurgy and Materials Engineering, Indian
Institute of Engineering Science and...
Answered Mar 25, 2017
Originally Answered: How can I improve my computer programming skills?
When I had started coding during initial days, one of my teacher said to me, I shall tell you how
to improve coding. He told me following things:

Write at least one new program every single day and don't sleep until it runs without

any error.
 Learn at least one new algorithm each day and try to code it yourself may be in any
language.
 Learn at least one new concept every week and by the end of a month use all the new
learned concepts to make a new program yourself.
 Try to design new questions and answer them yourself(mostly real life applications).
 Join any online website like hacker rank, stack exchange, etc. And participate in
atleast 1 competition every month.
PS: Reading books is a constant in any kind of learning.

100 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

John Curry, self taught programmer, teacher at truthseekers.io


Updated Jul 8, 2017
Originally Answered: How do I to improve programming skill?
There are several things you can do to get better at programming.

1. Read other peoples code

Reading other peoples code is hard. It will give you new insight, and you'll see how other people
approach similar problems. It will give you different perspectives and force you to step through
the code line by line so you can see how they were thinking. You'll also find things you didn't
know you could do.
2. Programming challenges. Programming challenges are good because they improve your
ability to think analytically and creatively to solve a problem. An example would be a string
reverse function. Have you tried creating your own version of a string reverse? Give it a try and
you'll probably be surprised at how difficult it is, but by stepping out of your comfort zone you're
allowing yourself to improve as a programmer.

934 Views · View Upvoters · Answer requested by Iftekhar Joy


Upvote1Downvote
Share

 
RecommendedAll

Wei Sun, works at Coscico


Answered Dec 25, 2013
Originally Answered: How can I quickly improve my programming skills?
The history of Computer Science involves many smart ideas. Many are treated solely as
facts/principles by us now. Yet for one to really feel the smartness behind them, simply to
remember and apply them is way not enough. One way is to involve oneself into the challenges
the inventors had faced before.  

For example, you can:


1. Try to re-invent a minimum CPU based on digital logic and a computer architecture of choice.
2. Try to re-invent the C Programming language.
3. Try to re-invent the C++ Programming language.
4. Try to re-invent the TCP/IP Stack.
5. Try to create a simulated city on paper and with a OOP language of  choice.

For each of the re-invention, one will have to figure out the motivations, the base
principles/technologies,  the requirements, the challenges, and your own design, preferably
from scratch.

This can help a far deeper understanding of the technologies. Besides, it is a rich problem
solving experience. It means a totally different deep learning experience instead of the
traditional content-consuming learning experience. This requires the brave to put oneself in
front of white papers.

The more one experience in analysing complex real world problems, the more abstract how one
see these problems, the easier one can solve them in simpler ways.
1.6k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
Yogi Khatri, Knowledge and Experience are complimentary to each other.
Answered Jan 7, 2016
Originally Answered: How do I master programming?
My personal experience taught me, programming is the art of "thinking" in logical manner. It is
not just coding in a language.

So, as you asked for "Mastering Programming", please be clear that you need to "Shape" your
line-of-thoughts when you attempt to solve a problem. It does not matter if it is a real life
problem or scientific problem.  Then comes the next step to make yourself acquainted with rules
of grammar (syntax rules) of the language of your choice. You can practice both in parallel.

To improve on your logical analysis and solution part:

The simplest way is start with small problems in your day to day life and jot-down the steps in
logical sequences to solve them and then see if your flow of sequences to solve the problem is
correct? Then see, if you can find alternative ways to solve it and if there is any other better
alternative?

For example If you have to do a shopping of Grocery and some medicines, what all you need to
complete this task?

First you Carry some sort of money in your wallet

2. You create the list of items to be purchased

3. You set the priority of items to be purchased first -Medicines or Grocery based upon some
criteria.

4. You move out and reach your destination.

5. Do the shopping, pay the bills, and carry the items along with you.

6. You repeat the step 5 above for all items in your list(s)

I used this shopping process as an illustrative example to help you understand that we actually
do programming all the time in our daily life but we don't give it any importance as
programming. We just need to make it better, fine tuned and optimized for given goals.  For
example, the above logic need to be fine tuned. If you noticed, the first step to carry money
should ideally be after second step (choosing the items to be purchased) which will give you a
fair bit of idea how much money you need to carry.

Second step in this direction would be : To learn the solutions to some standard techniques and
problems that have already been solved. For example to sort the list of items, there are a lots of
different ways, with different pros-and cons. Get yourself familiar with these standard solutions
through - Algorithms and Design Patterns.
and Third step would be : Pick a (Computer) language of your choice (as per your interest and
needs) and learn the syntax and other details of it thoroughly. The more you make yourself
familiar with how the language works with computer, better you get a hold on it.

There are several good books, online video tutorials and forums available to help you get out of
troubles you are stuck with during your learning path. But be sure to first prepare a learning-
path (syllabus or topics to be covered) as usually it is done in books. That's why I prefer the
books because they help you finish in a planned manner and cover most of the necessary topics.

146 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Mohd Sufyan
Answered Apr 17, 2016
Originally Answered: How do you improve your programming skills?
All I know about improving your codes is that :-
1. Here I present to you, None other than the famous dialog: "Never Give up"
Yeah, you read that right. Never Give Up. Why?

I'll share my experience:

I wanted to create a Sign Up/Log In interface using HTML and JS. Yeah, I started working on
them with codecademy. Now, after a lot of hardwork, I thought I knew each and everything for
creating such a page, But life said NO. As you guessed it, I failed each time, it being a silly
mistake forever. Then a day came, I decided to store all the variables in lists. Yeah, right. Lists. I
tried and got it. The time came. I pushed the "Sign Up" button with "Inspect Element" open. No
errors. Yeah!!! I put my entries in. "Log In" and....

Chapter 2:- BIG BANG

And then , I clearly get the alert by the function "window.alert()". It said, Your entries do not
match our logs." OH!!! And then I think it's over. All over. In frustration I delete all my files, hey,
not only delete but, Shift + delete. Half an hour later, I realized that in my if statement I wrote:
1. if (user == users[1]) {
2. bla bla bla
3. }
Yeah! users [1], instead of users[0]!

Chapter 3:- A chapter at codecademy

Now I have started learning SQL and know how to create tables and store data.

Soon, I think I'll do it.


Moral:- You can not always make lemonade when life gives you lemons, you just learn the
recipe with half of them. The other half is for the lemonade as a prize for hard work.

Greetings,

Me.

140 Views
UpvoteDownvote
Share

 
RecommendedAll

Abhishek Rana, worked at Java Developers


Answered Nov 7, 2014
Originally Answered: How do I improve my programming skills?
Step 1:  Practice What You Already Know
Step 2: Understand dynamic , greedy , divide and conquer ,Sorting and                     Searching
algorithms as well.
Step 3: Learn Some Data Structures ( Stack , Queues , LinkedLists etc )
Step 4: Repeat Step 2 and 3 untill you are very clear about it
Step 5: Solve more and more problems 
Step 6: Repeat Step 5 for the REST OF YOUR LIFE
be patient we are humans :)
409 Views · View Upvoters · Answer requested by Nitin Khare
Upvote1Downvote
Share

 
RecommendedAll

Anurag Chatap, Blogger and programmer


Answered Nov 13, 2015
Originally Answered: How do I improve my coding skills?
The best way to improve programming and coding skills is to solve problems regularly.
Make more and more practice on it . Divides your task in such a way so you can solve it fast . lets
see more tips how to Improve Programming and Coding Skills with top 12 sites .
To make your task a little bit easier I have done research and found some awesome websites. In
this article I am sharing some best websites that provides puzzles and problems.
You can enhance your skills by solving these problems in any language you know. Some of these
websites also organize competitions regularly. If you have good skills you can even win cash
prizes by winning such competitions.
1. W3school 
2. Tutorialspoint
3. Codechef
4. HackerRank
5. Project Euler
6. Topcoder
7. Programming Praxis
8. Codeeval
9. Code Jam
10. LeetCode
11. CodingBat
12. Coderbyte

for detail knowledge about it follow here : Improve Programming and Coding Skills with top 12
sites
1k Views · View Upvoters
Upvote21Downvote
Share

 
RecommendedAll

Carl Saptarshi, University Student


Answered Jul 19, 2016
Originally Answered: How could I improve coding skill?
There are a few things you need (or should ideally) have in order to improve your skills in
programming.

1. Patience - As you code, you will undoubtedly run into errors when you work , and
looking at the errors in the stack trace may be mind boggling! Sometimes you will have
to go back to a previous solution that you know works, and try to redo the problem,
maybe in a slightly different way, which well could take time, but the more you do, the
easier it will get.
2. practise makes perfect - Learning to code cannot be done in one day, regardless of
what some crash courses in programming say. If you want to improve, you need to
keep practising the languages you are programming in and you will improve.
3. projects - using the skillset you have, try to do small projects. This in turn will
introduce you to the real world applications of the programming languages you are
using. As you do more projects, and you become more fluid in writing programs, you
will find programming a lot more enjoyable.
4. be inquisitive - If you want to do something, but have no clue where to begin - ASK
SOMEONE. Forums such as Stack Overflow are designed for programmers who have
questions to be answered. You have to explain what you are trying to do and what you
have already done so that someone can help you. DO NOT be afraid to ask questions.
One thing I have noticed is that I learn from what others tell / show me, and using
their knowledge to solve my issues, I can apply the same logic to other similar
situations - suddenly you have improved your code!
5. learn to write in a structured way - before suddenly shooting off and assuming you
know what to do, only to get stuck one third of the way through and realise you have to
start again. Stop. Wait. THINK and PLAN out what you are going to do. make sure
what you are trying to actually do makes sense! when programming, try to write in a
clean way, with commenting through out, and appropriate white spacing where
necessary. This will make debugging a whole lot easier rather than if you have 2000
lines of jumbled up code that may work, but you don’t fully understand how or why it
works.
6. Tutorials - the internet is flooded with tutorials for programming , from 0 - GodMode.
If you are a person that is new to programming, use websites like codeCademy, Udemy
and Udacity to get you started in the world of programming. These websites also offer
intermediate and advanced guides in programming, so that you can keep on and on
learning , whilst doing, and expanding your own knowledge at the same time. I would
highly recommend John Purcell for Java, and C++ as well the TheNewBoston for a
variety of programming languages.
7. probably the most important - make sure you have a strong foundation of the language
you are learning. You cannot make an even remotely complex system of anything
without having a very firm grasp on the fundamentals of the language you are using.
This is because there will be features of certain languages that will enable you to
perform certain functions which you may not even know about, and may be very
useful to you for your project. so make sure you know the fundamentals of your
language!!!!!
The list can honestly go on and on. But the main thing is to be driven and not to give up! as you
program, think to yourself “woohoo this works…. but is there a better, more efficient way that i
can do this? how can i make my code more readable in case other people see my code? how can i
do x in order to get y to work?”, and so on! The more you do, the better you will become, just
make sure you go out of your comfort zones and be adventurous.

300 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Samarth Agarwal, Loves Programming and Coding, Engineer By Qualification


Answered Feb 5, 2015
Originally Answered: What are some of the good ways to improve programming skills?
Well the core has already been uncovered by Prabhash Kumar, Practice. Practice more, and then
Practice some more. With each obstruction that you face, with each problem that you solve or
stuck onto, and with each setback, you will learn and get better.
You have various platforms where you can start practising from zero like CodeChef,
HackerEarth. Good Luck.
197 Views · View Upvoters · Answer requested by Swati
Upvote1Downvote
Share

 
RecommendedAll
Liam Delahunty, works at Online Sales
Answered Aug 26, 2016
Originally Answered: What can I do to improve my programming skills?
As far as your PHP code being a mess, you can look at the coding styles and try to emulate
them: PSR-2: Coding Style Guide

I have a nice little plugin (phpfmt) for my editor (Sublime Text) that automatically indents
things in a reasonable way.

PHP: The Right Way is worth reading regularly.

As for improving as a programmer, have a look at a dedicated PHP resource such as The Best
Laravel and PHP Screencasts. I find the bigger sites, like Treehouse, just cover too much.

108 Views
UpvoteDownvote
Share

 
RecommendedAll

Arundipta Debnath, Employee at Holberton School


Answered Mar 27, 2017
Originally Answered: How do I improve programming?
I work at Holberton School of Software Engineering in San Francisco where we use the best
training methods for our students. The philosophy we follow helps students unlock their
maximum potential. More important for us than learning, is the approach to learning. Get that
right and the learning curve never stops, so you keep seeing a constant improvement.

Some tips that co-founder of Holbertonschool.com, Sylavin Kalache, gives to aspiring


programmers are:

 Find a mentor: It is easy to get lost and not know what next to explore. Find someone
who’s been in the industry for a while and who is staying up to date. Define a plan with
this person about what you should study next, and what can take you to the next level.
 Get code reviewed: the best way to accelerate learning and to improve, is to refer to
your mentor. Get your work reviewed, and make sure you’re going in the right
direction. The Internet has a lot of resources but they are far from perfect. Your
mentor will know better what’s better-suited to you.
 Learn by doing: reading books and tutorials is good, but doing is king. Software is like
a craft, it’s by practicing that you will master it.
Practice on something meaningful: Pursuing personal projects allows you to greatly

enhance your coding abilities. You will know from your experience that it takes time
and perseverance, but still is the most rewarding learning experience that goes a long
way in keeping you motivated. Set the bar higher now. Pursue challenging projects
that you know will allow you to learn and polish up your skill more.
 Have fun: CodinGame is great platform to practice, made out of video games that you
control using a programming language of your choice. HackerRank is a platform
where you can test your programming skill.
 Get out and meet Software Engineers: there is a lot that you need to know. A lot that
you will only be able to know when discussing with actual Software Engineers. Go to
meetups and hackathons, few websites he recommends for this
are Meetup.com and Eventbrite. If you are living in the SF Bay Area, checkout
our Meetup page.
Good luck with it all! :)

200 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Nawar Khabbaz, Qualcomm Engineering, UCSD '14, Aspiring Entrepreneur, Trilingual, San Diego
Answered Aug 15, 2014
Originally Answered: How do I improve my coding skills? And get a good foundation in coding?
I would say if you start with Learn to code "codeacademy. com"  which introduces you to basic
concepts of given programming languages, then propagate these basic intros to own programs
and structures.
741 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Anubhav Aggarwal, Computer Science Engineer


Answered Sep 16, 2014
Originally Answered: What are the good ways to improve programming skills ?
There are many ways to prepare yourself for the upcoming drive. It depends on you which
approach you follow.
Personally,  I would prefer careercup.com as its a very useful platform to get insight of all types
of programming related questions that are asked by these tech giants. 
Remember, they are looking out for people who can think of a solution which is optimized
enough and a rare one. So you would need hands on experience in computing the complexity
and efficiency of the solution. 
Algorithms will play a major role here. Make sure you are well versed with implementing real
world examples too.
464 Views · View Upvoters · Answer requested by Meenal Agrawal
Upvote1Downvote
Share

 
RecommendedAll

Tim Scott, Programmer and Lifelong Learner


Updated Apr 7, 2015
Originally Answered: How can I quickly improve my programming skills?
Contribute to an open source project.

Pick some OSS project that you use, or one that's popular in your chosen stack, and get involved.
This will supercharge your skills because you will learn:
1. Good patterns and practices by absorbing a well factored code base.
2. How to properly cover a feature with tests using good testing design.
3. Professional methods of collaboration and version management.
Not all OSS projects well factored and property tested, but in my experience most are. OSS
programmers tend to be the best of the best.

You could start by simply making a pull request for some bug you find or some small feature.
Over time you will earn the trust of the project owner and they will grant your commit rights. In
addition to improving your skills, contributing to OSS very definitely improves your resume.
2.3k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Jarosław Rzeszótko, Software Engineer


Answered Dec 12, 2013
Originally Answered: How can I quickly improve my programming skills?
Do small-scale but ambitious projects in domains close to Computer Science: try to implement a
ray tracer, a toy compiler, a prolog interpreter, a regular expressions engine or some existing
algorithm or data structure known to be widely appplicable. Many of those can be implemented
in just a few pages of code and open up a wide area for experimentation. To get the most out of
it, implement several different variants and compare them,  invent benchmarks comparing their
performance, try to rewrite messy pieces several times until they get really clean, and try to write
easily understandable documentation. Read university textbooks for Computer Science subjects
for background.
7k Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Sandeep Tuniki, Software Engineer


Answered Apr 17, 2015
Originally Answered: What is the best way to improve my programming skill?
If only people would stop asking the same question about 100 times, Quora would contain very
high quality answers. Sigh!

Here you go. I gathered all the answers that I could find. I hope this puts an end to the repetition
of this question.
 How can I quickly improve my programming skills?
 What are the good ways to improve programming skills ?
 How does one improve his or her programming skills?
 How do I improve my programming skills?
 How do you keep your programming skills sharp? How do you learn new
programming languages?
 What is the single most effective thing you can do to improve your programming
skills?
 How can I significantly improve my programming skills in 4 months?
 What are the steps carried to improve programming skills better for non-
programmers?
 How can I improve my computer programming skills?
1.5k Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Anonymous
Answered Jun 9, 2015
Originally Answered: How can I improve my coding skills?
Register for these websites and once you start to follow these you feel like a real champ in
programming.
 
1. www.hackerrank.com
2. https://codility.com
3. https://github.com
Don't forget to code regularly. Coding is the only way to become a Coder, 
All the best.
461 Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll

Akash Bajaj, works at SAP Labs (2015-present)


Answered Dec 30
Originally Answered: How do I improve my coding skills so I can crack company interviews?
the only way to improve your coding skills is to code. there are numerous sites where you can
practice your coding skills like codechef, hackerrank,etc.

the more you code, better your coding skills. tats when you start to think in coding manner and
employing different concepts you have learn.

so go and start coding as much as you can..

86 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Mariappan, BE-CSE Technology & Speech, Alagappa Chettiar College of Engineering and Technology
Answered Jun 27, 2017
It's roughly a raw question..like how can we live happy always,how one can win in
everything,everyday..just chill.But everything begins with small stuffs like this..even it gave me
the interest to search for stuffs.OK let's move to ur question..how do I improve my programming
skills,which means you know programming.so the next steps are to apply it and feel it.yes Iam
not kidding I aware that you will be entertained than never before and start enjoy programming
if you start applying.For example start from the basic stuffs like simple printing,alter those stuffs
so that it entertains you,share those with your friends..then probably you will develop the habit
of entertaining your friends with cool stuffs make.this will surely enable a new way of learning
and its the easy way too.No money,no physical stresses and so on..just try to alter things and fix
errors at times you get..I do practise for example I altered a guess game algorithm to love
calculator(which matches my friends name with random girl names ,thus some entertainment
with learning..)so cool right..so try in this manner.hope it helps

40 Views
UpvoteDownvote
Share
 
RecommendedAll

Bunty Madan, Team Lead at Accenture


Answered Oct 30, 2015
Originally Answered: What are the ways to improve coding skills?
1. code
2. learn basic concepts 
3. try to make things easy as much as possible
4. hear - plan - execute

all four are my fundametals what i try to follow. i started programming with J2SE and micro
edition for nokia mobile app development then moved to J2EE for writing webservies and
website. then iOS/Android now, so what i think if your doing code and know the reason on each
line whatever your writing will be great. Also try to learn from 3rd party API and open source
projects how they making thing more easier and before starting plan well think they each and
every user case and plan accordingly then execute.

Good Luck
682 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Ben Baert, Developer


Answered Feb 23, 2016
Originally Answered: What is wrong with my coding skills?
What you're experiencing is not a bad thing; you're challenging yourself and allowing yourself to
get hit in the face every once in a while. This will keep you humble and can act as a reminder
that you need to keep learning, but it shouldn't completely destroy your self-confidence.

From what I'm reading in the comments, you're having trouble with algorithmic problems. My
guess is that you don't really use those very often in your daily life, so you may simply not have
had enough exposure to these kinds of problems to do well. It's a bit like asking a dermatologist
to perform brain surgery: while the dermatologist will have a much better than average
understanding of neuroscience, their lack of experience will mean that they would likely suck at
it, even though they may very well be a great dermatologist. The beauty of the programming
exercises is that the stakes are very low (contrary to the neurosurgery), so keep challenging
yourself and you'll get better at it.
In a nutshell: keep challenging yourself, remain humble, but remain confident at the same time.

916 Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Surya Klsv, Associate at Morgan Stanley, Bits Pilani Hyderabad Alumnus


Answered Apr 12, 2013
Originally Answered: How can I significantly improve my programming skills in 4 months?
1. Try improving your data structures and algo skills from websites like
spoj,geeksforgeeks,codechef,careercup etc. 

2. Write cool programs which automate your daily work as much as you can
1.6k Views · View Upvoters
Upvote12Downvote
Share

 
RecommendedAll

Anurag Sharma, studied at University of Florida


Answered Dec 31, 2014
Originally Answered: How do I improve my coding ability?
Thanks for asking this question.

If you want to learn how to make a dynamic website using Django, then Django docs provides
you the tutorial for building a small web-application from scratch. Here is the link -- Writing
your first Django app, part 1. 

This tutorial is for beginners, you can make enhancement to this app or try building something
new (like building a blogging website) after learning this tutorial. It would be really great if you
can learn Javascript (if you are really interested in making a awesome and powerful web-app) 

If you wish to brush-up your skills in python/ c++ then their are sites
like http://www.geeksforgeeks.org/ and http://www.codechef.com/, where you can solve
problems and learn from the solutions posted their. You can also take part in coding contest
hosted at http://www.codechef.com/ on regular basis.
1.9k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll
Gregg Lain, B.S. Mechanical Engineering & Thermal, San Francisco State University (2001)
Answered Oct 6
Originally Answered: How can I extensively develop my programming skills?
Read more books on programming, the language sort of matters but not really. After learning
the syntax of a language like Perl/Python/Rust/etc you’ll find your algorithms and concepts are
next to be worked on.

If you wanna start at the bottom (at the dirt), learn C and then Assembly. After learning Perl and
seeing all the references to C, and that the ‘gods’ at work knew C, I spent a couple years on C,
and I learned a ton. Writing in C is another baptism of itself, seeing that “C is the dirt upon
which the internet is built”. Every C programmer I have worked with was awesome, because
what C teaches is so low level and cause such great mental anguish, you are forced to either learn
the language, and how systems work along with it, or quit. I quit on C in college, tried again 15
years later and ‘got it’ at 42yo. And it benefitted me greatly. While I do not use it every day, after
learning C, any other language is easy (also because most languages are either implemented in
C, or have the same constraints as C), I tell youngin’s that ‘It does not matter, all languages
basically boil down to C’.

One could up their game by reading the following:

Pragmatic Programmer

The C Programming Language

Compilers: Principles, Techniques, and Tools (Dragon book)

The Art of Unix Programming

The Design of the Unix Operating System.

After this, I fiddled with assembly and suddenly the computer got much simpler for me and
easier to understand. It’s just a giant calculator.

171 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Denny Sam, I will code till there is no coffee left in the world, then I will rest in peace
Answered Dec 26, 2014
Originally Answered: How should I build my coding skills?
Where you might have gone wrong, might be, when you learned algorithms. You might not have
learned everything about the algorithm. You should completely analyse the algorithm by
learning it from different sources, looking at the run time analysis. 

I would advice you to start practicing the most submitted problems on spoj and build your
confidence (that is the only way). Visit Sphere Online Judge (SPOJ)
664 Views · View Upvoters · Answer requested by Sanjeet Kathuria
Upvote4Downvote
Share

 
RecommendedAll

Digant Patel, Always return 1


Answered May 25, 2017
Originally Answered: How did you improve your programming skills?
By doing a project.

The best way to learn programming is first studying the syntax and then building a project on
that platform. Just think of an idea and implement it. You just need to have questions in your
mind and there are solutions all over the Internet on Stack overflow,blogs,etc.

You will learn a lot more ,find bugs in your code,find new tricks when you try to do project on
your own.

If you want to learn about data structures and algorithms go for competitive coding on websites
like Hackerrank, Codechef,Topcoder,etc.

My programming and problem solving skills improved a lot by competitive coding.

326 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Chase Williams, Blogger | App Developer


Answered Mar 20, 2017
Originally Answered: How can I improve programming skills online?
First, you should start with making sure that you master the fundamentals. You can find some
courses in this post that will help you with that. Within that post, I recommend signing up for
Treehouse as there are many courses that will help you get the fundamentals down.

Once you master the fundaments, start writing programs yourself. This is one of the best ways to
improve your programming skills. When you write programs, you are putting everything you
learned into practice.

You are also forcing yourself to learn new concepts as you solve the problems in your code. You
learn a lot from your mistakes which is why you should spend a lot of time writing code.

141 Views · Answer requested by Bhekany Mpilwenhle


UpvoteDownvote
Share

 
RecommendedAll

Raghavendra Kumar, Experienced with Desktop and Web programming. Dabble in C#, Python,
Haskell
Answered Oct 28, 2016
Originally Answered: How do I improve my programming skills in 2 months?
Since you are already experienced with programming, try and compete on various online code
contest sites like HackerRank, CodeChef and HackerEarth. You could probably start with the
practice sections of the site, try to solve the same problem with various languages and use github
to document everything.

If I were you, and since you have mentioned you are taking a sem off, I would put a target of
around 30 problems a day.

HackerEarth also allows for employers to offer you interviews based on your profile.

Good Luck!

314 Views · View Upvoters · Answer requested by Adarsha H.P.


Upvote2Downvote
Share

 
RecommendedAll

Sujay Shetty, former Software Developer at Dell (2016-2017)


Answered Feb 20, 2017
Originally Answered: How can we improve our programming skills?
First of all you have to stick to a particular programming language. You can chose C as it is
simple to understand or Java(Object oriented language).

There are lots of online coding websites. I prefer Hackerrank, where you can practise a lot of
questions and also you can see what others have written!!. That’s the best way to improve your
coding skills. Compare and code!!

For any practise question, write a detailed algorithm and for each step in the algorithm, google
the steps in the particular language(if you don’t remember the syntax) and execute. After you
finish the execution, see how others have written their code.

87 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Aleksey Izmailov, Software Developer


Answered Dec 12, 2013
Originally Answered: How can I quickly improve my programming skills?
- Try to improve the code you write doing many iterations on it. Try to express yourself better,
think about other ways to implement something.

- When you can't find a better way to do it ask someone for criticism.

- Learn more advanced language features and programming paradigms.

- Learn new languages that do things differently just to learn to think differently.

- learn libraries and frameworks to be fluent in them. This makes you much faster.
2.5k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Héctor Iván Patricio Moreno, Software developer, lover of knowledge and science.
Answered Jan 20, 2015
Originally Answered: How do I improve my coding ability?
I have been read books about habits and skill improvement. I have learnt only one thing:
PRACTICE  DAILY.
Even if you have little time, you should code everyday in order to become a better programmer.
Try sites like http://codility.com, About - Project Euler, and Coding Challenges for the World's
Best Developers to find challenges that, practicing everyday, will help you to improve your
algorithm design ability.
772 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Indra Gunawan, Machine Learning Student


Answered May 17, 2015
Originally Answered: How do I improve my programming logic skills?
Some good programming DOJO websites : 
HackerRank
Code Katas - codekatas.org

Useful advice
The Ultimate Code Kata

Many people relate programming skills with martial arts skills, because both require practices
and passions
966 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Harold Treen, Bachelors Degree in Computer Engineering


Answered Aug 11, 2015
Originally Answered: What is the best way to develop my programming skills on my own?
Build something. Hands down, the most educational things I have ever done were building
things.

But sometimes that can be hard. Putting yourself in front of a computer with no clue where to go
can be intimidating.

Solution: Build projects in high pressure environments (ie. Hackathon).

My first couple of Hackathons I went to expecting to meet genius programmers who could teach
me how to build stuff. Instead, I ended up on a team where I was the only "Developer". When
you only have 48 hours to build something that's going to be presented, the pressure is on.
It really helped me force a lot of information into my brain all at once. And we ended up coming
in 3rd! So that was a confidence boost in my abilities :).

Good luck!
869 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Shubham Agrawal, Engineer at Amazon ,believe in god mine is messi,play drums


Answered Nov 7, 2014
Originally Answered: How do I improve my programming skills?
nitin,since you have been doing  programming in java when you were in class 8,at that time
criteria like conplexity was not judged and right now  you are new to the competetive type
programming.
first start making yourself at ease to these environment.i/o management and headers inclusion .
START learning standard template library(STL) ,analyse the codes of mediocre programmer
who still is not an awesome coder but able to manage to get his correct submission.
 since you are  in your 1st year there is lot to be learn about algorithms and datastructures.
logic will follow after all these.
make yourself equipped with proper knowledge and surely you will be  a good programmer .
happy coding and learning
369 Views · View Upvoters · Answer requested by Nitin Khare
Upvote1Downvote
Share

 
RecommendedAll

Shubham
Answered Apr 30, 2017
1. CODE! Code a lot! There are various online competitive coding platforms like
Codechef, HackerEarth, Hackerrank, SPOJ etc where you can learn and practice
coding.
2. Learn a few programming languages. C, C++, Java and Python would suffice. Learn
these four and practise coding in these languages.
3. Take up textbooks. Follow them thoroughly. If you can get e-books for the languages,
that’s fine too.
4. Watch video tutorials on YouTube to ace your eddiciency, accuracy and speed.
Last but not the least, take part in the various coding events organised by colleges in their tech
fests. Keep on participating. Keep on practising. Keep on learning and one day you will master
it.
Good luck:)

Ss

18 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Varun Mandhana, studied at Vellore Institute of Technology, Vellore


Answered Nov 6, 2014
Originally Answered: How do I improve my programming skills?
I totally agree with Shivam Kapoor. The only way to do so is by practicing. There is no other
way.You are slow now because you are out of practice. Dont loose patience and continue
practicing and in a months time you will be back to your earlier school days speed and ya
as Mitesh Pathak pointed out just begin with the initial 1 or 2 easy ones and keep on coding
more and more difficult problem
REMEMBER PRACTICE PRACTICE AND PRACTICE
331 Views · Answer requested by Nitin Khare
UpvoteDownvote
Share

 
RecommendedAll

Palash Kanti Kundu, I have worked with Java/J2EE, Spring, Hibernate, MongoDB, AngularJS,
Bootstrap
Answered Jan 6, 2016
Originally Answered: How can I still improve my programming skill?
1. Try the list here, 2015 //TODO list for Java Developers
2. Once done, try algorithm implementations like Palash90/algorithms
3. Once done, try implementing all Numerical Methods here, C Programming Examples
and Tutorials
4. Solve all the problem here Your Online Code Lab
5. Once done write DB Server/Web Server
6. Once done, build something like the following
a. Palash90 - the open square
b. Folk Tales Collection - Palash90
c. Palash Kanti Kundu
7. Host your own mail like me@palash90.in
8. Build reputation such as palash kanti kundu - Google Search
When you will be done with all these list items, surely your programming skill will improve.
301 Views
UpvoteDownvote
Share

 
RecommendedAll

Kent Fenwick, MSc in Computer Science. Serial entrepreneur.


Answered Feb 19, 2014
Originally Answered: How can I quickly improve my programming skills?
Stretch yourself with a problem that you think you can solve but don't exactly know how to yet. 

This will force you to stretch your comfort zone, your mind and your skills to accomplish the
goal.

Having a real life project is even better. Also, try and find an account-a-bil-a-buddy that will
keep you motivated and in check.

Becoming a more productive programmer is one of the best things you can do for your own
personal growth and freedom. Good luck!!
2.2k Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Pranjal Pandey, Programmer and entrepreneur since age of 19


Answered Nov 20, 2016
Originally Answered: How can I develop computer programming skills?
They answer is simple “Start” start somewhere .

If you want to go into field of web programming start with very simple PHP and HTML then
expand your knowledge in CSS and JavaScript .

If you want to go into software programming start with basic programming languages like
python or C++ the concepts of all high level language like Java , python etc are same only
difference is their syntax so if you master yourself in python , C++ learning other language is
kids stuff .

If you want to make android application or want to target mobile devices in general then start
with Java you can then learn different languages later using concepts you learned in java .
So keeping it short , just choose your field and start somewhere then you would automatically
grow as time passes . And don't just learn try working on projects with what you learned .
Because in the field of programming it's all about how you solve a particular real life problem
and not about what you have learned from theory books !

Hope it helps :)

226 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Aaron Shbeeb, 20+ years of programming; 10+ languages used


Answered Aug 4, 2014
Originally Answered: How do I improve my programming skills?
More often than not, improvements in my programming skills came out of necessity.  I'd be
working on a big project for someone, so failure or quitting weren't options, and would have to
come up with solutions to things I'd never encountered before.  There was a lot of Internet
searching for tips and information, and at the end of the research phase, I had left my previous
plateau of skill.

A few years ago, I was working on two big projects simultaneously and realized a curious
dynamic.  I'd work for several hours on one project then the other, and I repeatedly noticed that
solutions from one project would help in the other.  Sometimes, the solution would be a natural
outcome of the design of the project, and with a little tweaking could solve a more elusive
problem in the other project.

As with all learning, assimilate new knowledge by relating it to what you already know, thereby
expanding your skills and understanding.  The same goes for peogramming. 

I've said this in other posts, but I highly recommend having an actual project to finish rather
than engaging in pure studying of knowledge that you MIGHT need later.  If you relate your
learning to a real problem as you struggle through it, then you're more likely to remember the
lesson and apply it to other areas.
863 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Narendra M, former 10+ Experienced Teacher


Answered Nov 25
Originally Answered: How can I improve my skills for programming?
Whether you’re currently pursuing a degree in computer science, an aspiring self-taught
developer, or a coding boot camp student, mastering the craft of programming is a perpetual
struggle. Here are 6 ways through which you can learn programming by yourself.

1. Choose the Right Programming Language

There’s no one “best” programming language, and once you’ve learned one, it’s fairly easy to
pick up another, so don’t get hung too up on choosing your first language. That said, some
languages are more beginner-friendly than others. The language you choose to start with might
depend, again, on your purpose.

2. Don’t just read Examples. Run It.

when you’re reading a programming tutorial (or book), it’s easy to look at the sample code and
say “I get it, I get it, that makes sense”. Of course, you might get it, but you might not get it, and
you just don’t know it. There’s only one way to find out–do something with that code.

The software is the most easily changed machinery on the planet. You can experiment easily, try
new things, see what happens; the changes will happen almost immediately, and there is no risk
of death or mayhem. The easiest way to learn new language features is to take some code that
works one way and change it.

3. Take up Challenges/Games

Code challenges and games are another form of learning you can find on the internet, for those
who like their learning to be a bit more fun. Code challenges and games are great if you’re losing
interest and want some more fun.

Also, because there are other coders writing the same code, you get to see all their different
methods and perspectives. You can have them critique your code, and look at theirs to see how
they did things. For the same reason, you get to meet lots of other like-minded coders.

4. Find a Mentor or Teach someone

The programming community is full of people who are willing to help the next generation of
programmers. Finding a right mentor will enhance your coding skills, you will have an exposure
to how others are coding. Even just planning to teach what you’ve learned can help you retain
the information better.
5. Use the Online Resources

If a particular concept doesn’t make sense, be it in your code, in a textbook maintain your
confidence and look for alternate online resources to learn the same content. Everyone learns
differently, and just because one source doesn’t make sense, doesn’t mean there’s something
wrong with you.

It means that you’re not clicking with the delivery of the material. The online resources to learn
computer programming are endless, and there’s always a reddit post, youtube tutorial, or blog
explanation that will make the material-at-handcrystal clear.

6. Always take help of a Good Debugger

A lifesaver for many programmers is the code debugger. A debugger will allow you to step line
by line through a piece of code. It will let you see the values of variables, and whether the code
inside an if statement is executed. A debuggercan help you quickly answer questions about what
your code is doing. The first time you learn about a debugger, it will take you longer to fix the
problems with your code. After the tenth or so bug, it will really start to pay off.

Source: SkillHolic.com - Instructor Led Online Courses | Online Tuition Teacher | Online Live
Tutor | One to One e-Learning

101 Views
UpvoteDownvote
Share

 
RecommendedAll

Paruchuri Roy, I give my take on things, rather than answering queries


Answered Dec 11, 2014
Originally Answered: How should I improve my coding skills? I’m a 3rd year student studying IT and have basic
knowledge in C, C++, Java, J2EE, and html. I'm currently learning CSS and JavaScript. Should I participate with
online contest sites? Which site is the best?
Read the Art of computer programming by Knuth 
The Art of Computer Programming

To learn the basics concepts, if you complete 4 volumes then I guess you should be a stud by
then ... apply what you learn on some language like C# or Java which is latest ... that will
sharpen your skills... I don't want to suggest any language feel free to choose.
620 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Sumanth Manduru, studies at Indian Institute of Information Technology, Sri City (2019)
Answered Jun 28, 2017
Originally Answered: How can I improve my programming skills?
If One has to become a coder , he must have a command in theoretical knowledge of concepts .
You have to use the theory in every possible manner while practicing . There are many online
sites available for coding practice.

HackerRank and CodeAcademy are the best.

If You don't know anything about the computer language , you can go through code academy
first . After that U practice in HackerRank . There are several problems in each concept in
HackerRank.

After all , you make sure to participate in Contests being conducted by HackerRank or Code
chef.

199 Views · View Upvoters
Upvote4Downvote
Share

Mark Gillard, Research Assistant at Flinders University (2015-present)


Answered Jul 9, 2017
Originally Answered: How can I code better and become a better programmer (regardless of the language)? I’d like to
know how things work and how I can make them better.
Practice, practice practice. Boring, I know, but it's like any other discipline: mastery takes time
and effort.

You can, of course, help speed things along by reading some well-renowned literature on the
topic, reading through other people's code, and maybe even taking some courses, but none of
those are good substitutes for actually writing code.

Not just lots of code, but varied code, too. A life spent writing single-threaded console
applications will make you a master of those, but useless at multi-threading, working with GUI,
etc.

Probably most important: work on fun projects. It's extremely hard to find learning
opportunities rewarding when the target project is utterly uninspiring!

369 Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll
Vishnu Raj, works at Kochi, Kerala, India
Answered Mar 10, 2015
Originally Answered: How can I improve my coding skills?
1. Analyze the problem clearly 
2. Think twice about how to solve that problem 
3. Gather complete requirements.
 Take the time to write down what goals the end product needs to achieve, and who your user
base will be. Clarity of thought at this stage will save a lot of time down the line. 
4. Write a thorough implementation plan (or model).
    For something small and self-contained, this might be just a basic flowchart or a simple
equation.
    For larger projects, it helps to break the job into modules, and to consider the following:
        What task each module must perform
        How data gets passed between modules
        How the data will be used within each module
    Although gathering and planning requirements can be tedious and much less fun than diving
straight into coding, it is even more tedious to spend hours debugging. Take the time to design
the flow and structure of your program correctly up front, and you may even spot more efficient
ways of accomplishing your goals before you write the first line of code!

5. Comment your code liberally. 


If you think that your code might need explanation, comment it. Each function should be
preceded by 1-2 lines describing the arguments and what it returns. Comments should tell you
why more often than what. Remember to update the comments when you update your code! 

6.  Use consistent naming conventions for variables.


 It will help you keep track of each type of variable, and also what that variable's purpose is. This
means more typing than simply x = a + b * c, but it will make your code much easier to debug
and maintain. One popular convention is Hungarian notation, where the variable name is
prefixed with its type. For example, for integer variables you might use intRowCounter; strings
might use strUserName. It doesn't matter what your naming convention is, but be sure that it is
consistent and that your variable names are descriptive. 

7. Organize your code.  


Use visual structures to indicate code structure. For example, indent a code block that sits
within a conditional (if,else,...) or a loop (for,while,...) Also try putting spaces between a variable
name and an operator such as addition, subtraction, multiplication, division, and even the equal
sign (myVariable = 2 + 2). As well as making the code more visually elegant, it makes it much
easier to see the program flow at a glance. 

8. Test everything.
Start by testing each module on it's own, using inputs and values that you would typically
expect. Then try inputs that are possible but less common. This will flush out any hidden bugs.
There is an art to testing, and you will gradually build up your skills with practice. Write your
tests to include the following cases:

    Extremes: Zero and beyond the expected maximum for positive numeric values, empty string
for text values, and null for every parameter.
    Meaningless values. Even if you don't believe your end user would input gibberish, test your
software against it anyway.
    Incorrect values. Use zero for a value that will be used in division, or a negative number when
positive is expected or when a square root will be calculated. Something that is not a number
when the input type is a string, and it will be parsed for numeric value.

9. Practice, practice, practice. Programming is not a stagnant discipline. There's always


something new to learn, and - perhaps more importantly - always something old to relearn.

10.  Be prepared for change.


 In a realistic working environment, requirements change. However, the clearer you are at the
start about the requirements, and the clearer your implementation plan is at the outset, the less
likely it is that changes will be the result of poor planning or misunderstandings.

    You can take an active role in improving the clarity of the process by presenting your
requirements documentation or your implementation plan well before beginning to code. This
will help to ensure that what you are planning to create is actually what's been asked for.
    Structure the project as a series of milestones with a demo for each block, and manage the
process one milestone at a time. The fewer things you need to think about at any given moment,
the more likely it is that you will think clearly.

11. Start simple and work towards complexity.


 When programming something complex, it helps to get the simpler building blocks in place and
working properly first. For example, let's say you want to create an evolving shape on screen that
follows the mouse direction, and changes shape depending on mouse speed.

    Start by displaying a square and getting it to follow the mouse; i.e., solve movement tracking
alone, first.
    Next, make the size of the square relate to mouse speed; i.e., solve speed-to-shape tracking on
its own.
    Finally, create the actual shapes you want to work with and put the three components
together.
    This approach naturally lends itself to modular code writing, where each component is in its
own self-contained block. This is very useful for code reuse (e.g. you want to just use the mouse
tracking in a new project), and makes for much easier debugging and maintenance.
232 Views
UpvoteDownvote
Share

 
RecommendedAll

Donthu Vamsi Krishna, studied at Indian Institute of Technology, Kanpur


Answered Sep 8, 2012
Try to start with small programs and keep again and again writing codes for different
problems. www.codechef.com is one of the site where there are challenges for solving puzzles
from the beginning level to a high level. So i recommend you to try to solve those problems.
 
If you are writing any code then start thinking in the way where the processing takes place, For
example we think or do anything in many different ways but a conputer cannot do it, it just
followes the code line by line i.e after one command is completed then only it goes to the next
line.
 
Mathematics is one of the main subject to know in order to develope different algorithms of the
different problems you face. When i write any code i first analyze the problem then i try to write
the code myself, then i would again recheck i.e. i would try to execute myself as the system does
as i know the work of the functions which i use. Then once i feel its correct then i type the code
and execute it and then i reduce the errors.So keep on trying to code different problems and at
last you may become expert in coading.
421 Views · View Upvoters

Arnob Sarkar, B.Sc. (H) Physics from Bhaskaracharya College of Applied Sciences (2018)
Answered Oct 27
Originally Answered: How can I improve my programming skills?
Yes. This is one of the frequently asked questions. Even my friends used to ask me this. From my
experience, if you follow these steps, you may improve your programming skills.

1. Understand the problem first and try to imagine it. If you understand any
given problem, then half of your problem is solved.
2. Try to do it in a paper first. Study says that, if you really need to understand
anything, you need to make it understand to yourself first. Use a pen and paper and
scribble whatever comes in your mind related to the problem. Also, you will know your
mistakes from your handwritten document, rather than from the typed program in a
PC.
3. Be sure to dry run the program on the paper itself. If you have written a
program in a paper, first conduct a dry run. Dry run is actually a way of testing the
desired results from the program in your mind without the use of computers.
4. At last, open an editor or an IDE and type the program. Use the required
editor or IDE to run and test your program.
Go step by step and you will becone a pro in programming.

93 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Chandan Boruah, chandubaba at Competitive Programming (2006-present)


Answered Nov 6, 2014
Originally Answered: How do I improve my programming skills?
It takes time, be patient. For me I solved my first div 2 topcoder 250 in 6 months. I didn't know
how to take input , output anything. But after few months I was coding around 20 problems per
day. There are a lot of aha moments bro. Once you get it its easy bro. Keep trying. Don't hurry.

People code for 10 to 15 years to reach a top world level.

Edit: I was very slow in beginning I couldn't figure out anything. Then I could do a div 2 250
here and there, I was getting the knack. Its like enlightenment. You cannot learn it, you can only
feel it. oa12gb of topcoder said he does 8 div 2 250s per day. That time I was shocked. But after
few days I myself started solving many problems. For me this happens at every level div 2 250,
500, 1000, div 1 500, while learning recursion, dp, graph. That is how it is. At first you will be
able to solve here and there and then you can solve all one after another.
926 Views · View Upvoters · Answer requested by Nitin Khare
Upvote9Downvote
Share

 
RecommendedAll

Josh Osborne, Programming since '81. Apps, OSes, device drivers, microcode and the odd ASIC.
Updated Jan 16, 2017
Originally Answered: How can I be a kick ass programmer?
A lot of suggestions are necver stop learning and code in your spare time with libraries and
concepts you don't use in your day job. Those are great suggestions. I have one to add.

Try to make sure you understand the problem that your code is intended to solve. At a small
company (or a good big company) that should let you redefine what the software is expected to
do to more closely match the problem. In some cases the is the difference between a successful
and failed project. In other cases merely between code that gets used and code that gets avoided,
or between code that gets used and code that gets reworked to do what it should have done in
the first place.

If you can't change the spec you can (a) document what you think should have been done, and
(b) when possible try to make the system flexible enough to quickly “fix” to do what it should
have in the first place.

Over time your dissenting position on the design should be respected more (and you will believe
it yourself more as well). Or worst case you will come to believe it more and head for a job where
it gets trusted.

Great developers do more then write code (as enjoyable as it is), they write code that does solves
problems for people.

178 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll
Ian Brown, Senior software developer, jack-of-all-trades programmer
Answered Jan 5, 2017
Originally Answered: How can I be a kick ass programmer?
Explore writing your own applications/apps/libraries, etc. - do home projects. Look into
contributing to open source projects. See if you can find other, especially better programmers, to
collaborate with.

Becoming good requires experience, especially across a broad range of environments. Perhaps
you should look for a job that gives you such an opportunity - working for a company that does
development for other companies is a possibility. Looking for places that want people interested
in learning new things is another.

You definitely want to get opportunities to work with more experienced people. See how they
think when they design and code things, and get them to review your designs and code. You can
also get better by trying to help junior developers as this can get you to examine your own style
and tendencies.

510 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Sumeet Katariya, Interned at facebook


Answered Apr 13, 2013
Originally Answered: How can I significantly improve my programming skills in 4 months?
Course Catalog for Free Online Classes
There's a course for every level. If you know the basics of programming and want to learn some
advanced stuff, I especially recommend Design of Computer Programs taught by Peter Norvig!
You design projects/games step by step and he guides you, and you learn new concepts in the
process.
4.8k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll
Nagaraju Vuppala, Software Engineer at eBhashasetu language services pvt ltd
Answered Sep 23
Originally Answered: How can I improve my programming skills?
I will divide learning programming into two:

1. Learning syntax: Syntax would be harder initially. Once you get familiar with any
syntax you can literally play with it. If you practise enough syntax is just like abcd of
programming.
2. Logical thinking: Syntax alone will not make a good program. You need to develop
logical thinking. How would you do it? Write algorithms for the program you make.
First attempt would be to complete the program in whatever technique or logic you
build. Then identify areas where you think you can improve. Break the problem into
smaller chunks and resolve each one and then integrate.
Happy programming.

263 Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Mitesh Mahera, B.E. Bachelor of Technology in Electronics and Communications Engineering &
Embedded Systems, North Mahara...
Answered Dec 30
Originally Answered: How do I improve my coding skills so I can crack company interviews?
You have to prepare well about any language and have to learn that how to use all variables, data
types, functions everything deeply. Firstly study all basic concepts about your choices language
and try to understand that how to use it.

Practice is mandatory in programming languages. Do practice everytime, anywhere. Use logics,


ideas, arithmetic concepts, mathematically etc.

67 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Gaurav Shalin, studied at DAV Public School, Cantt Area Gaya


Answered Jun 21, 2016
Originally Answered: What is the best way to improve ones programming skills?
Start with basic theory.You need not complete the whole theory , with a little bit of theory , jump
on to problems.

Take some really challenging problems and try hard to get results. After a lot of thinking and
debugging multiple errors you may get the output.

Then go through the code again , this time try to use a different logic , syntax or keyword which
will help reduce the number of machine cycles or take lesser memory.

Again go back to books and online resources to learn new disciplines which will make you a
smarter programmer.

Also make a habit to write comments , this will help others or even you understand your code.

The satisfaction you get after getting the correct output of a really challenging problem is just
amazing.

163 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Harpreet Singh, Bachelor of technology Computer Science Engineering


Answered Jul 2, 2017
Originally Answered: How do I develop programming skill?
Start learning syntax and practice as much as you can. Constant practice will create good
programming apptitude. You cannot built programming skills in a single day, you need patience
and steady practice.

Also try Data Structures and Algorithms, this will help you to think in different way

You can start practising from HackerRank, take a 30 days challenge, it will help you a lot.

All the best

89 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll
Sunil Lulla, Software Developer at InterviewAir (2015-present)
Answered Dec 23, 2015
Originally Answered: What are the ways to improve coding skills?
Start practicing regulary...you will be pro in few months.

When I was learning programming websites like codeshef,hackerearth etc were very tough for
me so what I did was. I regularly learn a topic in maths like Pythagoras theorem,distance
between a line etc and I started implementing those topics in programming which was very
helpful for me in programming as well as in maths also.

After that when I get command over some languages I started developing projects for my day
today activities.

In this way I learn programming

366 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Ankit Saxena, Technology, Cricket, Life, Humor


Answered Jan 2, 2015
Originally Answered: How do I improve my coding skills? And get a good foundation in coding?
Its more about "to each his own" style.  Here are a few pointers that I had followed which helped
me in learning. How good am I ? I am really not sure but you can have some takeaways.

1.) Data Structures - Whatever the programming language be , one thing that you will always do
with your code is interact with data in one form of the other. It really helps if you can visualize
how the data is held in particular data structure. 

2.) Manipulating Data Structures - You need to learn various techniques of manipulating data.
There is a reason why all those different type of Sorting and Insertion techniques are taught at
school level.

3.) Do not start with a framework - Learning Python ? do not start with Django, Ruby - not with
Rails , Php - not with CodeIgnitor . Frameworks do things under hood and gives you false
confidence that you know how stuff works. 

4.) Write a framework - What do you do when you learn a new language ? You write a
framework. !
371 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Jash Mota, Pragmatic Programmer


Answered Nov 3, 2016
Originally Answered: How can I boost my coding skills?
There’s just one key here: Practise!

You see, unfortunately, unlike video games, we do not have a power-ups where we can boost up
our skills just by one press of button. Nor do we have cheat codes. Perhaps, that’s what
differentiates real world from the virtual.

Don’t worry if that philosophy made you feel sick! All I want to say is emphasize on practising.
Many researches have concluded that humans learn better by doing. So open up an IDE or text
editor and hit some keys.

However, I'll say that honing your coding skills and landing a good job are two different aspects.
For landing in a good company, you’ll have to focus on building more projects. More and more.
That’s what builds up your profile. Because there’s a difference between mastery and experience.
Making projects will help you gain the latter, which apparently is valued more. So learn the
basics of programming, learn syntaxes for a few languages and finally build projects.
programming languages are your tools. Make something from them!

Hope it helps, to the one who reads!

177 Views
UpvoteDownvote
Share

 
RecommendedAll

Gabriele Marcantonio, Software Developer, Teaches Django Development


Answered Jul 20, 2017
If you mean problem solving skills, it all comes down to practise.

Pick some problems and solve them. If you fail, try again or lower the difficulty. Websites
like LeetCode can help you with this. If you are learning problem solving through your first
programming language, most tutorials should have good examples for you to practise.

There really is no way around practise in this case.


To help you out, you can read a book like “Cracking the Coding Inverview”, where there are
many more examples and data structures explained.

If you want to improve the style of your code, I highly recommend Clean Code, as it truly
shifted mine.

Good Luck :)

129 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Nabeel Khan, worker at India (2001-present)


Answered Feb 13
Originally Answered: How do I improve my programming skills?
1. Practice, Practice, Practice

Firstly you need to build your own confidence in your own abilities. You can only go so far
following along with tutorials online. You need to build something of your own. In many
professional settings you don’t want to reinvent the wheel, but it can be helpful for a learning
exercise. Build your own blog in PHP, build a JavaScript plugin, get a feel for how these things
work, so you’ll have the confidence using pre-packaged applications and plugins in your job. Fail
fast and often.

Don’t feel obligated to finishing your practice projects either if you’ve felt you’ve learnt what you
wanted to, things can get boring if your goal of learning a particular thing has already been
accomplished.

2. Create a Project & Release It

Now you’ve practiced, it’s time to actually use your knowledge and create a project and share it
with the world.

Is it a web site? Is it a mobile app? Is it a Ruby Gem? Seeing people use your code in the real
world gives you more confidence. For my first project I built a Ruby Gem, not because I had any
real use for it but because I saw it didn’t exist yet. I released it and didn’t expect anything of it.
When I got a tweet thanking me for it and it was being used in a production site it gave me a
great confidence boost.

3. Contribute on Github

Contributing to other Open Source projects on Github can be a great way to get additional
experience and confidence. You can learn from other’s code and feedback on your commits.
Your contributions don’t even have to be in code. You can modify a wiki or update
documentation. This shows you understand the code and can articulate how to use it!

Give it a upvote if you find it helpful and follow for more such answers

11 Views
UpvoteDownvote
Share

 
RecommendedAll

Roland Vassallo, studied at University of Houston


Answered Jun 27, 2017
Originally Answered: How do I improve my computer programming skills?
Like anything you skills will improve with practice. That said there are strategies and principles
you can follow to accelerate the development of your skill set. Here are my top 3:

1. Focus on breaking problems down into small pieces and developing incrementally so
you can execute your code often. This allows you to test code and get feedback quickly.
Since you will only add a few lines of code between each execution, it’s easier to locate
errors. Getting a small thing right and seeing your code working acts like a reward and
keeps you motivated.
2. Pair programming - 2 coders, 1 computer. Ask each other questions as you take turns
writing the code to understand the approach. As you explain, you get a better
understanding what you’re doing and why.
3. Learn a new programming language every year. You get to re-visit old concepts and
discover new ones as different languages make some coding techniques easier than
others.
Bonus tip: Prefer writing simpler code over clever code. Code is written for humans to read and
understand, and only incidentally for machines to execute. Writing complex code does not mean
you are skilled.

81 Views
UpvoteDownvote
Share

 
RecommendedAll

Thomas Waugh, Passion of learning never ends!!


Updated Apr 2, 2017
Writing computer programs is a standout among the most flexible skills. From having the
capacity to make organization sites to knowing how to effectively resolve errors, these skills can
be important to yourself from various perspectives. Nonetheless, remaining the way you are will
never give you a chance to be the best Programmer you can be, read on to figure out how to
enhance your aptitudes as a software developer.

General learning of frameworks and languages are essential than information of only

one language. A good programmer knows and is keen on learning diverse
programming languages, particularly if languages are continually evolving.
 Set aside the opportunity to record what objectives the item needs to accomplish, and
who your client base will be. Clearness of thought at this stage will spare a great deal of
time.
 A coordinated effort is critical to creating coding abilities, so jab around other
individuals' code and make sense of what it does. Open source activities can be a
fabulous approach to begin taking a gander at the code that you have not composed as
a programmer.
 Code reviews are gainful for code quality as well as for expert advancement, as it
powers the programmer to consider decisions they are making amid usage.
 Keep keen attention to every thread you write. This will upscale you to a super
programmer and makes you stand out from others. What more, your programs will be
Bug free.
 Think out of box, try indexing or doing hybrid programs, you will get stuck in the
starting. But you will get to try a different way and sure in future you will use the logic
to code.
Ineffectively built code is typically simpler forthright;however, you wind up paying much more
in long haul costs when the code is questionable, hard to comprehend, and costly to
troubleshoot. Thus, make sure you follow all these industry specific guidance.

Finally, get into professional colleges/schools which brings dynamic learning environment. One
such I could recommend is Holberton School.By enrolling there to learn the programming is
one of the best way. Here the curriculum carries a two-year program that includes intense
training on software engineering fundamentals -9 months, internship-6 months, and on-site or
remote study in specialization of your choice. They help you become a complete
programmer.Happy coding and All the best.

411 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Randal Lanning, Computer Programmer for 30+ years.


Answered Jul 9, 2017
Originally Answered: How do I develop programming skill?
With practice. Learn how to do more with less.

Programming takes logic and math. It takes thought, trial and error. There is so much out there
and so many ways and many languages that to be proficient in all of them is pretty much out of
the question.
It depends on what you want to do. Do you want to program 3D games? Business applications?
Medical? Maybe utilities like editors and code libraries?

When I started in 1977 with my first computer, the TRS-80 Level I, Model I with a whopping 4k
of memory, a speed of 1Mhz, and a cassette tape data storage; I learned how to optimize code,
learn Z-80 assembly, how to embed machine code, tighten loops and so-on. Most everything at
that time was written in BASIC. I did later upgrade it to a Level II with 16k.

But I made business applications on a Model III with a 10MB hard drive and 48k RAM. They
worked well considering it all. Programming these days is more difficult although I would have
expected it to get easier over time. There is a lot of hype about OOP (Object Oriented
Programming) which I can and have done. But back in 1981 when I sold my first system, it was
in an interpreted procedural language and worked well.

I guess what this boils down to is that you have to practice. You start programming the simple
stuff and from there you improve on it. Add more stuff to it. One day you’ll find that program is
quite remarkable and you’ve learned so much from doing it.

That’s how I learned and developed my skill set.

115 Views
UpvoteDownvote
Share

 
RecommendedAll

Rahul Chauhan, Web Developer


Answered May 25, 2017
Originally Answered: How did you improve your programming skills?
Do following things, if you want to improve your programming skills.

1. Practice
2. More practice
3. More practice
4. More practice
5. More practice
6. More practice
7. More practice
8. More practice
9. More practice
10. More practice
11. More practice
12. Continue…
Definitely Your programming skills improve in short time.

547 Views · View Upvoters
Upvote6Downvote
Share
 
RecommendedAll

Ian Holmes, Computational biologist


Answered Jun 30, 2010
Originally Answered: How does one improve his or her programming skills?
Find a project that excites you so much you would be happy not eating or sleeping until it's
finished. (Don't actually starve or sleep-deprive yourself. That's just a benchmark.)

For some people this could be a game. For others, a scientific tool, or a web-scraper, or a
program to cheat at FourSquare ;)

Then pursue it...


3.4k Views · View Upvoters
Upvote11Downvote
Share

Louie Dinh
What if you can't pick a project that excites you enough to keep you up at night?

Prashant Vithani, works at Dhirubhai Ambani Institute of Information and Communication


Technology
Answered Aug 20, 2014
Originally Answered: How can I improve my programming?
Thanks for A2A.

Yeah! I agree with Safdar Sulthan Khan, Practice is the most important factor for improving
programming.

 There are many online platforms which are good for programming like Hackerrank, CodeChef,
SPOJ and many more. Just make an account and kick-off from basics.

Best of luck....
307 Views
UpvoteDownvote
Share

 
RecommendedAll
Varinder Singh, Student and Web Developer ! I love to share !!
Answered Feb 21, 2017
“ Practice makes man perfect “

You must practice of coding everyday. Moreover, you can watch online tutorials for improving
your programming skills.

Below are some online tutorial for improving programming skills:

1. Improve your skills in programming


2. Learn all programming skills
56 Views
UpvoteDownvote
Share

 
RecommendedAll

Kavitha K, Digital Marketing (2017-present)


Answered Jul 21, 2017
Programming is one of the most versatile skills on the market in this age. From being able to
create company websites to knowing how to easily fix a redirecting error, these skills can be
invaluable to an employer and yourself in many ways. However, staying the way you are will
never let you be the best programmer you can be. Read on to learn how to improve your skills as
a programmer.must you flow this steps.You Know More Details Visit EnglishIndia.com

1.Analyze the problem clearly

2.Think twice about how to solve that problem.

3.Gather complete requirements

4.Write a thorough implementation plan (or model).

5.Comment your code liberally.

6.Use consistent naming conventions for variables.

7.Practice, practice, practice.

8. Be prepared for change.


35 Views
UpvoteDownvote
Share

 
RecommendedAll

Renjith VR, former Software Engineer - Web and Backend at Mobiotics (2015-2016)
Answered Jan 4, 2017
Originally Answered: How do I develop programming skills?
If you are not good at programming and you want to be a software engineer/programmer, then
you have to practice coding multiple times.

First you need to know how things are working.

For example .

How the IF statement is working?

How While/For Loop is working?

Programming is a step by step process. So write code step by step. First learn the core part
of the preferred programming language. Then try with multiple practices. Don’t skip if you got
some bugs. Try till you fix the bugs. If you fix the bugs, you will get confidence.

Google for good tutorials. I recommend you try with some printed books or online pdfs. Read
and do practice. Don’t copy-paste code.

Then Next step is

Practice coding on Hankerank,Top coder, Codechef.

Then pull some open source code from Github (I hope you know about version control, if not
learn it)

Analyze the open source project . Their coding standard. Their architecture.

Then try to contribute.

All these levels should play with Dev testing and debugging. It is mandatory.

221 Views
UpvoteDownvote
Share

 
RecommendedAll
Shruthi Malligonda, Work, courage and hope, make me good and help me cope!
Answered Jul 15, 2015
Originally Answered: How can I improve my programming skills?
Don't lose hope see Coderbyte | Programming Challenges. This site provides lots of
programming exercises for your practice. Questions here are categorized into different levels
based on difficulty. Register with the site and start coding from beginner level. 
Hope this helps :) 
All the best and enjoy coding :)
279 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Mathangi Venkatesan, I code.


Answered Feb 26, 2013 · Upvoted by Jessica Su, CS PhD student at Stanford
Originally Answered: What are the good ways to improve programming skills ?
Like any other skill, the only way to get better at programming is through practice. Since your
question is in the context of interviews, I am assuming you are talking about a shorter time
frame (than what's required to improve your overall skill level). If I'm assuming right, one
advice would be to code up solutions to as many interview practice problems as you can. Do not
just think of the solution - actually code it up. Then, search on the Internet for the solution and
compare your code with the best result you find on the internet. That way you can evaluate your
code and mark areas for improvement. Also, in the beginning, compile your code and run it on
some test cases you come up with. This will help you write near compilable code in your
interviews.

Good luck !
2.9k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Jose Contreras, works at Texas Tech University


Answered May 22, 2014
Originally Answered: How do I improve my programming fundamentals?
Let's forget online coding sites like Codeacademy for a moment. If you want true fundamentals
and for free, I recommend two: 
Page on edx.org and 6.00x: Introduction to Computer Science and Programming. There are
other courses and feel free to look at them on sites like Coursera and edX. This may seem like a
review but I've learned that there's nothing wrong with going back to learn the core basics.
535 Views · View Upvoters
Upvote6

Ashik Bekal, Believe that Experience teaches better than Academics.


Answered Mar 25, 2015
Originally Answered: How can I improve my coding?

Practice Makes a Man Perfect


.
Long Answer : 
Practice is the constant use of one’s intellectual and aesthetic abilities. Perfection refers to
achieving excellence is a particular subject. Proper planning and practice promotes perfect
performance. Practice is the quality that prepares one for all other qualities. Practice enables
one to avoid errors that were done previously. Practice begins in the cradle and ends in the
grave. Rights from childhood, man practices various activities. Perfection is necessary in every
sphere of life which includes arts, medicine, law, defence, etc. Perfection makes art and
literature survive the tests of time. A person cannot be perfect in every sphere of life. But
repeated practice lessons one’s deficiencies. One should also learn from one’s failures. Failures
are the stepping stones to success. Practice enables a person to reach the heights of success. It
makes a man perfect.
273 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Jalaj Khajotia, An Engineer who loves to share knowledge.


Answered Dec 3, 2016
Originally Answered: How can I improve my coding skills in less time if I am very weak in programming?
Congratulation Pal.! you want to step out from your comfort zone and improve your skills. My
sincere advice to you is as follows-

1. Practice makes a man perfect: unless and until you utilize and practice your skills there is
no meaning to knowledge you have attained so far.

2. There is no shortcut to success: you need to clear you basic fundamentals first in order to
become a good programmer. Take reference of some book if you need one.

3. Ask for help: There is no harm in asking for help or asking to repeat the thing if you have
not understood at first place. Remember the stupidest question is the question that has not been
asked.
4. Repeat step 1 until to achieve your destination.

Cheers! Happy programming.

196 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Anvarzhon Zhurajev, I’m CTO in Tilpy, the marketplace platform for professional photographers.
Answered Jul 2, 2017
Originally Answered: How do I develop programming skill?
Like anything else. By learning and practicing.

If you are totally new to software development, I must warn you that there are millions of
different applications for programming. Programming for mobile is different from programming
for servers. You can call programming writing a simple JavaScript for your Wordpress theme,
and you can call programming creating a brain for nuclear power plant near you.

So, if you are about to dive into the subject, please decide for yourself what is your desired area
and then pick up the skills that are required in this area.

Of course, the theory is the same underneath, and knowing all the algorithms and patterns helps
everywhere. Still, the skills can vary significantly depending on what you want to achieve.

179 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Michael Bryant, Been programming since 2012-ish. Fork me on GitHub!


Answered Feb 23, 2016
Originally Answered: What is wrong with my coding skills?
I'd need a specific example of what you are doing and what kinds of things you are doing to give
more specific advice. As for what you've given, here's what I have to say:

View holes in your knowledge as opportunities to learn, not as failures.

In public school (at least in the United States) there is the lettered grading system: A's are best,
B's are passing with some difficulty, C's are technically passing but with struggles, D's are almost
passing, and F's mean "failure". The problem is not that the student is stupid, but because
he/she needs either more time to learn the material, more practice, or to be taught a different
way. Yet because of the way school is set up, students who don't match the cookie-cutter
expectations are made to feel like failures, regardless of how much effort they put into their
work. (This is a massive generalization but mostly valid).

Rant aside, you seem to be dealing with a similar problem here. It isn't that you suck at coding,
as you can write the pseudocode well, but your knowledge is lacking perhaps on language
features or you missed an odd case. Guess what? This is part of the life of a programmer. You are
always learning new features in a language, or new ways of thinking about something.

Also, in my experience, most of your development time is spent on solving bugs. No one writes
perfect software the first time through. There are always going to be bugs in a program. Even
some coding practice puzzles. I've had to change a couple of things - or even all of my code -
because I missed one out of 15-20 cases. Do your best to write code that covers all of the bases,
but if you miss something, take it as an opportunity to learn, not as a personal failure.

I'm saying this after spending most of my life in utter perfectionism. Even now it's hard to
remember my own advice on viewing things as learning experiences - I see them as failures
instead. But I've also learned that my failures hold me back, they limit me. My learning
experiences, however, propel me forward to a level I hadn't been at before.

So rather than fret over your apparent lack of skill, take the opportunity to learn from your
mistakes. You'll become a better developer and, more generally, a better person.
282 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Darthribs, B.Tech Information Technology, Manipal Institute Of Technology


Answered Aug 11, 2017
Originally Answered: How do I enhance my coding skills?
1. Ability to understand and read code will also enhance your coding skills.
2. Interact with smarter developers (‘smart’ not from an IQ perspective but from an
accomplishment perspective)
3. Participate in dev forums to enhance your knowledge (it doesn’t enhance your coding
skills per se but will definitely help you as a developer)
eg : Hashnode: Premier social network for software developers
4. Contribute to open source projects
105 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
Johnson Thomas, Professional
Answered Aug 21, 2014
Originally Answered: How can I improve my programming?
You want to be a very good coder,learn the syntax of the language go through the documentation
and do lot of practice coding up things.
But if you want to be a very good in solving real world problems using computers in the most
efficient and systematic way learn Algorithm.
There are multiple courses on coursera on algorithms which beautiful explains what an
algorithm is and understand some fundamental things about computational problem solving.

And when I said Algorithm, if the first thing that came to your mind is that stupid boring thing
that you have to do in class before you actually write that simple code you know, Then you
definitely need to look at the courses above.
427 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Harish Swaminathan, 3 years as a Software Developer


Answered Oct 23, 2015
Originally Answered: What are the ways to improve coding skills?
One simple strategy is to look at what others write. 

Make it a habit to pull all the other changes by your team mates when you get in to the office.

If someone has written a good piece of code, take a deep look and follow.

If some has written bad code, drop a polite email to the person saying it sucks.
1.2k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Raj Kumar, Proud Indian, Business Analyst


Answered Oct 12, 2014
Originally Answered: How can I develop programming skills?
Practice makes a man perfect
Keep practicing a lot of problems and it is the logic thinking that may be missing, you will get
the grip once you come across a lot of problems and solutions and then the syntax may go wrong
once in a while so address these problems through rigorous practice.

Talk with your senior or a friend who is a good programmer and observe their style of
programming. You could also take a cue from them although it's not mandatory.

Take online courses as that can transform your luxury time into a productive one. Head to one of
these sites and start learning soon.
Coursera
edX
W3Schools Online Web Tutorials

If you have any doubts in your program then head here


Stack Overflow
396 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Vlad Velici, PhD Computer Science & Deep Learning, University of Southampton (2020)
Answered Aug 21, 2017
Originally Answered: How can I improve my skill set in coding?
I agree with Jason Slavin and Ravi Bhavnani but I would like to add that reading code is
incredibly useful. I’ve said this in a different answer as well.

Just clone a (well known) project off GitHub and look at how it works. I find it best when I look
at libraries or projects that I currently use. Things make sense faster. You learn various tricks
and ways to solve problems that you wouldn’t naturally come up with.

309 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Ronnie Lorenzo Mckinney, Professional Expert


Answered Jan 4, 2014
Originally Answered: How can I quickly improve my programming skills?
As a computer programmer I used different ways to improve my programming skills like reading
and writing code working with experience programmers and reading different blogs and
websites. I have listed some ideas that can be useful for programmers. Practice, Practice,
practice the obvious way to practice is to write programs.

To learn effectively practice, you need to work on things that aren't easy for you. Always create a
schedule or structure that you follow.

After all practice makes anyone perfect. The most important thing is to never stop learning. I
think one should always try to make a conscious effort to improve.

I believe on learning one programming language every year systems as each programming
language changes the way we think about programming.

Looking back at the code you have written on the past and realizing just how bad it was. Pair
programming with other programmers might increase the quality of codes, broadened your
horizons and help you work in as a team member.

And finally, reading and figuring out the code written by different people makes you different.
Write documentation for code written by other people this helps in understanding the way other
people think and program.

Explaining something really helps find the gaps in your knowledge. Get involved with open
source projects there so many resources and projects that have experience software developers
working on them.
1.4k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Raja Nadar, Principal Software Architect at Expedia


Answered Jul 22, 2017
Enjoy it, be motivated & Practice it. A lot.

Like any other skill (cycling, driving, swimming, skating, recognizing side characters from
various TV shows, wine tasting, watching sports and remembering all the stats, organizing your
day, finding out the best prices, mathematics etc.) in life, the skill of programming can be
improved if you have a passion for it, you feel motivated to learn more and you work at it. Keep
practicing it. At some point, a switch happens in your brains, and you start ‘getting it’.

It is like learning music. It is daunting at first, and you have no idea where to begin. And the
neighbors (colleagues) complain a lot. You even doubt if you'll ever grasp it. But if you keep at it,
then one fine day, you just get it. It is just an extension of driving or cycling. And once you enjoy,
keep motivating yourself to read more, leverage other great brains and build upon your
knowledge to keep getting better at it.
208 Views
UpvoteDownvote
Share

 
RecommendedAll

Soumyasree Biswas, Striving not to be a success,but rather to be of value.


Updated Apr 5, 2015
Originally Answered: What can I do to increase his/her programming skills?
Algorithms are very important. When you write a program, if you are a beginner, you will
naturally face some common errors so Google them out to get solutions for them. Remember the
more mistakes you commit the better it is for you. Don't get irritated because it is the mistakes
which makes you familiar with the language and allows you to spend more time with it. and
After repeatedly solving these errors, a time will come when you will get perfect with it. Once
you know one programming language well then it is easy to learn any other language because
now you only need to map the new language with the one you know and learn things like what's
new in it...or why it is better than the one's you know and how it is different from the previous
one.
234 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Emrul Zawad, Bsc Software Engineering, American International University-Bangladesh (2019)


Answered Mar 20, 2015
Originally Answered: What can I do to increase his/her programming skills?
1. Do more practice, practice and practice
2. Start programming in Linux Environment.
3.Solve some puzzled problem
4.take some good course from edX or Coursera - Free Online Courses From Top Universities 
5.stay with Hot Questions - Stack Exchange
624 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
Gopi Vajravelu, Software Engineer in Chicago
Answered Jan 18, 2015
Originally Answered: How do I improve my coding ability?
1. Learn to debug.
2. Get feedback from experienced developers.
3. Build a project from scratch.

I wrote a more in-depth article about how to do these things here: How to Become An Advanced
Developer.
986 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Amit Prakash Pandey, former Software Engineer at Indecomm Global Services


Answered Nov 11, 2014
Originally Answered: How do I improve coding?
Get a computer. Pick a language. Get a book and compiler/interpreter for same.
Start coding. Make your experiments with code. Ask your self why some word or line is there
and what would happen if that word was not there. And you would know its true meaning better
than what's written in any book.

Then learn Algos and try to implement them in language you have learnt.

After than try to make some real working project. Don't worry if you cann't make one on your
own idea, most people don't. So just copy one project from somewhere like GitHub or Google it.
Copy it and understand its working.
But don't stop until you are able to make something working on your own, no matter how small
application it is.
370 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Shreyans Doshi, works at Morgan Stanley


Answered Jan 9, 2015
Originally Answered: How do I increase my programming skills?
Start coding online if you want to be hard-coder on various websites like spoj, Codechef,
HackerRank, HackerEarth, Topcoder, Project Euler, etc. and start participating in competitions.
Or you can go for open source development for an organization. Every open source org. has its
own bug-list page for starters. You can find appropriate mentro also who will help you out if
needed.

Or you can go for app developement for Android/Win/Mac whichever platform you may like.

But remember one thing :


Just do everything. And go in deep if you like it further. Don't say that you don't like it without
any prior experience.
336 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Ridham Tarpara, Software Evangelist | Gamer | Reader | Top Writer 2018


Answered Sep 22
Originally Answered: How do I improve my coding skills?
 Read Good books
 Take part in competitive programming challenges
o https://www.hackerrank.com/
o https://www.topcoder.com/
o https://codility.com/
 Don’t just stop at book programs. try to find real life problems that you can solve with
programming and solve them.
 Read article about best practices, anti-patterns etc for the language you are working
on.
 Start contributing/studying to good opensource projects, the more you will explore
more you will learn
175 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

David Henstock, University - software engineer


Answered Jun 20, 2016
Originally Answered: I have been coding for 2 years but have not seen much progress in becoming better. How can I
become a better programmer?
Have you ever seen those people who are amazing with football tricks? they can flip it onto their
shoulders and behind their head and keep it so it doesn't touch the floor in ages… So how come
they’re not like the best footballers ever?
In my Honest opinion programming isn’t about being the ‘best coder’ it’s about solving
problems.

You could say that people with Asperger Syndrome and Autism are some of the most intelligent
people that are / have been on the planet, Take Sir Isaac Newton for instance. I won’t go into
everything he achieved… but it’s been written that he had incredible difficulties

Newton was very quiet and not very good at ‘small talk’, or typical day to day conversations. He
was extraordinarily focused on his work and had a hard time breaking away. He was often so
focused that he forgot to eat during these times of intense focus. This is a trait very commonly
found in autistic and this extreme focus often blocks out other things that would likely capture
an individuals attention. Newton was not good at keeping or making friends as he did not
appear friendly, nor did he know how to talk with individuals he did consider to be friends.
Newton also relied strongly upon routines. For example, if he had been scheduled to give a
lecture, that lecture was going to happen whether there was an audience or not

While newton now days could probably write amazing code, he might not have been a good
programmer. You need to listen and talk to people and ‘fix’ things that are wrong. There would
be nothing worse than creating what could in some way be the best piece of code in the world
that would eventually be able to solve world hunger or something, and yet it be stuck on your
computer doing nothing. Then when you’re gone and the pc scrapped that code is lost.

So i guess what Im saying is don’t focus on programming as writing code and not seeing results.
See your performance indicators in how many people you have made smile and thank you for
making their life easier.

When people look at your applications and see what they’re made of all they see is tons of
hieroglyphics that make no sense that when you hit runs… makes something amazing happen.
We don’t see it that way, but that’s because we understand…

and please, don’t measure yourself on other peoples coding ability. Everyone does things
differently. You will be envious of some peoples abilities and those same people will be envious
of some of your abilities. We just never make those things known… maybe we should?

103 Views
UpvoteDownvote
Share

 
RecommendedAll

Krishna Agarwal, Software Developer at Quikr (2016-present)


Answered Nov 6, 2014
Originally Answered: How do I improve my programming skills?
Keep on practicing..
Keep Solving problems on codechef , spoj etc.
It will take time to improve ..
Suppose you solved a problem and submitted it on codechef.
After successfully submitting your solution. Have a look at other submissions of the same
problem .
You may find a better approach to problem . Learn from others codes 
But never copy them .
271 Views · Answer requested by Nitin Khare
UpvoteDownvote
Share

 
RecommendedAll

Jonathan Rosca, Software Engineer at I'd Rather Not Say (2017-present)


Answered Jul 20, 2017
I can’t say I’m the most qualified person to answer this - I haven’t worked on large projects for
very long. Expect better answer for senior devs.

I would first make the distinction between

CS knowledge - algorithms, data structures, complexity analysis, discrete maths, etc,



and
 Software engineering skills - writing readable, modular, testable code,
communication, working with many people on the same code-base, using a unix-like
environment, unit testing, deployment and so on.
Both can be thought of as programming skills. The former will be covered in Computer Science
courses in universities, but you can just as easily learn them on your own if you have dedication.

I would recommend the website HackerRank, as it carefully sets test parameters, forcing you to
use appropriate algorithms - you can’t get away with low level optimizations in most cases. It has
a nice in-browser IDE, so you don’t need any tools locally. Some of the more advanced problems
require you to combine existing solutions, and will have you looking at the cutting edge research
- if you ever hit a pay-wall, use SciHub (there is no shame in pirating research papers as the
original authors get nothing if pay for the privilege of seeing their work).

Now for the latter, these skills are most relevant in the software industry. Sadly most CS courses
these days don’t really cover many of these skills. If you are in college, look for an computer
club/society and get them to teach you. I strongly suggest you get acquainted with a unix-like
environment, such as GNU+Linux (Debian, Ubuntu, Fedora, etc) or a BDS (Free/Net/OpenBSD,
Mac OSX, etc) or even the GNU+Linux userland for Windows 10 (terminal only). If you’re not
ready to take the plunge and install it as your OS if you use Windows, you can run an emulator
such as VirtualBox. However, most GNU+Linux distributions will not overwrite your existing OS
and will allow you to dual-boot. If you have a Mac OSX computer, simply open the terminal (get
iTerm2, it’s better) and download Homebrew - it’s pretty much a package manager, like the one
in GNU+Linux.

Learn to use the your shell (bash, zsh, csh, etc), learn to navigate the filesystem, pick an editor
(nano, vim, emacs, etc). Get used to invoking compilers and other tools from the command line.
This is invaluable if you ever find yourself on a remote server, as you usually only get ssh access.
Download the source of the tools you’re using. If there’s something that annoys you, fix it and
submit a patch to the maintainers.

Learn to use git. Take a look at any project that interests you at github. It might not be that easy
to find something to contribute at first.

Have fun.

230 Views
UpvoteDownvote
Share

 
RecommendedAll

John Waugh, Know Java, Javascript, and Lua; and, to a lesser extent, C++, VBA, and Python.
Answered Nov 18, 2015
Originally Answered: How do I improve my coding skills?
Participate in code golf (or other competitive programming challenges). This can help you think
outside the box and encourages you to discover new features of your language or languages of
choice.

And, as a bonus, you get green internet points as well.

Source: Is there a practical purpose behind this site or is it just for fun?
(meta.codegolf.stackexchange.com)
683 Views
UpvoteDownvote
Share

 
RecommendedAll

James Nam, Software Engineer


Answered Aug 26, 2012
Originally Answered: What's a good place to go to improve one's programming skills?
I would strongly recommend Peking Online Judge (http://poj.org/)

There are thousands of algorithmic problems, and you can submit your code. You can
immediately check if your solution is okay or not. Your code should 1) yield the correct output
AND 2) fast enough.

This resource was actually used in one of the Stanford classes (CS 97SI) to teach algorithmic
coding skills. I learned so much from it.
You can use the language of your choice, including C++, Java, Python, etc.

Also, you can gauge how difficult each problem is by reading the statistics - what percentage of
submissions were correct, how many solved the problem, etc.

I hope that helped!


870 Views

Ravi Reddy, Professor, programming since 1983, teaching it since 1996


Answered Feb 6, 2015
Originally Answered: What are some of the good ways to improve programming skills?
Practice, practice, practice!
"I start early, and I stay late, day after day after day, year after year. It took me 17
years and 114 days to become an overnight success."
                                                                                  --Lionel Messi

379 Views · View Upvoters · Answer requested by Swati


Upvote4Downvote
Share

 
RecommendedAll

Vikas Bhandari, Searching for Inner Peace


Answered Apr 28, 2013
Originally Answered: What are the good ways to improve programming skills ?
I think you should clear your concepts first. A person should choose one programming language
and should start from stratch. I think the best way is to do a small online course on coursera.
Since programming is all about algorithms you should join some sites like spoj,topcoder or
codechef and try solving puzzles there. It will increase your level of coding and will give you a
good understanding of algorithms.
885 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll
James Jensen, Four decades programming, 40 years of fun
Answered Jan 9
Originally Answered: How can programmers improve their skill by themselves?
Practice is excellent, but you may wonder exactly _what_ you should practice. For me, that has
always been utilities.

For instance, I wanted to clean up a directory that held hundreds of photos, but only remove the
jpegs, and only those that were older than one year. Yes, I could have gone through the directory
manually or used a tool, but I wrote a little utility that did it for me. The first version of this tool
only printed the files on the console.

Once that was running, I started to add functionality. First, command line parameters. Second,
compare creation dates to modification dates and draw different conclusions (some I edited and
wanted to keep). Third, write a log file of the activity. And so on…

The real learning parts came when I had to figure something out that I had never done before.
Working out the issues on simple tools like the one above adds to your mental toolset, enabling
you to figure things out quicker and write better solutions.

107 Views
UpvoteDownvote
Share

 
RecommendedAll

Shivam Kapoor, Beneath this mask there is an idea, and ideas are bulletproof.
Answered Nov 6, 2014
Originally Answered: How do I improve my programming skills?
There are already many answers to this question with repeated points.But since I'm asked to
answer this question,I'd say, The keyword is Practice.Take out some time from your daily
schedule to solve problems and learn new things.Move from basic baths problems and after 1
year or so start leaning algorithms and their implementations.This is good enough to start
with.Just be regular and you will surely improve :).If you need any help then post on forums,
make friends,discuss with them,participate in competitons regularly.Good luck.
357 Views · View Upvoters · Answer requested by Nitin Khare
Upvote2Downvote
Share

 
RecommendedAll
Kushal Garg, Always a learner!
Answered Jun 18, 2015
Originally Answered: What are the ways to improve coding skills?
The only way to improve Coding skills is to Practise. 

Once you know basics of any coding language, explore all its dats structures and various
utilities. 

To practise, try implementing various algorithms for one particular problem. It helps you to
understand which kind of algorithm is useful according to your program requirement. Whether
your code is Space Efficient, or Run Time efficient, or Easy to debug and vsrious other
parameters.

You can follow various online coding competitions to brush up your skills. 
Having done all this and if you are confident, start contributing in various open source projects
available online. 

Happy coding!
539 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Vikram Garg, Latest motto .. Read and Run ...


Answered Jun 10, 2015
Originally Answered: How can I improve my coding skills?
Read other people's code. I consider it to be very tough but believe me it helps you understand
more. You just need to question (in your mind) why a great programmer "code it like that".  Do
it as a daily exercise.
477 Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll

Prabhu Ramasamy, Senior Analyst at Accenture India (2016-present)


Answered Feb 6, 2015
Originally Answered: What are some of the good ways to improve programming skills?
Make yourself good at Algorithms and Data Structures.
These 2 are the major things that constitute any programming you do. Learn new algorithms,
and analyse how to make it work efficiently and Practice.

Also, check my answer: Prabhu Ramasamy's answer to What is the best site to learn how to
code?

All the best!


287 Views
UpvoteDownvote
Share

 
RecommendedAll

Willard Torres
Answered Dec 16, 2013
Originally Answered: How can I quickly improve my programming skills?
Probably the most common answer is to keep on coding. Reading can help, sure, but nothing
helps you absorb the topic better than actually trying it out.

Don't be afraid to ask help online, or to search for answers. Despite what I said, reading up on
API or documentation can be a big help.

It also depends on what you want to program. Base the stuff you want to learn from that. Want
to make programs that automate actions? Learn how to do that in various ways. Want to make
games? Do the same. Practice it over and over again until you can code a snippet from memory.

It also won't hurt to read other people's code. You might pick up a thing or two from them (but
in the end, its your thing that matters).

Every time you learn something new, though, don't just store it in your database of information.
Use it, apply it in your projects. You'd be surprised to see that almost all of the things you will
learn will have their significance in your work.
1.8k Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Amogh Mannekote, Perspective is everything.


Answered Jan 8, 2015
Originally Answered: How do I increase my programming skills?
Since you've associated a PHP tag with the question, I'll try to be keep my answer specific to
PHP. 

However, keep in mind that PHP is not the most suitable language to learn
programming apart from everyday web development. If you are planning to get
better at algorithms, data structures, and the more theoretical side of
programming, learn a functional programming language (or if you find that to be
too radical, start with Python or Java).

Back to PHP - Once you are through with learning the essentials - setting up your environment,
learning the syntax, and working with databases, start building web applications that need a lot
of server-side intensive code. 

Try building your own chat server, for starters (with just the minimal client side code). In the
process, you'll learn how to manage multiple clients, efficiently manage the requests and
responses (avoid using WebSockets), and also interacting with the DBMS. 

After that, you can move on to more complex applications such as a social game. If you are out of
ideas, you always have GitHub. 

Good luck!
389 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Eric Pepke, Ex-Shybie


Answered Apr 11, 2013
Originally Answered: How can I significantly improve my programming skills in 4 months?
Do something cool!

I usually recommend a recursive-descent parser. Start with a calculator; that should only take a
day or so. Then expand it to a real language, with compiling to a virtual machine (I suggest a
stack machine).

This is very easy and incrementally rewarding. It also will expose you to a lot of things. I won't
spoil the fun for you, but I will say that immediate evaluation seems great until you get to loops,
and then you will wish you had started with a compiler.
1.9k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll
Jacq Meyer, IT consultant
Answered Dec 12, 2013
Originally Answered: How can I quickly improve my programming skills?
Master your own craft. Never rush on being the best on what you're doing. Learn to enjoy and be
passionate of what you have at the moment. You can start from scratch and know what you do
best. It's like creating your very own project and applying the design and structures you have in
mind and then you polish it until you get your desired outcome. You have it in you, you are a
programmer meaning you are already creative in nature so just learn more about it. Resources
are so near and available so never stop learning. Read, learn and then practice. Plus, if you have
seniors that inspire you at work go ahead and mingle with them ask them questions and learn
from them as well. You'll improve if only you are willing to learn and grow more.
2.1k Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Richard Kenneth Eng, Used Fortran, Tandem TAL, C/C++, C#, Obj-C, Java, Smalltalk, Python, Go
Answered Jan 29
Originally Answered: How can I improve my basic programming skills?
I will echo Jan Michael Hitosis’ answer:

Practice, practice, practice.

Practice writing software. The more you practice, the better you’ll become. There really is no
other way.

It’s the same as in other cognitive activities such as playing piano and playing chess. The only
way to improve is through endless practice.

122 Views
UpvoteDownvote
Share

 
RecommendedAll
M.Veera Manohara Subbiah, Developer at Juspay Tech
Answered Feb 28, 2014
Originally Answered: How do I improve my programming skills?
To improve the coding skills first you need to get yourself good in logical skill.
For improving the logical skills try some aptitudes, math logic, etc...   try About - Project Euler 
these would really help a lot....
841 Views
UpvoteDownvote
Share

Abhimanyu Dogra
pursuing*...

Rakesh Naga Chinta, passion and addict of programming and algorithms!!


Answered Jun 14, 2016
Originally Answered: What is the best way to improve ones programming skills?
“Habits are the incarnations of success which occur in minimal prejudice”.

Most of us see the success of an individual but never see to introspect the other side of the story
which deals which hard work,sacrifice ,forming well rounded habits to attain his goal.

Make it a habit to program everyday for at least an hour.

once you get comfortable with your progress gradually increase the time.

With continuous effort you will get to see progress rearrange itself in a rapid and astounding
pace.

tip:

Do the same thing everyday at the same time for 21 days and it become a habit.

I write about programming and computer science,if you follow me I wont waste
your time.

232 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll
Mohamed Nabeel Moidunni, Web Developer or a Learning Web Developer
Answered Nov 3, 2016
Originally Answered: How can I boost my coding skills?
Learn the basic structure of programming languages you like or you wanted to learn. Learn in
such a way that why those particular function or components are used for and what all can be
achieved using the same.

Once you are able to crack that, create your own logic and try to build a small application. Start
from small, that will help you to gain confidence to do more. There is no wrong in googling most
of the stuff but try to avoid that and use your own methods to achieve the same.

Once you are able to solve those problems, eventually you will start exploring most of it. This is
how you choose your favorite area among coding. This will also help in problem solving skills
and also your logical way of tackling issues. This will eventually help you to crack questions
when asked on placements.

34 Views
UpvoteDownvote
Share

 
RecommendedAll

Pankaj Saraf, An Engineer by instincts and an inventor by nature.


Answered Jul 18, 2014
Originally Answered: How do I improve my programming skills?
First get in to the coding .... get your logics come true as a code... 
Then you have to target real time product features, that will significantly improve the
programming skills... 
sometimes, looking at codes already written improve the ability to write your logics and give
your breadth of knowledge of compiler operators, compiler keywords and other fundamentals of
programming languages..
430 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Swapnil Bhargava, Trying to make myself better than I was yesterday.


Answered Nov 6, 2014
Originally Answered: How do I improve my programming skills?
Thanks for the A2A. Follow this link : How do I improve my programming skills?. Read Arun
Venugopal 's answer.
389 Views · View Upvoters · Answer requested by Nitin Khare
Upvote1Downvote
Share

 
RecommendedAll

Jeffrey McManus, Founder/CEO of CodeLesson.com


Updated Oct 4, 2011
Originally Answered: What is the single most effective thing you can do to improve your programming skills?
Identify someone with a lot of experience in the kind of programming you're interested in
learning. Learn from that person.

Don't "just go code something"—that will almost ensure that you will learn bad habits.
1k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Michał Gawlas, worked at Computer Programming


Answered Jun 27, 2017
Originally Answered: How do I improve my computer programming skills?
Practice, practice… PRACTICE.

Try tinkering with things - write small apps or libraries just to experiment, or to address some
mathematic or scientific problem (or assignment) that you have.

The more you do it, the better you will get. Don’t look at it as a chore, but as a challenge. :)

140 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
Akash Gautam, former software engineer at Capgemini India (2016-2017)
Answered Jun 20, 2016
Originally Answered: How do you improve your programming skills?
Programming is not about knowing the syntax of a language, Programming is the ability to
analyze and map problems and then solve it using any programming language. The ability to
solve problems is core of programming and not knowing the syntax although good
understanding of the language makes solving the problems easier. Try to learn as many data
structures as you can as they help in mapping the problems into code . You should also learn
various problem solving techniques like dynamic programming approach, greedy approach etc.
Also remember that problem solving is an art so like any other forms of art like singing or
dancing it also takes time to develop. You can go through the tutorials provided by online coding
sites like hackerearth, hackerrank. There is a section called codemonk in hackerearth where you
will find very good tutorial regarding various data structures and problem solving approaches.
Last but not the least keep practicing regularly with the right approach. Happy coding.

198 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Andrii Borovyi, QA at Darwin's Grove (2014-present)


Answered Dec 17
Originally Answered: How can I improve my programming skills for real world project?
There are multiple ways to improve your skills.

You can pick a book with tasks like Etudes for Programmers byCharles Wetherell.

You can think about the (boring) things you always wanted to fix and finally fix them.

You can enter some programmer games like CheckiO (this one is for Python and

JavaScript, but I believe they exist for other languages as well).
 You can dive into some small open source project or participate in the Summer of
Code.
 Finally, you may attend some online courses on selected topic.
But I believe that own pet project prepares you for real workd project in the best wsy. Because it
is real world project and it is yours project.

96 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll
Dan Paik, Tech Guy
Answered Jan 1, 2014
Originally Answered: How can I quickly improve my programming skills?
Get certified.  Most jobs don't care if you're Java certified or not but going through the process of
studying to get certified will help build your core skills.

It's way too easy to get comfortable in a job and become highly proficient at the codebase at your
work so that you can make enhancements to existing code and fix bugs at your workplace.  If you
continue with this, you will get incrementally better but your skills in other areas that you don't
regularly use in your day to day job will start to deteriorate.

This is why for better or for worse, most of the big names in technology interview by testing your
core skills.

So again, I recommend getting certified and continuing with a certification process to keep your
core skills at a high level.
1.5k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Christian Baune, works at Logica


Answered Aug 21, 2016
Originally Answered: What can I do to improve my programming skills?
Write some Go. Seriously !

Then write some Java. Seriously !

Then some Prolog. Very seriously !

Then some Tersus. Yes, serisously !

Lastly, some R, APL or J. Still that serious !

Come back to PHP, and crush the OOP style.

If you do this over a year, you will have another insight and start to understand the core
principles. What is called “paradigm”.

Now, you will be seriously good !

97 Views
UpvoteDownvote
Share

 
RecommendedAll
Vinay Kumar
Answered Mar 27, 2015
Originally Answered: How can I improve my coding?
Saying is simple but working on it may vary with the think.

First, You need to have a Burning desire. In which all silly reasons which are hurdles to achieve
that desire are to be burnt.

Second, Estimate your level or standard in which you are at coding.


   Staring from basics of coding would better as of my knowledge Sure it will kill your time at the
starting But it will help a lot further.

Three, Take some real-time  examples and work on it by your own.


   When your code fails to work as it should be, don't leave it. Just check why it is throwing
improper output.
   Believe me it will help you a lot.  In Coding most of the features will come out
from Bugs only.

Four, Don't stick to any (one) book which provides Question and Full Coding answer. 

And finally do practice, practice, practice  ..... alot.


149 Views
UpvoteDownvote
Share

 
RecommendedAll

Richard Schneeman, 10+ years Ruby programming (since 2006)


Answered Jan 29
Originally Answered: How can I improve my basic programming skills?
Once you get beyond the intro level programming exercises I recommend getting involved with
open source. If you work with a good project it will force you to exercise muscles that typically
get ignored such as docs, tests, quality commit/pr messages, and general communication.

I run a service that helps people get involved with open source if you don’t know where to
start: Get Started Contributing to Open Source Projects

34 Views
UpvoteDownvote
Share

 
RecommendedAll

Esfera, www.esferasoft.com
Answered Feb 6, 2015
Originally Answered: How do I increase my programming skills?
Practice makes you perfect.. Lets try these steps...
1.Analyze the problem clearly.
2.Think twice about how to solve that  problem.
3. Take the time to write down what goals the end product needs to achieve,  and who your user
base will be. Clarity of thought at this stage will  save a lot of time down the line.
4. Write through implementation plan or model.
5. If you think that your code might need explanation, comment it. Each  function should be
preceded by 1-2 lines describing the arguments and  what it returns.
6.Organize your code. Use visual structures to indicate code structure.
7. Organize your code.
8.Test everything. Start by testing each module on it's own, using inputs and values that you
would typically expect.
9.Practice, practice, practice. Programming is not a stagnant discipline. There's always
something new  to learn, and - perhaps more importantly - always something old to  relearn.
194 Views
UpvoteDownvote
Share

 
RecommendedAll

Guillermo Schwarz, 20+ years developing software.


Answered Feb 23, 2016
Originally Answered: What is wrong with my coding skills?
Your are not giving enough information to know what is wrong with you. How do you know you
are not doing good enough?

How do you expect anyone who doesn't know you to give you advice if you give so little
information?

Maybe you work too much and your brain is becoming dry. Who knows?

Surmenage? Stress? Burned out? Who knows really?

If you think your coding skills are going down, you can try several things:

1. 3 month vacation in the south of France.


2. Get a hot tub and soak in it 20 minutes a day before going to sleep. It feels like taking a
2 weeks vacation.
3. Do excercise for 20 minutes every morning before work. You will feel energized the
whole day.
4. Go home at lunch every day and sleep 30 minutes. You will feel like it is a new day
when you arrive to work in the afternoon.
5. Read books about new libraries and frameworks to learn new ideas.
6. Read books about old libraries and frameworks to learn old ideas.
7. Learn TDD and practice code katas.
8. Read a lot of code to learn new tricks.
The whole point of TDD is that we are not at 100% CPU during the whole day. We can be at 20%
CPU during meetings, or reading and writing documents. So if you code all day, you will drain
your energy, because you are trying to be 100%, but actually during the day you will at 20% CPU
and you will not realize, except that you will write a lot of bugs.

If you practice TDD you will instantly realize you are not making any progress and do something
else.

The next day you will arrive and finish the task that was taking hours in a few minutes.

263 Views · View Upvoters · Answer requested by Theodore Teler


Upvote1Downvote
Share

 
RecommendedAll

Shivakumar Ayyanagowdar, Programmer


Answered Jun 20, 2015
Originally Answered: How can I improve my coding skills?
Practice practice and practice the ideal practices of writing efficient code. Find faster; time and
space efficient ways, find better ways to implement any problem with optimal use of algorithms
and try different variety of problems on codechef, Topcoder, Hacker rank etc portal. 
It's a journey that makes all learning.
151 Views · Answer requested by Isaidhasan Iyengar
UpvoteDownvote
Share

 
RecommendedAll

Dharmendra Prasad, I am a Software Artist


Answered Jun 19, 2015
Originally Answered: What do I do to improve my programming skills?
I have a question. Who certified that you are really bad at programming skills?

Having said that, you can pick up just one beginners book (Complete Reference in Java, or
anything from C/C++). There are plenty of other vlogs (video blogs) which will help you start
and learn programming of your own.

This one is good, but I will still suggest reading one book first.
722 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Jeremiah Pisagih, B.A. Computer Science (2017)


Answered Fri
Originally Answered: How can I get better at programming?
Ah, the old “how do I get better at programming.”

You have to keep coding my friend. Day and Night. Day to Night. You have to go crazy coding.
You have to work on problems and then realize you know NOTHING. Then you must keep
working on the problems.

And then at some point you will truly realize you know NOTHING.

Go to github and read code and try to recreate what you see. Join hackathons and go realize
there are far better and worse people than you out there.

But there is only one advice which a very smart professor of mine gave me:

Code. Code. Code.

Then keep on hacking away at it. Until you become a programmer. Someday. :)

65 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Matthew Bulat, ICT Lecturer at Central Queensland University (2017-present)


Answered Feb 12
Practice, practice, practice.
Try Pair programming. One coder, one quality assurance.

Understand Agile project management often used with software.

Build a portfolio website.

Build a GitHub coding portfolio.

Learn the range of languages/libraries used in your industry.

25 Views · Answer requested by Adebumiti Christiana


UpvoteDownvote
Share

 
RecommendedAll

Umang Maheshwari
Answered Oct 14
There are so many programming skills program in India. India Skill Capital aims to give a strong
platform for improve their skills at centre and state level of India. India Skill Capital as a
platform is really focused on empowering the budding students and candidates & job seekers.
With the assist of this app you will always update with latest jobs in all fields. This is truly very
best app.

Download India Skill Capital app for candidate, employee and job seeker:

India Skill Capital - Android Apps on Google Play

11 Views
UpvoteDownvote
Share

 
RecommendedAll

George Myke, Expert in Mobile Apps Development, Web Design, E-Commerce Portal Development,
Web Development & Enterprise ...
Answered Jul 23, 2014
Originally Answered: How to delibrately practice for improving programming skill?
I think you have to do practice more and more, Follow below points:
 
Start to learn with basic
Refer lots of Book, Available online (Amazon) 
Stick with one language, learn it well.
Read the source code of good programmers/well-written projects on Github.
Learn to document and test your code.
Solve programming puzzles.
142 Views
UpvoteDownvote
Share

 
RecommendedAll

Rahul Gautam, works at Students


Answered Jun 2, 2015
Originally Answered: What should be my perfect road-map to enhance my programming skills during my 4 years of
engineering?
see this:
Anudeep Nekkanti's answer to What was Anudeep Nekkanti's Competitive Programming
strategy to become 35th in Global ranking, in just 6-7 months?
119 Views · Answer requested by Deval Saryam
UpvoteDownvote
Share

 
RecommendedAll

Rick Ramsay, Software Developer 2 years


Answered Mar 20, 2017
Originally Answered: How can I improve programming skills online?
There are many websites like W3 Schools, Tutorialspoint, Treehouse and CodeCademy that will
help you with online learning. There are also bootcamps and college courses you can take online.

learncodinganywhere.com

215 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Ankush Thakur, Impulsive software guy | PHP, Laravel, Python, Elixir


Answered Feb 20, 2015
Originally Answered: How can I improve my programming skills?
Depends on where you are right now. If you know absolutely nothing, you should start with a
simple and versatile language like Python. If you know some C/C++ already, it's time to learn
PHP, etc., and build a web app. If you know PHP, JavaScript and other Web technologies, you
can graduate to Node.js, Scala, Clojure, or even frameworks like WordPress, Magento, etc. So,
let me ask you again: where are you right now?
150 Views · Answer requested by Rahul Sharma
UpvoteDownvote
Share

 
RecommendedAll

Paul Reiber, I like programming almost as much as LEGO


Answered Feb 6, 2012
Originally Answered: How does one improve his or her programming skills?
Think outside the box.   Consider the program you're developing from a holistic perspective.

Consider that it might someday be run in parallel.  Possibly thousands of copies of itself, side-
by-side.  Is there anything you've done in the code that'll make that a problem?  Consider that
this might be done on one server, or many servers in a cloud.  Does that impact what you built?

Consider that it may become part of a larger system, and that larger system might be setup,
installed, activated, then ignored for years and years. Is there anything you've done in the code
that'll make THAT a problem?

Consider the "reader" of any/all error messages, warning messages, etc. that are emitted.  Are
you giving that poor soul enough info to figure out what's really gone awry?

Consider the guy who has to pick up and maintain and improve the code you developed.  Are
your function and variable names (or object and method/member names) short so it's easier for
you to type them, or are they ACCURATE so it's easy for that person to understand what you've
built?

So... to summarize... the best way to improve your programming skills is to become more
considerate.

Manish Mittal, Entrepreneur


Answered Oct 31, 2015
Originally Answered: How do I improve my coding skills?
Everybody is born a coder; you code to talk, to walk, to follow your schedule, you are constantly
coding in mind which way to go what to do next...all that needs effort and planing but your mind
does it so effortlessly that you never observe it.
So the only thing which can help you improve coding is observation, just peep out of the window
and observe the activities/objects more carefully. When your mind becomes apt it will be able to
peel off all the important information from the objects it observes. Have you ever noticed that if
you present an unknown dish to some good chef, he/she by sheer observation will be able to tell
what ingredients and method was used to cook it, and how it can be further improved.

Let me give you one simple exercise before I write off...just try to think and observe why value of
PI is 3.14 with one caveat use google only after exhausting all your other options.If not PI think
of something similar to start with.

All the best and thanks for your precious time.


243 Views
UpvoteDownvote
Share

 
RecommendedAll

Anonymous
Answered Oct 24, 2015
Originally Answered: What are the ways to improve coding skills?
There are some characterics one learn while coding. Let me try to explain, when some one do
programming they learn to be precise. When someone write code and they introduce syntax
errors than compiler finds those issues and over the period of time, programmer learn precise
syntax and that is why I said presion is one characteristic. 

Another characteristic is predictability, where programmer keeps starting predicting of the code
they are writing.

So over a period of time, precision, prediction becomes habits and if you think you can improve
in these, I am sure you can improve in coding skills. Enjoy coding..
572 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Ateendra Gaur, Executive Member of Entrepreneurship Cell , MMMUT (2016-present)


Answered Sep 11
Originally Answered: How can I get better at programming skills?
Have a look at this…ANSWER.
Hope this would be informative for you.

HAPPY CODING :)

163 Views
UpvoteDownvote
Share

 
RecommendedAll

Stephen M. Bear, Writing software and getting paid for it for over 50 years.
Answered Jan 12
A programmer improves their skills by writing programs. To a lesser extent, reading
documentation and reading code, but mostly it comes down to practice. You don’t have to take a
class to do this, or do it as part of a team — just do it.

A programmer should also know how to write tests, documentation, and code reviews. The only
one of those that requires another person is the code reviews; if you’re not part of a team you
should find a friend to partner up with, or join an open-source project.

a2a

572 Views · View Upvoters · Answer requested by Andres Su


Upvote7Downvote
Share

 
RecommendedAll

Palak Dubey, Business Operations Associate at ZS Associates (2016-present)


Answered Jan 8, 2015
Originally Answered: How do I increase my programming skills?
Hello!
Good programming in any language requires to strictly follow some simple things :
1. Whatever programs you make, make it a point to RUN each and every single one of them. This
results in immense amount of learning from our very own mistakes.
2. One you are done with the basic syntax and initial programs, move forward to competitive
coding.

Hope these help.


Thanks and regards.
261 Views
UpvoteDownvote
Share

 
RecommendedAll

Mohit Singh, Btech cs Computer Programming & Computer Programmers, HMR Institute of
Technology and Management, New Delhi...
Answered Jan 6, 2017
Originally Answered: How do I develop programming skills?
First refer a good book of whatever the language in which you want to make programs

Then, practice regularly two hours on pc or laptop by writing small program from beginer level
and then go to advanced level. If error comes in your program then it is good first try to solve if
not possible then refer from book, mentor or friends who know the language

86 Views
UpvoteDownvote
Share

 
RecommendedAll

Manan Gupta, PhD student in Evolutionary Biology | Football enthusiast


Answered Jan 9, 2015
Originally Answered: How do I increase my programming skills?
Like everyone else says, ultimately it falls to just practice. You can make it more exciting by
trying out problems that interest you. I used to make games when I was learning.
185 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Donghun DH Lee, A soul in tension that's learning to fly.


Answered Jan 28, 2015
Originally Answered: How can I enhance my coding skills?
Start making commits to an open source project.

Assuming the project has a community with enough reviewing eyeballs, now you will have to
hold yourself to a higher standard, something different from just submitting functioning code to
HackerRank. 

You will have to read the project's source code thoroughly to understand how the big
components work together, follow the style guide which might be incongruent with your habits
and above all, learn to take in feedback constructively.

That said, it should be all fun. Perhaps Google Summer of Code (GSoC) might be of interest to
you?
574 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Rahul Kumar, Know languages like C,C++ and Java.And oops concept.
Answered Jan 22
Originally Answered: How do I improve my programming skills?
Programming is overrated as the hardest thing rather it is quite easy. The problem is that while
programming we just think too much about the programming not the algorithm ,this makes
things difficult for us. While programming start with basics and always think in your language
how will you tell someone who don't know how to do something and then replace those ideas
with programming concepts. That way you cam create algorithm and once algorithm is created
programming becomes easy.And in beggining you have to practice a lot to develop your thinking
that way. So after a while you will find that algorithm will be created automatically in your mind
when you will see the problem.

61 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Florian Woelki, Student at T-Systems (2017-present)


Answered Dec 1
Originally Answered: How can I develop my programming skills?
Just by practicing.

You need some personal projects, you can test yourself and challenge yourself with different
programming problems.

In addition, you can go to some websites, where you can practice algorithm programming. That
will improve your logical skills and thinking.
Cheers and happy coding,

Florian

59 Views
UpvoteDownvote
Share

 
RecommendedAll

Tyler Johns, Self-taught programmer


Answered Jul 9, 2017
Originally Answered: How can I code better and become a better programmer (regardless of the language)? I’d like to
know how things work and how I can make them better.
Practice like mad.

Whenever you have an idea you want to program, go for it. Even if you have something you leave
in a half-finished state, you still can take something away from it. Try and play with ideas that
push you out of your comfort zone and practice in areas you aren’t entirely familiar with. If you
only know object-oriented and/or procedural programming, try learning a new paradigm, like
functional programming. Never stop trying to push your own limits. Reading can help, but will
only get you so far if you never try testing out your new knowledge for yourself.

217 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Shreyash Oswal, Just a beginner with Python


Answered Jun 20, 2016
Originally Answered: I have been coding for 2 years but have not seen much progress in becoming better. How can I
become a better programmer?
There are two things which make you better in programming or even at any stuff whatever you
might think of.

First is Practice- Try to practice a lot. But in the right manner. Try to start coding using pen
and paper and create layout for the problem and what you will be doing instead of directly
jumping over to the computer. Also try to mentally achieve this habit of problem solving and
thinking how you will solve this problem in codes.

The next thing is Creativity. I really believe that Coding is an art and thats why you are an
artist. 1f you restrict yourself to a small type of problems then you will be master of that
particular problem but achieve nothing else. So try to get inter3esting and new kind of problems
and try to solve them.

So to summarise this I would say - Practice a lot. Solve many creative problems as you can find
them.

Bonus Tip: Try to complete some projects. The scale of project depends upon your skills. From
a fully functional scientific calculator for a beginner to a basic version of Internet Browser. Try
anything you want to begin with.

All the best.

89 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Sameer Vaish, ORACLE PACKAGE SOLUTION CONSULTANT at IBM Global Business Services
(2013-present)
Answered Apr 1, 2017
Originally Answered: How do I improve programming?
When you are saying how to improve i assume you are already aware of programming and like
it.

So if you want to improve it you have to religiously do at least 20 programs per week and start
reading good Algorithms ,networking and data base books.

Implement same and after 6 months you will feel better.

5 Views
UpvoteDownvote
Share

 
RecommendedAll

Şükrü Bezen, Data Scientist


Answered Mar 20, 2017
Originally Answered: How can I improve programming skills online?
If we are talking on the algorithms point of view, I would recommend sites like topcoder,
codechef, hackerrank.
These sites provide competitive programming challenges and tutorials also. One can improve
programming skills a lot through them.

261 Views
UpvoteDownvote
Share

 
RecommendedAll

Mahesh Kanniah, studied at Saraswati Vidyalaya Chembur


Answered May 28, 2015
Originally Answered: How do I improve my coding skills?
1. Use proper convention for naming variables, functions, classes etc.
2. Comment your code
3. split your code into functions and procedures and club them into files of their own.
4. Maintain versioning
5. Make sure you destroy vars/objects when you are done with them. Keep a watch on
memory/cpu usage of your functions.
6. keep a keyword like "FIXIT" and anywhere you have not written a fully optimized code just
comment it with "FIXIT" so you can come back to it later and optimize it.
7. Handle errors gracefully.
208 Views · View Upvoters · Answer requested by Rishabh Mathur
Upvote2Downvote
Share

 
RecommendedAll

Tabraiz Ahmed, i am in this field


Answered Aug 21, 2016
Originally Answered: What can I do to improve my programming skills?
You need to read new techniques and technologies about your programming languages and visit
blogs and read articles about your domain topics.

After learning which are the new trends in industry try to modify your code according to it.

Read about design patterns, best coding practices, pros and cons of different architectures and
find out your business logic requirements, So how you accomplish that with new and
manageable coding practices.

Try to download some other developers code from internet and figure out how they write and
manage it. After writing code discuss it with your seniors and ask theme to advice for better.
80 Views
UpvoteDownvote
Share

 
RecommendedAll

Tom Musgrove, Python, C, and Java (android) developer


Answered May 2, 2014
Originally Answered: Are there any tasks one could complete to improve their programming skill?
Fixing bugs in other peoples programs is one of the faster ways to improve.  Find any open
source project and go to their bug tracker.  Also submitting new features to someone elses
software is also a way to improve quickly - again find an open source project and start
submitting patches.

You can do toy projects - they are mostly useful for getting familiar with particular algorithms -
go to something like hackerrank or checkio.
347 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Bhavesh Kabra, C C++ Java C# Sql Pl/Sql Linux


Answered Jun 2, 2015
Originally Answered: What should be my perfect road-map to enhance my programming skills during my 4 years of
engineering?
Understand and build up data structure knowledge
Try to involve in coding challenges as they will provide puzzle for u to program
Build up strong logic 
Understand through understanding of SDLC software development life cycle
If u have strong logic no one will stop u in coding
140 Views · Answer requested by Deval Saryam
UpvoteDownvote
Share

 
RecommendedAll

Anonymous
Answered Jul 23, 2014
Originally Answered: How can I improve my programming Skills?
Start doing competitve programming on websites like Sphere Online Judge
(SPOJ), Programming Competition,Programming Contest,Online Computer
Programming(Codechef), Codeforces, etc
These sites will really help you in improving ur programming skills.
when you have any doubt ask question on Stack Overflow.
217 Views
UpvoteDownvote
Share

 
RecommendedAll

Mahesh Jagtap, Computer Engineer


Answered Jan 11, 2016
Originally Answered: How should I improve my coding skills? I’m a 3rd year student studying IT and have basic
knowledge in C, C++, Java, J2EE, and html. I'm currently learning CSS and JavaScript. Should I participate with
online contest sites? Which site is the best?
Another good way (apart from those mentioned in the earlier answers) to improve your coding
skills is reading and understanding other people's code.  You can find lots of good open source
code ranging in complexity from beginner to complex level on source code repositories
like Build software better, together , Google Code etc.

Also you can refer to answers to Where do you go to read good examples of source code?

113 Views
UpvoteDownvote
Share

 
RecommendedAll

Greg Fast, currently employed developer


Answered May 26, 2015
Originally Answered: How can I improve my coding skills?
Work as a software developer. And as a follow up: don't let yourself get comfortable in one role,
try to get as much exposure to different parts of the code base as possible.
430 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll
Cooper Pei, Security engineer & Software engineer
Answered Mar 18, 2015
Originally Answered: What can I do to increase his/her programming skills?
Ask him/her to think about any requirement around himself/herself, and try to solve it by
writing a program in his/her main programming language.
I ever attended a boring meeting in collage forgetting shutdown my laptop, so I tried to write a
program with controlling PC remotely.Actually I finished it though email media by
programming allnight.
277 Views
UpvoteDownvote
Share

 
RecommendedAll

Vallisha Prasad, works at SAP


Answered Jan 20, 2015
Originally Answered: How do I improve my coding ability?
Practice.

 Get code quality check from experienced guys. Also, think again to reform your code to align
with best practices. Go through the code that experienced developers have written, this will
teach you about their thought-process.
354 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Advait Ambeskar, studied at Vidyalankar Institute of Technology


Answered Jul 24, 2016
Originally Answered: How can i improve my coding skills?
Go crazy!

The best way to improve is to shred the entire system to pieces and build it all up
again.

I am not joking.
If you say that you wish to improve, I would assume that you already know how to code.

So follow the steps to reaching greater heights.

1. Take a certain programming problem.


2. Sit down and design algorithms (definitive steps that allow you to discern logic) and
then start typing it out.
3. Once you have written a code, run it, re-run it, understand its constraints, develop/
reduce the constraints and improve the features.
Start small. Slowly step to reach greater/ complex problems.

Go online, select an algorithm that interests you. Start implementing it. This is the best way to
improve yourself.

P.S. I apologize that this answer is not properly formatted or written with a structure that I
usually follow. I was traveling when I read this request, and this was the best I could type in,
while in a crowded train. I shall edit it, if need be!

66 Views · Answer requested by Soumya Ranjan Dash


UpvoteDownvote
Share

 
RecommendedAll

Kris Edison Macomb, Programmer


Answered Sep 3, 2013
Originally Answered: What are the good ways to improve programming skills ?
Try these >> Improve Your Programming Skills: By Solving Math Problems and Improve Your
Programming Skills: By Games.
1k Views
UpvoteDownvote
Share

 
RecommendedAll

Jai Prakash Sharma


Answered Jun 28, 2017
Originally Answered: How can I improve my programming skills?
The best way to improve programming skills is practice and practice only. Firstly study a topic
deeply and then solve questions related to that topic. This is for beginning. After some time you
would be able to solve the problem directly without mentioned that the problem is related to
which topic.
You can practive online. There are many websites that provides us online ide and questions to
practice like hakerearth,hackerrank,etc.

71 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Deepak Nema, works at Persistent Systems


Answered Jul 11, 2014
Originally Answered: How do I improve my programming skills?
Being the beginner initially you should focus on algorithms rather than the syntax , for
improving algorithms enhance your logical reasoning capabilities . make the pseudo code of the
program first and then make out the program . it may take time to find the bugs , find correct
result but for sure this will enhance your programming skill . last but most important read the
good programming books like
INTRODUCTION TO ALGORITHMS BY CORMEN,
BOOKS BY YASHWANT KANETKAR , DEITEL ASSOCIATES .
It will give you complete idea of programming.
956 Views
UpvoteDownvote
Share

 
RecommendedAll

Srinjoy Ganguly, IEEE ComSoc Student Member


Answered Dec 3, 2016
Originally Answered: How can I improve my coding skills in less time if I am very weak in programming?
By practising lots of programs you can improve your coding skills.

This question is already being asked on Quora, please follow this link

How can I improve programming skills?

Also check out this link

http://wiki.c2.com/?HowToImprove...

Hope this helps

Thanks
136 Views · Answer requested by Pancham Kumar
UpvoteDownvote
Share

 
RecommendedAll

Simsarul haq Vengasseri, Currently second year Btech student in Computer Science and Engineering
at National Institute of Technology...
Answered Apr 20, 2015
Originally Answered: What can I do to improve my programming skills?
Start solving problems (Mathematical , physical or whatever ... ) 
As Programming is nothing but problem solving. (Programming languages are generally not a
barrier).

Advice : While learning try to follow Straight paths. Shortcuts usually misleads. 

Happy Programming !!!


208 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Kuo Zhang, Phd student, interested in machine learning and distributed system.
Answered Jul 24, 2016
(1) keep thinking before/while you are coding. (try to figure out the best way to solve your
problem)

(2) reading good codes, try to understand why they code that way

(3) keep coding/debugging

(4) master basic knowledge (language, OS, math….)

123 Views
UpvoteDownvote
Share

 
RecommendedAll
Snehil Shrivastava, I love computer science
Answered Apr 20, 2015
Originally Answered: What can I do to improve my programming skills?
1) Coding, Coding and Coding
2) Reading books
3) Contributing to Open Source, Signing-up mailing lists
4) Practising data structure, Algorithms and Design related problems
5) Talking to fellow programmer
6) Reading code
7) Reading good blogs
8) Participating Stack Overflow and forums, Commenting in Blogs
9) Doing code review
10) writting unit test
87 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Debasish Malakar, works at NowFloats


Answered Dec 4, 2014
Originally Answered: How should I improve my coding skills? I’m a 3rd year student studying IT and have basic
knowledge in C, C++, Java, J2EE, and html. I'm currently learning CSS and JavaScript. Should I participate with
online contest sites? Which site is the best?
Coding really depends how good your logic is. Work on your logic making skills. Writing code is
not a big deal if you know syntax and basics about the language. 
As you have placements, for that you need basic coding knowledge but you should be very good
at basics of C , Data structure, Algorithms.
630 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Naveen Sharma, studied Post Graduate Diploma in Computer Applications & Computer
Programming at S S Jain Subodh PG College...
Answered Sep 28
Originally Answered: How can I improve my programming skills? Are there any tips?
1. First of All make strong your basics directly do not jump into making programs.
2. After that try and practice to make as much programs you can.
3. Practice daily, it,s not how much you code everyday it,s how may days you can code
always be consistent and regular.
4. Do not loose hope, if you get stuck this is a programmer,s journey and enjoy this
journey…….
All the Best……….

73 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Jannie Gerber, Delphi Developer and then some...


Answered Jan 29, 2015
Originally Answered: How can I enhance my coding skills?
One good way is to learn by example. Look around on places like SourceForge for good open
source projects and study how they do things. Search for links about optimizations techniques.
Teach yourself more about Logic and Boolean Algebra. On the more hardcore side, study
compiler design and processor design; even some assembler. It will help you understand better
what's going on "under the bonnet". But above all, code - practice makes perfect!
172 Views
UpvoteDownvote
Share

 
RecommendedAll

Srini Vas, Seasoned Open source and ERP Architect


Answered Dec 1
Originally Answered: How can I develop my programming skills?
The best way to improve programming skills is to participate in open source projects, or if you
are new to programming then start at Codecademy - learn to code, interactively, for free and
some MIT open courses for introduction to programming.

Vyas Madhuri
Answered Dec 23, 2015
Originally Answered: What are the ways to improve coding skills?
Coding is like Journey which never ends, but it require some patients and commitment. You just
need to develop habits of reading technical blogs everyday,try to do as more as code. By doing
practice of coding will definitely improve your skills. That is my experience. I hope this will help
you .

12 Views
UpvoteDownvote
Share

 
RecommendedAll

Aman Sharma, BE Computer Science from ITM Universe Gwalior, Sithouli Campus (2020)
Answered Jun 23, 2017
Originally Answered: How can I improve my coding skills and amplitude?
You can check my answer on this same question:

Aman Sharma's answer to How can I improve my programming skills I have just started?

291 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Bill Billson
Answered May 19, 2017
Originally Answered: What are the best ways to improve my programming skills?
By programming.

This answer may sound simplistic or even facetious, but it is not. In my experience, the best way
to learn how to become a better programmer, is by doing. Dig in, get your hands dirty, force
yourself to do things outside your comfort zone, learn new methods, and solve new problems.

Think of a program that would be useful to you personally, or a family member, or colleague,
and try to make it. Have you ever created a back-end for a website? If not, try. Have you ever
created a desktop application that interacts with a database on a remote server? If not, try. Have
you ever coded a simple video game? If not, try.

Think of things you don’t already know how to do, and try to do them. You’ll get it wrong, you’ll
fall into a minefield of bugs, you’ll realise you took completely the wrong approach and should
probably start over. And you’ll learn. You’ll learn tons.

64 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Prateek Jain, works at Ericsson


Answered Feb 5, 2015
Originally Answered: What are some of the good ways to improve programming skills?
1. read a lot.
2. observe what and how others are solving things.
3. discuss more
4. take an existing solution and try to solve it yourself again w/o looking at their approach and
code.

 follow above steps and feel the difference.


132 Views
UpvoteDownvote
Share

 
RecommendedAll

Omprakash Sridharan, B.E Computer Science, Anna University, Tamil Nadu, India (2018)
Answered Oct 1
Practice from the basic problems. Master the important algorithms. Use pen and paper or any
material you are comfortable with to devise your own algorithm by using the mastered ones as
the building blocks. Make mistakes only for learning. And finally it's not wrong for you to refer
for solutions but refer if your can't proceed any further.

141 Views · Answer requested by Nandhini Priya


UpvoteDownvote
Share

 
RecommendedAll

Sanket Doshi, Btech Computer Engineering, K. J. Somaiya College of Engineering (2018)


Answered Sep 29
Originally Answered: How can I improve my programming skills? Are there any tips?
Start competitive programming from sites such as codechef, hackerrank. Take help from stack
overflow and solve all your doubts. And if you can't solve any question read solution and try to
understand how they think while writing the code . And always practice in one language. You
can also learn from geeksforgeeks.

15 Views
UpvoteDownvote
Share

 
RecommendedAll

Chanchal Khemani, former Technology Intern at Barclays Capital, Pune


Answered Aug 10, 2014
Originally Answered: How do I improve my programming skills online?
Start competitive programming online.
Refer Nishant Raj's answer to What is the best strategy to improve my skills in competitive
programming in C++ in 2-3 months? Hope this will help.
331 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Anonymous
Answered Dec 18, 2013
Originally Answered: How do I improve my programming skills?

PRACTICE
There may come lots of good advices- do that , do this!
But the single best advice that i can give you- PRACTICE , PRACTICE, PRACTICE n
PRACTICE!
Pick up your choice of language - select a recommended book ( dont get overconfused with
books-follow one) - watch video tutorials if possible- Keep practicing! Happy CODING!
378 Views
UpvoteDownvote
Share

 
RecommendedAll

Rohit Hegde, studied at Mumbai, Maharashtra, India


Answered Feb 8, 2015
Originally Answered: How can I improve my coding skills?
Participate in code challenges in websites like HackerRank, HackerEarth, TopCoder etc.
Additionally you might want to go through public repositories of well known applications on
Github. With the role of the open source community in shaping these applications, the code
quality will be top notch.
319 Views
UpvoteDownvote
Share

 
RecommendedAll

Anonymous
Answered Apr 29, 2013
Originally Answered: How can I improve my computer programming skills?
This may sound strange, but you should watch people stream from sites like Twitch. There, you
have access to a lot of programmers who are mostly willing to help, and you can also learn better
programming skills and tricks from the person actually streaming.
1.4k Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Rajendra Verma, Android Developers, java developers


Answered Oct 24, 2016
Originally Answered: How can I boost my coding skills?
I boost your coding skill, there are some of the good web sites

1. Hacker Rank
2. Hacker earth
They are two good web site which can hence your coding skill through various hackthon and
practice question.

10 Views
UpvoteDownvote
Share

 
RecommendedAll
Gilbert Duy Pham Doan, Learned basics with Julie Zelenski
Answered Oct 28, 2015 · Upvoted by Jessica Su
Originally Answered: How do I improve my coding skills?
Like your natural language here, English, you should: read, write, and practice programming or
"coding". As a general heuristic, you should read work by the masters, such as that book about C,
or any source textbook by the inventor of such languages. But as a beginner, like reading
Shakespeare or Thoreau, you may need to read more basic texts, like instruction books for a
primer.

Furthermore, you should practice frequently, to ensure that your comprehension is accurate,
and that your program will actually run error-free, if you can identify bugs. Lastly, you should
write about codes too, in plain English, or even talk about them. This will allow you to explain
your codes to people, and not just computers.
363 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Abusayed Pappu, Founder


Answered Feb 24
for improve coding skill you need practice more.

and use those site for improve your coding skills

8 sites for best coding skills for programmers Techills.Net

7 Views
UpvoteDownvote
Share

 
RecommendedAll

Prakash Hari Sharma, Read, Read, Read: Readers are Leaders / Leaders are Readers.
Answered Jun 1, 2015
Originally Answered: How do I improve my coding skills?
For most skills you need to learn, there are four steps that will help  you become an expert. Most
often you will go through these steps in  sequence, yet with iterations up and down the steps on
the way too. Here  they are:
 Learn it
 Do it
 Discuss it
 Teach it

How to Become an Expert Developer


123 Views
UpvoteDownvote
Share

 
RecommendedAll

Roshan Kedar, coder


Answered Jan 9, 2015
Originally Answered: How do I increase my programming skills?
Start developing things which you think are just impossible for you to build. Overstep all the
borders. And close this website and go to stackoverflow, see what real coders are up to.
169 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Santiano Morya, Manager at Bitdefender (2013-present)


Answered Dec 30
You should definitely opt for Internship, Training and Development Program to enhance the
knowledge, understanding, develop logical ethics which automatically boost up your knowledge
in programming skill.

In Internship Program, you can join the live projects through which you will face run time
experience and naturally improve programming skills.

67 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll
Bob Robinson, Project Manager
Answered Aug 22, 2017
It is not possible to master everything in programming. But you can do better than others by
learning something new to help to program better. Refer these 20 tips to Boost Your Web
Programming Skills .

12 Views
UpvoteDownvote
Share

 
RecommendedAll

Saeed Ahmed, works at Altran Deutschland


Updated Dec 12, 2013 · Upvoted by Jessica Su, CS PhD student at Stanford
Originally Answered: How can I quickly improve my programming skills?
First take a deep breath. Don't compete with others. just improve your knowledge by reading
more and more. Be passionate about your work and love your work. Communicate with your
team mates when you get stuck in any problem. ask more and more. Give some extra time at
home for learning. have fun
5.2k Views · View Upvoters
Upvote19Downvote
Share

 
RecommendedAll

Mayank Chutani
Answered Dec 2, 2014
Originally Answered: How should I improve my coding skills? I’m a 3rd year student studying IT and have basic
knowledge in C, C++, Java, J2EE, and html. I'm currently learning CSS and JavaScript. Should I participate with
online contest sites? Which site is the best?
Just read basics of computers for your placements.. 
If you are good at C then go for implementing data structures and algorithms through it. Try
some coding platform like codechef to learn better. 
Read database and networking side by side and since you have 8months,make a solid project.
375 Views
UpvoteDownvote
Share

 
RecommendedAll
Arjun M Das, Anything small s always precious.....oh crap!!!
Answered Dec 1, 2014
Originally Answered: How can I improve my computer programming skills?
I think I have already answered a lot of similar questions. Anyway, sharing a link that might help
you:

http://discuss.codechef.com/ques...

I am just copy-pasting from another answer of mine.


290 Views · View Upvoters · Answer requested by Sanjeet Kathuria and Roshini Ravishankar
Upvote1Downvote
Share

 
RecommendedAll

Parikshit Jalihal, studied at V B Darbar Junior College


Answered Dec 19, 2015
Originally Answered: What are the ways to improve coding skills?
You should be perfect in the following concepts

1) Basics concepts like variables,conditional statements,

2) Follow the coding standards. You can use  the following link for coding standards

Google's Java coding standards

1 View
UpvoteDownvote
Share

 
RecommendedAll

Praveen Alwar, studied at Maharishi Vidya Mandir, Hosur


Answered Jan 8, 2017
Originally Answered: How do I develop programming skills?
Here, check ou this;

Top 10 Programming Langs


All the Best!

80 Views
UpvoteDownvote
Share

 
RecommendedAll

Aryan Sharma, worked at Apple


Answered Feb 20, 2017
You can try simple questions first moving towards harder. You must be focused and try to solve
questions as fast as you can, this will boost your confidence.

I will prefer you Codecademy for better results. I am impressed from it, you must also try it
once.

56 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Entiol Liko
Answered Jul 21, 2017
Practice.

If you know a programming language you should just start practicing. Start different projects.
Anythink you can think, you can do somethink you have always wanted, you cn do somethink
that would help you in your everyday life etc. The most important think is to always practice,
also continue reading books, not only for you language but also for algorithms and different
concepts.
How do I learn competitive programming as a beginner?
This question previously had details. They are now in a comment.
Answer
Request
Follow1.4k
Comments4
Downvote
Share

95 Answers

Saif Quraishi, American | Harvard Graduate | Idea Machine


Updated Jan 26, 2016
The bearded man next to me, 32 years old, 190cm tall and strong enough to break me in half
turned red like a volcano. I froze like a squirrel caught stealing nuts. He dropped his controller
on the floor. The whole room went silent. Everyone stared. He walked out the door and his
girlfriend called after him, "Jeb...wait!"

I started playing video games when I was about 8 years old. My aunt purchased a Super
Nintendo console for my birthday. I never tired from the fun filled adventures on the screen. It
transported me to a world outside the domesticated, friendless, public-school life I lived. I
played with my neighbors. I played with my cousins. I played mostly by myself.

I liked winning, probably because I was a geek, a no-life, loser by my peers' standards. When
Super Smash Bros. was released I played against everyone. I lost much more than I won. I still
play the newest version and compete in tournaments.

Getting to world class, competitive level in a mind sport takes two things. Take chess for
example. James Altucher, a chess master, explained that you need to focus on repetition and
work slowly to succeed. This is because of the way human neuro-biology works.

Laszlo Polgar, despite knowing little of chess, decided along with his wife that they would run an
experiment with the raising of their kids. They had 3 girls. All 3 of them became known as some
of the most talented chess players in the world. This was no coincidence.

Polgar collected the games of the chess grandmasters of the past and put together a list of the
critical game moves. He put them in a book called Chess: 5334 Problems, Combinations and
Games. Importantly, he organized the problems by type. He says to move quickly. Fail fast. Try
to solve each problem in minutes or else see the answers in the back of the book. The way to get
really good is to master all of one type of problem at a time. Then move on to the next type of
problem. Malcolm Gladwell says you need 10,000 hours to become a master.

Additionally, try to learn in an "error-free" manner. Work slowly. Figure out every individual
variable in the problems when you practice. This way you don't make mistakes or pick up bad
habits. This is the technique that made some of the best violin players in the world at the famous
Meadowmount Music School. There, students are said to master pieces of music 500% faster
than other students.  

Competitive coding tests problem solving in two areas, constructing an efficient algorithm, and
implementing the algorithm in a suitable programming language.

First figure out all the elements that you need to learn. Master combinatorics, number
theory, graph theory, geometry, string analysis and data structures.

Find a way to practice. For example, find a book of problems used at these competitions. Or
create your own. Organize them by problem type. Work quickly and check your answers if you
can't figure out the answer.

Most importantly, make a plan leading up to the tournament. Break it down into monthly and
weekly goals that you need to accomplish in your routine.

Also, get a coach or mentor if you can. It will help keep you motivated. It will help you improve
faster. Your coach should be able to see what you are missing and tell you what you need to do.

The next step is the mental game. The top athletes in the world are cold hard killers. They are
not only in optimal physical health. They also need to maintain their emotional health.

A technique used by Olympic coaches goes like this. Imagine yourself winning the competition
of your dreams. What does it feel like? What are you thinking? What is the environment like?
What are the people around you doing?

Remember what success feels like to you. Never let it go. Work through the hard days. The
universe will help you succeed.

But make sure the sacrifice is worth it.

53.5k Views · View Upvoters
Your response is private
Is this answer still relevant and up to date?
YesNo

Upvote343Downvote
Share

 
RecommendedAll
Raymond Deng, studied at Udacity
Answered Jul 8, 2016 · Upvoted by Abhishek Pratap, ECE undergrad ,IIT-R and Kiran Kannar, CS MS student,
University of California San Diego
Originally Answered: How do I learn competitive programming?
Here’s a basic road map for improving your competitive programming skills:

1. Find a concept that you don’t fully understand (e.g. dynamic programming, Kruskal’s
Algorithm, lazy segment tree propogation, etc).
2. Do some research to understand the basic idea of a concept. (e.g. Greedy algorithms:
solve sub-problems by always picking locally best option).
3. Solve problems on online judges.
4. Repeat step #3 until you feel confident that you can solve that kind of classical
problem.
5. Repeat 1–4.
Here are some tips:

practice daily. Your skills will fade if you take a hiatus from practicing for more than a

few days.
 try really hard not to look up the solution. Once you look up the solution, the struggle
of figuring out the problem is gone. It’s in the struggle where you usually learn. If you
can’t solve it right now, think about it for half an hour and then come back to it
tomorrow. Solve an easier problem.
 books can help provide a “curriculum”. Competitive Programming by Steven and Felix
Halim are popular. I worked through the first edition and can testify that it helped me
immensely.
Here’s a picture of programming Jesus for good luck!

223.8k Views · View Upvoters · Answer requested by Jacob Francis G. Meimban


Upvote2kDownvote
Share

 
RecommendedAll

Hari Palappetty, Amateur/Hobby Programmer


Answered Jun 6, 2016
Originally Answered: How should one learn algorithms for Competitive Programming?
First do a self analysis (truthful) - don’t assume you are the best or the worst.

List the areas to improve,

 Language skills - C++/Java


 Math skills
 Data structures - including the tough ones Trees, Graphs etc.
Algorithms (not just simple sorting, but advanced ones that’s required for competitive

programming).
Once you have a fair idea, then start work - be humble enough to admit you do not have the
skills of Anudeep Nekkanti or Ashish Kedia at the beginning.

Keep a small goal to solve enough Div-II 250 problems without peaking into solutions, then 500
pointers, and then 1000 pointer in Div-II. During this process, you can learn and improve your
skills in implementation, solving and speed.

The process will be slow and may take up to 2–3 years, be patient and measure growth in each
step. As you slowly climb the steps, your confidence will improve and one day can be among the
top programmers. The most important point is to not loose patience, and when you do take a
break and come back stronger.

Some things you could do are read/ view/study the following,

Mathematics for Computer science (MIT OCW)



Stanford - Algorithms I & II - Coursera - Free Online Courses From Top Universities |

Coursera
 Introduction to Algorithms - CLRS
 Concrete Mathematics by Graham, Knuth & Patashnik.
This should be more than sufficient to start with and reach a level above average programmers.
Be patient while reading these books, as they are little difficult to understand and learn. Try
reading multiple times - if you did not understand the content.

19.9k Views · View Upvoters · Answer requested by Trilok Reddy


Upvote93Downvote
Share

 
RecommendedAll

Kaushik Raina, Solved around 400 questions from codechef, Interviewbit etc
Updated Jan 23
Let me explain this to you in SIMPLEST WAY POSSIBLE.

If you follow this guide you could clear any Competitive Coding Examination.

Step 1 :- Learning The basics (Should take 2 months maximum)

First you need to get your basics clear . If your basics are clear then you could easily score a four
star at codechef

 Basics :
o Data Structure :- Following topics must be clear before going to Advanced.
 Array
 Stack
 Queue
Linked List

Binary Tree

Binary Search Tree

Algorithms
o
Analysis of Algorithms

Searching and Sorting

Divide and Conquer

Pattern Searching

Advanced

Data Structures
o
Heap 
Hashing

Graph
Trie (Important for codechef)

Segment tree(Important for codechef)

Fenwick Tree

Algorithms
o
Greedy Algorithms

Dynamic Programming

Backtracking

Bit Algorithms

Graph Algorithms

Important Note: Practice all above topics from HERE.

Step 2:- Keep practicing

Follow in below Sequence

1. InterviewBit(Just follow this to clear any interview)


2. GeekforGeeks (100 Questions Medium)
3. HackerEarth(Specially Trie,Segment tree)
Step 3:- Now to make Your coding best keep practicing from codechef competitions as much as
you can.

do upvote the answer if you like it.

References :

1. GeekForGeeks
2. Hackerearth
3. Interview Bit
NOTE:- To get started from learning C++ checkout below link.

Kaushik Raina's answer to How can I become proficient in C++? I am a complete beginner and I
aim to perform well at coding competitions in the next 4-6 months.

Happy Coding :)

2.9k Views · View Upvoters
Upvote95Downvote
Share

 
RecommendedAll
Anubrata Bhowmick, works at Tata Consultancy Services
Answered Nov 25, 2015
If you want to get started with competitive programming, I would say, start practicing. No books
can give you the practical knowledge that you need. Get started with coding in websites
like Sphere Online Judge (SPOJ) , Programming Competition,Programming Contest,Online
Computer Programming (Codechef) , Codeforces , HackerRank , HackerEarth - Programming
challenges and Developer jobs . 
These are some good websites where you can practice and gain sufficient knowledge about
competitive programming. Solve problems . Check out the codes of people who have solved the
problems more efficiently or in a different language. 
Once you are done with these,
participate in competitions on Codechef and Codeforces. Codechef has awesome competitions
which will give you the edge you want. Then when you feel confident enough, move over
to topcoder where you can take part in some serious programming and some mad skills of
programmers worldwide. 
Also take part in competitions which you might stumble upon here and there and take part in
college fests and so on. 
C++ is the best when it comes  to competitive programming. Learn about the STLs before you
get your hands dirty with coding.  
When you can't solve a program, just google about the solution. Be active and be persistent. It
can't happen in a day or month. It will take years of practice! :)
Once you are good enough or you feel confident enough, join 
Indian Programming Community ( Log into Facebook | Facebook ) which is owned by the
great Anudeep Nekkanti . And if you really want to consult some books, go through Cormen's
algorithm book, which is a great book for gaining knowledge on Algorithms.

Edit 1
Also follow Stack Overflow daily! It's a wonderful platform for programmers. :)
20.7k Views · View Upvoters
Upvote126Downvote
Share

Pranav Kastury
You've provided a good answer....

Suchith Javagal (ಸುಚಿತ್), I did competitive programming for some time.


Answered Feb 12, 2017
Here is a step by step procedure. Some of it can/should be done in parallel.
1. Learn a subset of C++. In Ubuntu, the compiler g++ is already available and if are
using latest version then it also supports C++11 and C++14 standards. Use them. Some
features make your life very easy. You don’t need to learn about Object-Oriented
programming features like classes, inheritance, constructor, destructor etc. You may
not even need to learn about templates although they are quite interesting. Think of it
as enhanced C.
2. Learn STL - Standard Template Library in C++. It contains implementation of
commonly used routines like sort, searching - both linear and binary searching, data
structures like vector, linked list, set, map etc. THIS IS VERY IMPORTANT.
3. Learn discrete mathematics, data structures and algorithms - Start from the
basics and learn them RIGOROUSLY if you want to become a red coder. Your
foundations should be solid. Buy “Introduction to Algorithms” [CLRS] (Yes. Buy it. It
is worth the money). I recently wrote an answer about it - Suchith Javagal (ಸುಚಿತ್)'s
answer to How do I start learning or strengthen my knowledge of data structures and
algorithms?
4. Practice, practice and practice - I know that this is a cliche. But there is no
shortcut. But you might ask how to practice? I think you already know about sites like
Codechef, Hackerrank, Codeforces, SPOJ, TopCoder. In SPOJ, solve 200 to 300 most
solved problems. It will teach you the concepts which you haven’t learned in the
previous step. In Codechef, start from the Beginner section, move to Easy, once you
are confident try Medium and Hard. In Codechef and Hackerrank, editorials are pretty
good. If you are stuck, read, understand and implement the ideas mentioned.
5. Participate in contests and “upsolve” - Participate in lot of contests conducted in
various sites, be it Codechef’s monthly contests, Codeforces’ regular contests,
Hackerrank’s Week of Code, 101 Hack, Hour Rank, World Codesprint, TopCoder’s
SRM. Don’t bother too much about ratings - remember that it is just a
number calculated by some formula. I have seen some people giving up after
their rating crashes. I was one of them for some time. Read the editorials or others’
code for the problems that you couldn’t solve. Learn the ideas involved and implement
on your own. This is called “upsolving” and it is very important.
6. Don’t look for a silver bullet and never stop learning - It doesn’t exist. You
have to continuously learn new concepts and update yourself as you climb the ladder.
You should also sharpen your discrete math skills besides programming. Remember
that competitive programming is all about algorithms, data structures and discrete
mathematics. You have to learn plenty of things on the fly. You will experience this if
you participate in Codechef long contests. The last few questions are terribly hard.
Good luck to our future “Legendary Grandmaster” :)

Edit: Resource for Discrete Mathematics


MIT OCW - Mathematics for Computer Science

9.1k Views · View Upvoters
Upvote64Downvote
Share

 
RecommendedAll
Mohd Salman, Student at Motilal Nehru National Institute of Technology, Allahabad
Answered Jun 6, 2017
This post has been taken from the blogpost of Triveni Mahatha . Here are some steps to get
started and be good at it.

 You will need to show motivation.


 Languages that should be used
o C/C++/JAVA (your choice)
o We will focus on C++, JAVA is slow (one big advantage of JAVA is Big Integers, we
will see later)
o C++ is like superset of C with some additional tools. So, basically if you have
knowledge of C, you are ready to code in C++ as well. Otherwise go back and learn
how to write codes in C/C++
o Sometimes knowledge of PYTHON is helpful when you really need big integers.
PARTICIPATE PARTICIPATE PARTICIPATE (the only mantra)

 SPOJ: Its a problem Archive (recommended for all beginners


o Start with problems having maximum submissions. Solve first few problems (may be
20). Build some confidence. Then start following some good coders (check their initial
submissions). Then start solving problems topic wise
o Never get stuck for too long in the initial period. Google out your doubts and try to
sort them out or you can discuss with someone (ONLY IN THE BEGINNING).
o Before getting into live contests like codeforces or codechef, make sure that you have
solved about 50-70 problems on SPOJ.
 CODECHEF: Do all the three contests every month. Do participate in CodeChef
LunchTime for sure.
o Even if you are unable to solve a problem do always look at the editorials and then
code it and get it accepted (this is the way you will learn).
o And even if you are able to do it, do look at the codes of some good coders. See how
they have implemented. Again you will learn.
o Same point apply to TopCoder and Codeforces as well.
 Codeforces: 4 to 5 short contests of 2 hour in a month (Do them once you develop
some confidence).
 TopCoder: Once you have proper experience and you can write codes very fast.
Online Programming Contests:

You write codes and submit them online . The judge runs your code and checks the output of
your program for several inputs and gives the result based on your program’s outputs.You must
follow exact I/O formats. For example, do not print statements like : “please enter a number”,
etc :P

Each Problem has constraints:

Properly analyse the constraints before you start coding.

 Time Limit in seconds (gives you an insight of what is the order of solution it
expects) -> order analysis(discussed later).
 The constraints on input ( very imp ): Most of the time you can correctly guess the
order of the solution by analysing the input constraints and time limit .
 Memory Limit ( You need not bother unless you are using insanely large amount of
memory).
Types of errors you may encounter apart from wrong answer :

Run Time Error (Most Encountered)



Segmentation fault ( accessing an illegal memory address)
o
You declared array of smaller size than required or you are trying to

access negative indices .
o Declaration of an array of HUGE HUGE(more than 10^8 ints) size -_- .
o Dividing by Zero / Taking modulo with zero :O .
o USE gdb ( will learn in coming lectures )
 Compilation Error
o You need to learn how to code in C++.
o USE GNU G++ compiler or IDEONE(be careful to make codes private).
 Time Limit Exceed (TLE)
o You program failed to generate all output within given time limit.
o Input Files are not randomly generated , they are made such that wrong
code does not pass.
o Always think of worst cases before you start coding .Always try to avoid
TLE.
o Sometimes a little optimizations are required and sometimes you really
need a totally new and efficient algorithm (this you will learn with time).
o So whenever you are in doubt that your code will pass or not .Most of the
time it won’t pass .
o Again do proper order analysis of your solution .
Sometimes when you are stuck . Check the running time of other accepted codes to
take an insight like what Order of solution other people are writing / what amount
of memory they are using.

4 MB ~ array of size 10^6 . Or 2-d array of size 10^3*10^3

Standard Memory limits are of Order of 256MB

Ord...

(more)
Upvote88Downvote
Share

 
RecommendedAll

Robin Singh, B.Tech Mechanical Engineering & Minor in Computer Science and Engineering, Indian
Institute of Technology ,...
Answered Dec 9
First, learn any programming language, preferably C++.Then Start Competitive Coding on any
of the coding forums like hackerrank. You can also try SPOJ but don't forget to sort it first
according to no. of submission.After doing basic implementation which does not require any of
the standard Algorithm knowledge,learn STL. I am suggesting u to implement problems without
using STL initially as it will improve your low level implementation skills and u get to know how
things work.You can learn STL easily by reading blogs of topcoder, hackerearth and YouTube.

After that, learn Data structures and Algorithms. You can get a list of most used data
structure,algorithms and graph theory in competitive coding on codechef discussion. Just google
it. You will also get the reference from where to learn. (Topcoder link may not work in that blog,
google it separately).Also,CLRS is the bible of DS and Algo. Refer it wherever necessary. The
best way to learn is to practice problems and whenever u come across a new concept which u feel
u don't know it,learn it at that time only. Because u don't realise the importance of anything
unless it's necessary and required.

Jump to Codeforces and Codechef. Start practicing. Solve div 2 A and div 2 B problems in
Codeforces initially. Now, Start giving Contests on both codefirces and codechef. After
contest,read editorials and try to implement problems u couldn't solve.If u still can't ,see the
solution and then try again. Warning: Don't just copy and paste. I repeat Never.This goes into ur
temporary memory unless and until u write ur own code.If u understand the solution, try to
implement it by urself. Already told u if there is any new concept, try to learn it first. Nothing in
this world u can't learn by urslef. Google and YouTube are ur best friends. Start giving the
Contests seriously. Believe me it will do wonders in your life. Last but not the least keep
patience.U can't be a great coder overnight.Learn from failures.I hope by this time u would have
come far enough to decide what to do next.

Happy Coding! :)

532 Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll

Sandeep Kumar, Training programmers in all age groups - Kids, Young and Old age
Answered Jul 23, 2016
Most useful resource to help you fulfill your wish is —- Competitive Programming (Competitive
Programming 3 Book). It comes from HORSE’S MOUTH, from people who have been winners,
problem setters and mentors to many other budding contestants.

Along with the book, One thing that’ll be more essential to have is a COACH or dedicated TEAM
MATE if you want to have higher chances of success on this wonderful journey.

We’ve an INSTRUCTOR LED getting started course on this path in case you might be interested
in taking that up… Data Structures and Algorithms Training

In any case, Wish you Good Luck!

5.3k Views · View Upvoters · Answer requested by Qamar Ahmad, Poonam Suryavanshi, and 1 more


Upvote9Downvote
Share

 
RecommendedAll
Avnish Yadav, From 1996
Answered May 10, 2016
Originally Answered: I am new in competetive programming, how should I start?
The Learn to Code movement has picked up momentum worldwide and that is actually a good
thing as even basic programming skills can have a major impact. If you can teach yourself how
to write code, you gain a competitive edge over your peers, you can think more algorithmically
and thus can tackle problems more efficiently.

The Best Sites to Learn Programming

If you are ready to take the plunge, here are some of the best websites that offer courses in a
variety of programming languages for free. I have also added a list of companion ebooks that
will give you a more in-depth understanding of the language and they don’t cost anything either.

JavaScript

Code Academy, Learn Street,Code Combat, Code Avengers

Eloquent JavaScript,JavaScript Guide,Speaking JS, JS The Right Way, Oh My JS,Canvassing

HTML & CSS

Code Academy, Don’t Fear The Internet, Tutsplus, Learn Layout, A to Z CSS, Dash, Web


Accessibility, The Hello World,Khan Academy, HTML5 from Scratch

Mozilla, Dive into HTML5, 20 Things I Learned, HTML Dog,HTML & CSS,HTML5 for


Designers, DOM Enlightenment, HTML Canvas

jQuery

Code Academy, Tutsplus, Code School

jQuery Fundamentals,Learn jQuery

Python

Code Academy, Google, Learn Street, Python Tutor,IHeartPY

Python for You and Me,  Dive into Python, Learn Python the Hard Way,Think Python, Python
for Fun, Tango with Django,Django

Ruby & Ruby on Rails

Code Academy, TryRubyCode Learn, Railscasts, Rubymonk,Learn Street


Why’s (Poignant) Guide to Ruby, Learn Ruby the Hard Way, Learn to Program, Learn Rails by
Example

PHP

Code Academy

PHP Programming,Practical PHP

Also see: How to Learn Regular Expressions (RegEx)

Google Apps Script

Getting Started, Office Hours, Google Scripts Examples,Learning Apps Script

WordPress

Treehouse, WordPress TV

Linux & Shell Scripting

Stanford.edu, Explain Shell

Conquer the Command Line

Node.js

Nodetuts, Node School

The Node Beginner Book,Mixu’s Node book, Node Up and Running,Mastering Node.js

Angular JS

Code School, Egg Head, Learn Angular

Angular JS Tutorial,Thinking Angular,Angular Tutorial, Getting Started(Adobe)

Also see: Learn Touch Typing & Code Faster

Git (version control)

Code School, Git Immersion,GitHub Training, Udacity

Pro Git, Learn Git, Gists in Github

Objective-C (iOS & Mac)

Code School, Stanford, iTunesU

Chrome Dev Tools

Code School, Dev Tools Secret, Chrome Dev Tools Tutorial,Udacity, Building Browser Apps


Go Language

Golang.org, GopherCasts

Programming in Go, Go by Example, Learning Go,Building Web Apps with Go, Learning Go

Java

Learn Java, Coding Bat, Java Udemy, Learneroo

Programming in Java,Thinking in Java, O’Reilly Learning Java, Think Java,Java & CS, Java for


Python Devs

Android App Development

Udacity (Google Developers), Coursera, The New Boston,Google University,App Development


Essentials, Code Learn,App Inventor(Visual)

D3 (data visualization)

Data Visualization for the Web, Dashing D3, D3 Tips & Tricks

Also see: Learn VIM, the text editor for programmers

SQL (Databases)

SQL Zoo, SQL @Stanford, Essential SQL, SQL for Nerds,Intro to SQL, SQL Bolt, PHP & MySQL

1.9k Views · View Upvoters
Upvote14Downvote
Share

 
RecommendedAll

Yushi Wang, Former comeptitive programmer


Answered Nov 29, 2015
In short : practice make perfectness. 

 You should try to practice the competitive problems which are beyond your ability or
knowledge but no more than a lot beyond your ability.  For OJ, I
recommend HackerRank or Topcoder since on these site, you can review other
programmer's code or solution.
 Find some descent algorithm books to learn(CLRS for example), but do not only read
the book, keep practice during the process. You can find problems of the topic you're
reading to practice. On hackerrank, this is easy, since they already classify the problem
by topics.
 Learn math, especially discrete mathematics. I recommend the book "Concrete
mathematics"
 Solve, review, solve review, repeat this process
 Prepare your coding library from the start, try to review your library once in a while
 Find some persons with the same passion as you to form a team, go along the way
together since ACM-ICPC is a team contests. And encourage each other. 
 Finally, and most important one: Have fun, avoid over training. If you find it is tired to
train, drop it, play with friends, find a girlfriend, do some other things. And then
returned with passion and energy again.

You can read the story of the most successful topcoder Petr(The Story of Petr Mitrichev - Target
in Six Steps) to find some keys to success in competitive programming.
10.7k Views · View Upvoters · Answer requested by Santhosh Sunny
Upvote36Downvote
Share

 
RecommendedAll

Mostafa Saad Ibrahim, ACM ICPC World Finalist, Problem Setter, Coach
Answered Sep 28, 2016
Originally Answered: How do I master competitive programming problems as a beginner?
In my training sheet, you can follow problems/topics to do/learn. You may go with it. Feel free
to see editorials when fail and learn from your mistakes.

Junior Training Sheet - template - v3.1

This list has a good compilation: lnishan/awesome-competitive-programming

2.7k Views · View Upvoters
Upvote16Downvote
Share

 
RecommendedAll

Gaurav Sawant, Pune Institute of Computer Technology


Answered Feb 2, 2017
Originally Answered: How do I start competitive coding from scratch?
Competitive Coding is a very vast field.The first step to competitive coding is to know the basics
of any programming language.C or C++ will do.
You can then start solving some basic problems from easy section of Hackerrank.You will get
brief idea about how competitive programming works by solving these questions.After solving
around 20 to 30 beginner level problems you can start with Codechef,Codeforces,etc

I would like to suggest to read this blog.Getting Started with the Sport of Programming

This is one of the best blogs for competitive coding :D

All the best:)

800 Views · View Upvoters
Upvote10Downvote
Share

 
RecommendedAll

Shahnawaz Sarkar, QA Engineer ~ InfoSec Enthusiast


Answered Feb 2, 2017
Originally Answered: How do I start competitive coding from scratch?
Hey mate,

Its glad to hear you want to do competitive programming :)

so i assume you got some background in programming (languages , algorithms , analytical


thinking , problem solving etc ..) If you don’t have the basics of all these you can get the same
from online resources , just google them.

Now coming to the competitive programming part , check ~

1)Topcoder

Deliver Faster through Crowdsourcing

2) Codechef

Programming Competition,Programming Contest,Online Computer Programming

3) Codeforces

Codeforces

above are most common websites which hold contests every month. And they all have equally
good set of problem sets.

But as a beginner i would recommend you to go through the sphere online judge portal ~

Sphere Online Judge (SPOJ)


choose a platform and start solving problems from easy to hard. Check discussions on forums in
case you get stuck.

And take one inspiration from here -

How did Anudeep Nekkanti become so good at competitive programming?

Thanks.

5k Views · View Upvoters
Upvote13Downvote
Share

 
RecommendedAll

Anish Gupta, Pythonista


Answered Jun 6, 2016
Originally Answered: How should one learn algorithms for Competitive Programming?
Most of the coding competitions and competitive coding websites like ACM ICPC and CodeChef
don't ask questions (except the simple ones) that require a specific algorithm. Neither do real
world problems. If you want to learn about every algorithm ever written, head over to Wikipedia
and look for List for Algorithm’s. You need to be very good at maths to understand complex
algorithms at concepts like

Algebra

Geometry

Complex number

Discrete mathematics

Basic Calculus

But, if you want to be good at solving problems, head over to CodeChef, SPOJ or any other
websites and practice, practice till you have mastered the hardest level of problems there are
because “Practice doesn’t make man perfect, but only perfect practice does”.

All the best :)

3.5k Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Ravi Shankar, i love programming.


Updated Mar 13, 2017
If you are beginner it means that you have already started competitive programming.
Competitive programming is a like sports. To perform best in sports you have to practice hard.
There will be moments when you’ll feel like a looser but in those moments you should just
practice and have patience. To start with competitive programming, stick to one or more
programming websites (Because there are lot of websites so confusion occurs) and start solving
the problems. I would recommend you to start with Sphere Online Judge (SPOJ) It contains a
big array of problems of different category. Start with and stick to it. One important thing, like in
all the sports Consistency is important. If you’re consistent then one day you’ll definitely win. So
solve problems daily.

1.6k Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Savan Morya, 3+ experience


Answered Aug 3, 2016
Yeah i can understand the situation,First of all you should clear your basic knowledge of the c
and after that c++.The next step of your prepration should be basic understanding the container
and iterator class of the c++ , that is you must know the STL of c++ (refer What are the best
resources to learn C++ STL? .

Then start learning the algorithms for solving the problems and best way to do that
refer Introduction to algorithms book and I have learned algorithms in TopCoder SRM's
editorials mostly. Otherwise, Google search and Wikipedia will always help. so this is how you
will learn algorithm.

Then start practicing any online platform like codechef or HackerRank .

Now you mentionto to appear in the ACM_ICPC so for that there is a special book called as
Competitive Programming , start from reading that book auther Steven Halim.

Note: To learn c++ use these books

1. Complete reference to c++


2. Scott Meyers - The 3 Effective C++
3. Thinking in C++
4. The C++ Standard Library A Tutorial and Reference (2nd Edition) By Nicolai M.
Josuttis.
1.5k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll
Rohit Chandwani, B.tech from The LNM Institute of Information Technology (2020)
Answered Jul 16, 2017
Greetings!!

First of all I would love to tell you that you need to learn some other language like python or C+
+ etc as C is not a good choice for competitive coding as competitive needs speed & efficiency &
these two languages can offer you these two things as they are much easier than C because they
Object oriented languages.

You can learn these languages through online tutorials. There are many websites like edx,
codecera, Hackr.io - Find & share the best online programming courses & tutorials etc.

But I would personally recommend you to go with Hackr.io - Find & share the best online
programming courses & tutorials as I follow the same for tutorials as practice & they have very
good content.

All the best!!

274 Views · View Upvoters
Upvote10Downvote
Share

 
RecommendedAll

Akash Kava, Director at NeuroSpeech (2001-present)


Answered May 29, 2014
Originally Answered: What is the best way to begin my competitive programming experience?
You cannot choose just one, you will have to focus on all, there is no guarantee that none of
them will close down. What happens if you spend all your efforts in USACO program and after a
year or so they close down due to no funding, no profit etc. And some other coding competition
may become more popular.

Honestly I don't even think it will be of any use to you in future, if you are talking about being a
good developer and earning decent amount of money, then my answer will differ.

I have been programming for about more then 10 years in age of no Internet, no SPOJ and no
TopCoder, I haven't even been there, and I don't think they stand any where near to improving
your coding.

Here is an example, let's say you are in school, they teach you how to run with spoon and lemon
in your mouth, how to run with putting your legs in a basket, those all kids sports you loved it in
your school. Period, you don't use them in your life to improve anything at all, its just for fun. All
online competitions are exactly same, you will have fun gaining points or getting recognition,
but doesn't help it to improve anything.

Today coding is no longer just an ability to write piece of code. It's much more then that, ability
to understand requirement, complicated UI designs, complicated database design and
crunching big data. How to use a good source code control and maintain a large code base with
constant iterations to improve your application and solve bugs.

Instead join some open source development projects, learn and contribute, this is what will
make you stronger.
2.4k Views · View Upvoters · Answer requested by Soumik Sur
Upvote3Downvote
Share

 
RecommendedAll

Anil Kumar Muppalla, Data Engineer at Spotify


Updated May 22, 2014
Originally Answered: What is the best way to begin my competitive programming experience?
I think you can achieve your goals by solving those questions on the divisions on top coder, if
you are looking to solve more math type questions code chef is a good place to start and if your
interest is more algorithmic top coder will give you the base you need. You do not have to worry
about your performance at the first attempt, obviously getting better is an on going practise.
More than learning from a book or starting to learn from simple programs, even though they are
ideal to good learning, in topcoder you get to look at the code of people who have scored the
maximum points - that is priceless for some one new.

Don not work at bursts, have a schedule on how many hours you can spend each day on top
coder, you should see improvement in the first month itself. In a programming contest it is more
of stamina than ability to code so you will have to slowly get to a point where you can sit for
hours and work on problems.

I feel you don't have to wait until you have gained some good experience at other programming
platforms. Start now and remember to celebrate your interest tial successes to make a habit of it.

Cheers.
5.4k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Ayush Dixit, Beginner to intermediate level


Answered Nov 2, 2014
Originally Answered: Where and how do I start competetive programming?
Dude these type of questions have been answered almost 100 times on quora. 
Request: please search for your question before asking as it will save space and time :)

for your question:

What was Anudeep Nekkanti's Competitive Programming strategy to become 35th in Global
ranking, in just 6-7 months?

Nikhil Garg's answer to How should I practice so that I will be at a level where I can approach
TopCoder's Div1-500 problems with confidence? I am a rookie with zero competitive
programming experience.

Best of luck :)
3.6k Views · View Upvoters
Upvote7Downvote
Share

 
RecommendedAll

Shaikh Bilal Mehmood, (2017-present)


Answered Mar 28, 2017
Learning competitive is never possible to be taught in a very short period of time. Competitive
programming is something much more difficult and needs more time to learn than real-life
programming, in a beginner’s point of view. These types of challenges are things you cannot
achieve in 2-10 months’ time.

Practice is the Key

In competitive programming, you are required to solve a problem in a specific short period of
time. In this challenge, you need a lot of experience to exactly know how to utilize your resources
and knowledge to good use and make an effective and successful result within the time allotted.
To learn competitive programming, lots and lots of practice is needed before you can even make
it to a rating of at least yellow.

Always Learn at School

As a beginner, always start learning at a programming school to sharpen your skills and perform
better in formulating solutions to a problem. We at Holberton School of Software Engineering in
San Francisco offer courses for software engineers, where you might be interested to be part of
our program and learn everything you need in competitive programming. It is a lot better when
you learn to collaborate with other people since it helps you to learn faster.

Develop a Good Attitude


In a programming school, you learn to formulate ideas and utilize any resources given to you,
getting the desired results as fast as possible. It greatly helps in these kinds of matters when you
develop a good habit towards programming to organize your thoughts and not make things go
haywire. Learning other languages, or you might have learned many others already, gives an
edge to such challenges.

It is just not advisable to make rush in learning, especially when it comes to programming. Go to
a school and achieve proper lessons by professional mentors, only then you will find the right
time to join such challenges and obtain the highest rating possible you can get. It is not too late
to learn and join in matters like these, but you just have to keep patience and dedication to keep
moving forward and learn to do better always in the long run.

1.2k Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Rishabh Sethi, studies at National Institute of Technology Durgapur (2020)


Answered Jun 1, 2017
Get the basics of any one particular language of your choice.

Try practice questions of codechef. Sort the question in decreasing order of their

successful submissions. Try solving them.
 When you think you are familiar with online judge , constraints and all then try
participating in contest. There's Long contest , Cookoff and lunchtime that are hosted
by codechef.
 You can also try different platforms like Hackerearth , Hackerrank , SPOJ and many
more. For learning purpose I personally recommend Codemonk 2.0 from
Hackerearth . It starts from basics and slowly moves to sorting and searching then
Data Structures with checkpoints available.
 Most importantly, code regularly and Do not lose hope.
Happy Coding (:

772 Views · View Upvoters
Upvote13Downvote
Share

 
RecommendedAll

Abhishek Mishra, Still learning to code....


Answered May 4, 2016
Originally Answered: How do I start competitive programming as a beginner?
If you want to start competitive programming you should at least know any programming
language like C,C++,Java,Python or any other. For competitive programming You should have
good knowledge of Data Structure and Algorithm. You can learn these things from
GeeksForGeeks.       Really it is great website to learn about data structure and
algorithm.    geeksforgeeks.org/.Really it will help a lot. But learning is not enough you should
have to practice a lot to learn how to implement algorithm. For this you can practice on geeksfor
geeks too. http://www.practice.geeksforgeek...  There are many other websites like code chef,top
coder etc. But I will suggest Code chef. Start from beginner level and then proceed to higher
level. I hope this will be helpful to you.
ALL THE BEST....

803 Views · View Upvoters
Upvote9Downvote
Share

 
RecommendedAll

Aadhitya Balamurugan, Student of B.E. Computer Science & Enginnering


Answered Aug 6, 2016
Originally Answered: For a very first beginner what are ways to start with competitive programming?
There’s only way you can get better at competitive programming or programming for that
matter, Practice.

First, choose a language and learn all the concepts about it in detail. Don’t start competitive
programming if you only know the basic concepts, get comfortable with the language,
experiment with it and write your own codes. Once your comfortable writing your own programs
then you can step into competitive programming

There are great resources just for competitive programming available online:

Sphere Online Judge (SPOJ)

Programming Competition,Programming Contest,Online Computer Programming

HackerEarth - Programming challenges and Developer jobs

HackerRank (One of the best places for beginners, the range of exercises gradually increase from
beginner level to advanced).

Use the practice exercises given here and you’ll understand and develop the skills necessary,
these websites are supported by a great community of well versed programmers who are eager
to help.

8.9k Views · View Upvoters
Upvote19Downvote
Share

 
RecommendedAll
Gaurav Yadav, Developer
Answered Dec 4, 2016
You can try following these Steps listed here

Learn Basic syntax of let us say programming language



c(if,else,for,while,break ,input,output,datatypes,and their range).
 Solve your first problem www.spoj.com/problems/TEST/
 You will learn what all you need to get a problem submitted.
 Find problems that only follow a particular formulae and solve around 20
problems.
 Now you are well aware how to get code submitted input and output.
 Now go for problems that requires optimization
like www.spoj.com/problems/ARRAYSUB/ attempt 20 of them.
 Now go for DP problems.
 Now start reading geeksforgeeks.com and start coding
on Codechef, Codeforces, HackerRank, HackerEarth.
 You can now try reading books with algorithms like Corman for
Algorithms.
Read further steps here at 
From beginner to expert in competitive programming. - Learn Steps

739 Views · View Upvoters · Answer requested by Ram


Upvote3Downvote
Share

 
RecommendedAll

Vivek Mangal, do a bit of CP


Answered Jun 7, 2016
Originally Answered: How do I learn Algorithms for competitive programming?
You can refer to these sources which will help you to learn algorithms for competitive
programming:

Online video lectures:

1. Tushar Roy : This man explains everything very easily. I learnt a lot from his video
lectures. His playlists include dynamic programming, tree algorithms, graph
algorithms,etc. You will find it very useful.
2. MIT 6.006 Introduction to Algorithms, Fall 2011 : Though I have not watched these
lectures but I have seen many people saying that they are very good and rich in
concepts.
Books:

1. Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson,


Ronald L. Rivest, and Clifford Stein.
2. Data Structures and Algorithms in C Plus Plus by Adam Drozdek.
3. Data Structures and Algorithms Analysis by Mark Allen Weiss.
Online Tutorials:

1. Code Monk - Be a better programmer


2. Notes on HackerEarth
3. GeeksforGeeks | A computer science portal for geeks
Tip:First try to solve problems by yourself without any help.Spend two or more hours thinking
for the solution. If you don’t find any solution even after your best efforts, take help from these
sources. The more you practice, the more you will be better at CP.

Best of luck and happy coding…..

2.2k Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Aishwarya Murali, Intern at Thorogood Associates (2017-present)


Answered May 30, 2017
Practise!

Start small.. no matter what happens dont give up!

Try participating in all the hackathons and various other contests online. Try to clear all the
practise tests on the various coding websites especially in algorithms, data structures. You can
just focus on honing your skills in c for now. I guess you will have java as a subject in hour
second year at college, after which you can definitely start honing your skills in that.

Some of the popular websites which host such competitive contests


being, HackerRank HackerEarth - Programming challenges and Developer jobs , Technology
and India's Largest Tech Community , Programming Competition,Programming Contest,Online
Computer Programming .
You obviously know top coder, so I didnt mention it. You can start by participating in the
hackathons especially in codechef, they are simple and can be done by beginners. As you
progress , you can work on hackerrank and hackerearth. Techgig has hackathons for the
national level and they are worth a try once you gain enough confidence.

To help with your algorithm preparation, I would suggest cracking the coding interview by
gaayle laakmann mcdowell.

Learn to code efficiently, it might take a while, but dont give up. Learn to debug and test your
code , which is the most important thing for a coder.

Start devising your own shortcuts and algorithms. This only comes with practise.

If it interest you, you can try your hand at data sciences. Many contests are coming up with data
sciences as the theme.

So good luck! Keep coding!

2k Views · View Upvoters · Answer requested by Uday Tayal


Upvote6Downvote
Share

 
RecommendedAll

Santan Kumar Das, Still learning ...


Answered Nov 21, 2016
Originally Answered: I am new in competetive programming, how should I start?
Just instil this point in your mind my friend that “No one is a born genius”. Everyone starts
from beginning that is from zero and then the graph grows.

It require lots of practice and continuous effort in the nascent stage and you will see a

gradual growth in picking up.
 Try to make your logics strong, for that you need to solve different algorithms as
programming is all about a coder thinking and problem solving techniques.
 Show your code to experienced and senior one so that they can review it and suggest
you for some improvement.
 Pick up a particular language you are interested in and start writing code, slowly you
will realize that all languages are same with different syntax and some advanced
features.
Here i am listing some websites for beginners to start off with -

1. Learn to code
2. Learn to code by doing | Code School
3. Start Learning at Treehouse for Free
4. Computer programming
5. W3Schools Online Web Tutorials
 These sites comes with their own online editors and compiler , so no burden for
installation.
 Live run the program and check results with errors and customize the code
accordingly.
 Finally GOOGLE is the best source of learning. So why fear when google is there.
542 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Yash Sharma, I know a thing or two about programming.


Answered May 6, 2016
Originally Answered: How do I start competitive programming as a beginner?
Thanks A2A.

I do not have any thing in particular to say but I have a made a comprehensive list of all the
answers and blog posts that answer your question. Some of these will be a repeat so please bear
with me.

1. Learn to Code by Competitive Programming | HackerEarth Blog


2. Ashish Kedia's answer to Which mathematics topics should I learn to improve my
algorithms skills and get started with competitive programming?
3. Ashish Srivastava's answer to What are some good courses on competitive
programming?
4. Bidhan Roy's answer to What is a list of data structures that a competitive
programmer must know?
5. Yara Abdullatif's answer to Is online competitive programming a good way to learn
and sharpen your general programming skills?
6. Ashish Kedia's answer to What are the best advice for problem setters in competitive
programming?
7. Onufry Wojtaszczyk's answer to What functions should I have in a library for
competitive programming (GCJ, topcoder etc)?
8. Ayush Pareek's answer to What is the best strategy to improve my skills in competitive
programming in C++ in 2-3 months?
9. Ashish Kedia's answer to How should one start preparing for the Google APAC?
Hopefully these answers will help you get the answers that you are looking

Hope I helped.

Cheers.

2.4k Views · View Upvoters · Answer requested by Tejas Jaiswal


Upvote28Downvote
Share

 
RecommendedAll
Gautam Singh, Software engineer
Answered Aug 10, 2016
May be this can be of some help. Also try to get into some company projects (or in research if
you want to pursue higher studies). You can apply in startups from AngelList and easily get into
projects as an intern or for research project you can directly contact you college profs. In this
way you can really create a good background in programming (development based and may be
competitive).

Regarding learning linux Introduction to Linux - Edx can help you in that to some extent.

Regarding learning pure competitive programming make www.geeksforgeeks.org your side


course and go through as many topics as possible.

Note:

1. You need to be very patient and go through each logic you write as much as possible
rather than just mugging up (as most beginners do).
2. Learning linux requires a lot of practice, so as you go through the course install linux
in your own PC/laptop.
Best of luck!

700 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Shaurya Gupta, works at Indian Institute of Technology, Guwahati


Answered Jun 25, 2017
Originally Answered: I am new in competetive programming, how should I start?
At the very beginning to competitive programming, barely anyone knows the coding style to be
followed. Below is an example to help understand that style.

Please refer to Hackr.io - Find & share the best online programming courses & tutorials for
compiled list of top resources 
Try to dive in a language of your choice and Data structures and Algorithms
Learn Data Structures and Algorithms - Best Data Structures and Algorithms tutorials |
Hackr.io

Let us consider below problem statement as an example.


Problem Statement:
Linear Search: Given an integer array and an element x, find if element is present in array or
not. If element is present, then print index of its first occurrence. Else print -1.

Input:
First line contains an integer, the number of test cases ‘T’. Each test case should be an integer.
Size of the array ‘N’ in the second line. In the third line, input the integer elements of the array
in a single line separated by space. Element X should be inputted in the fourth line, i.e., after
entering the elements of array. Repeat the above steps second line onwards for multiple test
cases.

Output:
Print the output in a separate line returning the index of the element X. If the element is not
present, then print -1.

Constraints:
1 <= T <= 100
1 <= N <= 100
1 <= Arr[i] <= 100

Example Input and Output for Your Program:


1. Input:
2. 2
3. 4
4. 1 2 3 4
5. 3
6. 5
7. 10 90 20 30 40
8. 40
9. Output:
10. 2
11. 4
12. Explanation:
13. There are 2 test cases (Note 2 at the beginning of input)
14. Test Case 1: Input: arr[] = {1, 2, 3, 4},
15. Element to be searched = 3.
16. Output: 2
17. Explanation: 3 is present at index 2.
18.  
19. Test Case 2: Input: arr[] = {10, 90, 20, 30, 40},
20. Element to be searched = 40.
21. Output: 4
22. Explanation: 40 is present at index 4.
1.9k Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll
Siddharth Mahapatra, B.Tech Computer Science and Engineering, KIIT University (2018)
Answered May 13, 2017
1. Websites/Online Judges(OJ) :-
a) Topcoder :

 Div 2 - 250, 500, 1000.


 Div 1 - 250, 500, 1000.
 SRMs
Note :

 Div 2 500 & Div 1 250 are almost equivalent.


 Div 2 1000 & Div 1 500 are almost equivalent.
b) Codeforces :

 Div 2 - A, B, C, D, E.
 Div 1 - A, B, C, D, E.
Note :

 Div 2 C & Div 1 A are almost equivalent.


 Div 2 D & Div 1 B, C are almost equivalent.
 Div 2 E & Div 1 D, E are almost equivalent.
c) CodeChef :

 Beginner
 Easy
 Medium
 Hard
 Contests -
o Lunch Time
o Cook-Off
o Monthly Challenge(10 days)
Note : *Roughly*

 Topcoder - Div 2 250 = CodeForces - Div 2 A, B = Codechef - Beginner, Easy.


(Respectively)
 Topcoder - Div 2 500 = CodeForces - Div 2 C = Codechef - Medium.
 Topcoder - Div 2 1000 = CodeForces - Div 2 D, E = Codechef - Hard.
 Topcoder - Div 1 250 = CodeForces - Div 1 A = Codechef - Medium.
 Topcoder - Div 1 500 = CodeForces - Div 1 B, C = Codechef - Hard.
 Topcoder - Div 1 1000 = CodeForces - Div 1 D, E = Codechef - Hard.
2. Books :-

 From Baylor to Baylor - Buy From Baylor to Baylor Book Online at Low


Prices in India
 Programming Challenges - Buy Programming Challenges: The Programming
Contest Training Manual (Texts in Computer Science) Book Online at Low
Prices in India
Competitive Programming - Competitive Programming, 3rd Edition: Steven

Halim: Amazon.com: Books
 The Hitchhiker's Guide to Programming
Contests - https://github.com/aistrate/UvaT...
 Competitive Programmer's Handbook - Competitive Programmer's Handbook
3. Video Tutorials :-

Programming Challenges - COMP300E - Programming Challenges - 2009



HKUST - YouTube
 ACM/ICPC Training: For Beginner - ACM/ICPC Training: For Beginner -
YouTube
 Amrita Infosys Programming Contest Camp - Amrita Infosys Programming
Contest Camp - YouTube
4. Courses :-

 Introduction to Programming Contests - CS 97SI: Introduction to


Programming Contests
 How to Win Coding Competitions: Secrets of Champions - How to Win Coding
Competitions: Secrets of Champions!
3.7k Views · View Upvoters
Upvote22Downvote
Share

 
RecommendedAll

Manohar Reddy Poreddy, Top 100 rank. 33 Software projects,40+ programming languages
Updated Oct 15, 2016
Originally Answered: How do I start learning competitive programming?
Update: I wrote an article/post, it will help you get started, or you will have a very good idea on
how to go ahead, see this: How to get started with Competitive Programming (CP), Tips and
Tricks by Manohar Reddy Poreddy on AlgorithmsAndMore

Start from here, Warmup section: Solve Algorithms Code Challenges

The above Warmup section, seen on the left, the challenges/problems inside will get you started
with Competitive programming (CP).

Journey to Top 99 percentile is at least 2 months of hard work. Example, see this link.

Journey to Top 100 rank is even more hard. Example, see this link.

Plan:
Start from above Warm-up link

Continue to other sub domains:

Strings, Sorting
o
Then do Implementation, etc.
o
At the end, do Dynamic programming.
o
You will need to learn a lot of new algorithms, and related data structures.

A bit later point in time, you need to learn advanced data structures & algorithms.

And, then, some day, you will be there ready to compete head to head in online

competitions with some of the bests in the world, if you want more than Practice.
Advice from experience:

Don’t waste time.



Learn, more and more, new algorithms & data structures that you don’t know.
o
Everything will be easy at the begin, when you are serious about something, time will
o
be very short.
 There is no 1 best website to learn all algorithms & data structures.
o Below are some websites from where you can learn:
 List of data structures
 List of algorithms
 Top 10 Algorithms and Data Structures for Competitive Programming -
GeeksforGeeks
 Make beautiful notes so you can recall from a lot of algorithms /data structures, as you
learn more.
o Also when there is an interview, this will be handy.
Best of luck.

Back to: All-in-one CS & CP resources by Manohar Reddy Poreddy on AlgorithmsAndMore

4.8k Views · View Upvoters · Answer requested by Surya Teja


Upvote42Downvote
Share

 
RecommendedAll

Anurag Phadnis, BTech(IT) from Medi-Caps University (2020)


Answered Jul 17, 2017
Competitive Programming is a long journey, Its like chess you can learn how to play in a few
days but it takes years to master it.

First of all I would suggest you to use C++ for CP as it has STL. Code for sorting in nlogn time
binary search and a lot of things are already implemented in it. Additional support for vectors,
sets, maps helps a lot to code faster.

So where to start:

Pickup the easiest problem to get acquainted to online judges like this one
Contest Page | CodeChef

Then move to slightly difficult problems and gradually keep advancing in it.

Here are some websites on which you can practice

Codechef

Codeforces

Sphere Online Judge (SPOJ)

HackerEarth - Programming challenges and Developer jobs

HackerRank

Topcoder

USA Computing Olympiad

But you will not be able to solve a lot of problems because you don’t know all the data structures
and algorithms for that. SO you would need to learn about some DS and algos, there are various
tutorials available on internet some of them are

Learn Data Structures and Algorithms - Best Data Structures and Algorithms tutorials |
Hackr.io ← Collection of best tutorials

Gaurav Sen ←Youtube channel

saurabhschool ←- Youtube channe;

mycodeschool ←-YOutube channel

There are also various books available for DSA

Introduction to Algorithms 3rd Edition - Buy Introduction to Algorithms 3rd Edition by cormen,
thomas h.|author; Leiserson, Charles E.|author; Rivest, Ronald L.|author; Stein, Clifford|author
Online at Best Prices in India - Flipkart.com

Competitive Programming, 3rd Edition: Steven Halim: Amazon.com: Books

Above all you need a lot of practice to become a good competitive programmer. As you are in
college you can take part in various technical fests of colleges which organizes such contests.

And the biggest thing is never give up. There will be numerous instances when you will feel that
CP is not your cup of tea and you may think of giving it up but don’t loose your confidence even
when you can’t solve a problems for months. I gave codechef’s cookoff after my board exam and
that was my first cookoff it asked some question related to prime numbers and I was not able to
solve it after almost an year I found that problem marked as red tried it and got AC :) Seive of
Eratosthene was used in that problem which i didn’t knew during those days.

What I want to say is don’t loose hope you can do it and you will do it. Happy Coding
627 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Nihar More, Senior Software developer


Answered Jan 28, 2017
Source - Beginners guide to Competitive programming

Choose a programming language you are going to use in all the competitions. I would

say the best choice is C++, because of its speed, available data structures / algorithms
in STL library and because all the competitions support it.
 Get some theoretical knowledge of algorithms. Book “Introduction to Algorithms”,
written by Cormen, is considered Bible on this topic. It contains pretty much all the
algorithms, math and data structures you need to know for programming
competitions.
For learning more programming stuff visit - hackr.io

438 Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Yash Verma, Student Ambassador at Hacker Earth (2016-present)


Answered Feb 25, 2017
First of all, what I think is that competitive programming is a hoax. Believe me, all you need to
do is pick a language get the basics thoroughly. There are a couple of steps that I follow when I
solve such questions, and they’re really simple.

1. Read the question. The basic problem lies here. Many a times we read the question in
a flash and then proceed to solve the question. This is perhaps the most often and
biggest mistake anyone can commit. Let me give you an example. Suppose you are
given a big string as an input (see code) and the output is something like (see code) .
Believe me , this question could be solved only by printing the uppercase characters,
on the other side, the same question can be solved by parsing the string as an array
and then finding the index of a ‘.’ and then printing the character 2 next to it. So, just
understanding the concept of question is the key.
1. // Input
2. . Hello from. The other. Side of. The web
3. // Output
4. HTST
2. Never use pre-built functions when you practice, because when you make such functions
yourself, you actually revise the basic concepts of the language to and fro.

3. Never write code at start. Always try to find the concept, write a pseudo code and then
proceed to the formal code, because will save tonnes of time.

4. Always test run your code at end. This always help to polish and be assured that your code
actually works. Afterall, what’s the point of writing a page long code that doesn’t work ?

I can say that these are the core principles one can use to crack any competitive question.

1.5k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Nihar More, Software developer


Answered Feb 2, 2017
Originally Answered: How do I start competitive coding from scratch?
Source - How to Start Competitive Programming

How to Start Competitive Programming

If you've ever thought about competitive coding, all you've got to do is start now. Doesn't matter
which class or branch you are in. Everyone can code and everyone can be competitive. Basically,
all you've got to have is the right mindset and the right skill set.

Let's talk about the mindset first. Competitive programming requires a drastically different
mindset when compared to "normal" (or developmental) programming. While in developmental
programming you have to concentrate on writing quality code that is manageable, competitive
programming generally involves writing code that "works". This is because you'll probably never
even look at your code again, once you get an AC (accepted) result from the grader. This does
not mean that you should write sloppy code since that would just make it hard to debug (and
this can be a real pain in the a** in a competitive setting, with the added pressure of time
running out). All it means is that the code need not have extensive documentation (just some
inter-spread comments to help out when debugging are enough) or modularity/objects/classes
(just write it in logically separate functions to make life easier).

For learning programming stuff visit - hackr.io

1k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
Guilherme Lucas, Computer Engineering student.
Answered Jul 10, 2016
Originally Answered: How do I learn competitive programming?
Traning is the best way to get better on competitive programming. Here are some ways of doing
that:

 Solve a lot of problems at codeforces, projecteuler, codechief.


 If you're at university, there probably is a group that trains for programming
competitions. Look for it.
 Focus on data structures and algorithms, not on programming languages.
 Try to enter as much as competitions as you can.
 Read the book "Competitive Programming" from Steven Halim.
2.9k Views · View Upvoters
Upvote8Downvote
Share

 
RecommendedAll

Salaudeen Abdulrahman, Cofounder at UpNepa NG


Answered Oct 30
Originally Answered: To enter the world of competitive programmers as a beginner, what do I need to study
beforehand?
To enter the world of competitive programmers as a beginner,

You firstly have to become really flexible with a programming language. I suggest you start with
python; It is easier to learn than languages like C/C++ and it makes you implement stuffs faster.

Start by understanding what programming really is and learn the basics of programming from
good sources like Udacity, CodeAcademy, Udemy e.t.c

Become good at implementing simple algorithms before moving on to the difficult ones and
make sure you practice a lot. Solve a lot of problems and rank your self on TopCoder and
HackerRank. Also, build your algorithm skills by implementing different algorithms and
understanding how they work and why they are more efficient than some other algorithms. I
suggest you let this book be your companion ‘Introduction to algorithms’ co-authored by
Thomas Cormen.

Practice. Practice. Practice. And code a lot too. It’s just a matter of time to become a competitive
programmer. The time only gets shorter with respect to the time you dedicate to learning and
coding.

Don’t forget to have fun and mingle with friends that are better than you. They will indirectly
encourage you to get better.
Cheers!

Anudeep Nekkanti gave a really good answer on Quora from his experience here: What was
Anudeep Nekkanti's Competitive Programming strategy to become 35th in Global ranking, in
just 6-7 months?

837 Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Animesh Bote, Qualified for codejam round 1 || Rank 700 on codechef may 2016 challenge
Updated May 25, 2016
Originally Answered: How do I prepare a plan for learning competitive programming?
First go through all the basic concepts of programming like inheritance polymorphism, RTTI,
dynamic casting from the balguruswami (if you want to code in c++). If you want to code in Java
then use Java the complete reference.
          When you are done with basic concepts of any language then you can start with the data
structures.
Read the corman's book for data structures and algorithms and try to implement every
important algorithm(the language in which you are preparing).It will help you to write the
program in different problem cases as it will help you to increase your ability to think.
           After that you can try the problems from online websites like codechef,codsforces.Don't
try to attempt hard question directly.First try do the simple questions in most efficient way.You
will improve time to time.Remember you can never become perfect(ideal) at anything,the time
when you start thinking that you are perfect then loop holes start creating.

  Work hard!!! Best luck!!!


677 Views · View Upvoters · Answer requested by Dhruv Somani
Upvote6Downvote
Share

 
RecommendedAll

Tanuj Yadav, Student (2002-present)


Answered Dec 17, 2016
Originally Answered: How can one learn competitive programming? What are some good resources and advice?
first of all join any of the following

 HackerRank
 codechef.com
Sphere Online Judge (SPOJ)

hackerearth.com

http://topcoder.com

then start solving the easy problems and move further as you like.

Do participate in the monthly contest and try to do better everytime.

See the editorials of the problems that you couldn’t solve.

Also you can refer to this link to get some good algorithms

Top 10 Algorithms and Data Structures for Competitive Programming - GeeksforGeeks

5.4k Views · View Upvoters
Upvote10Downvote
Share

 
RecommendedAll

Harpreet Singh, Bachelor of technology Computer Science Engineering


Answered Jul 3, 2017
First of all Get comfortable writing code in one of these languages C, C++,Javaor
Python these are the standard languages allowed in any programming competition. If you are
already good at C, you should learn C++. It is the most popular language among competitive
programmers.

Try Programming Competition,Programming Contest,Online Computer


Programming (Codechef), HackerEarth these are good for practicing and will help you to think
in a different way.

I hope this helps

:D

199 Views · Answer requested by Shaurya Gupta


UpvoteDownvote
Share

 
RecommendedAll

Comment

Utkarsh Bhimte, studied at RNS Institute of Technology


Answered May 15, 2016
In my Opinion, You can’t “Learn” Competitive programming. You just practice coding and solve
problem. Few Pointers,
 HackerEarth, CodeChef , topcoder are some of the websites I use, to Practice.
 Always ask other people to review your code and also check out the best answer and
analyse the difference.
 Do as many question you can. If you get stuck, ask someone, classmate, even teachers,
join a community.
 Improve your code, Even if your code gets the job done, Edit it till you are not
satisfied. Your code should be something you be proud of when you go to the next
question.
695 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

SIKDER EMRAN, works at SEA IT


Answered Jul 22, 2016
Originally Answered: How do I learn competitive programming?
Beginners guide to Competitive programming

numerous individuals who have ever attempted to begin focused programming, yet didn't found
where to simply ahead and left in halfway. Furthermore to the individuals who wonder where to
begin from. Getting high-positions in Codechef/TopCoder/Codeforces rivalries isn't an
overnight achievement. It requires a ton of investment and exertion and there aren't any
alternate routes (similarly as I probably am aware). However, the good thing is, it is a
considerable measure of fun (genuinely, when you show signs of improvement, it is significantly
more fun than PC amusements) and anybody can do this. I am excessively not a master in this,
but rather I would prescribe the accompanying things as indicated by my encounters :

Pick a programming dialect you are going to use in every one of the rivalries. I would say the
best decision is C++, as a result of its velocity, accessible information structures/calculations in
STL library and in light of the fact that every one of the rivalries bolster it.

Get some hypothetical learning of calculations. Book "Prologue to Algorithms", composed by


Cormen, is viewed as Bible on this theme. It contains essentially every one of the calculations,
math and information structures you have to know for programming rivalries.

In any case, no doubt "brilliant words", in the event that you can't take care of any issue ever,
don't get demotivated. Attempt as much as you can.

You would have the capacity to illuminate, if not read it's article and attempt again..!!
Notwithstanding perusing article don't give you indicate, read different arrangements and
attempt to produce thinking capacity to illuminate that inquiry. Presently code and get yourself
AC.

Whatever you pick, do compose arrangement yourself at end, every way you would learn
something, however skipping inquiry would give you nothing..!
622 Views
UpvoteDownvote
Share

 
RecommendedAll

Dima Korolev, https://dimakorolev.quora.com/Against-Justificationism


Updated Nov 28, 2015
Take part in contests.

In each contest, try to do better than you did before, with respect to being able to focus,
decouple the problem into understandable pieces, and put them together as a program that
produces the right outputs for given inputs. Focus on solving problems, not scoring high.

If you follow the above for 1'000 problems, it'll come.


3.7k Views · View Upvoters · Answer requested by Sandeep Kumar Singh
Upvote36Downvote
Share

 
RecommendedAll

Pradeep Maurya, CSE student, Jabalpur Engineering College (2016)


Answered May 22, 2016
Originally Answered: How do I prepare a plan for learning competitive programming?
Code Monk - Be a better programmer

Try this , may be useful to you . You will get questions topic wise and difficulty increasing
difficulty level even on this site.

745 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Kirk Augustin, MS Computer Science, Software Eng., 45 years.


Answered Jul 30, 2016
No real programmer would ever consider competitive programming. The whole concept is
disgusting. Programming is where you spend over half your time coming up with the right
design, and then coding it is trivial. What language you use is irrelevant, and the speed of coding
is inversely proportional to the quality. Fast code is junk code.

But all programmers should learn C and C++. They are what 95% of all programming is done in,
including all operating systems, browsers, network protocols, etc. Languages like Python, PHP,
Swift, Ruby, C#, JavaScript, Java, etc., are really just scripting languages and not real
programming languages.

2.5k Views · View Upvoters · Answer requested by Jacob Francis G. Meimban


Upvote9Downvote
Share

 
RecommendedAll

Tarun, Still Hungry, Still Foolish.


Answered Aug 9, 2016
Originally Answered: How can I start learning (practising) competitive programming?
One thing you must remember when you are dealing with computer programming is you have
to practice so hard. If it is your passion then you might already know what it really is.

If you are trying for a competitive things, limited number of programmatic variations are not
helpful. You have to learn several kinds of tricks whith which you can outperform anyone.

There is another thing which is rarely said but is essential for programming. That is, know you
programme control flow. If you clearly are aware of the outcome you needed and if you have a
good knowledge on the language you are specializing then you can crack any programme easily.

634 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Lakshya Daksha, Coding sites benefits alot to become a nice coder.


Answered Dec 14, 2016
Originally Answered: How can one learn competitive programming? What are some good resources and advice?
In order to learn competitive programming just follow below steps:-

Step-1 : Join any of the below sites…..


Codeforces, Codechef, Hackerrank…etc

Step-2 : Start solving practice problems as much as you can.

Step-3 : Always participate in the coding contests that are organized on these sites in order to
test yourself.

Start doing it and you will yourself see the change in your programming skills.

1.5k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll

Shaksham Kapoor, Programmer


Answered Oct 28, 2015
Don't just read the books. The best way to learn how to program is by doing it. It's easy to spend
hours reading about syntax, but computer languages like human languages require you to use
them in order to understand them. 

Try starting with simple projects. If you're going the HTML / CSS route, play with JavaScript
and get a simple div to move around on the page when you click on something. Then work your
way up to more complex ones. For instance, write a simple todo list with HTML form elements.
You have to learn DOM manipulation to properly handle when the user interacts with the page. 

At Stanford, they teach beginning CS with games. Try building a hangman game using JS, or
even just on the command prompt using Ruby or Python. 

Edit: A new YC company called Codecademy (Learn to code) just released an all-Javascript
tutorial that is quite good.
477 Views · Answer requested by Uday Tayal
UpvoteDownvote
Share

 
RecommendedAll

Ian Brown, Senior software developer, jack-of-all-trades programmer


Answered Sep 28, 2016
Originally Answered: How do I master competitive programming problems as a beginner?
There is no one strategy to gaining mastery of programming. There are a number of things that
can help you. These include:
1. Break down the problem into smaller units and solve those in turn, as needed,
breaking them down into ever smaller chunks until you can see a solution.
2. Find more experienced programmers and enlist their assistance. Since you are trying
to learn, you’d prefer that they give you clues, hints, or a gentle nudge in the right
direction, not complete solutions. However, sometimes it can be helpful to be shown
the solution and then try to work through how they went about arriving at it.
3. (insert your favorite search engine) is your friend here. There are often example
solutions available on the net. Sometimes, they give you pointers about how the
solution was found. Sometimes, you may have to figure that out yourself.
I’m not much of a fan of working on manufactured problems such as this. I’d advocate for
finding things you are interested in building and try applying the above as a way to find the
solution. This is essentially how I taught myself, although the net didn’t exist at the time and
search engines were at most a dream.

456 Views
UpvoteDownvote
Share

 
RecommendedAll

Raj Arora, I know nothing but programming.


Answered Jan 1, 2017
Visit this site by IIT Bombay club : Competitive Programming

Competitive Programming

This article tells you about competitive coding, and how to get started. More importantly, it lists
all the competitions you should be looking at. You don't have to be in Computer Science to be a
good competitive programmer. Hardwork, is what is needed.

Contents

[hide]

1Introduction

2Pre-Requisites

3Getting Started

4Excellent Resources

5Gearing Up

6Taking it Forward

Introduction

You are given a problem and write code to solve it. The judge runs your program on several
inputs and tests for correctness. Every program has constraints. You get a verdict based on how
your code performs on the test cases. Here are some:
 AC (Accepted) - Rejoice! Your code passes all testcases given by the judge and is
deemed correct.
 Time limit ( about a few seconds ) - You get a verdict of "Time Limt Exceeded" if your
program doesn't terminate in time.
 Memory limit- gives a bound on maximum memory your program can use, includes
both stack and heap memory.
 Runtime errors- These occur when your code is prone to faulty pointers and stuff.
Keep an eye if your code breaks for large inputs.
 Wrong Answer- This means that your code produces incorrect output. This may be
incorrect output formats, trailing spaces, incorrect "solutions", or anything which can
give a non-empty diff to the correct answer.
 Constraints on input - most important, this gives you an idea about how fast your
algorithm should be. It is like a sport and many do it for just fun. If you are into
programming, you can give it a try!
Pre-Requisites

A basic programming knowledge, in any language of your choice ( preferably C++, Java or
Python ) is assumed. Otherwise, take a look at Programming 101. Also, if you want to try your
hands on competitions like ACM ICPC, you need to be proficient in some techniques discussed
below. Practice is key. A LOT of practice and consistency is required to perform well in a
competition like ICPC.

Getting Started

 The best starting point is to solve some problems on SPOJ. You can sort the problems
based on number of users and start with the problems with the most number of users
solved.
 The next step is to read up on algorithms. It's strongly suggested that while solving a
problem on SPOJ and you don't get idea, google it and find the algorithm for it, code it
your self and get accepted. As you go along, you come across different algorithm
techniques such as greedy, dynamic programming etc. Topcoder Tutorials are a great
source for getting started with algorithms for competitive programming. These are
well written and accessible to everyone.
 As you solve more and more problems, look at other online judges(mentioned below).
Also, start exploring harder concepts. Once you learn a new idea, you can use
this Classifier to find problems from SPOJ on a given topic.
Excellent Resources

Online Judges :

 Codeforces is the best website for competitive programming. It has a huge problem
collection, with solution descriptions for every problem. You can also see the codes of
other users for every problem. There are weekly live contests, in which thousands of
users compete. They also have blogs and the community is very active: If you have any
queries, they are ready to help you.
 Topcoder also hosts weekly contests called as SRM. Requires some effort setting up
the arena, but well worth the effort. It contains many good problems in Dynamic
Programming, Math, Geometry and Graphs. For help in setting up, see this blog
 Codechef Similar to the above two. It also hosts 10 day contests called as Long
Challenge every month.
Hackerrank Also hosts weekly contests. It also contains basic programming tutorials.

Good UI. You can buy testcases for hackos, which is usually good for training and
getting ideas for corner cases.
 Timus More like SPOJ. Contains collection of good problems. Unlike the above four,
doesn't contain editorials, ...
(more)
Upvote9Downvote
Share

 
RecommendedAll

Naitik Chandak, Self- Employed


Answered Feb 2, 2017
Originally Answered: How do I start competitive coding from scratch?
This is all basic things that might help you to become good / better competitive Programmer :-

If you want to become competitive Programmer, you need to focus on Advanced concepts of
Programming and Algorithms. Make sure you have very strong basics about programming and
algorithms before moving to competitive. Array, Linked list, Stack and Queues and advanced
concepts like Tree graph, sorting / searching algorithms, Hashing and many more.The thing
matter in competitive programming is complexity of your program. if you are not aware of
complexity of Program please search it. you will find different notation about it and Other thing
is, if your code is optimized or not. You need to practice how to write optimized code that
execute fast and consume low space/ memory.

Practice practice and practice.

Thank you..!!

Cheers..!! Happy learning. :)

383 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Adormi Technologies, 15+ years experience in Embedded System Developer


Answered Jul 14, 2016
Originally Answered: How do I start competitive programming as a beginner?
you need to c programming thoroughly. To enhance your knowledge you need to build some DIY
kits with Micro-controller, for that you can know how an system works.
have a look

DTMF Based Home Automation System

If you have any quries , please mail us

sales@adormi.com

377 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Akash Gupta, Senior Programmer


Updated Jun 20, 2016
Hi Friends,

I found many Apps in Playstore, useful to Learn Programming from scratch. Out of which
I liked PAL Learning Apps, which contains free video courses, interview questions, typical
programs, discussion corner, challenge quiz's and offline notes many more. Lets try it.

Learn Python from PAL

Learn Python Programming - Android Apps on Google Play

Learn C from PAL

Learn C Programming - Android Apps on Google Play

Learn Java from PAL

Learn Java Programming - Android Apps on Google Play

Learn C# from PAL

Learn C# Programming - Android Apps on Google Play

708 Views
UpvoteDownvote
Share

 
RecommendedAll
Thacker Naman, A beginner in this field
Answered Feb 4, 2017
Originally Answered: How can i start competitive programming?
Yes..at least you should know maths basics before getting into competitive programming..

because you will have some problems like-find gcd,lcm of given numbers or combination-
permutation ,probability problems…

but you can learn such maths concept in only few weeks because its not a big deal…

after that,I suggest you to start with C language to learn first..

it will clear all concept about programming that is needed to dive into competitive
programming…

280 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Madan Srinivasan
Answered Nov 11, 2014
Originally Answered: I want to do competitive programming. What should I do?
Thanks for the A2A. Am not a programmer but can give a general idea of what has worked for
colleagues and others. 

Some of the best programmers I know are self taught. MOOCs such as EdX, Udacity etc have a
lot of courses on programming so you have quality training right there. 

Next step, once you have the basics/ intermediate level done is to find a great mentor and a
challenging project and really get your hands dirty. This should set you up for the near term and
your mentor should be really able to push you beyond that. 

Sorry I couldn't be of more help! 

PS: while looking for mentors, don't shy away from writing people who you think might be able
to help but seem out of reach. You'll be surprised at how helpful most are
107 Views
UpvoteDownvote
Share

 
RecommendedAll
Robert Plummer, 16+ years as a software engineer
Answered Nov 26, 2015
Go to Build software better, together, or another popular repository website, find some of the
most popular projects, find their biggest problems, and solve.

It'll take a lot of time, a lot of research, but what you learn will be priceless.

You'll be a rock star in no time.


85 Views
UpvoteDownvote
Share

 
RecommendedAll

Anoop Krishna, Computer science engineer


Answered Jun 1, 2017
If you are strong enough in c programming, practice some competitive programs from the
competitive websites like codechef, Hackerrank etc. As a beginner if you feel them as tough u
can start from guvi.com(purely Indian site made by IITians..).And you will have to learn oops
concepts parallely..It won't be much important for competitive programming.Since you are a IT
student, you will be taught oops concepts in your college itself ,may be in 2nd sem itself..

85 Views · Answer requested by Uday Tayal


UpvoteDownvote
Share

 
RecommendedAll

Juanita Poe
Answered Nov 26, 2015
If you want to become a good programmer, you should have best determination. Then you try to
follow the things mentioned below.
1. You first read that book and understand what is c++. Simple terms in it like over loading,
inheritance, etc
2. You should do all the programs mentioned in that book.
3. Google the terms from c++ and explore it and study
4.Try indiabix and find out all the interview related questions.
5. Tyr to do the pattern questions from c++
6. Study any database, its comments, table creations, link building etc.
7. Try to create your own creativity.
8. continue your work, otherwise you will forget it
984 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Athreya Sriram, An pretty good school level programmer , Novice competitive Programmer
Answered May 5, 2016
Originally Answered: How do I start competitive programming as a beginner?
You cant start by familiarising yourself with the nuances and techniques involved in cp , learn
algorithms , Develop Good Thinking and Problem solving skills and participate in :

1. Topcoder Single Round Matches(SRM)


2. Codeforces Rounds
3. Hackerrank contests
4. Hackerearth contests
5. Sphere Online Judge(Practise problems)
6. Read Introduction to Algorithms by CLRS
7. Prepare for the Acm icpc(If you're in college
8. Google code jam (No age bar)
9. Facebook Hacker Cup
10. IOI (If you're a school goin' person)
540 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Devansh Varshney
Answered Feb 9
Well competitive programming is little bit time consuming but there is a course on competitive
programming at Udemy .

This is one of the best course to getting started with.

I hope this will help you.


#KeepCoding

81 Views
UpvoteDownvote
Share

 
RecommendedAll

ASHISH MISHRA, iOS Developer


Answered Nov 27, 2016
I think right now you should focus on the basics of your programming skills because it will help
you in learning any new language very easily.You should begin with brushing your skills in C by
Book named “C in Depth” by S.K Srivastav.It a damn good book and then coding on platform
like Hackerrank and Codechef. It will be great if you understand Object Oriented concepts and
go through Data Structure Concepts also.

412 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Andru Gems, former Owner


Answered Sat
There are a ton of way you can learn competitive programming as beginner. Always i suggest for
using youtube because here anyone can learn anything because here you will get everything with
free cost.

And also you should check on lyndra or udemy for best practice.

Some of programming related forum can help you a lot.

And also you can visit the below site for learning and developing yourself.

Just check this out-

ASTM International

20 Views
UpvoteDownvote
Share

 
RecommendedAll
Ashwin Krish, Software Engineer at Media.net
Answered Nov 14, 2014
Originally Answered: I want to do competitive programming. What should I do?
Anup Kalbalia has written it nicely. In addition do check out this link by the group called league
of programmers in IITK. It is a detailed list and might always prove to be a reference. :)
http://sportprogramming.blogspot...
499 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Ravjit Singh, Coding since 10...


Answered Aug 18, 2015
Originally Answered: How do I learn competitive programming?
Competitive programming is probably the only thing in Computer Science that cannot be learnt
or taught. Practice will make you perfect.
 However, there are plenty of websites out there to help you with this.
To begin with, you can log on to websites like codecademy.org or take up MOOCs related to CS
on udemy.com or coursera.com or eDX to sharpen your skills and then go onto websites
like codechef.com or TopCoder to take up challenges and improve. 
Finally you can take part in Hackathons, if you think you've improved. 
Hope this answers your question :)
1.7k Views
UpvoteDownvote
Share

 
RecommendedAll

Vishal Subramanyam Rajesh, programmer in multiple languages


Answered Oct 24, 2015
You can start out with online tutorials such as:
Codecademy
Tutorialspoint
If you want video tutorials, then visit thenewboston.com.
My answer also depends on the programming language you want to learn. Tutorials Point and
The New Boston have tutorials for almost everything. Otherwise, you can buy some
programming books from Amazon and try to go through them.
501 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Adish Mallik, studied at Ram Mohan Mission High School


Answered Jun 1, 2017
Originally Answered: How can I start competitive programming as I am a beginner?
1. Learn all the basic algorithms.
2. Code.
3. Practice more. Solve problems in HackerRank, Codechef etc.
4. Be consistent and don't lose hope.
5. Program more. Soon you will get better at it.
169 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Anonymous
Answered Jan 1, 2017
Originally Answered: How should I start my career in Competitive Programming?
welcome to competitive programming , it is fun activity . Topcoder and code forces are good
sites . I prefer Java, as known to me it is not a career you can use the skills you learnt in
competitive programming to enhance your career. All the best.

735 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Jeff Gruszynski, Been programming since I was 11


Answered Oct 30
Originally Answered: To enter the world of competitive programmers as a beginner, what do I need to study
beforehand?
The main strength is practice - you get better at programming by programming, and NOT by
studying programming. Similar to how you become a better writer by actually writing rather
than simply studying the theory of writing. The theory has its place but it’s NOT dominant or
fundamental to success.

177 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Ishant Agarwal, Computer Engineer, College of Engineering Roorkee


Answered Dec 2, 2015
Congrats my friend!! Its indeed appreciable that you have started thinking to develop coding
skills in your early college days (I started in my 4th yr :p ). Here is the best answer I can provide
for your question.

Ishant Agarwal's answer to I am 18 years old and I want to start programming. How should I
start?
23 Views · Answer requested by Santhosh Sunny
UpvoteDownvote
Share

 
RecommendedAll

Kushagra Dixit, Professional Blogger and SEO


Answered Jun 30, 2017
well that’s good question now you entered in professional life so keep going through the new
things in everyday life specially with coding challenges coding languages .

u can learn coding languages anytime anywhere u want ,the best way to learn coding languages
is through the video tutorials because it is the best to learn as visualisation is much better than
anything so go through it.here providing you some link through which u can become a master
and learn all the things in hindi as well as in english and u will also get coding ground to code
and also get certificate from iit mumbai.

visit:-Unanth - Online Video Tutorial Courses, Online Learning & Training Marketplaceu will
also get wide variety over there.

114 Views
UpvoteDownvote
Share
 
RecommendedAll

Al Klein, 45 years of earning a living developing systems.


Answered Oct 30
Originally Answered: To enter the world of competitive programmers as a beginner, what do I need to study
beforehand?
First, before you learn any programming language, you have to learn programming itself (which
is done in the language you think in - programming is problem-solving, not code-writing).

Then you have to learn whatever language the competition will be using (or one of the languages
that the competition will accept). Then you have to use it for a couple of years, every day, to
become mediocre at it, so you can enter a competition and see just how far you have yet to go.
(Some people learn faster than others, but at least a couple of years is the minimum time it will
take anyone to get good enough to compete with [and probably lose to] people who have been
programming for 20 or 30 years.)

411 Views · View Upvoters · Answer requested by Jim Carson


Upvote2Downvote
Share

 
RecommendedAll

Zahan Ahmad
Answered Sep 5
as a beginner if you over looked on your high school mathematics so do solve high school
mathematics books you’ll feel more comfortable for competitive programming. take one
language i would like to suggest c++ if you don’t know c++ so learn from here The C++
Resources Network try to code your self do fast and then learn algorithm.

if you’ll practice a lot in competitive programming you’ll be able to solve a lot of problems from
bottom to top only hard work and practice required.

157 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll
Sachinreddy Kukale, studied at Rural Engineering College Bhalki
Updated Mar 12, 2017
Originally Answered: How do I learn Algorithms for competitive programming?
You can learn basics of algorithms only!!! After that it is up to your capabilities how much you
capture and how you implement those algorithms to real life problems.
You can try 'nptel' for learning algorithms. If you search this term on internet you will get really
thousands of algorithm.
Another way is if you are computer engineering student then you can learn it in academics and
then you can explore your your knowledge.

Here I found the list of top 5 programming books for beginners.

870 Views
UpvoteDownvote
Share

 
RecommendedAll

Priyam Kakati, I love Coding :D


Answered Jan 2, 2017
Competitive programming for beginners I have created this blog because i have faced such
situation and hope this blog helps you.I have included each and every things needed for
competitive programming just start from older to new posts.And if you love this do share it :)

209 Views
UpvoteDownvote
Share

 
RecommendedAll

Florio Potter
Answered Feb 2
In the same time well-bred people who attend colleges or even universities find it problematic
sometimes to learnprogramming. Just for some learners who want to become sophisticated
ones, this writing company proposes a cheap assistance from codeavail
experts from codeavail.com on time. you can learn quickly competitive programming
at CodeAvail.

p�� �n��/��&
13 Views
UpvoteDownvote
Share

 
RecommendedAll

Ahmed Yahia Kallel, 8 years programming in different languages (freelance, hobby).


Answered Aug 14, 2016
Although I’m not sure what exactly “competitive” means.

If competitive stands for a solution to a complex problem, then you should probably not learn
about programming languages but instead learn about different algorithms (sorting, AI
algorithms, cryptography, hashing, etc. etc.) as well as advanced data
containers/type (dictionary, queue, dequeue, list, etc.)

For a competitive as faster, you have to learn another language than C, i.e. Java (or Python) so
that you could find and implement solutions faster. Also, you’re going to need to practice more
programming in side projects so that you could be able to find solutions on the fly faster.

246 Views · Answer requested by Saul Rakov


UpvoteDownvote
Share

 
RecommendedAll

Vipul Srivastava, Have been doing competitive programming on SPOJ.


spoj.com/users/devilwolverine/
Answered Jan 9, 2016
Originally Answered: How do I learn Algorithms for competitive programming?
I have found videos on YouTube really helpful in learning algorithms. Videos by Tushar Roy are
well explained, you can give them a try and see how this suits you.
All the best..!!
18 Views · Answer requested by Atharva Deshmukh
UpvoteDownvote
Share

 
RecommendedAll
Divyanshu Bhardwaj, BCA (Pursuing) Learning to Program & How to Crack Mca Entrance Exam,
School of Management Sciences Varanas...
Answered Jun 2, 2017
Originally Answered: How can I start competitive programming as I am a beginner?
Well before going for competitive programming you need to learn about the basics . If you have
knowledge about basics in programming then you can try these sites to start competitive
programming.

HackerRank, Codechef, Coderbyte, Topcoder.

Hope It will be helpful.

61 Views · View Upvoters · Answer requested by Niyaz Ahammed


Upvote1Downvote
Share

 
RecommendedAll

Anup Kalbalia, works at CodeChef


Answered Nov 13, 2014
Originally Answered: I want to do competitive programming. What should I do?
Just do it! 

How to get started? Read this answer. May help you. - How can I get started with sites like spoj,
CodeChef..?
492 Views · View Upvoters · Answer requested by Hrishikesh Pandey
Upvote4Downvote
Share

 
RecommendedAll

Rajkumar Gosavi, Computer Engineering Student


Answered Aug 6, 2016
Originally Answered: For a very first beginner what are ways to start with competitive programming?
First you should try to learn data structures they are must for any programmer

You should be good at maths and problem solving sites like Brilliant | Excel in math and
science. help most

then sites like HackerRank gives you opportunity to start from basic to advanced level

further you must always be learning


231 Views · Answer requested by Sonali Chauhan
UpvoteDownvote
Share

 
RecommendedAll

Arun, .Net Developer with 9 year experience


Answered Mar 30, 2017
1. Try learning to write Algorithms in paper, then in mind
2. Try to write small methods..
3. try to give meaningful names for variables and methods
4. learn from your own mistakes
5. try to modify your own code for some complex solutions and see the output
6. try to write bug free codes and do unit testing
7. give more time for unit testing and when you do some change, do unit testing from
scratch (which may found boring some times)
84 Views
UpvoteDownvote
Share

 
RecommendedAll

Anonymous
Answered May 19, 2016
Here’s what you do Calm Yourself.. Now go take up a video course( Ex- MIT OCW Coursera
Udemy Udacity there’s alot more) it will be great if that video course provide you only
algorithm/pseudocode so that you can implement by your own also video courses save a lot time
and give better understanding of DS and Algos+ CLRS + Code MONK (Hackerearth) +
TopCoder Tutorials… Okay so you have gathered all your resources.. Now follow up that video
course step by step( Lectures by lectures).. Now as you have finished one Algorithm ex- like
quick sort then implement it on one of the competitive programming site ..Dude your
confidence will reach on another level when see that rare ‘Green Tick’ and you can lot more push
yourself….Now what go and participate in Contest and become red yellow whateva coder you
wanna become ..Hope to see your team as WF..pluse keep and eye in GSoc too..

Goodluck

327 Views
UpvoteDownvote
Share

 
RecommendedAll
Sandeep Hariani, works at IGATE
Answered Nov 11, 2014
Originally Answered: I want to do competitive programming. What should I do?
Your college, attendance , marks all do matter in helping you build your aptitude. Focus on your
goals. 
Manage your time better and you will be able to achieve more than what you can. Good luck
93 Views
UpvoteDownvote
Share

 
RecommendedAll

Amarjeet Singh, B.Tech at Delhi University


Answered Jan 5, 2016
Originally Answered: How do I learn Algorithms for competitive programming?
You can learn basics of algorithms only. After that it is up to your capabilities how much you
capture and how you implement those algorithms to real life problems. If you problem  practices
on Codechef and Spoj. Then you will get much improvement..

21 Views
UpvoteDownvote
Share

 
RecommendedAll

Anonymous
Answered Jul 23, 2016
Originally Answered: How do I start studying for data structures and algorithms for informatics olympiads?
“Algorithms in C” and variant books are pretty decent. The site you linked is highly relevant,
albeit missing a few topics such as dynamic programming, and complexity.

IMO as a beginner it is good to start with learning complexity, assuming you already somewhat
know with the programming language syntax.

301 Views
UpvoteDownvote
Share

 
RecommendedAll

Kamal Rawat, former Computer Scientist at Adobe Systems (2014-2016)


Answered Jun 25, 2017
We conduct free workshop in colleges for the same purpose. It is a one day workshop that covers
everything required. If you are interested mail me at krawat@ritambahra.in

87 Views
UpvoteDownvote
Share

 
RecommendedAll

Craig Terblanche, Director OutSystems South Africa at OutSystems (2013-present)


Answered Aug 19, 2017
You don't need a computer science degree to learn low-code programming at The #1 Low-Code
Platform for Digital Transformation | OutSystems

37 Views
UpvoteDownvote
Share

 
RecommendedAll

Kashyap Mahanta, Just a beginner in coding and enthusiast about programming


Answered Aug 8, 2016
Complete the c/c++ domain in hackerrank... Then go for algorithms and maths
domain....Simultaneously participate in the codechef contests...
177 Views · Answer requested by Sonali Chauhan
UpvoteDownvote
Share

 
RecommendedAll
Kshitij Sharma, Programmer
Answered May 29, 2017
HackerEarth and HackerRank both has a good approach. You can try them.

29 Views · Answer requested by Uday Tayal


UpvoteDownvote
Share

 
RecommendedAll

Shahar Papini, Algorithm designer, mathematician, conpetitive programmer from israel


Answered Jun 22, 2016
Originally Answered: How do I start learning competitive programming?
http://train.usaco.org/usacogate
298 Views
UpvoteDownvote
Share

 
RecommendedAll

Goutham Ramakrisnan, former Intern at Zoho Corp (2017)


Answered Mar 11, 2017
Originally Answered: How should a beginner start competitive programming?
Just start.

73 Views
UpvoteDownvote
Share

 
RecommendedAll

Indra Bhattacharya, I know C and Java.


Answered Aug 18, 2015
Originally Answered: How do I learn competitive programming?
To learn competetive programming you must participate in competitions of Codechef, Codevita,
brainfuck and other online programming contests
1.2k Views

What is the best language for Competitive


Programming? For example, out of C, C++, Java, and
Python, which would be the best language to specialize
in for programming competitions?
This question previously had details. They are now in a comment.
Answer
Request
Follow200
Comment1
Downvote
Share

54 Answers

Kartik Ayyar, ICPC world finalist.


Updated Oct 12, 2011 · Upvoted by Sathish K, M.Tech. Computer Science Engineering, National Institute of
Technology, Tiruchirappalli (2018)
A major part of someone setting up problems for a programming contest is that they focus on
fundamental concepts rather something you can solve with a gimmick library call with
functionality present in just one given programming language.

Thus, doing well in programming contests is all about slicing the problem down the right plane
to break it down into data structures that are easy to represent and manipulate; in more or less a
language agnostic manner.

If you are looking at the programming language as a competitive advantage for programming
competitions, especially for the ICPC, I can almost gaurantee you that you are setting yourself
up for failure. ( See my answer to Does ACM-ICPC or IOI success correlate with industry
success? for samples of what kinds of problem domains I've observed to be popular in the
contests )

Spend that time practicing problems in any one language of your choice - it does not matter
which language you pick. The concepts and implementation speed in one given language do
matter a lot, but the choice of language does not.
22.3k Views · View Upvoters
Your response is private
Is this answer still relevant and up to date?
YesNo

Upvote61Downvote
Share

Raghu Ram, prominent in c++


Answered Jul 30, 2016
Competitive Programming has many requirements such as speed and accuracy.

Anders Kaseorg's answer to Is C++ slower than C? If yes, is the difference significant?

The above link shows the comparison between c and c++.

Rest languages such as python and java are also most commonly used.

1. C - Understanding based implementations , you may create your own custom libraries
using it but it takes time .
2. C++ - It is the best Because it has got STL support and no other language
can beat it. However you need to implement your own Data Structure in
case of Graph, Tree or Segment Tree implementation.
3. Java - Has a BigInteger Class Support Which is Really useful When we need to deal
with Really Big Numbers. Such as 10^200
4. Python - It is Short and user friendly but slow. So I Would Recommend C++ as your
Language. Learn Other languages too there is no harm in implementing a particular
code in multiple languages.
6.9k Views · View Upvoters
Upvote18Downvote
Share

 
RecommendedAll

Moustafa Alzantot, CS Ph.D. Student at UCLA


Answered Jul 7, 2015
Originally Answered: Which programming language should I learn for competitive coding and competitions?
C++ is the most preferred language for competitive programming, due to its performance and
the availability of the powerful standard template library (STL) which has efficient
implementation for common data structures (stack, queue, priority queue, map, etc.) and
common routines (e.g. sorting, searching, etc.).

However, for certain types of problems you might feel better to do it in Java or Python. Like
dealing with  big integers which is not supported primitvely in C++.

So, I would suggest you focus on C++ but get some exposure of another language like python or
Java.
13.1k Views · View Upvoters
Your response is private
Is this answer still relevant and up to date?
YesNo

Upvote33Downvote
Share

 
RecommendedAll

Andrés Ibañez, I like to study and learn different programming languages and paradigms.
Answered Sep 30, 2011
Last Saturday, I participated in the a local ACM ICPC competition, so I will do my best to give as
many details as possible in this answer.

Leaving that aside, this is a most interesting question, because all competitions are different and
they have different requirements, I will tell you the requirements of the ACM ICPC and then I
will tell you why we chose the tools we used.

The ACM ICPC has many complex problems, and you are limited in using either C, C++, or Java.
For this particular round, we used C++ and just C++; but on the prior round we (as in, my team)
decided to use Java for an exercise due to the fact that the exercise could generate ridiculously
big numbers, and C++'s long long data type wasn't big enough to use it, so we opted for Java for
that one exercise so we could use the BigInteger wrapper class. But it was the only need for Java.
For the rest, we used C++ simply because we are more familiar with it and we have experience
using STL classes that simplified our job a lot easier.

You have to keep in mind that judges are very strict with the output and execution time of your
programs. If your programs take too long to do their job, you receive a Timeout Message and
your submission is rejected. If you have one extra space at the end of an output line, then the
judge penalizes you. We found it easier to build our strings in C++ most of the time (although
with Java it presents no issues, but it does take a longer time to type out a instruction to print a
line than C/C++ does). We also used C++ because of it's speed, because we didn't know (and
still we don't) how slow is too slow, so regarding that matter we decided to use C++ over Java.
Know your tools and when to use them. Now if you get the chance to learn Python and use it in a
competition, then that would be most wonderful.
All in all, I agree with Kavinay Kishor: There is no 'best language'. After all, teams in
competitions are usually made of 3 - 4 people (for what I have seen, this is really my first year
competing), and everyone should be able to do everything to speed up problem solving. Of
course, it doesn't hurt to know more than your teammates when it comes to a language or to a
language feature, but it shouldn't be your focus to 'master' something, because if you never use
that something again then it might be a waste of time in the long run.
12.2k Views · View Upvoters
Upvote12Downvote
Share

 
RecommendedAll

Nikhil Garg, I know a few programming languages


Updated Oct 4, 2016
Though as Kavinay & Kartik say, all languages are more or less equal and what matters the most
is the algorithmic solution. That is more or less the rule of thumb. Within our team, we switch
between C++ and Java very often depending on the problem e.g I do all BigInt / String /
Hashtable problems using Java and all rest in C++.

However, I've often observed that for programming competitions, at least when saving a couple
of minutes per problem can make a difference, C++ does better than Java because fewer lines of
code need to be written. This can be minimized further if one is using clever and useful macros
(which everybody does). Also C++ has faster execution time (by an order of 2 or more if problem
is IO intensive). This sometimes allows for algorithmically sub-optimal but fast solutions written
in C++ to pass as the time limits are set to allow algorithmically optimal solutions written even
in slower languages.

So though I like Java much more compared to C++, I most often write programs in C++. C
doesn't have a DS library support and no other languages are allowed.

27.3k Views · View Upvoters
Upvote119Downvote
Share

Kartik Ayyar
I've been out of the game for a while now, though at least when I was into the contests I don't r...

Saumya Tiwari, Learning and growing day by day.


Answered Feb 15, 2016
Originally Answered: Which language is best for competitive coding?
The one you are comfortable with!
You can always think of a programming language, suitable(or 'best') for a particular purpose.

For example:

For building android applications : Java



For artificial intelligence : Python , Prolog , Lisp

For Iphone applications : Objective C

and the list continues.

But when we apply the same question to competitive coding, it sounds absurd.

The sole reason why SPOJ allows coding in any language is that all the languages
are EQUALLY good to be used there. 
And if you have decided to go for competitive coding, it's most likely that you are
comfortable( rather proficient) with at least one programming language.

Now, if you are new to the programming world, and are looking for the best language you could
learn, then these are some facts I would like you to know.

Easiest to learn : Python


Most powerful : C++
Most likely to be useful in 10 years : Java

P.S. The suggestion made at the bottom were taken from here : The different uses of
programming languages .

6.2k Views · View Upvoters
Upvote13Downvote
Share

 
RecommendedAll

Utkarsh Gupta, B TECH from Indian Institute of Information Technology, Allahabad (2020)
Answered Jul 22, 2017
C (to be more specific C++)

YES..

YOU READ IT RIGHT “C++” NOT “PYTHON”

“JAVA” : NO NEED TO MENTION


( JAVA - codes are much lengthier to type than “C++” and “PYTHON” )

So who want to type much and also if you are exception then time is always a factor
in “COMPETITIVE - PROGRAMMING - CODING”

MOST OF YOU HAVE HEARD OF “PYTHON” TO BE VERY ELEGANT LANGUAGE


HAVING MINIMAL SYNTAX TO BE TYPED…

THEN WHY C++ ?

1. For so called “ COMPETITIVE - PROGRAMMING - CODING ” on the basis


of which top - notch mnc’s :- GOOGLE, FACEBOOK, AMAZON etc recruit .
2. You may cross - check 1st point by referring “How we hire - Google
Careers”, there you will come across the importance of excellence in competitive -
programming - coding for Google recruitment.
3. Order of RUN - TIME :- PYTHON > JAVA > C++ > C
4. From 3rd - point, it's evident that “C” and “C++” (as they are COMPILER -
BASED languages) take least run-time while “PYTHON” (being INTERPRETOR -
BASED language ) take most run - time. “JAVA” is also COMPILER - Based.
5. Competitive - Programming - Coding, have “RUN-
TIME” & “MEMORY” constraints, your program must run within “ 1 - sec” on
most of “ online - competitive - programming - coding - websites” except
for “CODEFORCES” which have “ 2 - sec” run - time constraint. So here come 3rd
and 4th points in scenario, that “C” and “C++” take least run-
time while “PYTHON” most.
6. Due it's predefined containers & standard-algorithms present in “STANDARD-
TEMPLATE-LIBRARY”) which are great life - guards which rescue you to fathom
some unconquerable problems, saving lot of time of thinking and typing those
algorithms. And time is factor I am not at all talking of “JAVA”
One must start learning “C++” as early as possible and make “COMPETITIVE -
PROGRAMMING - CODING” your life until somewhere around 4th /5th semester.

“C++” for “CAMPUS - PLACEMENTS” ONLY

NOW COMES CONTRARY PART :-

“PROJECTS”

( “PROJECTS” have to be thought after 4th /5th semester)

See, as there not any issue of “RUN - TIME - CONSTRAINT” contrary to competitive -


programming - coding

And you have to code tremendous amount of lines relative to competitive - programming -
coding

So “PYTHON” :-

1. Most programmer-friendly language with most elegant syntax which is minimal for typing.

2. And if you have made your mind for “WEB - DEVELOPMENT” project. Due


to “DJANGO”.
FOR ALL “JAVA - LOVERS”, I WILL GIVE RESPECT TO JAVA ALSO :-

If you have made your mind for “APP - DEVELOPMENT” :-

APP - DEVELOPMENT = JAVA (BACK - END) + XML (FRONT-END)

One must start learning languages for projects only after 4th /5th semester i. e. in 5th /6th
semester.

As “CAMPUS - PLACEMENTS” are in 7th - semester, so by then you will accomplish


proficiency in “COMPETITIVE - PROGRAMMING - CODING” and have “PROJECTS” to
add weightage to resume.

2.7k Views · View Upvoters
Upvote18Downvote
Share

 
RecommendedAll

Suchith Javagal (ಸುಚಿತ್), Worked with lot of languages - C to OCaml


Answered Oct 2
Originally Answered: What is the best language for competitive programing?
It depends.

Competitive programmers mostly use C++ because of STL and Java. They are supported in
almost all the platforms I have seen. C is not used because of lack of collections in standard
library. Python is also supported in many platforms and has nice library.

Other than that, some platforms are pretty strict about time limits. Some have multipliers (for
instance if time limit is 1s for C++, it is 2s for Java and so on). When time limit is strict, you have
to choose a language like C++.

Some platforms like Google Code Jam or Facebook Hacker Cup don’t run your code, instead
they ask you to submit the output and the code. You can use any of the languages for which a
free compiler/interpreter is available. If you get the algorithm correct, the time given to get and
submit the output is more than sufficient. So language choice doesn’t matter much. I have
actually submitted a solution in Python in a live contest and got accepted.

2.1k Views · View Upvoters
Upvote17Downvote
Share

 
RecommendedAll
Suraj Subraveti, Work hard, party harder, Quora hardest
Answered Oct 26, 2014
Originally Answered: In which language should I write in programming contests, C++ or Java (especially for INOI
2015)?
C++. No question about that. C++ is much faster than Java. While Java is great for building
applications, it doesn't gel well with competitive programming. I am more comfortable with C++
because:
1. Taking input is much easier with C++. All you have to do is to use cin or scanf. In Java, a
scanner class object must be created and must be configured to take input from System.in object
and also integers must be extracted from the input stream using nextInt(). Too cumbersome.
2. You need not write your code in a class in C++,but in Java everything is object-oriented. You
have to use objects and classes for everything.
3. Though C++ is considered to be an object-oriented programming language, you have the
option of using it like C  i.e. in a procedure-oriented way(the procedural way is the most
recommended way to approach competitive coding). This is impossible with Java.

Strictly speaking, you don't even need C++. You can do wonders with C itself and that's what
people usually do in coding competitions.Therefore, my advice to you is to chuck C++ too and
use C. But, personally, I prefer C++ because I am more familiar with it.

So, to summarize, chuck Java and even Python for competitive coding. Stick with C or C++ for
the best results.
5.7k Views · View Upvoters
Upvote12Downvote
Share

 
RecommendedAll

Vicky Raj, Software Engineer at Amazon.com


Answered Aug 10, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
I would recommend to use C, as we have to write every piece of logic on our own and this will
force us to think, whereas with Java, we have this huge library which, though we are not forced
to use but why not use this library when we are using Java.

For example suppose, you want to sort strings. In Java, the Comparable interface is
implemented by String class which means there is a compareTo() method which compares two
Strings and returns -1, 0 and 1 based on the comparision result. So, we can directly use this
instead of writing our own code to compare strings, which makes us lazy to think. But in C we
have to write our own code for this.

Since the motive is competitive programming, where time of execution and memory space also
matters, go for C. You will evolve better as a programmer as you will think more.

Learning Java at a later stage will not be harder.


3.3k Views · View Upvoters
Upvote13Downvote
Share

 
RecommendedAll

Kavinay Kishor, Victim of semi-colons.


Answered Sep 30, 2011
Don't get too hung up on best language. It's a nebulous concept. :D

For a competition what matters most is:

1. your expertise in the language's paradigms, limitations and workarounds.


2. the pre-existing codebase and best practices that the language allows you to leverage
when solving the competition problem.

I love the raw speed of Python because I'm faster making mistakes and fixing them in that
language than setting up Eclipse for a Java project. :D But that's just the way I think and work
best. You will likely find your own best fit based on your intuitive understanding of how to best
use languages you're already familiar with.
7.6k Views · View Upvoters
Upvote11Downvote
Share

 
RecommendedAll

Rajat Varyani, Sport Programmer!


Answered Nov 23, 2015
Originally Answered: Which programming language is better for competitive programming and why?
The most widely used programming languages in competitive programming are Java,C++ as
they are accepted globally in Competions(including ACM-ICPC).
I prefer C++ as it provides you the correct balance between speed and built in fuctions.
1.9k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll
Kshitiz Bakshi, Fascinated by Computer Science, playing around
Answered Feb 26, 2016
Originally Answered: Which language is best for competitive coding?
If you look at competitions like ACM-ICPC, from what I last knew they only allowed C, C++ and
Java. So while technically all mainstream languages are equally powerful enough to solve
problems, practically if you want to compete it events like this you have these three choices to
build up your skill set in.

If you had to choose just one, read on.

Between these, C might be too low level for most problems. It's libraries do not have any mildly
complex data structures or algorithms to use and you'll have to write everything on your own. So
I wouldn't really recommend it.

Java and C++ appear to be equally well loaded - C++ with STL and Java with Collections. Your
choice here could be just personal; some like Java syntax while some hate its verboseness.
Similarly, some might like that Java as a language is much stricter so easier to program quickly
(no pointers and less data type overflow issues to deal with). Java also provides a BigInteger
class which can sometimes be helpful.

C++ is faster but I think most online judges account for the performance difference. So you
could pick any.

I can say that for a beginner, C++ can be a bit overwhelming due to it's different data types and
sizes, stl syntax and iterators, and other such things. Java has less a bit less of this, and also
comes loaded with a LOT of stuff pre done like maps, lists, sorts, collections (like c++ stl) so you
can give it a shot.
2k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Leif Walsh, works at Tokutek


Answered Sep 30, 2011
I went to ICPC worlds with C, but I really like C and most people prefer something with more
features (I don't know why, but that's another discussion).  I'd go with python since you can be a
lot more succinct.  Definitely not Java, probably not C++, both tend to make you type a lot more
than you should need to.

Oh yeah, and as Andrés points out, you'll need to be at least a little familiar with Java in case you
have to do things with bigints.  Most programming contests I know of don't pack gmp.
Here's a template similar to what I would usually start with, in C:

1. #include <assert.h>
2. #include <stdio.h>
3. #include <stdlib.h>
4. #include <math.h>
5. #include <algorithm.h>
6. #include <sys/types.h>
7.
8. typedef struct in *IN;
9. typedef struct out *OUT;
10.
11. int read(IN in) {
12.
13. }
14.
15. struct in {
16.
17. };
18.
19. int solve(IN in, OUT out) {
20.
21. }
22.
23. struct out {
24.
25. };
26.
27. int print(OUT out) {
28.
29. }
30.
31. int main(void) {
32. struct in in; struct out out;
33. int r = read(&in); assert(r == 0);
34. r = solve(&in, &out); assert(r == 0);
35. r = print(&out); assert(r == 0);
36. return 0;
37. }
4.1k Views · View Upvoters
Upvote6Downvote
Share

 
RecommendedAll

Beilin Li, C/C++/Java


Answered Aug 4, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
A2A.

I love C and you should definitely learn C but using only C (e.g. without learning C++ which is a
basically superset of C) is going to be at least mildly disadvantageous during competition.
If you have the time you could use Java (since you know it somewhat already) and learn C/C++
with the intention of switching later. Otherwise, I would go ahead and learn C/C++ if you're up
to doing so.

Background: I learned Java first and switched to C/C++ last spring. I don't think Vivek Verma's
first issue should be of too much concern. It's true that learning Java improperly can give you
the habits of a bad programmer but learning any other language improperly

Background: I learned Java first and switched to C/C++ last spring. I don't think Vivek Verma's
first issue should be of too much concern. It's true that learning Java improperly can give you
the habits of a bad programmer but learning any other language improperly is no better. C can
be very very frustrating if you've never encountered similar concepts before.
10.2k Views · View Upvoters · Answer requested by Sumit Raj
Upvote6Downvote
Share

 
RecommendedAll

Raesh Khandelwal, Part time coder


Answered Sep 14, 2016
Originally Answered: What is the best Language for competitive programming?
I personally like C++. I am so comfortable in its syntax.

Other than that C is the fastest.

Python has a comparatively smaller code than C/C++.

But I would really suggest getting in C or C++, the reason being that you would get to learn the
inner working of memory Allocation and Management.

2.1k Views · View Upvoters
Upvote9Downvote
Share

 
RecommendedAll
Verdu Sanjay, works at Students
Answered Aug 14, 2016
Originally Answered: Which language should I learn for competitive programming?
It totally depends on you.For me its c++.It contains all the tools i need to solve a problem.C++ is
fast.Besides that,c++ lacks in Big integer thing.

I think after learning c++,it wouldn’t be too hard for anyone to learn java. It will hardly take 10–
20 days.

So,i think keeping competitive programming in mind ,you could prefer learning C++ first.

Happy coding.All the best.

345 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Amit Attry, I learned many languages c,c++,python and now i am learning Perl
Answered Dec 8, 2015
i will suggest you python because it is ; 
1. easy to code 
2. easy to learn
3. decrease time of coding in competitions

Python has enough in common with Java and C++ that adding a notch on your belt for Python
as another of the N programming languages you know is pretty easy.  Paradigm differences
aren't a huge barrier to trying Python.  You will find there are differences.   Don't resent the
differences, seek them out and think about them.  Take care to learn to write in Pythonic style. 
That is, don't just write Java code in Python syntax.

I admire Python for the way it let's me express my code in fewer lines than many other
languages, but still be readable and modifiable.   It is well suited for incremental development. 
Arguably, it's lack of compile time checking of things pretty much demands that you be diligent
in testing everything.  That is perhaps, both a pro and a con.

Further reading- related articles from my blog: 


Actual code - C vs. Python for a small problem - don't miss the comments on that

article where folks look at numerous other languages too.  You just may end up putting
Go on your list of things to learn. 
 Pythonic Python - Writing Python code that fits the language's idioms.
C++ is a relatively large language.  For the sake of compatibility, they only add features to it. 
Stroustrup himself laments that folks tend  to go on writing in C with a few new features instead
of properly exploiting the newest additions to C++.   So as you add to the list of languages that
you know, if the language is still evolving, it takes some energy to keep up with it.

Don't resent that.  It's a sign the the community is healthy and working to make things even
better.  Dive in!
--- by R. Drew Davis
894 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Bhargav Sg, studied at San Jose State University


Answered Sep 2, 2016
Well I feel Python is more faster to code, if execution time is not a concern. Since you have lot
more libraries and API’s in python compared to C or C++ it will be faster. For example Take an
example of concatenating 2 strings in python v/s C:

In python:
1. str1 = “hello”
2. str2 = “World”
3. str3 = str1 + str2 # str3 = “helloWorld”
In C:
1. str1[] = “hello”
2. str2[] = “World”
3. char str3[256];
4. snprintf(str3, sizeof(str3), "%s%s", str1, str2);
In C you should be careful about the size of str3 you allocate. And also sizeof() works in this
example but if you are using a pointer, then you will have to write more code to allocate dynamic
memory(use malloc).

There are many other ways to do this more efficiently in C, but the point is, it takes time and is
more prone to errors, where as in Python it is more intuitive and natural. But Python can never
beat the execution time and final compiled code size of C applications. That is the reason why C
has stood the test of time so long.

532 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll
Siffi Singh, Learner.
Answered Sep 16, 2016
Every language is good, but I personally recommend C++.
Reason: STL. You do not have to define your sort function every time you make a new program
or define same function twice for the different data types, instead we can just use the generic
container and algorithms in STL.

This saves a lot of time, code and effort during programming, thus C++ STL is heavily used in
the competitive programming, plus it is reliable and fast.

Happy Coding!! :D

1.1k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Jakub Wojtaszczyk, TCO semi-finalist in 2010, judge at ACM ICPC finals


Answered Apr 2, 2015
Originally Answered: Which language should I learn for competitive programming: C or Java?
I would recommend choosing whatever people close by you can learn from use. In Poland, C++
is the language of choice. I've seen Russians use Java a lot, so it varies from place to place. And
learning from others is very important for getting better.

If you don't have a programming competition community around you, all things being equal I
would probably propose C++. It seems to be more popular (at least by Google Code Jam stats),
so you will have more places to pick up good patterns from.

However, C++ can be a bit foreign if you never used it. If you just want to see if programming
competitions are fun for you, choose whatever language you feel most comfortable in (which
seems to be Java or maybe PHP in your case; the latter assuming you have an open-input format
competition in mind), and consider switching only once you know you're willing to invest more
time into learning.
3.5k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll
Rishab Mehra, Undergrad CS, Bay Area
Answered Aug 5, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
Well if you want to dive into competitive programming really quickly, python would be the
easiest for you, given your background. But honestly learning a language for competitive
programming purposes is not such a big deal (you can literally do it in a couple of hours) since
you only need to know the basics of the language. You rather need to spend time on
logic/algos/practice.
4.5k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Sachin Malhotra, Trying to hack my way to eternity !!


Answered Apr 27, 2015
Originally Answered: What programming languages do I need to know to be an excellent competitive programmer?
My friend the truth here is that programming languages Alone won't help you to reach the top.
They are just your tools and you need to be pretty damn good at using them. However, knowing
what to use when and solving the problem at hand; This is the skill that will make you a great
programmer at the end.

Cheers and Happy Coding !!


2.4k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Anonymous
Answered Aug 6, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
My personal thought will be that you should choose C++ instead of C

Reasons for opting C++


1)Very good built in STL (Standard Template Library)
2)Faster than JAVA (JAVA takes a lot more time to execute than C++ or C)
3)Memory efficient(the memory utilized by C++ code is very less in comparison to JAVA code)

Although the last two points should not be a problem, because slower languages like JAVA,
python etc. are usually given more time limit than faster languages like C/C++ and memory
limit of code is usually 256 MB which is sufficient for JAVA codes..
JAVA is also having very good built in libraries and one more thing JAVA is more popular than
C++ in software development
1.5k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Yashasvi Sharma, Bsc Computer Science at IIMT Engineering College, Meerut (2016-present)
Answered Feb 22
Basically, competitive programming isn’t a mind sport usually held over the Internet or local
networks, involving participants trying to program according to “provided specifications”.

From my point of view, you should first learn the C and C++ language and get perfection in
these two languages Beachse this is the base of your other languages like JAVA, PHP etc . When
you are done now you should sit back and give yourself a thought

Think about your interest

If you wanna become web developer than you have to decide by which language you wanna do
your web developing stuff. There are number of languages in which you can do web developing
such as C , C++ , JAVA, PYTHON, PHP , RUBY ( trending in India nowadays), CORE JAVA,
JAVASCRIPT etc

The other option is if you wanna work with multinational companies like google, Facebook or
yahoo etc than you should mainly these four languages which are

1. C
2. C++
3. Java
4. Python
79 Views
UpvoteDownvote
Share

 
RecommendedAll
Abhishek Sharma, Quoran | Learner | Dancer | Software Developer
Answered Feb 25, 2015
There is no criteria that which language should i choose for prog. competitions. It completely
depends on you that which language you want to choose for it. Like for example i like Java for
competitive programming. I have practiced most of the codes in java. And as the time passed i
starting loving it more. So you can't categorized the languages for programming competitions.
Yeah if you would like to specialize them on the basis of time taken by them then in that case you
can categorize them.

1.9k Views · View Upvoters
Upvote4Downvote
Share

 
RecommendedAll

Harun Urhan, 've been programming since High School.


Answered Aug 8, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
Go for Java, If you want to earn money and get a job easily because it is more popular and used
in mobile, web&enterprise. Also you can create standalone programs with UI which work on
pretty much every system. 

Go for C,C++; If you like difficulty, performance and want to understand basics of
programming, computers, languages. C helps you understand. 

On the other hand, I suggest you to learn and experience both and others too, and see which you
like most. For instance Visual Basic used to be my favorite language when I was in high school
because I didn't know any other. Then I've learned Java, C#, C, C++, Objective-C and my
favorite language usually changed. You can't have idea something you don't know that's why
give all a try, then expertise/go on with the ones you love.
2.4k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Ashish Pahwa, A student |CS enthusiast|Doing number crunching|


Answered Dec 2, 2015
Originally Answered: Which programming language is better for competitive programming and why?
Yes ,its true C++ is perfect for competitive programming as it offers some inbuilt functions
which C doesn't and you can focus more on logical and mathematical part and less worry about
the implementation .

Though as a backup it is always a good idea to have hands on other languages as well .

For instance Python allows you to compute long integers , but in case of C/C++ you may have to
save the results in an array by extracting each digit , thereby making your task a bit
complicated .
1.3k Views
UpvoteDownvote
Share

 
RecommendedAll

Prabhakar Bikkaneti, M.Tech Computer Science, International Institute of Information Technology,


Hyderabad (2017)
Updated May 26, 2017
Originally Answered: Which programming language is preferred in competitive programming competitions?
For Problem solving I usually go with C#. 
Reason: all the basic data structures like LinkedList, Stack, Queues etc are easy to use by
importing their respective namespace. So, I don't have to bother about the implementation of
them and I can focus on the algorithm for solving the problem. 
And, C# is the language that I am using for last two years. So, if I run into any compilation or
runtime error, I can easily figure out the cause for it and fix it.

For implementing the basic data structures like Linked list, Stacks, Queues I go with C+
+ language. 
That way I can code every small functionality on the Data Structures from the scratch, without
using any inbuilt functions.

Edit: In C++, you can use STLs for including the standard data structures like linked lists, Hash
map, sets etc.

2.5k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll
David Verax
Answered Nov 2, 2014
Originally Answered: In which language should I write in programming contests, C++ or Java (especially for INOI
2015)?
It does not matter which language you use. Some say that C++ is faster than Java but in most
programming contests that does not matter because all problems are tested in both C++ and
Java so you can be sure that there always exists a solution in Java. Also, many programming
contests have higher time limits for Java because it is slightly slower.

In programming contests such as IOI, ICPC etc. the language used matters very less. What
matters is how quickly you manage to come up with an algorithm.

Some people express concerns about I/O in Java saying that it is cumbersome. Trust me, many
active competitive programmers today use Java and the top programmers make blazing fast
submissions. So, having to type something like in.nextInt() hardly matters in a programming
contest.
1.8k Views · View Upvoters · Not for Reproduction
Upvote2Downvote
Share

 
RecommendedAll

Satyendra Shukla, Application Developer


Answered Dec 13, 2015
Originally Answered: Which coding language should I learn, assuming that I'm a TOTAL newbie and I want to do
competitive programming?
Learn Python.

As its your first programming language I would suggest go with Python. Programmers use
Python to build desktop apps and web apps alike, and it has great tools for data mining. Python
is particularly popular with the academic community for scientific computing, data analysis, and
bioinformatics.

Later if you want you can learn C++, Java, Javascript or Ruby.

1.8k Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Ahmad Elshareif, worked at Programming Languages


Answered Nov 20, 2015
Originally Answered: Which programming is better for competitive programming and why?
this question is one of  the most frequently asked question in the Competitive Programming
topic. So there are plenty more to choose from. Here are just a few:
What is the best language for Competitive Programming? For example, out of C, C++, Java, and
Python, which would be the best language to specialize in for programming competitions?

Why do most of the high-rated competitive programmers use C++ instead of Java? (Petr
Mitrichev uses Java though.)

What are the good ways to switch between C++ and Java in programming contests?
1k Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Tanner Dowhy, CS/Math Student, Competitive Programmer, Gamer


Answered Jul 7, 2015
Originally Answered: Which programming language should I learn for competitive coding and competitions?
In the important competitions that I have been in(ACM ICPC), Java and C/C++ are the only
languages that are allowed however with other local competitions that I have done, there are
many languages allowed.(Java, Python, Ruby, C++, etc.) 

C++ I would say is the best because it is more memory efficient and can be faster than Java, and
all of the questions have timing requirements for competitions. With that being said, if you are
considerable stronger with Java than you are with C like my team then Java isn't a bad choice.
We placed very respectably in all of our competitions and we have only used Java and Python for
the ones that have allowed. It is just a matter of what you are comfortable with, and what you
are best with. 

I really like Java because of the ease of data structure implementation, but there is no doubt that
C++ is better because of performance. That is currently what I am working on in order to better
myself/team for the next competitions.
2.6k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Nilabja Bhattacharya, BE Information Technology & Computer Science, Jalpaiguri Government


Engineering College (2017)
Answered Jan 12, 2017
Originally Answered: Which language is best for competitive coding?
C++ is the most preferred language for competitive programming, due to its performance and
the availability of the powerful standard template library (STL) which has efficient
implementation for common data structures (stack, queue, priority queue, map, etc.) and
common routines (e.g. sorting, searching, etc.).

However, for certain types of problems you might feel better to do it in Java or Python. Like
dealing with big integers which is not supported primitvely in C++.

So, I would suggest you focus on C++ but get some exposure of another language like python or
Java.

558 Views · View Upvoters
Upvote3Downvote
Share

 
RecommendedAll

Arefeen Mansur, ACM Solver


Answered Mar 30, 2012
Petr Mitrichev, Google Code Jam 2006 winner and Facebook Hacker Cup winner used Java in
these two competitions
4.3k Views · View Upvoters
Upvote13Downvote
Share

 
RecommendedAll

Paul Olaru, Learning C (and not only) programming at UPB Romania


Answered Jul 7, 2015
Originally Answered: Which programming language should I learn for competitive coding and competitions?
I've been exposed to C++ and nothing else for truly competitive programming. So, go for that if
you A2Ad me. :))

Performance is the good thing in C++, it's predictable based on the code.
2.5k Views · View Upvoters · Answer requested by Felix Black
Upvote5Downvote
Share

 
RecommendedAll
Shubhomoy Biswas, Artist/Developer
Answered Aug 6, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
C language is the basic of all languages. Using Java, you can perform some tasks without writing
much code as many in-built libraries and functions are present. But in competitive
programming, time limit is a factor and using Java's inbuilt functions may cost you
time..programming in C and creating faster algorithms is a plus for competitive programming
1.3k Views
UpvoteDownvote
Share

 
RecommendedAll

Anonymous
Answered Sep 14, 2016
Originally Answered: What is the best Language for competitive programming?
I suggest you to go with C++, its pretty fast and you can also use STL in your code.

I use Python sometimes if there is no strict time constraint. Python is very easy to write as it
needs only very less number of lines compare to other languages.

So start with C++ then think of other languages.

Happy coding…:)

488 Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

Amit Dethe, studied Computer Science


Answered Sep 29, 2014
Originally Answered: Which programming language should I choose for competitive programming?
yes choose java. because not only it helps you easily to implement the algorithms but it will help
you in project areas as well, go to JSP Tutorials,EJB Tutorial,JDBC Tutorials,Free Java Servlets
Tutorials, WAP Tutorials, Spring Framework Tutorials, J2EE Tutorials, BioInformatics
Tutorials, Java Server Faces Tutorials, Jboss Tutorials, Hibernate Tutorials, XML and MySQL
Tutorials
for futher information.
for motivation go to  youtube and search for "javapocalypse" and watch the 3 min plus video.
347 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Toshad Salwekar, Qualified for ACM-ICPC Amritapuri 2015.


Answered Dec 15, 2015
Originally Answered: Which programming language should I choose for competitive programming?
Like Amit said, if you choose Java, it'll help you in project areas as well, so I would say learn
Java.

But, if your interest is improving competitive programming as fast as possible, I would


recommend C++, as it has more tutorials and solutions, and it is similar to C, which you already
know.

190 Views
UpvoteDownvote
Share

 
RecommendedAll

Vivek Anandan, Programmer for 25 years


Answered Mar 6, 2015
Originally Answered: Which language is better for competitive programming, Python or C++?
For those who are starting out, probably python is a good choice, you can concentrate on solving
your problem rather than language complexity.

But pretty soon you will run into a problem where the runtime performance is a stumbling
block. Or you may find that you need some sort of advanced data structure that is had to express
cleanly in python.
1.8k Views · View Upvoters
Upvote5Downvote
Share

 
RecommendedAll
Vivek Verma, Curious Learner
Updated Aug 8, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
Go for C .
1. there are many things inbuilt in Java which will not allow you to think like a
programmer as you would be doing while figuring out the correct algorithm in
C.
2. the structure of the C program is of basic level ; making simple to learn high
end languages afterwards.
2.5k Views · View Upvoters
Upvote10Downvote
Share

 
RecommendedAll

Adam Gorman, works at Willoway Day Camp


Answered Aug 7, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
C/C++ is a bit harder to learn and is a lot less forgiving, which is good for a beginner to learn
because it will teach you disciplined programming.  Knowing about things like memory
management can only help you later on, and it is never a bad idea to challenge yourself.
2.2k Views · View Upvoters
Upvote2Downvote
Share

 
RecommendedAll

ANKIT VASHISTHA, B.E Computer Science and Engineering, Sir M Visvesvaraya Institute of
Technology (2019)
Answered Oct 27
It doesn’t depend on which language you work out your problems on. The basic concepts and
your problem solving ability is what matters at last. But, still Python with its simpler syntax as
well as it’s huge inbuilt library makes it a better choice for solving problems.

16 Views
UpvoteDownvote
Share

 
RecommendedAll
Rohan Yadav
Answered Aug 4, 2014
Originally Answered: Which language should I learn for competitive programming: C or Java?
I think c++ is very good to start. I don't think java is bad language or it will make you bad
programmer. But some things you can learn from c++ like memory management, pointers, with
the help of pointers how linked lists gets created, how binary trees are evolved, what is
memory/heap. You know these things are really good if you want to learn. 

with java you don't have to care much about these. Becus you have all the libraries, just import it
& use it. Yes i think Java is bit vast & heavy becus of lots of libraries. Always remember, one of
the best Programmers in recent years Petr Mitrichev uses Java to code & he is working in
Google.

Also its true that c++ code runs bit faster than java code.
1.7k Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Md. Omar Kaushru, B sc from Britannia University,Comilla (2018)


Answered May 1, 2017
I think C++ is the best language because it takes minimum times to execute rather than others.
But in some cases you may need to use Java.. For example, large sequence of number, big mod,
big integer and so on. But it doesn’t means that they can not be done by C++. You can do it
easily in java.

74 Views
UpvoteDownvote
Share

 
RecommendedAll

Anilraj Kumar Sarawata, B.Tech (Honors) Computer Science Engineering, Rajasthan Technical
University (2014)
Answered Nov 5
I think C++ is the best example out of these. After C++ , C# is the best out of all programming
languages.

If you know very well about C++ then there is no more difference between it's, if don't know
then a very big dig in C++ and C#.

11 Views
UpvoteDownvote
Share

 
RecommendedAll

Ayush S, Avid participant in programming competitions


Answered Aug 31, 2017
Out of these languages, I would recommend either C++ or Java. Both of these languages have
many useful libraries already implemented for you. It is generally accepted that Python should
not be used for competitive programming due to the fact that solutions in the language are often
much slower than in C++ or Java, and sometimes there are test cases that Python programs will
not be able to pass even with the fastest algorithm.

Personally, I use C++ because of its simplicity in syntax. However, you can do the exact same
things with Java, and I would say that Java is even better for questions involving strings. C++
however has a few key elements that Java has, such as pairs, making it quicker and easier to use
for me.

122 Views
UpvoteDownvote
Share

 
RecommendedAll

Michael Primo, High School Computer Science & Mathematics, Istituto Tecnico Ascanio Sobrero
(2015)
Answered Nov 26
C++ have a STL very good and recommended to implement algorithms and running them fast.

Python Is good in math,but too slow for CP.

Java Is good for Big Integers,but even It is quite slow.

C Is fast,but don't have a STL good for CP as C++,


So…C++.

You need to use a fast programming language and you Need to implement algorithms fast. C++
Is for you.

118 Views
UpvoteDownvote
Share

 
RecommendedAll

Rishu Agarwal, Passively active !


Answered Jun 21, 2015
Originally Answered: In which language should I write in programming contests, C++ or Java (especially for INOI
2015)?
jAnyday you should go with C++.  And Suraj Subraveti has explained it better.
687 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Anuj Saini, programming language


Answered Mar 23, 2015
Originally Answered: Which programming language is preferred in competitive programming competitions?
U just need to know c/c++. Because mostly competitive exams see the algorithm you implement
to solve The problem. They check the basics using c/c++.
344 Views · View Upvoters
Upvote1Downvote
Share

 
RecommendedAll

Nitika Tanwani, M.S Computer Science, University of Southern California (2019)


Answered Dec 10, 2015
Originally Answered: Which programming language should I choose for competitive programming?
See for competitive programming C++ or Python is a good choice . Knowledge of java will help
you with interviews and various other places .
199 Views
UpvoteDownvote
Share

 
RecommendedAll

Vishnu Ashok, Co-Founder/Director at Freewheeltech (2015-present)


Answered Mar 23, 2015
Originally Answered: Which programming language is preferred in competitive programming competitions?
C/C++
Most efficient within limited resources
375 Views
UpvoteDownvote
Share

 
RecommendedAll

Arjun Kumar
Answered Aug 25, 2015
C language is best for Competitive Programming
26 Views

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy