Becoming a Developer
I’ve spent the last 5 months preparing for a career switch from mechanical engineering to software development (more specifically, data analysis and visualization). My time has been spent planning, coding, studying, and reflecting. My family was fortunate enough to be in a relatively secure position when the pandemic hit. Despite my layoff in July, we have not had many significant stressors, financial or otherwise. I do not write this to boast, but it may help provide context for how and why I chose my specific learning path.
My Plan
I’ve been a hobbyist coder/programmer for years now, starting with basic web development editing stuff with HTML/CSS, and moving on to Javascript and Python. If I were to start from scratch I may have been better off going through a bootcamp or a more formal curriculum. As it was, I knew enough to be dangerous. I knew how to write a python script for web scraping data, or create a basic webapp with HTML, CSS, and Javascript. I was aware of many of the major frameworks available to me if needed, and when/why they might be used. After looking at a number of what I thought would be suitable developer job postings, I had two major takeaways. One: I needed to get some certifications. My resume to this point in my career has been focused on mechanical engineering. All of my serious job experience has been in mechanical engineering. As a professional transitioning from another career path, it’s especially important for me to differentiate myself from other candidates who may have CS degrees or other professional programming experience. Two: My scripting ability did not necessarily translate into professional software engineering skills. In order to be job-ready, I needed to work on some of the CS basics which hadn’t been a priority for me until now (algorithms, runtime efficiency, data structures, etc). Also, I believed I should improve my fluency with Git and various Git clients. In retrospect, this has also helped make my github account look much more impressive compared to where it was 6 months ago.
Lessons Learned
The path I’ve taken to this point has been winding. I’ve learned some things in the past 6 months which can hopefully be applied to help others in career transition to software development.
Focus
I use Trello for task management. It is extremely easy to add ‘to-do’ items from my phone or computer. However, it gets cluttered rather quickly if used for too many things. If I were to do things over again, I would use an entirely separate Trello Board for things like bookmarks and yet another for the Job Application process (I will be implementing this moving forward). It’s easy to get overwhelmed with cards - don’t be afraid to delete or move them as necessary to keep your sanity.
Use the Right Tools
I like to spend time browsing websites like producthunt, indiehackers and show hackernews. I don’t view the time as wasted. It’s important to stay up-to-date on what tools are available. Many are free. Most are worth the asking price, if the service/product is truly needed. Our society has gotten used to things being free, but monthly subscription costs of $10, $20, or more can easily pay off in time savings or other benefits.
Wins
Planning
From day one, I started with a plan. I’ve used a number of project management tools over the years, but I chose Trello for my ‘Education Plan’. The webapp is excellent, and I also have the phone app on my homescreen as a little ‘get back to work’ reminder if I get distracted. My method is to create Trello cards for each larger goal. I use checklists for sub-goals. For example, I am currently working on an IBM Data Science specialization certification from Coursera. Each course of the specialization has it’s own checklist, and each checklist has a box for individual weeks. It’s a big motivator to see the progress bar slowly increase, and it is immensely satisfying to finally be able to move the card to the ‘Completed’ list once the larger goal is complete.
Take a Leap
In the past 6 months I’ve learned many things, but the proudest moment was a small contribution I made to an open source project. I’d been intending to become an open source contributor for years, but many of the open issues seemed to daunting to handle or were already being worked on. If you are in a similar boat, please just go for it! I’ve since learned that many of the issues being worked on are abandoned or have room for additional improvement. Don’t be shy. Also, maintainers are (usually) happy to provide guidance and answer questions if you are intimidated by a task.
Future Plans
As mentioned above, I am nearly finished with the IBM Data Science specialization on Coursera, and will be able to add that to my resume. As soon as I have that credential added, I will begin my job hunt in earnest. So far I have limited my applications to longshots at jobs which seem exceptionally cool or well-compensated (or both). I haven’t done much tailoring of my resume or included cover letters, for the most part. My secret weapon in my job hunt going forward will be using keywords to my advantage. I almost certainly will not have all the skill in the ‘required skills’ section of the job posting (hardly anyone does), but I am confident in my ability to learn. Please feel free to reach out if you have any questions or advice. I would love to meet other developers who are traveling the same path.
Photo Credit
Photo by Russ Ward on Unsplash