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