I've spent this week cranking on a relatively simple app. It's a medication reminder tool. Simple, indeed, but a perfect enough challenge for my current needs.
I've learned a few things this week that I feel like other beginners could benefit from. Here they are:
I love to sketch in a notebook with a lovely, inky pen. I have 8+ years of professional graphic design experience, so it's not beyond me to build something on the computer. However, my mind was eager on the code. For this app, I sketched out a plan in my notebook, skipped any further design, and went forward to the code. What I learned from this approach is that it's just not complete. Spend the time to truly wireframe and even begin understanding the visual design. It's absolutely worth it and helps to set you up for success from the beginning. You get to visualize the user experience, consider issues, determine behavior, and have a true blueprint to work from.
You need to really determine what the data is. While it initially seemed obvious to me what the data would be, I started building off sketches to later realize that it wasn't as straight-forward as I thought. Take the time to understand what the data is going to be and how the user will interact with it. It makes programming far more approachable when the plan is clear.
The thing I've enjoyed most about building my own little app is that the road bumps don't feel like trickery. With some of the tutorials and online learning programs I've done I've often felt tricked into frustration when the instructions didn't make sense. In building this, the error codes are exciting because I know there's an answer somewhere. And for every error you resolve independently you get this surge of confidence and it's great. You can't get that from a tutorial.
In building this little app, I've learned that I really enjoy programming. It's addicting, challenging, fun, and super rewarding. The more I learn the more I want to feed that fire. I love visual design, so staying inspired really comes from this drive to build beautiful things. Dribbble.com* is one of my favorite places to browse, as well as awwwards.com. Take time to stay inspired. I think it makes for a more zen coding habit.
The cool thing about building your first app is that it becomes evident what areas of programming you need to work on and continue learning. So after this app, I'll build another, and another, and another, (and so on), and the challenges today will be simple the next time. Don't dwell on the difficulties, just keep climbing and keep moving forward and you'll look back (pretty soon!) and realize how far you've come.
- My app is built in Mithril. It's like React, but lightweight and relatively simple and enjoyable to build.
- I'm going to use this app to learn SASS and I may share on that experience in a later post.
- I'm using local storage which is a great thing to learn about if you're beginner.
*(If you're a designer and would like to join Dribbble.com, send me a link to your portfolio for consideration. I've got an invitation to share!)