How to become a Software Developer – Your 90 Day Plan

Why you need a plan. 

All good things start with a plan.  That’s especially true when you have a goal, such as becoming a Software Developer.  Any dream needs to be converted into a goal, meaning that it is something that you can clearly define and achieve.  Anything that I’ve tried with any varying complexity has not turned out too well without some sort of plan.  This includes things professional and in my personal life.

Without a plan or direction we end up ‘floating’ along to wherever life takes us.  Have you ever swam in the ocean and found yourself unexpectedly away from where you started?  Life throws things at us and acts a lot like the currents of the ocean.  If you don’t keep an eye on where you want to be then you’ll find yourself constantly fighting to get back to where you want to be.

The duration of the plan depends on the nature of the goal.  Becoming a Software Developer may not be a clearly defined or easy path to follow so that’s where I come in to be your guide and help you to not waste time.  

The idea is that you’ll be ready to go into your job search with full force at the end of 90 days.  Some may get there earlier, some a little later. If you put some thought into your plan and execute it with intensity and enthusiasm then you’ll be way further head in a few months from where you are now.

Your goal may not even be to get a job in 90 days but if it is then I want to give you the best chance to get there.  This is to give you momentum and get to a place where you can say with confidence that you’re a Software Developer or if you need to adjust at the end of the period.

Create Your Plan

I’m going to give you a framework to follow.  You’ll go from deciding on your focus, to learning, branding, and ultimately to a job.  The following is an overview of what we’ll cover.

  • Software Development niche or specialization.  
  • Setting monthly, weekly, and daily goals.
  • What to learn and where to learn it?
  • How to accelerate your learning.
  • Testing your skills
  • Gaining experience
  • Finding a mentor
  • Building your brand as a Software Developer
  • Create a position profile.  Define your dream position.
  • Create a career profile.  This is defining the ideal company that you’d like to work for.
  • Networking – Finding others like yourself where you can get help and even help others.
  • Interviewing and job offer.

You may be thinking that there’s no way you’ll be able to go form zero to job in 90 days.  This does depend on your current skill level, how much time you can put in, and your aptitude for writing code.  Whether you have no experience, 1 year, 3 years or 5 it’s good to get a plan and timeline in place to help you along.  The important thing is that in 90 days you’ll have a clear idea of your future and confidence to move into it.

 

How to become a Software Developer – Experience Matters

My real programming career didn’t begin until I got into a job where we were re-writing a system, going from C/C++ on Unix to .NET and Windows servers with SQL Server running as the central database.  Once I got to see my work in action, I was hooked and knew that I’d found my niche in technology. One of the major factors as well is .NET/C# development. I had done mostly C and C++ in my early career but .NET opened up so many possibilities to do things quickly and made it possible to provide a better solution.  In the early 2000 ’s .NET was new as well so it was exciting to be working on something that was ‘cutting edge’ or at least close to it.

We’ve covered your why and gained a better understanding of what it takes to be a successful Software Developer.  Today, I’m going to briefly talk about your past experiences and how they matter a lot to your development career.  I want you to be intentional so that you can have a meaningful career and avoid some of the pitfalls.  Think about how you can apply the things you’ve done to Software Development.  It doesn’t have to be things you’ve done in your career or work history but also your hobbies and things you enjoy doing otherwise.

This post and exercise is to help you relate past experiences to your future to help you move forward with confidence.  What has happened and who has helped you get to where you are? Did you take a class that sparked your interest in technology or programming? 

For me, the closest thing to a computer class that I had in high school was typewriting and then word processing.  I had computers growing up, but this was in the mid to late 90’s when the internet was in its infancy and software careers weren’t as prominent.  I mainly played games like Doom and performed web searches (pre-Google) for a few things for school research. I wasn’t introduced to programming until my college years and honestly wasn’t that into it.  I ended up going with a Information Systems major in college thinking that I wanted to work in technology in general and a lot of that was because the job market was strong.

If you haven’t had any technology experience yet then what is it that you’ve enjoyed doing?  Do you like creating things in general? Do you help people out when they have a phone (pocket computer) question?  How have you helped others?  Writing software is about enabling people and giving it your best when doing so. If you’re into helping and enabling people to live better lives then this career opens you up to do so.  Life is about helping others and the more people you help, the better off you’ll be.

