By Joyce Ling
For many people, January is a time for new beginnings. People commit to losing weight, learning new things, establishing new budgets – it’s a time of action and hope. In this article, I’d like to share a few ways that have helped me improve my coding and might give you some ideas to implement for 2019!
1. Kickstart with a 30-day challenge.
“Good seasons start with good beginnings.” – Sparky Anderson
Why do a 30-day challenge?
Although the process of learning coding is a marathon and not a sprint, there’s something to be said for short bursts of productivity like a 30-day challenge. For one, it may be an effective way to just get started on something you have been meaning to do for awhile, and as Mark Twain noted, “Half of getting ahead is getting started.”
On top of that, it gets rid of any excuses about “not having enough time”. Because it’s a short sprint, most people will begin prioritizing it differently. As different items on your daily to-do list begin to demand your time, you begin to prioritize the things that matter. Especially if you are a goal-oriented person, the satisfaction of completing a challenge like this may force you to prioritize it over other things. This may be the impetus you need to create lasting habits, ideally even after the challenge is over. However, over-enthusiastic participants may have to be wary of burnout or of a short-term “high”. Make sure to use that momentum and keep on keeping on!
3 Challenges to Try
2. Commit to coding every single day.
“Success isn’t always about greatness. It’s about consistency. Consistent hard work leads to success. Greatness will come. – Dwayne Johnson
Slow and Steady
For those of you that are over the 30-day challenge hype, simply commit to coding every single day of 2019. If you’re like me and have a bunch of grandiose life goals for yourself such as “Speak French fluently” and “Be able to program any full-stack application”, you may also have to be reminded that these grandiose goals can only be reached by consistently chipping away at it on a daily basis. It requires you to embrace mundanity and discipline.
Set Yourself Up For Success
A neat life hack for making this goal a reality is finding a habit tracker such as HabitBull or Habitica. Both of these apps allow you to customize habits that you would like to form and track how often you complete those habits. Habitbull generates statistics and graphs for the frequency of completing certain habits, while Habitica promises to “gamify your life”. Although this option may no longer be available for purchase, take a look at Simone Giertz’s Kickstarter for a 365 calendar here. This is a visual example of what completing a full year’s worth of coding can look like.
If you dedicate yourself to coding every single day, you may be surprised at how much progress you’ve made by the end of the year. Even extremely successful individuals such as Josh Bosquez, the Senior Vice President of Engineering at my company, Armor, has shared that he still commits to coding every single day even if it’s only one line. No matter what your coding experience level is, making it a priority to code every single day can only benefit your growth as a programmer.
3. Learn a new technology.
No matter what, you’ve got to always follow your passion in life and always keep learning. – Harold Hamm
Technology is developing rapidly, and developers are constantly enhancing and creating frameworks and programming languages. For example, if you’re even slightly involved in the coding community, you would probably know that for front-end frameworks, React and Vue have recently exploded in popularity. In order to stay relevant and continue to develop marketable skills, make an effort to stay up to date about news and trends in the programming world and keeping your skills sharp.
What To Learn Next
If you’re just starting out with programming and feel that you have reached a plateau, many more experienced developers will recommend learning a second programming language to reiterate what you know and simultaneously enhance your understanding of programming on a deeper level.
However, learning a new technology includes more than just learning a new programming language or framework. Explore what’s interesting to you. Have you always wanted to look into artificial intelligence and machine learning? Or are you interested in the cloud and learning AWS? Or maybe you’ve always wanted to learn more about developing mobile applications.
Commit to an actionable goal by either taking a course for a specific technology you want to learn or by studying and passing a certification. If you work for a company, it may be worth it to see if your manager agrees to help pay for additional learning or certifications.
4. Build a project from scratch.
The best way to learn is by doing. The only way to build a strong work ethic is getting your hands dirty. – Alex Spanos
If you’ve decided you want to learn a new technology, the above quote by Alex Spanos is the perfect way to gain that proficiency. This can be done on your own or with a group of friends for accountability. One specific resource I always like to recommend is Chingu. This international group of developers goes through “Voyages”, a process which encompasses project planning, developing, testing, and launching an application, specifically with the end goal of learning or practicing a new technology. Many of the participants are full-time software developers, but the collection of individuals is usually diverse. This organization is mostly focused on front-end technologies but they also have data science/design tracks in development. Check out their website for examples of previous projects teams have built and details on how to apply.
5. Pass on what you know.
You’re never too young or too old to be a mentor. – Reshma Saujani
Even if you are just starting out, there are usually local organizations that need volunteers to mentor/facilitate learning for youth. In San Antonio I was hired part-time by Youth Code Jam, a non-profit that organizes and plans pop-up events and hosts summer camps in order to educate youth in topics related to technology. Currently, in Dallas, I volunteer with Bold Idea, a local organization that teaches kids to code, as well as facilitate a Girls Who Code group at a local library.
Benefits of Mentoring
Although I don’t consider myself yet to be a very experienced developer, seeking these leadership roles is more than just a resume builder. Because I have participated in these opportunities, I’ve been able to expose myself to a wider variety of technologies such as block-level coding in Scratch, or creating Minecraft mods in Python. Additionally, it’s a great way to network and meet people who are also interested in or work in the the technology field. Most large cities have similar local nonprofits or a chapter of a national organization such as Girls Who Code. If none exist, start one!
6. Find a community.
Every successful individual knows that his or her achievement depends on a community of persons working together. – Paul Ryan
Although flying solo works for some, I have always found that having a tight knit community of motivated developers to consistently code with has always helped me grow. When I was participating in Codeup, some of us would form study groups or code together on projects after class at the local co-working space, Geekdom.
Where to Look
Although the community that is available at a bootcamp is not available to everyone, I would recommend searching Meetup.com for technology networking groups or programming specific get-togethers. Alternatively, make sure to check for a local chapter of FreeCodeCamp in your city. Other places to look include maker spaces and co-working spaces, both of which are communities that developers are typically drawn towards.
If both of those options come up empty, then start a group! Create a space for people to get together and work on their projects – invariably, you will draw like-minded people towards you.