quora 的东西就是不一样

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.

原文地址:https://www.cnblogs.com/Luke-wang/p/6647559.html