I’ve met people with degrees and early background that don’t directly relate to Software Development or even technology at all.  For example, if your degree or experience is in English but you still have a knack for writing code then it will work.  Writing code does align with writing in general.  Software Development is an art and requires creativity.

You can even couple your background with it.  Let’s say that you work in Finance.  Financial institutions need software and could use your background to make a better solution for them.  It could be that your current employer is where you start your transition.  Before you make any big career moves, let’s make sure that development is your calling and then commit to it.  Once you’ve committed then start making it known to people, at least family and friends to start with, and you’ll start seeing doors open, possibly even at your current employer.

You’re creating your story and legacy right now.   What do you want your future to look like and how will your past help you?  Write down (or add to your favorite note app) at least 3 of your past experiences along with why they matter to your future in Software Development.

How to become a Software Developer – Common Traits

It’s taken years for me to develop the traits, that don’t come naturally, in the following list.  I’m still working on most of them.  There are some, maybe many, days when I’m a complete failure at some of them.  So, don’t be hard on yourself!  All of the items in this list are needed for you to get better as a Software Developer and apply to life in general.

In the previous post, I covered questions you should ask yourself before starting a Software Development career.  In this one I’m going to list 20 traits that I see are common in successful developers. I originally had 15 but kept finding more in my research and preparation for the post.  The list isn’t in any order of importance but most aspects are more important if you’re going to make this work.  Some of these may overlap with the ‘quiz’ in the last blog post but iteration is good, right?

  1. Learner – Do you have a drive to learn new things?  If so, good because technology, including the development field, is constantly changing.  Let’s put together a long-term learning plan of 3 to 6 months to help you stay focused with an intentional list of items/topics to work through that will help you achieve your goal.  Later in this blog series, we’ll dive into creating your learning plan.
  2. Tester – As a developer you have to test everything.  I’m not a Test Driven Development purist but I believe that you need test cases for every high level requirement down to unit tests for each module/class/method.  Always create a test before releasing code.  This will save you time/grief later.
  3. Problem Solver – Do you enjoy a challenge or does it get you down?  Every problem is a learning opportunity. Unexpected problems will arise or you’ll come across something that stumps you while developing a solution.  Make ‘problem solver’ part of your skill set.  You’re most of the way there once you master solving problems.  Learn how to work through problems in general and how to apply technologies to those problems.
  4. Implementer – You have to follow-through.  Executing the implementation phase can make/break the success of your system.  Creating software is fun and what we’re here for.  You’ve got to find enjoyment in seeing your product work flawlessly or as designed and make your users’ lives easier/better.
  5. Strategic – Some days will be more strategic than others.  I’m talking about being smart and intentional here setting long term and short term goals that you can focus on.  We’ll discuss goal setting a little later when we get into your 90 day plan to become a Software Developer.
  6. Visionary – This is having the ability to envision or imagine things and is akin to creativity.  I guess you could call it thinking outside of the box.  The idea is that you go beyond the base requirements to provide extra or better features in a product.  Now, you want to build these in at design time as you don’t want to create your own scope creep.
  7. Planner – I’m talking more day-to-day execution here.  You’ve got to be able to prioritize and focus so that you can get the small pieces done to eventually get the bigger ones done.  If you can’t execute your plan at every level then you’ll miss deadlines and get into trouble.  You need to come up with a system/routine.  I’ve used simple to-do lists at the basic level up to large projects plans to keep track of tasks.  A kanban board is an excellent way to visually see your work.
  8. Persistent – You’ve got to keep going and see things through to completion, this goes beyond implementation of a particular project.  I’m talking about an overarching mindset that drives you to make the best thing that you can.  If you leave things, even small things, undone or half-done then they’ll come back to bite you.  When you think you’re done, then go a step further.  You’ve got to be ‘done done’ before a task is completed.
  9. Curious – Question things and ask others why they did something a certain way.  Don’t be degrading though, if you think you can do it better, when asking a teammate about their code.  You need to take it on yourself to learn things that you’re hopefully interested in.  Always be on the lookout for new things to dig into.  This is a little different from the learner trait but compliments it.  Curiosity is more of the catalyst to get you into learning ‘mode’.
  10. Hopeful/Optimistic – It’s important to know that you can overcome a problem or a large project.  Attitude is a key indicator in success.  Also, you need to surround yourself with folks that are optimistic.  If you find that a teammate is constantly being negative then try to help them see the benefits of a positive attitude.  Now, you’ve got to be realistic and not delusional but you’re much better off believing that you can achieve something, especially when you have the strengths of a team.
  11. Detailed – I’ve already discussed the importance of being detailed in the quiz email/post.  Even one precision point on a data type can cause major problems with your program.  I like to call this going slow to go fast.  If you take your time and pay attention to things through all phases of development then you’ll save time later.  Don’t rely on the QA or testing group to catch issues.  Performing unit tests on all of your code can aid with this.  It’s going to reflect poorly on you if you’re constantly releasing buggy code.  It doesn’t matter how ‘flashy’ your stuff is, if it doesn’t work then it’s a failure and will cost you later when going back to fix things..
  12. Tool Oriented – The primary tool as a developer is the IDE or Integrated Development Environment.  This would be Visual Studio for me where I spend most of my time. Tools are available and you need to love the ones you’re using.  Nowadays, tooling and knowing how to properly use your tools are key to being a good developer.
  13. Mentor/Mentee – You need to be willing and want to help others.  You also need to be willing to ask for help. My advice is to ask as soon as possible and build healthy relationships with those around you.  Be on the lookout for a mentor.  Even if you feel that you don’t have the experience to be a mentor to someone else try doing this as soon as you can as well.  When you’re helping and seeing someone else succeed it brings out the best in you.
  14. Humble – We all make mistakes and each of us have our strengths.  Pride or arrogance will get you in trouble and eventually make you look like a fool.  Understand that you’re not always ‘correct’. I’ve seen this as a big issue for programmers so learn to humble yourself.  You’ll get way more respect for holding your tongue than jabbering too much to be heard.
  15. Confident – This is close to being prideful but it’s not.  Confidence is knowing that you’ve done the work and have the intelligence but need others to succeed. 
  16. Patient – You need to be patient with yourself and others.  Everybody learns and works at different paces.  Plan for things to take longer than you think.  When you get into writing systems there are always things that come up but you’ve got to build a time buffer in to handle them.
  17. Thick-Skinned – You will get criticized and won’t always be constructive.  People are going to be people.  If you run across some that seem like they’re out to get you don’t let them get to you.  Try to gain understanding and insight into what they’re saying and ask them to explain further.  This will only make you better.
  18. Salesperson – This is probably the last thing that you want to be right?  Think about it though.  Your employer or free lance client is your customer.  You need to treat them as such, just like your favorite store treats you.
  19. Leader – Even if you’re not the manager or a leader by title you’ve got to be able to at least lead yourself.  Lead yourself with excellence.  Leadership is serving others, not the other way around.  Go out each day looking to show somebody something new and provide value that only you can provide to the world.
  20. Listener – Listen more than you speak.  When you do speak make sure that it counts and you’re not doing it just to fill space.

