Sometimes a teacher, always a student
The teachings of Yoda applied to developer growth
“Do or do not. There is no try.”
Learning to code has become the modern-day “starting a band” or “writing a book”. We’ve all had a friend or family member who at one point has exclaimed, “I should write a book”. Very rarely is pen ever put to paper. Likewise, we have all heard, or even been guilty of uttering, “I should learn to code”. Very rarely do these words ever translate into action. One reason for this is that “learning to code” is far too broad of a goal.
Setting a series of realistic smaller goals is the key to long-term success. Although even this approach alone is often not enough. You also need to put yourself on the clock. Establish reasonable yet aggressive completion dates for these goals. This will keep you honest and encourage you to work toward your goals consistently. You will indeed have bad days where concepts just don’t seem to “stick”. However, the more consistently you work the fewer of these days you will have. A learning framework such as the one provided by freeCodeCamp is an excellent choice. freeCodeCamp provides you with a map so that you can chart your progress and visualize what lies ahead in your coding journey!
Beyond working through lessons, it is very important to put what you have learned to use as quickly as possible. Create a Github account and begin creating your own personal projects. At this stage of your learning journey these projects do not need to be big. Staples such as “to-do apps” and “Twitter clones” in the language or framework of your choice are great first projects.
This period of your learning journey is also a great time to begin communicating with other developers. Through taking online courses and reading blogs you have most likely encountered some more senior developers who you admire. Don’t be shy! Find them on social media and reach out with feedback and questions. Thankfully the dev community is very collaborative and open. Take full advantage of that!
You will reach a point in your journey where you know that this career path is or is not for you. If you feel like it is, and you want to program every day you should begin looking for contract, part-time, or full-time opportunities. Hired is a great resource for this; they helped me land my first full-time gig at Circle where I just celebrated my two-year anniversary. Do not wait until you “feel comfortable” because honestly, that day may never come. Not because you are not ready, but because of something often referred to as “imposter syndrome”. We all feel it at times, and that is OK. This is not an easy career path, but that is precisely why it is so incredibly rewarding. Bottom line, are the qualifications of a position a description of the skillset you are consistently working to develop? Then apply! Interviews are a great learning experience, particularly when you DO NOT get an offer. We often learn the most from our failures, the lessons of which set us up for future success.
“Much to learn you still have”
Landing your first paying gig as a developer is incredibly exciting. It can also feel like starting over. You will now need to begin developing a whole new skillset while continuing to hone your existing abilities.
Many of the skills you will need to learn will be non-technical. These include effectively communicating as part of a dev team and within the broader company as a whole, handling and providing constructive feedback through code reviews, and potentially learning about scrum or other agile methodologies. Your new technical learnings may include build tools such as Webpack, continuous delivery systems such as Jenkins, and container tools such as Docker. This is not to say that you must become an expert in each of these areas, but you definitely need to develop a working understanding so that these tools help rather than hinder you on a daily basis.
To truly grow, you must also continue honing your existing technical skills outside of work. This is not a time to stop taking courses or reading blog articles. Rather it is a time to “double-down” on the languages, libraries, and frameworks that you truly find interesting.
“Always pass on what you have learned”
Sooner than you may imagine, you will begin noticing that others are looking to you for help. While you will never be done learning, you are now ready to begin teaching. Assist junior developers at work and become comfortable acting as a mentor.
Begin putting together blog posts of your own focusing on the tech subjects you are most passionate about. Think about recording some short YouTube clips. Remember that “Twitter clone” you built way back when? A short YouTube series walking beginners through how to build one of their own would be an awesome way to “pay it forward” and help others. If you find that you enjoy putting together these videos, you could begin reaching out to publishers such as Packt, Manning, and Pluralsight about your desire to build out feature-length courses.
Applying to speak at conferences through sites such as papercall.io is also a great way to get out there and begin helping others along their coding journey. Another benefit of teaching and giving talks is that it forces you to learn material on a very deep level. You will need to truly understand all of the intricacies of a framework in order to teach a course or give a talk on it.
Embrace your roles as both student and teacher and enjoy the journey!