# My General Assembly software dev bootcamp breakdown

So earlier this year I took a massive leap into learning software engineering, and enrolled in a bootcamp with General Assembly Australia. I took part in the flex program, which is six months part time (two nights per week and every Saturday), which is the not so common route, with most students opting for the 12 week full time intensive. My experience was so overwhelmingly positive, a whirlwind of learning with a smart and supportive cohort, and with a teaching team that really want you to learn, be challenged and succeed. 

Since graduating just over a month ago now I've had a couple of people reach out asking about my experience, who are also considering the leap and wondering if it's for them. So I thought I'd capture a few thoughts about the course, the questions I've been asked, what I learned, and what steps I might take if I was on the other side starting again..

### So question 1: How is the course structured, and what tech stack do you cover? 

My course was split into four units, broadly under these themes with lots of extra tech thrown in:

**Unit 1:** Foundations of frontend development - HTML, CSS, JavaScript fundamentals, DOM, events, hosting.

**Unit 2:** Server-side and back-end development, including Ruby, SQL, PostgreSQL, working with user login & auth, and creating a full stack CRUD (Create, Read, Update & Delete) app, and MVC (Models, Views, Controllers) design pattern. 

**Unit 3:** JavaScript again, including functional and object-oriented programming, full-stack app creation with Express.js and Node.js, working with APIs, developing SPAs, test-driven development and working in teams (including using GitHub for control workflow)

**Unit 4:** Modern web development, including working with React.js and component based UI development, JavaScript E6, TDD with Jest, design patterns, CSS animations (and so much more!)

Each unit went for six weeks, four weeks to focus on the tech (working on problems, getting familiar with concepts and applying it to small projects and exercises) and then two weeks bringing what we learned into a more significant project to present to class, and submit for review. Each project needed to include a hosted working app, with the source code to be available on GitHub, along with a README, wireframes, and user stories or research.  

We learned **A LOT** (and so much more than I've been able to list above), but one of the most significant things is that this course taught me how to learn different technology, how to take the learning and skills from one language or framework to another, and very importantly different problem solving techniques.

** Please note your content structure may be different to mine, as I know different frameworks can be swapped in and out, so best to talk to your admissions team about exactly what tech stack you might cover.

### Question 2: What is the work load like?

This kind of depends on what else you're managing at the time, but it's definitely significant, and honestly if you have extra time outside of study and homework (and life!), then put it to extra practice, learning and more practice. Homework was set after every class (except for when working on final projects), with the expectation it would be submitted by the due date. That said though, I always wanted to get it done, the content moves super fast and getting behind just wasn't something I wanted to have happen. 

My course contact hours were 3.5 hours two nights a week (so 7 hours during the week), and then approximately 8 hours on Saturday. Homework hours were between 5 to 10 hours a week - but this would depend on how much extra you wanted to cover, and how comfortable you were with the content.

### Question 3: Will I be able to do it?

I think so! Nearly every person in my class had come from a different professional background, there were pharmacists, teachers, people working in logistics, management, auto retailers, designers (me included), and hospitality. But we were all really driven to learn. There were definitely some that came with more programming knowledge, but others not so much, and the course is structured in such a deliberate way that each module builds on the one earlier, and concepts are reinforced throughout. The teaching team are incredibly supportive, and offer a lot of guidance if you've hit a block with something you're working on too.

### Question 4: Are you glad you enrolled?

For me it's resounding yes, not only was the course an extremely positive experience, it also uncovered a real love of learning technology for me. It has opened far broader professional opportunities, a new very compelling career direction, and also the ability to build things on my own - which is just actually very cool. It's been so motivating to be immersed in this learning and be able to apply that knowledge so readily, and to know that this is only the start.

### Question 5: Do I need to have strong technical skills before starting?

I don't think so, the course is structured to take you from early concepts to more advanced (and again that teaching team and your student cohort equals a lot of support).. but it is really valuable to build as much early foundational knowledge as possible, so start experimenting with building web pages (even if not deploying), get familiar with the basics of web development (HTML, CSS and the basics of JavaScript). There's loads of free resources available to get across the basics too, such as  [FreeCodeCamp](https://www.freecodecamp.org/), [Codecademy](https://www.codecademy.com/), 
 [W3Schools](https://www.w3schools.com/), [MDN Dev](https://mdn.dev/) and of course so many youtube channels - this knowledge will really help build up familiarity with the foundations.

### Question 6: What about career support, is that included?

**YES!** GA offers an Outcomes program led by incredible career coaches, who offer so much guidance, advice and strategies to help position yourself for software engineering roles, including sessions on LinkedIn strategy, writing a developer resume, tips for writing compelling cover letters, and of course networking. The support continues post-graduation and until you've secured a role. My coach has provided so much advice (and is an absolute incredible human being), and having someone in your corner to bounce applications, or networking strategy off is honestly invaluable.


Lastly get in touch, if you're considering jumping into a GA bootcamp and would like a little inside knowledge or have any other questions feel free to hit me up... But definitely go for it!
