It’s been over 8 months since I graduated Hackbright (HB). It also has been a while since my last post, but the last one was a bit difficult to follow. Plus, things have been …. busy.
Tips on Life After Bootcamp:
It has been an interesting several months since I started this journey and a good portion of that being what took place after HB. I know I’ve talked about this a little before but I’ve watched 2 classes since mine go through the HB withdrawal as well as met many from other bootcamps who have struggled with the “what’s next”.
So I want to take a minute to talk about tips on what to do with yourself outside a bootcamp (or without a bootcamp) and in so doing, give some insight into what I’ve been doing these last several months.
When finishing a bootcamp, many have struggled with the lack of clear direction because when you leave something so structured, its a bit hard to put a plan of action in place as you are still trying to learn about the space. Many struggle with just knowing where to focus because there are so many options competing for attention. It can be a very similar experience to people who leave school for the first time and try to enter the “real world”. One key to success here is to create as much structure as possible and focus on what you want to learn or think will move your career along.
Usually most grads from bootcamps are interviewing by the last couple weeks of the program as well as up to several months after. There are a few people from my program that just landed jobs last month for the first time. Even while interviewing, there is that question of how to go about spending your time. There isn’t a specific rule on this. It is about finding what works for you, and putting a plan into action. For example, you could split your days half and half between studying interview questions and sending out resumes or have one week dedicated to working on problem sets with the following one dedicated to going on interviews. You don’t want to be too prescriptive but its important to take charge in defining your career goals and like any software problem you would tackle, break those interviewing goals into steps on how to achieve them. There are plenty of resources out there you can leverage, and I’ve got another post in here about interviews and prepping for them that goes into this subject a little further.
- Skill Building / Continued Learning:
Bootcamps are limited in what they teach and if you want to work in software then you need to keep building your skills. There are so many tutorials and online courses to utilize out there and even ask around your bootcamp community for recommendations. Some will work better than others for your learning style. So test out different ones. Also if you know you just want to code in a specific language like Ruby or Scala, then spend time on studying and practicing those skills (especially when you are in between interviews and trying to figure what to do now).
More generic skills that are valuable to work on are:
Testing & TDD (a necessary evil)– You should try writing tests for one or more of your projects if you haven’t already, and read about best practices in TDD especially for your language(s) of choice. It’s a very important and valuable skill for most jobs you are going into. So it’s a good idea to go ahead and practice now to show your dedication and commitment to field.
Encodings & Character Sets & Such – Learn about Unicode vs. ASCII, code points and how to encode vs. decode (e.g. apply UTF-8). I spent about a few weeks looking through this stuff while working on a Twilio app. Still a little confusing but important concepts to understand when passing data between different systems, character sets and spoken languages (let alone encodings). Many established programmers pointed me to the article “The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets.” by Joel Spolsky. It’s a good place to start and I just recommend finding something to work on to practice encoding and decoding and playing around with character sets.
DateTime – I kinda hate datetime like everyone warned. I have been into the black hole of date time now many times so I get it. It’s hard to keep straight timezones and leap stuff and where your server vs. your user is in terms of times that are stored and shown. So accept the pain and practice using datetime in a project from a client vs. a server perspective. Think about clients that are not in the same location as you (esp. ones who do and do not have daylight savings). Practice applying datetime functions in the terminal and understanding what they do. The tip everyone has given me is store datetime as a timestamp on the server whenever you can.
Object Oriented Programming (OOP) – Practice building class structures and generating object instances because it’s a tricky subject. OOP is pretty popular design approach used in software development and thus its good to be as familiar as possible with how code it. I don’t have a lot to say here. OOP is just good to know.
Databases – Take time to learn about how to structure and work with databases. Play around with how to migrate, upgrade and rollback your project database. Think about how to minimize the calls to the data and improve performance with the way the data is structured. Also try out one or more of the NoSQL options on the market. I’m a huge fan of Redis because its like a dictionary/hash.
Deployment – If you didn’t deploy your final project, take the time to learn how to do it. It will teach you things to consider about your code (esp. when it breaks when its live). It will make you a better programmer having that big picture experience. For example, I’ve used Heroku a few times now and its taught me how to structure and reference files so they will work on the server. Now when I start a project, I just start out in with a structure I know will work on Heroku instead of having to go back and rework and rename all the files. Heroku is good deployment option with great documentation but they aren’t the only ones out there. I do recommend trying other options to broaden your experience. Deployment of course totally helped me appreciate datetime challenges better.
And of course just build stuff to practice and expand your experience as well as to have something to share for what you are working on. Try finding other people to collaborate with to get experience co-coding. Also explore stuff that you like (in case you don’t like anything listed above). It’s important to find the fun in what you do because it will motivate you to keep learning.
- Hackathons, Conferences & Meet-ups:
In addition to interviewing and building skills, take advantage of any hackathons, conferences and meet-ups that are in your area (esp. the ones that align to your interests). These are great venues to learn more about the community and opportunities that are out there.
Conferences usually post speaker and topic lists to help you know what content will be covered. As for hackathons, they can be great opportunities to go practice building a product and working with a team. I’ve noticed hackathons with large prizes tend to be pretty commercial and competitive. Many people who compete actually bring projects that are already in development despite the rules. I’m more a fan of the low-key hackathons that have mentors and are more focused on learning. I did one with Electric Imp where there was at most 50 people and they had plenty mentors to help. Plus they let the audience vote on the winner.
In the Bay Area there are many conferences and hackathons during the year and a number of them are free or very discounted to encourage developers to attend. Find venues in your area and go. If there’s a fee, volunteer and/or apply for financial aid. And if you don’t have a meet-up that addresses your interest, then start one.
My Year in Brief Review / Practice What I Preach:
So yeah I have done pretty much everything above and then some in the last several months. Thus => busy.
I have probably attended up to 2 or more hackathons and conferences a month from July to December. In addition, I was hosting almost weekly co-working meet-ups for others I’ve met in the field as well as attending (and sometimes speaking) at different meet-ups. I’ve been providing adhoc mentorship to people in my community and thankfully working with a couple mentors regularly as well as several others as needed to help continue to grow my skills. I completed MIT’s online intro to CS which was very helpful in reinforcing concepts I had learned as well as give a more rounded context to my work. They should be running another one on edX this spring. I have also been squeezing in many other programming tutorials when I can. I especially find it interesting to learn new programming languages to better understand the ones I know. And when I can find the time, I play with hardware.
While studying and attending events last year, I also worked on setting myself up as an LLC so I could freelance and build products on my own. And setting up a business on its own, is quite the education itself. There could be many posts on just this if I made time. Still I will note that it is an alternative to consider and I’ve seen other classmates do contract work after bootcamp.
So Now What:
Being a glutton for punishment, I’m going back to do another bootcamp. I have had an interest in machine learning even before I started Hackbright. So I’m starting at Zipfian Academy next week which is a 12 week focused data science and machine learning bootcamp. Should be intense, interesting and I’m sure there will be lots to take-away. I plan to get back into the habit of posting to share my experiences. Can’t swear to how often but there will be other posts on Zipfian. It should be a fantastic challenge and a different perspective considering where I’m at now. I’m already busy cramming stats, linear algebra and multivariate calculus. My head feels a bit full.
For those of you out there still figuring out where you are going and what you want to do with yourself for the year (and yes that could be anyone and probably everyone), I know this sounds cliché but you just have to make the path that works best for you and try as hard as you can to not let someone else dictate what success looks like for you.
Good luck! And happy belated new year.