View difference between Paste ID: 5hN904Cm and WfpvxAq3
SHOW: | | - or go back to the newest paste.
1
The below text was in Pro/g/ramming Challenges, version 3.0, and I was thinking of adding it to 4.0
2
3
HOW-TO-Guide
4
5
0) Use git and an eternal website to push on
6
-Learn to use git and commit early and often. Optionally, use a website to push your work to (such as GitHub). The most important thing is to build a portfolio
7
8
1) Understand the problem
9
-Do your own research. It’s an incredibly useful kill which can be applied to and can be applied to anything else. 
10
-If a problem seems difficult, good! Draw it out, write it out, do whatever you need to do to solve it
11
12
-If the problem you’re solving is too easy, brainstorm and try adding additional functionality. Try combining it with other ideas to make your software more challenging
13
14
2) Implementation
15
-Take the language you’re most familiar with to start your project. If the problem is too easy, pick a language you’ve never used. 
16
-Don’t be afraid to write awful code and don’t worry about the best implementation. Get a working implementation first, then refactor and clean it up
17
18
3) Test
19
Write test cases for your program. Get used to thinking about how you can break your software.
20
21
Find problems, bugs, and fix them. Repeat over and over again and document it. Throw it together in your portfolio (don’t forget to commit!)
22
23
4) Re-Implement
24
Now that you have something together with lots of documentation and experience, try a different language and try to match it as closely as possible to your first implementation. Add features, try new techniques, new styles. Go crazy!
25
26
5) Don’t stop learning
27
Now that you’ve gotten this far, don’t stop trying to challenge yourself. Keep a portfolio/blog/diary and keep adding to it
28
29
6) Resources:
30
-Wikipedia
31
-Stack Overflow
32
-Google
33
Seriously, this is all you’ll ever need. If you aren’t getting results, you aren’t doing your research properly. With these three websites, you’ll find your answers. If they don’t exist, make a thread. By doing so, you help other people out too!
34
35
Remember: if you make a new topic for a new problem anywhere,write down the solution if someone PM’d you. It helps people a lot and encourages them to do the same
36
37
7) Literature:
38
Knuth: The Art of Computer Programming
39
Siena: The Algorithm Design Manual
40
Carmen et al: Introduction to Algorithms
41
Russel: Artificial Intelligence: A Modern Approach
42
Abel son: Structure and Interpretation of Computer Programs
43
44
8) Hungry for More?
45
Below is a s small list of websites that contain additional challenges
46
www.hackerrank.com
47
www.codechef.com
48
www.codefights.com
49
www.projecteuler.net - Math Problems with a focus on programming and algorithmic efficiency
50
www.rosettacode.org
51
www.codeabbey.com
52
www.codingbat.com
53
www.programmingpraxis.com