Guide To A Career In Software Development
Learning Path — ensure it is straight with milestones.
Decision time — Follow your passion, life is too short not to.
If you are like me, you have worked hard your entire life in a profession that hasn’t really suited your abilities, your intelligence, or your personality. You made a few choices in life that didn’t necessarily bring your profession in line with your passion.
For quite a while you have been wanting to figure out a way to switch gears and head in a direction which is more aligned with your imagination, to make a living out of what you do every day for fun. For me it is coding. Everyday I do it for free, and I love doing it, then I used to go to work at a job that was not even remotely close to having anything to do with coding or computers or my passion.
This all changed for me about a year and a half ago. I decided I was going to do what I loved, and I was not going to let anything stand in my way. What had started as a hobby, turned passion, finally turned profession. Here is how I did it. The short version, because I spent a lot of time going around in circles. I am going to try to lessen that pain for you.
Make a commitment — write it down, create a plan, schedule the time, create goals, follow through.
Make a firm commitment to yourself — thousands of hours of your life will be towards learning and practising this single skill and hundreds of thousand more hours afterwards.
Nothing is worse than deciding to enter a profession, spend the time and resources learning a trade, then finding out you really don’t like it, at all…. This happened to me when I decided to become an aircraft mechanic. It was a decent job, I just really hated it. I have always spent time building websites, keeping abreast of tech, and dabbling in code, but never truly dove into it with a desire to do it professionally. It was a dream, but never one I thought would come true.
With this said, be careful in believing in the hype. You will most likely not make a million dollars your first year. You will most likely not have a Unicorn the very first site you build. You probably won’t even make over fifteen dollars an hour at your first job. If you really do not like spending hours coding just for the fun of it, most likely you will not succeed in this profession.
Learning to code as a hobby is fine, but unless it is your passion, you should not do it professionally. You should be following your passion, whether it is dancing, drawing, writing, flying, mechanics, etc.
Don’t Fall For The Hype!
If you do not absolutely love figuring out puzzles, enjoy spending hours staring at the computer screen thinking intensely of ways of making something work, if you can’t handle failure, or people constantly being a heck of a lot smarter than you, or if you can’t handle pure and utter destruction of the ego, then this business is probably not for you.
On the other hand, the reward for hard work, intense thinking, thousands of hours of practice, constant study, is an intense sense of accomplishment and a transcendental feeling of well-being when something which seemed impossible is accomplished. That feeling alone is addictive. Coding and development isn’t for everyone, even though everyone thinks it is. Let me be the first to tell you developing professionally, with deadlines, bosses, accountability is completely different than doing it as a hobby. So you better really think about it, and really really like doing it, if you plan on doing it professionally.
Decision, Commitment, Perseverance, Attitude
Now, off the soapbox, and onto great learning…
Pointers to get you started.
- Create a learning path with objectives. This is invaluable in keeping with a schedule and realizing goals.
- Narrow down your path. Pick a language, pick a career you are shooting for, such as frontend, backend, systems programming, Windows or Linux, etc. The more narrow and focused the better. You cannot learn everything, at the beginning it is better to be really, really good at a single technology than multiple, you are trying to learn the core skills of a programmer that are language independant, languages will come later.
- Schedule specific times to study and ensure you adhere to the schedule. At least 2–4 hours daily is needed.
- Keep notes…just like high school, notes are an invaluable tool for cementing concepts.
- Find a study group. Although not necessary, I hear it is a practical way. I am a severe introvert so I never did this, but for many it is a great motivator.
- Contribute to Open Source Projects as soon as you are able.Having your name on professional code that has been accepted into an open source project is the most invaluable thing you can do. Employers do dissect your code before they contact you.
- Create. Create. Create. The more personal projects you have and the increasing complexity of those projects are very very important. As Linus Torvalds once said — Talk is cheap, show me the code!
The Two Absolute Best Resources to Begin Your Programming Journey
Do this curriculum from beginning to end and you will have a good foundation in web development.
The quintessential introduction course. A must for any serious disposition into programming.
Learning should be a lifelong commitment.
The learning Never Ends
Continue to take courses on edx.org, I find University courses are what companies look for on resumes the most.
Get a grasp on Object Oriented Design as early as possible. Learn it, live it. I have found certain books to be fundamental in this part of the journey, including the Head First series.