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!

 

 

 

 

 

 

How to become a Software Developer – Create a Time Budget

Time is our most valuable resource.  There’s no guarantee of how much we’ll get so we’ve got to make the most of it.  With a family and career I’ve got to be careful about managing time so it’s important to stick to a schedule that aligns with my purpose and goals.  I’ve found that I don’t get anywhere without setting some boundaries for my time.  I’ll find myself wondering where the time went and end up frustrated if I’m not intentional about allotting blocks for specific activities.

Time Keeps on Slippin’

Time gets away from me so easily and I’m sure that you can relate.  As I get older, I’m in my 30’s as of this writing, it’s even more obvious and I feel pressure to do better with managing my time to help me make the most of it.  It’s amazing how quickly it seems that days, months, and years seem to pass by especially as life accelerates with family and other commitments. 

Knowing that I’ve made my best efforts with planning my time helps with the regret and is hopefully making me better with making every minute count.  We’ve got to keep moving forward with the best of intentions and look at each day as an opportunity to do better.  Each day that we wake is a gift and should be treated as such.  It may take a little coffee to improve your outlook but do what you have to do to create momentum on the days regardless of what you’re doing. 

Remember that you can’t change the past but you surely can create a better future.  Learn from past mistakes and stop doing the things that are hurting your progress.  Don’t beat yourself up over anything but respect that you may have a weakness or two that needs some help.

Protect Your Time

An important aspect to setting your time budget is making yourself and others aware of it.  Getting a mentor or accountability partner should help with this.  It could even be your spouse or significant other helping with this.  You should actually make them aware first to make sure that they’re on board with it!  You’ll certainly run into conflict if they’re not in the know and your career move, especially into something like Software Development, will go slower or may fail.

It’s easy to loosely set periods of time in your mind for things but getting it down on paper or in digital form helps with sticking to it.  For example, just saying I’ll get around to working on task A in the morning is probably not good enough.  I have to commit to it and be protective of that time down to hour.  I may even assign smaller periods of 15 or 30 minutes depending on the granularity of the tasks.  You have to set these boundaries and protect them with your WHY in mind.

Put barriers in place to help keep you on track.  This could be creating a space where you can work and learn distraction free.  It might be installing monitoring or restrictive software that only allows you to open certain programs and access certain things on the web.  Don’t let other people’s agendas take over.  Get good at saying No unless it aligns with what you’ve already planned to do.

168 Hours

Everybody has the same number of hours each week.  You may see others that are succeeding and wonder how they’re making such great progress.  It comes down to your priority, becoming a Software Developer, and aligning your time with it.  We make decisions constantly and each one affects the overall outcome.  If we don’t plan our time then somebody or something else will dictate it.  It’s easy to do but don’t let this happen!

Create Your Time Budget

You’re probably familiar and have likely done a personal finance budget.  I’m a big fan of budgeting my money as well as time.  Hey, time is money, right?  So doesn’t it make sense to budget both?  Being the focus of this post I want you to come away with an action to create your time budget.  Doing so will free you from the whims of life and put some guardrails around what little time you probably have to work on your move into a Software Development career.

  1.  Determine your non-negotiables – Sleep is top-of-mind here.  We all need sleep and probably need as close to 8 hours as possible to be effective.  If you say that you can get by on less than 6 then you’re probably not operating nearly as efficiently as you could be and fooling yourself.  Even at 7, which is closer to what I typically get, I feel that I’m not thinking as clearly as the days when I get the full 8 hours.  Other non-negotiables are things like eating and working or going to school.  For me, family and prayer time is in this category.
  2. What’s Left?  The remaining time is for working on your Software Development career, exercise perhaps, entertainment and so on.  Hopefully, you’ve got at least 10 hours per week remaining to work towards learning and doing things to get into your ideal role.

When creating your budget you don’t want to leave any time unassigned.  If you’ve come across Dave Ramsey then you may know that he advocates budgeting every dollar, he’s even got an app by that name.  I think that it’s equally important to budget every minute so that your time is not lost to the whims of the world, perhaps whatever is on TV or popping up in your social feed.

It’s difficult to stay on top of time and there will be days when you won’t be able to keep up.  I’m here to encourage you to keep going.  Keep you schedule or time budget top of mind but peaking at it frequently.  Let others know what your doing and that you’re going to be protective of your time.

I’ve created a template for download.  It provides entry for all 168 hours of your week.  Go ahead and fill it out.  I suggest filling it out weekly as it’s likely that you’re schedule will change.  Maybe come up with a baseline schedule and create variations of it week to week.  Good luck with staying focused and on schedule as you work toward becoming a Software Developer!

Get the Time Budget 

Just click here to download and fill it out!