Professional development – in the form of mentorship, courses, conferences, and beyond – can help software engineers face technological advancements, changing developments, and the wide range of challenges they’re likely to run into on their career path.
For some, that career path begins once they’ve graduated from an immersive software engineering bootcamp. At a recent event, we spoke with one such bootcamp grad who asked a question about the timing of professional development for someone like him. How could our ProDev courses fit into his particular path? He had just graduated, was actively looking for a job, and wanted to continue learning in the meantime.
To start answering that question, it’s important to note that many (if not most) bootcamp grads don’t have a background in computer science. While the bootcamp explores some of the philosophical and theoretical foundations you’d get from such study, the curriculum is far more focused on the practical skills needed to get a job soon after graduation. Conversely, a computer science degree provides a solid theoretical foundation for many problems in nontrivial software features, from implementing complex algorithms that fulfill business requirements to designing proper systems and network architectures to understanding how code runs on computer architecture.
With all that in mind, bootcamp grads don’t necessarily have a deep understanding of topics like algorithms, architecture, and networking. And as they progress in their careers, these knowledge gaps can start to pose challenges, especially as job responsibilities grow more robust and difficult.
Of the five professional development courses we offer, three can help the recent bootcamp graduate start to fill these gaps right away, no matter if they’re still looking for a first job or they’re already working but want to keep learning as they go. These three courses – Algorithms + Data Structures; Computer Architecture + IoT; Networking + Reactive Programming – will help students extend their already sound practical foundation while adding the theoretical grounding to answer the how and why questions they’re sure to come across as their roles expand beyond coding.
Learn more about each course below:
Algorithms + Data Structures
While this course is not specifically designed to help students get through the challenging software engineering interview process, it will certainly help them more deeply prepare for it. Throughout the course, students learn to write better code by identifying the correct algorithms and data structures to use for the problems faced on interviews or on the job. We take an algorithms-first approach because we want our students to emerge from this course with an understanding of the design of algorithms. This is important because all things lead back to algorithms. Every single line of code you write is part of an algorithm. Software is an algorithm, and so forth.
With this focus, students will be able to address big, career-building questions, like which types of problems fit into which types of algorithms? And how do I represent the data structures for the algorithms in the most efficient way?
Computer Architecture + IoT
As you progress in your software engineering career, knowledge of the innermost workings of computing will help you better understand each and every aspect of the job.
This course breaks computing down from the top to the transistor level. In it, we connect the dots in terms of how each component affects the programs you’ll write, knowing that everything eventually gets down to machine code at some point. You’ll also explore the foundations of computing, including how they work, how to assemble them, how to program a microcontroller, and more.
“When I learned this stuff, it informed everything I did after that,” said our VP of Professional Development, Curtis Schlak, who considers the material covered in this course foundational for software engineers.
Curtis didn’t learn these foundations until well into his own career and much of it was self-taught. In large part, that’s why he’s so driven to create and offer these courses to interested folks during the early stages of their careers. “Learning these foundations opened up my awareness of everything that happens once software runs in terms of memory, computation, and I/O,” he added.
Networking + Reactive Programming
With what Curtis mentioned in mind – a deeper awareness of how software really works – this course covers two topics that will help recent bootcamp graduates advance their knowledge and skillset efficiently.
They’ll learn the full stack of networking, including how to build and program a network server. They’ll also spend significant time on reactive programming, which is a model for how to think about software. With reactive programming, students learn how to build data-intensive systems, including how to react to those in reasonable, robust, and maintainable ways.
Courses for later down the road: Methodologies + Requirements Gathering & Microservices + Orchestration
Without significant time on the job, recent bootcamp graduates won’t meet the required course prerequisites, which we include to ensure every student gets the most out of the course and the best return on their investment. For anyone interested but not yet qualified, we encourage you to come back to us when you're ready. We’ll be here to dive into these fascinating topics with you then.
See our schedule of upcoming ProDev courses here.