I finally did it! I achieved my goal!
I started out my adventure nearly 10 months ago with no technical experience and just landed my first job offer as a software developer!
How’d I do it and what is my advice to others?
Here are some of the pitfalls I would caution others to avoid and some tips I would encourage you to try.
Since I had worked so hard during the bootcamp, consistently studying 12–15 hours each workday, I convinced myself that I was entitled to some down time after I graduated. This “vacation” wasn’t a productive one and simply consisted of a poor sleep schedule and extra media consumption.
The reason this impacted me so harshly was due to the dulling of my newly acquired programming skills. When I finally made my way back in front of a computer I spent my remaining time applying to jobs and speaking with recruiters. This did not leave me with much time or energy to practice software development and as a result my skills suffered greatly.
While I would definitely encourage bootcamp graduates to reward themselves for their heroic efforts by doing something nice and fun, that reward needs to have a specific and definite start and end date. Ideally, this reward should be constructive and rejuvenate your mind, body, and soul. A skiing or hiking trip are excellent ideas, as is visiting a tropical beach for a week. Sleeping in, eating pizza, and watching the Office are less ideal.
Remember, the point of this reward is not to become a sloth and you aren’t rewarding yourself because you “deserve it”. Reward yourself carefully and judiciously in a manner that will rejuvenate and invigorate you so that you can tackle the next step in your career with joie de vivre.
Immediately upon graduating I took on waaay more projects than I could handle. Firstly, I wanted to go back and solidify all the technologies I didn’t feel super confident in (read: all of them). Since we learned Python, Javascript, and C#, that was an impossible order. In addition to relearning JavaScript and Python, I wanted to learn or take classes in Git, public speaking, and handwriting (to improve my whiteboarding skills so that my algorithms don’t look like monkey scrawls). This was in addition to my fixing up and deploying old assignments, applying to jobs, doing coding challenges for job applications, doing interview prep, going to networking events, and working on new personal projects.
Obviously, that was ridiculous. That amount of work, especially for a relative newcomer (I only had 4 months of total software experience at that point!) was impossible. Add that to the fact that my working day was about 4 hours long due to my horribly mangled sleep schedule as a result of my “deserving a break”, and you get a perfect recipe for disaster.
The result of all my scatterbrained approach was predictable. I didn’t manage to pick up any of the new skills I had hoped to and I forgot much of what I had most recently learned (C#/.Net stack). After a month or two of this backwards and destructive state I had effectively reverted my skills and abilities to a very primitive level where, although I still understood much of the programming concepts that I had learned and could read other people’s code, I could barely write a new line of code.
The answer to this problem is to focus! This is perhaps the most important lesson I learned and the most common piece of advice that I give. When you graduate, do not try to learn everything! Pick ONE tech stack and split your time between applying to jobs and working in that stack. Do not neglect any of the pieces in that stack for too long lest you forget them.
Since you are more focused, you should allow yourself the opportunity to delve deeper into those technologies. For example, after several months I made the determination to choose C#/.Net as my area of focus which meant that I would study ASP.NET MVC, Razor Views, Entity Framework, SQL Server, and that’s it! I spent an hour in the morning doing algorithms in JavaScript and did a little bit of jQuery to make my work more interactive, but I mostly focused on the .Net stack. I now had the opportunity to really delve into those technologies and learn more about how they worked as well as some of the more powerful tools that they contained.
Remember, focus on ONLY ONE stack and study it in-depth. Do not hop around from technology to technology.
There are several elements I will address here.
When I graduated I felt very confused. I had learned three full stacks (Python, JavaScript, and C#) so why shouldn’t I apply to jobs in all three areas? Well, you can, but like I just discussed above you, should definitely focus on one area.
If you are applying to jobs, or have recruiters calling you with potential job leads that deal with tech you had decided not to focus on you will be tempted to apply to them regardless (“maybe I’ll get this job!”). The problem then becomes when you start doing interview prep or coding challenges in these unrelated areas since it totally distracts you from your focused stack. My recommendation is not to apply to those jobs at all, or if you want to, apply and let them know in the interview that you aren’t focusing on those areas but can pick them up again very quickly while showing off your abilities in the area that you are focusing on. I have several friends who went off and got jobs in Java or other languages by demonstrating their skills in C#. A good company wants you for your ability to think and learn quickly, not for how many methods you have memorized.
Think of a laser, if you diffuse the light over a wide area it won’t penetrate anything, however, if you concentrate it over a small area it will penetrate well. That’s my perspective on which jobs to apply for and how to study.
I honestly thought that I would land a job a within a week of graduating, two weeks at the most. Obviously, that was an insane projection (I’m starting to see a pattern here…). To that end, I turned down the opportunity to apply for the open TA position at the Coding Dojo, which was an enormous mistake in hindsight. My friends who became TAs out of the gate maintained their schedule and vastly increased their knowledge and experience, in addition to earning a paycheck as part-time employees.
As @kale.miller96 pointed out in the comment below, it may serve as a great benefit to you if you join a non-profit team, or simply work for free for a company. Having that resume and practical experience can really help legitimize you in the eyes of recruiters and hiring managers.
It took me a little more than six months for me to land this job offer. However, my experience may not best reflect yours since I also had a long period where I was barely applying, due to my perfectionism (“if I’m not the best developer in the history of the world then there is no point in even applying….”) as well as spending several of months relearning C#.
All told, I recommend budgeting a minimum of three months, both financially and emotionally, for you to find your first job.
Something that I think helped me land my new job (although this is simply based on my musings and has not been verified by my new employer) was my willingness to learn more than the standard curriculum. Instead of simply studying the same basic algorithms again and again (reverseArray()…) I like to also learn more theoretical and higher level concepts. I spent time reading some Git documentation, learning the SOLID principles, and spent two days designing a messaging system using a technical diagram for a job interview.
Messaging System designed using Enterprise Integration Patterns (http://enterpriseintegrationpatterns.com/)
While it may be easy to focus on simply the act of coding, sometimes it is important to learn the theory, especially as us bootcamp folks don’t have the background granted by a university education. Knowing that JavaScript copies primitive values by value but that objects are copied by reference can be quite useful.
In the scope of your job search, however, you can bring up this more in-depth knowledge that you have gained and differentiate yourself in a positive manner. This indicates that you are interested in learning concepts comprehensively and this may pique an interviewer’s interest in you.
Be careful not to fall too deep down this rabbit hole, however. Make sure you work on your actual coding while also learning more theoretical concepts which will be invaluable during your software development career.
It took me six months after I graduated to find a job. Six months! That’s a long time! Some of my friends who also struggled to gain employment as a developer resorted to other tech related positions or simply gave up and switched their industries. I won’t fault anyone for their choices, after all, everyone has their own personal situation which may or may not be conducive to long term job seeking with a narrow focus. However, if you want to sit there for months, bashing your head against the wall of job seeking you need a schedule and place to carry that out.
The Coding Dojo has a six month access agreement with alumni and I took full advantage of that. Every morning I woke up and came to the Dojo where I sat,studied, worked, and applied. The Dojo staff was extremely accommodating, and allowed me to use their space as long as I didn’t bother or disturb the current students. I was even granted permission to retake the C# stack, with provisions that prevented me from interfering with the students who were learning it for the first time.
The ability to be in an environment where I was surrounded by people studying technology and where there was a schedule really helped me persevere.
Some of my friends who didn’t feel they needed to come back to the Dojo after graduation eventually lost their passion and spent lots of time playing video games. Since I know that I’m not strong enough to work out of my home without losing focus I knew that having a place to go to work, one where I was required to wear adult clothing, was indispensable to my long-term success.
I kept a normal schedule, as if I was working a normal job. I woke up on-time (5:30 AM!), learned, prayed, and went off to “work”. At 5–7PM I would either go to a networking event, the gym, or head home. Creating and maintaining this structure was essential in helping me prevent burnout while I studied and searched for a job.
Here’s a synopsis of what you should and should not do after you graduate from a bootcamp.
Remember, if you’re feeling discouraged, inadequate, or like an imposter, don’t! You have come far and your skills are likely far greater than you appreciate. Do not expect perfection from yourself since literally nobody is perfect. Work as hard as you are able to and you are sure to succeed!
Good luck!