How to become a Software Developer – Your Learning Plan

When I think about the next thing to learn it’s overwhelming until I get some sort of plan in place and get going.  Here lately, within the past 9 months or so I’ve been heavy into learning Xamarin, well Xamarin.Forms specifically.  For someone who hasn’t done a lot of mobile development in several years and with very different technologies in the past, the learning curve can look pretty steep.  After a month or so of consistent effort and getting the right resources, I was off to the races.  I say that consistency is the biggest factor or a top one to learn something.  Of course, to be consistent you have to be excited about it and have a good reason to learn it.

In previous posts, we’ve talked about determining your specialization as a Software Developer and putting together a high level plan to get into your ideal role.  Doing this upfront work is important so go back and read those posts in the ‘How To Become a Software Developer’ series before putting together your learning plan.  Your plan has to align closely with your Software Development niche.  And the plan does depend on where you are in general as a Software Developer.  I’m going to help you determine where to start and get a plan in place for a strong foundation that you can build on.

Consistency is Key

You have to make an effort every day, or almost every day, to learn and practice coding especially early on.  If you’re not already in a job that requires some coding then you’re going to have to be disciplined enough to schedule time to do this in the ‘margins’ of your life.  Coding is like anything else requiring repetition to get better.  You have to train your brain to think like a developer.

Scheduling Time to Learn

The previous post in this series is about creating your time budget.  If you haven’t done that then please do it to help you get your time in.  Go for at least 30 minutes a day up to however much you can.  If you’ve got a family, spouse and kids, as I do then this is going to be kind of tough.  Hopefully, as suggested earlier in this series, you’ve got a support structure around you to help you stick to your learning schedule and provide accountability for your progress.

Getting Help, Finding a Mentor

To aid your learning process I advise finding a mentor or a coach to guide you along.  A mentor or you might call this person a coach will provide you with guidance and accountability.   I was fortunate to have mentors at companies where I’ve worked whether they were explicit (knowingly assigned) or implicit.  Sometimes those around you simply fall into this role if the situation is right.

If you don’t have a mentor physically and readily available then search online for communities for general support or sites specifically for finding a mentor like CodeMentor.  You may have to pay for expertise but that is totally and fine really better than looking for free advice.  Free advice can only go so far.  When you pay for something you’ll get more out of it because your money is at stake.

Set Goals

Don’t simply say that you want to learn something.  That’s too general.  Any good goal has parameters defining it.  I’d say that you’ve heard of S.M.A.R.T goals.  A goal must have the following characteristics.

  • Specific – Instead of “I’m going to learn to code”, you should say that I’m going to learn T-SQL.
  • Measureable – Can you measure your progress?
  • Achievable – Is your goal too big?
  • Relevant – Make sure that it’s relevant and not leading you down a rabbit hole.
  • Time Bound – Say that you’ll have learned X things about T-SQL in 2 weeks.  Create a deadline and share it for accountability.

Where to Learn?

There are so many options these days.  Gone are the days of having to attend college to learn and prepare for a career, especially in technology.  I could list 50+ sites here but I want to make sure that you’ve got a solid plan in place before diving in.  In another post, I’ll list options based on discipline.  Before deciding where to learn, first decide how you best learn.  Do you learn most effectively by reading or video or a combination?  What is your budget?  Which resources cater best to your Software Development niche?

Give me six hours to chop down a tree and I will spend the first four sharpening the axe.

-Abraham Lincoln

Once you’ve determined your best setting then start looking for your resources.  Answer the questions below to make the most out of the time you’ve set aside.  With all of the options, hopefully you won’t was much time, and that’s why you put the time in up front.

Questions to Get Going

How much time can you spend per week on learning? If you don’t know then create your time budget.

How many times per week do you plan to learn?

What format works best for you when learning?  Video, audio, or reading?

What’s your budget?  You’ll be able to find a lot of free information but it is best, especially once you’ve determined your discipline to pay for assimilation (organization) of information along with someone to guide you along to make the most of your time and get you into that dream job ASAP.

What discipline or niche are you pursuing?  If you don’t know then the first part of your learning progression is to figure this out.  It’s okay if you don’t know but you’ll need to specialize at some point and focus your efforts in that area.

Where are you going to learn or what resources are you going to use?  Now that you’ve answered the previous questions you should be able to determine your resources.  Create your first learning ‘sprint’ or goal now and get going!