spacepaste

  1.  
  2. HOW TO:
  3. ----
  4. 0. Use and learn git.
  5. Learn to use git and commit early and often. Optionally, use a website to push your work onto (such as github). Building a portfolio can be important, and often the challenges that we post can be something to throw on your github.
  6. 1. Understand the Problem.
  7. Do your own research. It's an incredibly useful skill which can be applied to and can be applied to anything else. If the challenge seems difficult, good! Draw it out, write it out, do whatever you need to do to solve it.
  8. If the challenge seems too easy, brainstorm ideas and try to figure out ways to make it more challenging.
  9. 2. Implementation
  10. Take the language you're most familiar with to start your project. If the problem is too easy, try picking a language you've never used. Don't be afraid to write awful code and don't worry about the best implementation (see below). Get something working first, then refactor and clean up.
  11. Extremely relevant to whatever language you're learning: https://i.imgur.com/ewajYOa.png
  12. 3. Test
  13. Write test cases for your program. Get used to thinking about how you can break your software. Find problems, bugs, and fix them. Repeat over and over and document it. Then throw it together to add to your portfolio (don't forget to commit!)
  14. 4. Re-implement
  15. Now that you have a reference implementation, go wild. Try a different language, add new features, techniques, etc.
  16. Shamelessly ripped off from here: https://i.warosu.org/data/g/img/0566/50/1474140098052.png
  17. FAQ
  18. ----
  19. What days do you start new challenges on?
  20. We've decided to run new challenges starting on Fridays since people usually have class or work during the week and it allows them to work on projects over the weekend.
  21. What language should I write my solutions in?
  22. That's entirely up to you. It's recommended to use a language that you're comfortable working with.
  23. I'm new to programming how can I get started?
  24. Most of these challenges require some knowledge of basic programming syntax at the very least to solve these problems. Check out some resources and books that are available to you if you're not sure how to get started on these problems.
  25. Is using libraries to implement certain algorithmic functionality "cheating"?
  26. That's entirely up to you to decide. Programming is diverse enough that people who join these projects will be at different skill levels and write code in different languages. Obviously, implementing your own code and algorithms can be more fun than importing libraries that can do most of the functionality for you, but they're not shamed upon either.
  27. Where can I submit ideas for new challenges?
  28. Post them in the current thread.
  29. USEFUL RESOURCES
  30. ----
  31. Google, Stack Overflow, Wikipedia
  32. OTHER PLACES TO FIND CHALLENGES / THINGS TO DO:
  33. ----
  34. http://rosettacode.org/
  35. https://projecteuler.net/
  36. https://www.hackerrank.com/
  37.