I know there are more traits but I think that I’ve listed plenty to work on.  Pick you’re five areas where you need the most improvement and be intentional about working on them.  If you’re thinking that’s just who I am and you don’t think you can become a patient person then I beg to differ.  You’ve got to put some effort into it.  Remember your WHY?  If anything develop these traits for that reason!

How to become a Software Developer – The Quiz

It’s important to understand what you bring to the table, understanding strengths and weaknesses, as you prepare to move into Software Development.  This post is intended to quiz you and challenge you to think further before moving forward.  It’s to help you set expectations and get the right mindset so that you can go on with confidence.  I’ve tried to come up with the hard questions to help you to build a strong foundation for your career as a Software Developer.

Here are some important questions that you should ask yourself along with some commentary to help you along.

  •  Are you interested in creating things?  As developers, we’re constantly challenged with creating things and doing it as well as possible.  There needs to be a strong drive to create something seeing it all of the way through to completion.
  • Are you a detailed person?  The devil is in the details right?  I’ve been bitten and seen others get in trouble by missing small but important details in their design and/or code among other things.  If you tend to skip over details then you’re going to have to get better at drilling in so that you don’t miss important details during any phase of a project.  We’re human and mistakes will happen.  The idea is to learn from mistakes to get better and put things, such as solid unit tests in place to catch mistakes when they do happen. 
  • Are you curious?  Do you ask why something is done the way it is?  Do you want to find other ways of doing things, thinking outside of the box?  It’s important to ask a lot of questions when developing software.  It’s okay to even question yourself.  I often find myself looking at code from the day before or even earlier in the day and asking myself why I did it that way.  There’s so many ways to write software and often a better way.  You’ve got to be curious to find the better way so that you can continue improving.
  • Are you a problem solver?  Do you enjoy solving a problem?  It really matters if you see it as a ‘problem’ versus an opportunity.  Do you feel dread when you’re told of a problem?  It’s okay to feel this way but as a developer you’ve got to pull up your big girl/boy pants and move on taking on the issue with confidence.  Even if this is a problem that you created, it’s important to stay positive and confident that you’re going to figure it out.
  • Are you persistent?  When you’re stumped do you get frustrated and give up?  You’ve got to keep going until you find an answer.  Keep in mind that it’s never been easier to find answers and help to get you through/over the obstacles.
  • Does Software Development align with your personality?  If you’re an extrovert and feel the need for frequent contact with people then you need to think about being isolated from others as you work.  There will be collaboration time but if you’re primarily a coder then you may find yourself starved for some people time.
  • Would you rather work alone or on a team? Most likely, you’re going to be working on a team of other technology professionals and developers.  In my experience, I’ve had or seen the most success when a team comes together to accomplish something.  That’s when the best things are built.  I look for assignments where I can contribute to make a larger impact and encourage you to do the same.
  • Do you see yourself writing code every day, or at least most days, for a living?  If you’re not into sitting behind a desk (or maybe standing) then you might want to reconsider your path.  It’s good to break the day up but you’ve got to have the drive to get back to the task at hand which is going to require many hours at a computer screen.  This sounds obvious but I want you to really think about it!
  • Do you like learning? One of the most important aspects is being a continual and lifelong learner.  I think that everyone should be this way but it’s critical to working and succeeding in Software Development.

