Logo

View the Project on GitHub wesdollar/geek-source

Code to Learn

The only way to learn how to code is to code.

It really is that simple. You can read about coding, watch videos, and follow tutorials all day long, but the simple truth is that you're not going to learn, grow, or fully understand coding until you embark on the mission of ripping the training wheels off and falling on your face a few times. So much understanding comes from solving the problems you create while hacking together application. It's frustrating, it's hard, it's uncomfortable, but – just like any skill – it gets easier, and soon, you won't remember what it was like to not know how to code, just like you don't remember what it was like not to know how to speak.

One the biggest hang-ups I've found for new developers over the years is that they simply don't know what to code – they don't have a feature set in mind. I used to think every aspiring developer walked around with thousands of ideas in their head, but that simply isn't the case, and that's okay. Geek Source was created to provide just that – a wonderful set of features packed with challenges that every professional developer faces as part of their daily life.

Before you start on this journey, I think it's important to share a few keys to success I've discovered in working with new and junior developers:

  1. Enjoy the process of learning. Every new skill is uncomfortable at first. Try to hold the frustration at bay and just know that every problem you solve better prepares you for a successful career as a developer.
  2. The 10,000 rule certainly applies to software developers, which makes complete sense, because the more you code, the more problems you solve, the better and faster you grow and gain experience. So code.
  3. Investing in knowledge pays compound interest. The more you invest in learning early on, the greater your gains will be over your lifetime.
  4. Build something that adds value to your life. This will help to keep you engaged, and...
  5. Build something that can be maintained over time. Maintaining an app has the added benefit of highlighting spots where you could've made better decisions to make it easier for future you to add a new feature or fix a bug.
  6. Put your work out there. Register a domain, set up an AWS instance, Linode, or Digital Ocean box, and deploy your work. It gives people something to touch and see, plus you can show it off from your pocket anytime you're talking to someone about what you've been working on. It'll give you a huge leg up in interviews too!
  7. The best way to stay engaged in a project is to release early and often. Break the app down into chunks that you can release to the production environment you've set up. There's just something cool about seeing your stuff live that triggers such a cool feeling in the brain that'll quickly have you coming back for more.
  8. Athletes train in environments that mimic what they'll see on game day so that they're as prepared as possible. Give the same respect to your pet/side projects that you would give to a professional project. This will build and reinforce habits that will allow you to easily rise above and beyond the majority of your colleagues.
  9. Find a mentor. The only criteria is that they must be passionate about software. People who are truly passionate about the craft will be more than happy to answer any question you can throw at us.

Alright, that's certainly enough to get started. You'll likely see some of the above pop up and even expanded upon as you continue reading.