Overcome The FunHouse Effect While learning To Be a Software Developer

Starting in software development, I learned a lot. However, in the beginning, I learned a lot of a little – let me explain. My initial experience in learning software development was exciting. I saw a new world opening up to me, and I decided to take a full-stack certification course at a locally accredited boot camp. The course covered everything from Python, Javascript, MySQL, and ReactJS. We discussed the differences between frontend and backend development through a myriad of technologies such as web APIs and  language frameworks.

I’m sure you know the phrase “Jack of all trades, Master of none.” I had a lot of fun learning about so many technologies, but I ended up with only a cursory knowledge of them. The course curriculum began with Python first and ended with React.js. If I were to choose which one I remember most, I suppose I’d say React, as it’s simply what I’d recently learned.

Imagine trying to learn and understand a human language such as Italian or Spanish. How much time do you think it would take? How much effort, practice, and focus does it take to learn just one of those? Now imagine trying to learn Italian, Spanish, Russian, and Japanese at the same time. Your outcome is likely to be the same as mine was with coding. You’ll surely develop a basic understanding of each language, such as introducing yourself or asking to use the bathroom. Still, you’ll likely not know how to have a conversation in any one language or even put a simple sentence together. The best way to learn a new language is to focus on each one individually and become so familiar with it that it will be hard to forget it, and then move on to another language that suits your interests. 

Plus, a deep familiarity with one language can help you to learn the next one. Take my example above – Italian and Spanish, which are similar languages, as they both derive from Latin. If you were to become fluent in Spanish, learning Italian would be much easier because you could quickly leverage your knowledge of Spanish to learn vocabulary or grammatical concepts shared between the two languages. Focus on one language, learn it well, and then build upon what you know.

How do you know which development language to focus on first? Find out what interests you most. Are you a visual learner and like to be more creative? Front end development may be perfect for you. This space includes topics such as UX Design, Javascript, Typescript, or React. You could start with Javascript and then learn  React.

Are you more analytical, or enjoy logical thinking? Back end development could be a great place to start. Python is an excellent language to learn. Backend also includes API connections and database configuration with languages like Java and SQL.

Learning a new language takes time and practice.  I read an article by Jennifer Long of Harvard Business Publishing called The Importance of practice – and Our Reluctance To Do It  Here  are a few key items that stood out to me.  

  • Limit the Scope

Training often includes information on many different behaviors, approaches, skills, and techniques.  It isn’t possible to practice and master all of them at one time. Choose one or two things that have a high potential for enhancing their work, and focus their practice on just those things – at least to start.

  • Commit Time

Commit time every week – ideally every day – for practice. Block time on the calendar.  Minimize distractions, and work on skill development as seriously as you would on any other project. You might even create a project plan with deadlines.

Remember, focus on one language at a time. When the focus is too broad  it’s like adding mirrors in a fun house.  It’s easy to get lost and confused.  Software development can be daunting. By taking it one step at a time and limiting the scope, your chances of success goes up exponentially.  Figure out what interested you in learning software development in the first place. Which language did you want to learn, and why? Is there something specific you want to create while learning this new language?  Build a vision behind what you are learning.  

Keep the learning journey simple. Eventually you will be surprised what you can create. I’ve gone from learning the  small steps to now being able to build multiple applications in ReactJS. I’ve also created UX design diagrams, wireframes, and prototypes for new products.  Learning is a process that takes time and effort.  Keep it simple, never stop learning and I promise that you will be successful in whatever language you decide to choose.