So, how do you measure up?  Do these questions scare you or encourage you?  I think that it’s good be have a little of both when starting something new.  Keep reading the “How to become a Software Developer” series and get in touch with me via the contact page with any questions.  Don’t forget to sign up for the newsletter (top right sidebar) to get posts like this one and other useful info in your inbox.

 

How to become a Software Developer – Your WHY

It’s hard work transitioning to any new career, especially Software Development.  Have you really thought about why you’ve decided to start this journey? Is your WHY strong enough to push you forward, even through the tough times?    

I’m writing to encourage you with the many benefits.  Some motivators that I see, after over 10 years in the field, are as follows.

  • Money – It could be that this isn’t really a factor for you and that’s great!  But for most, it plays a part if not the primary motivator. If compensation is part of your WHY then that’s fine but it definitely shouldn’t be the only reason for pursuing any career.  Dig deeper to understand what is driving you down this path. 
  • Creative Drive – Do you have an itch to build things and work creatively?
  • More opportunities and room for growth – As you gain experience you will see more job opportunities and growth within companies.
  • Status – Do you see a career in development as being a ‘step up’ in society?  
  • Versatility – A development skill set will give you the ability to work in different areas of the field.  This variety and ability to apply yourself to multiple areas may be appealing.
  • Family Legacy – Do you want to create a better story for your family?  Getting into Software Development may help with that.
  • Learning Opportunity – Every day should be a learning opportunity in life.  It has to be when you’re a developer.  For most, this is a benefit of becoming a Software Developer and could be part of your WHY.  What are your thoughts about this?  Does being a continual learner excite you?  
  • It’s ‘cool’ – Do you see the career being something that intrigues you?  This goes along with learning new things, but not just any new things.  It’s the possibility of using new technologies to build something great.
  • Synergy – Do you like working with others?  You’ll probably have the opportunity to work the some smart people.  Do you like the idea of making things happen on a team?
  • Start a Business – Do you want to do your own thing?  Software Development is a career where you can start your own business as a freelancer or even build your own product.
  • Work from Home –  Remote work for developers is more common these days.  Avoiding a long commute, saving time & money, is appealing.  This is another one of those that is a good reason but shouldn’t be the only one.

