A quick overview of my experience: I attended Codesmith from Febuary-May 2020, worked as a fellow until August, and started my first engineering role at the end of August, after applying to jobs for 1-2 months.
(If you don't feel like reading the whole thing, scroll down to the Conclusion section at the very bottom)
I had high expectations coming into Codesmith, and generally speaking those expectations were met. However, I should point out that our cohort switched from on-site to remote instruction halfway through the program due to the pandemic, which affected the cohort's experience for the second half of the program.
Codesmith's curriculum was divided into two halves when I attended (and I assume it's still fairly similar):
Full-stack instruction: an intensive series of lectures, pair programming exercises, and projects teaching essential full-stack technologies like React, Redux, Node, and SQL/NoSQL databases.
Production Project & Hiring: students build a developer tool over six weeks, and they also attend a series of lectures and workshops preparing them for the job search. They'll also put together a resume with the guidance of a fellow. Some supplemental lectures and exercises are also included here, touching on topics like AWS basics and CI/CD fundamentals.
In addition, we also had an assessment or algorithm exercise each morning.
Curriculum & Lectures
Overall, the first half of the program was by far the most engaging and fulfilling for me. I came into the program with some frontend experience, and after the first half I felt confident building basic applications with servers and databases. Our lead instructors knew what they were talking about and gave their lectures in an engaging manner.
At some points I did feel that the curriculum could be updated a bit (particularly in the second half - there was an AWS update that wasn't covered in the instructions, and we lost several hours as the instructors worked to find a solution), but I understand that the curriculum was updated during the latter half of 2020 and possibly later. It would also have been helpful to cover modern practices such as React hooks, linting, best practices for codebase architecture, etc. before going into the production project — these would make good quick additions to the curriculum if they aren't already included.Projects
Possibly the biggest part of Codesmith's appeal is the "production project" - a development tool that a group of residents work on (4 or 5, for my cohort) over a span of 6 weeks. Before tackling the production project, we also completed a handful of other projects, ranging from a Chrome extension to several fullstack apps, which did a lot to prepare us for this project.
While the production project our group built from scratch wasn't exactly what we'd call "production-ready," we did have the opportunity to iterate on several past projects and refine the codebase while adding extra features, which in retrospect might have been the better option, since it's closer to what most engineers do at their jobs!
One aspect of the production project that was a little less than ideal was the group dynamics. In my group as well as others, there were conflicts where some members "led" the project and created a less equal learning environment for others, or in other instances some members were unwilling to make meaningful contributions and instead preferred to chat. I expect that this is always a risk when forming groups (not to mention in the actual workplace), but this did detract at times from the experience. To future students, I highly recommend getting in touch with your group's assigned fellow if any conflicts or issues occur - I don't believe it's worthwhile trying to solve them on your own when the experience is something you're paying a significant amount of money for.Hiring Portion
Without a doubt, the best part of the hiring portion for me was the resume. I came out of the program with a dense, polished resume that I didn't feel embarrassed sending to employers - in contrast, the resume I wrote before CS might as well have been written by a child.
I had high expectations for the hiring program because I had heard past grads praise it, with some even say that it was worth the cost of tuition on its own. I was 30 when I attended the program and had worked a number of non-technical jobs previously, and I didn't feel that the instruction regarding the job application or interview process broke any new ground for me. I've spoken to some other grads who are around my age and felt the same — I suspect that the people who get the most out of the hiring program are in their late teens to mid-20s.
For me, one thing I would have changed about the hiring program would have been to include some engineers in the workshops and lectures who had experience interviewing and working outside of Codesmith. While our instructors did make a solid effort to cover the standard materials for these lectures, sections like the system design portion would have been more engaging if they were led by an experienced engineer who had gone through or given SD interviews, rather than a fellow who had only completed this same unit weeks earlier. Likewise, I would have gone into the interview process a bit better prepared if I had been given more concrete details about the typical interview process, common exercises, etc. This is something that I had to do on my own time, through speaking to other grads and going through interviews. Disclaimer: since we had just switched to a remote format at that point, there were issues with timing that caused several hiring lectures to be rescheduled, and unfortunately Will wasn't available to give his usual lectures. I'm assuming this isn't the current experience.
While it's true that you only get better at interviewing by interviewing, some more concrete guidance would have helped immensely, as some lectures felt a little vague. When I attended the program, we were able to interact with full-time engineers at three different points: during an alum Q&A session, during an hour-long mock interview with an alum, and during a 15-minute (I believe) phone call where we went over our narrative with an alum. When I began applying to jobs, I was uncomfortable about reaching out to the hiring support fellow for advice — while they were doing their job to the best of their ability, I felt more comfortable reaching out to someone who had gone through the hiring process themselves. I'm aware that Codesmith now gives graduates the opportunity to book time to speak to past graduates who are now employed as engineers, which is great. I think bringing engineers with this type of lived experience into the hiring program would also be a huge win for everyone involved in it.Conclusion
Based on my experience, I'd definitely recommend Codesmith to anyone who has decided that a bootcamp is the right choice for them. Codesmith helped fill in the gaps in my engineering knowledge, and it also gave me the chance to work on an in-depth project with a group of other developers. My production project was likely a big reason why I was considered for the first role that I got hired for — I built a GraphQL tool, and GraphQL was a big feature of the stack I ended up working on.
Overall, I'd say the hiring portion was the only part of the program that didn't meet the expectations I had coming in, for the reasons I mentioned above.
Still, a hiring program alone won't help you get a job. After the initial lectures, Codesmith provided me with an environment to push myself to improve, and a community of graduates that supported me as I moved on to the job search and beyond. Without Codesmith, I definitely wouldn't be at the engineering level I am today.