This chapter is part of The Honest Guide for Coding Bootcamps, a collection of thoughts after a full-time software engineer bootcamp.
Each bootcamp experience is different, but these are some of the outcomes I recommend to work towards since day one.
You can’t learn a programming language or how to build an app just reading books or watching online tutorials. You must code, code, and code. Building a portfolio of projects will help you put into practice and consolidate your newly acquired knowledge. New projects will also throw at you new challenges and problems you’ll have to solve. The top skill for a software engineer is the ability to solve a new issue you’ve never seen before.
On your day to day as a developer, you’ll be working with enterprise source codes at a much higher level of complexity and size. Even though bootcamp projects are tiny in scope, your projects will have a significant impact on your learning progress, and the limited scope should facilitate focusing on specific technical challenges.
Something you might experience during the bootcamp is a rush to come up with wowing, sexy apps. You will be comparing your project with your colleagues, and, most of the time, the students with previous CSS skills or very creative minds will be very likely to win the popular vote. If it’s a group project, this might also create friction between the members: some might not feel very excited about the idea someone else suggested, or the project scope was too ambitious that there’s no time for slow-learning coders.
However, there’s something fundamental that nobody will tell you. The end goal of your portfolio isn’t the portfolio — the apps — itself; it’s the process and the focus. In the real world, nobody will care about your movie review or recipe searcher app: you’ll briefly explain the technologies you used, a challenge you encountered, and how you solved it. I would also recommend reading the article Advice for Software Apprentices to get the advice of a senior engineer on how to differentiate yourself from other bootcampers thanks to the projects on your resume.
Your project portfolio is a collection of learning stories. Keep your repositories public, write comprehensive READMEs as if they were educational resources for other developers, and include demos — I recommend the app Loom to record your videos. If there is a big challenge or lesson learned, use that excellent opportunity to write a Medium post and share it!
Finally, resumes aren’t worth much in tech. They are part of the recruiting and networking ritual, an extension of your business card. Inexperienced developers’ resumes can’t explain their potential as software developers; however, they will act as a conversation facilitator and one of your first persuasion tools to convince a company — people — to hire you.
Look at your old resume and say goodbye to it. Your new resume won’t look like your old one: leave one or two of your previous jobs and add a new section: technical projects. Get your portfolio and select the top two or three projects that can tell the most successful learning stories.
Pair programming is a common practice in bootcamps. Students get paired to discuss problems, code exercise solutions, or develop projects. Not all companies implement this development practice, but being a software engineer requires soft skills and values that only pair programming can train you for.
I’ll tell you two stories that showed me a lesson on humbleness and teamwork. On my first group project, we were coding a basic word game. We were three students working on it. We had to design a simple relational database, and my colleagues haven’t consolidated the basic concepts and were struggling with the initial steps of the project. I was a little bit more ahead of them and felt more confident about how to design our database for our game. After spending two days without significant progress, I started getting upset about my colleague’s unpreparedness. I decided to fork the code and work in parallel to keep advancing on my code.
On my second project, a similar situation happened. However, this time, I was the slower one. My pairing partner was faster than I because he had already worked as a front-end developer freelancer; on the other hand, he had a “freelancer” mindset. While my partner was very focused on splitting most of the work and building a ‘cute’ app, I was more interested in pair programming and taking time to discuss coding solutions or helping each other with concepts we had not cemented yet. Being on the slow side of the team revealed to me the importance of investing more in the learning process than on the final product. I learned a lesson about staying humble and proactively being a team player.
When I started my first job as a software engineer, all those values became part of my day-to-day. A bootcamp teaches the very basics of programming and simulates a professional environment where you can start building your developer toolbox. However, no matter how advanced you are at the end of the bootcamp, the learning curve for an entry-level developer is still at the liftoff zone, and you’ll be the inexperienced (very, very, very) slow developer for a while. You’ll need mentorship, support, and lots of constructive feedback.
Far from the stereotype of software developers coding in basements isolated from the world, working in tech requires a lot of cross-functional work and high communication skills. On a day to day, these values need to translate into actionable practices.
First, allow everyone to win or learn because we all learn from our successes, we all learn from our epic failures, and we all learn from each other. You can also take your part in ensuring everyone has the opportunity to learn and grow.
Second, provide and be open to honest feedback, delivered with respect. Feedback should be a genuine effort to help us improve, build trust, and support growth.
To build an environment of constructive feedback, follow these simple rules: say the hard thing, respectfully; give specific, immediate and actionable feedback in a private setting; proactively invite feedback on your work; and assume positive intent when receiving feedback.
In the end, any individual success depends on the success of a collective team. Start practicing all these values since day one in the bootcamp.
If you found this article useful, share it with anyone considering a bootcamp or already in the process of becoming a software engineer.
Thank you for reading this article and good luck with your future endeavors!