I’ve listed the most common reasons that I can think of.  Do you have one that’s not on this list?    

Thinking further, consider your past experiences even going back to childhood.  Did you or do you enjoy things that could relate to development or creating/building software.  A lot of developers that I know like to ‘tinker’ with things on the side and build physical things.  That desire to explore and build could be a big part of your WHY that you can grab on it.

If you have a spouse or significant other then are they on board?  Do they see you being a developer for a living? Talk to someone about your aspirations and get some perspective.

I hope that this has caused you to think a little further into your WHY and helped you to develop a stronger one.  I want you to grab onto and embrace your WHY to help propel you forward and keep you going as you pursue this.

How to become a Software Developer – Overview

It can be overwhelming, especially if you’re already working full-time, to get a new career started.  Software Development is a complex field with many options as well.  There’s a lot of information out there around languages and tools but not a lot that I’ve found around career strategy and transitioning into Software Development.  I want to give you a framework, the exact steps, to get you going and working as a Software Developer as quickly and confidently as possible.

Since you’ve found this post then you’re probably already interested in becoming a Software Developer so I really don’t have to sell you on it.  I do want to emphasize that you should ponder a little and do some ‘up front’ work to put yourself in the best place to succeed and understand the work in front of you.  I think that you can get there in 90 days given you’ve got the right ‘WHY’ and some typical traits that come along with development.  One of the most important aspects is your attitude, not how ‘smart’ you are.

This is the first post in a series about how to become a Software Developer.  If you follow along then you’ll have the building blocks to begin your exciting and rewarding new career as a developer!  I’m going to lay the groundwork for the series in this post so you’ll know what to expect.

At a high level, I’ll cover the following topics.

  • Your WHY as a Software Developer – Are you looking for more money?  This is a good reason but you better have a bigger WHY if you want to be great.  Maybe you’re tired of a dead-end job and no opportunity for advancement.  You’re looking for a real career.  It could be that you’re tired of the same old thing day in and day out.  You want to be creative and make a difference.  Whatever it is, we’ll get it down so that you can move forward with purpose.
  • The Software Developer Quiz – We’ll cover some questions to ask you begin.  This is the first exercise to help gauge where you are and understand where you need to be.
  • Common Traits – I’ve listed 20 common traits that I see in the best developers, and possibly people in general, that I’ve worked with.
  • What do you bring to the table?  How your work history and past experiences can help you as a Software Developer.
  • 90 Day Plan – Create your plan and execute!  You can adjust this as needed but you need to set a deadline.
  • Career Transition Time Management – Creating a Time Budget to implement your plan.
  • Your Learning Plan – What language(s) and tools will you learn?  Degrees? Certifications?
  • Gaining Experience – How will you get experience?  I’m talking about getting some real experience that will give you an advantage.
  • Finding Your Mentor – I’ve heard it said that you’re the average of the five people that you spend the most time with.  I think that this holds some weight!  Find people that are where or on the way to where you want to be.
  • Defining Your Dream Job – You need a dream to go along with your plan.  Dream big.
  • Branding as a Software Developer – Creating your perfect base resume that you can craft for specific opportunities.  Want to start a blog or portfolio site?  Let’s get your LinkedIn profile whipped into shape!
  • The Job Search – Create your company avatar and determine your top 20 companies.  Create your strategy to approach them.  We won’t assume that you want to work for ‘the man’ either.  We’ll cover free-lancing or the possibility of doing your own thing as well.
  • Salary and Benefits Negotiation – What are you worth?  Don’t leave anything on the table.

I hope that you’re looking forward to getting started!  I’m looking forward to helping you and seeing you have success.  Any questions, hit me up over on the contact page.

 

By the way, be sure to sign up for the newsletter over in the sidebar (top) to get this series with additional tips in your inbox.