Tips, advice, and guidance for changing your career.
on Tuesday, April 12 @ 8:22pm
Software developer positions are highly desired. Just as astronauts, Supreme Court justices, and Hogwarts professors must have a variety of skills and knowledge, software developers have a combination of technical knowledge and soft skills. This post explores the skills that many companies look for.
Today’s modern programming bootcamps promise job readiness upon graduation, and in this post we’ll discuss how they deliver on that pledge. While Bloc wrote this for Bloc, this content applies to most well-known programming bootcamps (e.g. Hack Reactor, MakerSquare, Dev Bootcamp). We’ll explore three features that bootcamps provide to help students prepare for their new careers.
More importantly, the software industry is one where within a year’s time or less, an up-and-coming tech stack can overthrow the standard – the industry changes all the time. Bootcamps employ working professionals who incorporate the latest technologies into the curriculum to combat the sector’s ever-changing landscape. These individuals filter the noise to discover the technological shifts critical to their student’s education and success.
Bootcamps also have students engage and master soft skills, such as Agile and Test-Driven development (TDD). Agile is a project management paradigm that is prevalent among many startups and established companies. Similarly, many organizations follow TDD practices that require developers to write tests before writing the code that runs the application. Bootcamps that employ these soft skills better prepare their students for their future work environments.
Every developer should have a portfolio. For seasoned developers, it is a combination of projects worked on in corporate, contract, open source, and personal environments. For bootcamp graduates, the stakes are not quite as high. However, a bootcamp helps students build a modest portfolio of two to four fully functional, well-designed applications.
A portfolio reflects upon a student’s ability to apply their new skills and create something of their own. During an interview, students not only have applications to talk about, but may open up a laptop and show their interviewer said applications, what they do, and how they work. If a picture is worth a thousand words, then a working application is worth 10,000 lines of code (or something like that).
At Bloc, we require students to complete three projects before they graduate, and many often build more than that. We help students along the way, guiding them with mentorship and high-level architecture concepts. Students may also choose to develop a capstone project, one that is entirely of their own design. Students often graduate Bloc with an excellent showcase project or even a full portfolio of apps.
A skilled student with an excellent portfolio of applications is ready for one last thing: the job hunt. Bootcamps that aim to find gainful employment for their students will prepare them for the arduous task of looking for career opportunities. This begins with the fundamentals: resumes, online profiles (LinkedIn, GitHub, StackOverflow) and cover letters.
Most bootcamps go much further, often requiring the student to participate in mock phone screens and in-person interviews. This includes practicing interview questions, both technical and otherwise.
Once a student is adequately prepared for an actual job search, the bootcamp and its partners work together to find employment opportunities for them. Bootcamps have extensive networks of mentors, recruiters, and corporate partners that want to snatch up talent before losing it to the competition.
Established companies such as Autodesk, Starbucks, and Groupon have hired our graduates. Bloc’s mentors, and even Bloc itself, have hired graduates in the past, a practice that has resulted in great outcomes on both sides.
If a bootcamp can endow a student with fundamental skills, a stunning portfolio of applications, and the tools required to begin a job hunt, it prepares that student for a career as a software developer.
The software industry uses words like hacker, programmer, coder, developer, engineer, and architect to differentiate between similar-but-not-identical skill sets. These terms are poorly defined, which causes ambiguity, and their appropriate uses are still debated today:
Bloc offers two related Tracks for students who desire to learn these skills: a Full Stack Web Developer Track, and a Software Engineer Track. Since the definition of these terms can be ambiguous, let’s be explicit about what we mean. (Others may use these terms differently.)
If you graduate from the Full Stack Web Development Track, you’ll be able to develop and maintain web apps. You will learn two programming languages, how to create databases, advanced styling techniques, and more.
But there exists a class of problems not covered by this Track. As an example, consider this question: “Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?” It’s called the Traveling Salesman Problem because a salesman must travel through many cities and make the best use of their time. There are many problems like this.
For example, Airbnb might want its users to create search queries like “Given a city and a list of Airbnb rentals, what is the cheapest way to rent Airbnbs for three straight months, using only Airbnbs that have a dishwasher, a washer/dryer, or both?” A junior web developer may not be prepared to write code to efficiently answer that question. A software engineer grad is armed with techniques and skills that make them capable of solving these open-ended and complex problems.
Here’s an analogy outside of software development: a Full Stack Web Development Track graduate is like a construction worker who builds bridges. Bridge-building is highly skilled labor, requiring lots of practice and knowledge of different materials, approaches, scenarios, and designs. A great bridge-builder can adapt their approach to different types of gaps, different weight requirements, etc. But ultimately this person is combining existing tools to construct something, not designing something new.
A Software Engineering Track graduate is like an architect or civil engineer. This person understands the theory behind everything – not just which metal to use where, but why: how to measure it and prove it. This person also understands at a more fundamental level how the sausage is made: what goes into the metal alloy, or how the specific curve of a support beam is important. They are uniquely qualified to design new bridges, and make more creative, iterative improvements on existing bridges.
The former will likely always be employable, at least in areas with bridges. But the latter is indispensable to society: without them, we can never evolve. Ultimately, graduates of the Software Engineering Track can solve harder problems, handle more complexity, and create more robust software.
Now that you know the difference, consider which track to enroll in.
Given your hard work and diligence, Bloc Tracks will change your career and your life. All Tracks teach professional-grade software development skills, include dedicated one-on-one mentorship from an industry expert, and come with exclusive access to Bloc’s Employer Network and Career Services team. Each Track follows the tried-and-true Bloc approach of building real software, starting with carefully sequenced and technically rigorous curriculum and transitioning to independent work at the end.
Here are the main differences:
Compared to the Full Stack Track, the Software Engineering Track (SET) covers more advanced topics, and requires one thousand hours of additional work. Both are premium experiences designed to help you get a specific outcome: new skills and a new job. SET’s length provides its students with enough time to master the advanced skill set. Whichever direction you go, a Bloc Track will teach you to write outstanding software, improve your career, and enrich your life.
As an aspiring software developer, you must immerse yourself in the software industry and its culture. You need to be able to speak the language of software, in addition to knowing how to code. Fortunately, the software industry has a culture of openness and sharing, so there are plenty of ways to learn about it. One source of information comes via podcasts. Our engineering team at Bloc assembled a Top 10 list that aspiring developers should follow, in no particular order:
Accidental Tech Podcast was created by three people, two of whom are developers. In the podcast, they discuss industry trends, capabilities of new devices, new products with great design, as well as other topics.
CodeNewbie features stories about people who are new to development and are now working as developers full-time.
Shop Talk Show is hosted by Chris Coyier and Dave Rupert. They interview notable developers, designers, and other industry leaders to discuss hot topics in development and design.
Software Engineering Radio targets professional software developers. Each episode focuses on specific topics as well as tutorials on software engineering.
Ruby Rogues is dedicated to the Ruby programming language. It features technical discussions as well as general concepts on Ruby.
This Developing Story was developed by Bloc’s very own Brian Douglas. As a former student and current engineer at Bloc, he interviews new developers to discuss their stories about learning and becoming software engineers.
Under the Radar is primarily for independent iOS developers. However, it hosts a lot of discussions about the day-to-day responsibilities of being a developer.
While short-lived (only four episodes), Reboot is worth listening to. The podcast, hosted by Thoughtbot, shares the stories of people who transitioned from non-technical careers to software development.
Release Notes’ features news and information about Mac and iOS indie software development. Hosts Charles Perry and Joe Cieplinski discuss topics, tricks, and tips for new developers focused on Mac and iOS platforms.
Mule Design’s Mike Monteiro and company host Let’s Make Mistakes. While it focuses more on design than development, it’s worth listening to for anyone who thinks about software.
While not all of these strictly apply to software development, their topics are interesting and each conversation can help you understand the industry as a whole.
If you look through the history of each podcast, you can also find other topics of interest or topics that pertain to a particular skill you’re trying to learn. As you listen, don’t be worried if you’re not familiar with all of the concepts they’re discussing. Listen to the context of each concept they talk about, and take notes on things you want to continue learning. You then have the ability to follow up by Googling or searching on Stack Overflow for more information. Several of these podcasts also have “Show Notes” associated with each episode, such as this Accidental Tech Podcast episode. They have links to articles with the topics covered in each show, and you can use those to continue your research.
Ask any VP of Engineering or CTO, and they’ll tell you hiring talented developers is getting harder. Meanwhile, ask one of the millions of underemployed millennials, and they’ll say they are willing to learn, but can’t get their foot in the door. Apprenticeship was once a commonplace feature of the American economy, but for the last 30 years it has been in decline. Apprenticeships are the critical link to closing the skills gap for employers and reducing unemployment for millennials.
To understand why apprenticeships can bridge the gap, let’s take a look at the marketplace for technical talent.
First, the gap between supply and demand for technical talent is widening. On the supply side of the marketplace for technical talent, we have universities. According to the Department of Labor, 400,000 new CS grads will enter the workforce between 2010 and 2020. In that same period, nearly 1.4 million new tech jobs will be created. That’s a shortage – a skills gap of – 1 million more jobs than graduates.
Second, even those students graduating in computer science, aren’t prepared for careers in software engineering. Universities care about helping students become job-ready. But that isn’t their singular goal. Many also seek to teach a liberal arts education and to publish ground-breaking research. Because of this, there is no singular focus on one goal. As a result, students graduate ill-prepared for industry. According to Brad Neese, director of Apprenticeship Carolina, employers are seeing “a real lack of applicability in terms of skill level” from college graduates.
For example, top tier university computer science curricula often include courses in advanced math, physics, compilers, and operating systems. When we surveyed engineers at top companies like Twitter, Facebook, Google, and Amazon, they told us they used less than 25% of their university education in their career. According to Rob Gonzales, co-founder of Salsify, “many ‘core’ CS courses really aren’t that critical for becoming very productive engineers. I’ve never had to write a compiler or operating system in my career, and the last time I thought about finite automata was 2001 when I was studying them myself.”
Meanwhile, few universities teach essential skills a software engineer will use every day. According to Mo Kudeki, a Software Engineer at Twitter, “Although I went to a top Computer Science program, there are software engineering topics that we never covered that are crucial to being a great engineer, like how to methodically debug something, and how to give and receive a good code review.”
All of these factors combined result in a tremendous mismatch between the skills with which American students graduate and the skills needed by employers.
While employers are hungry to recruit great talent, their appetite for growing that talent themselves has been declining for the past decade. According to Lauren Weber of the WSJ, apprenticeships in the US have declined over 30% from 2003 to 2013.
Furthermore, even those companies that want to provision such training may be unable to do so. Training programs require experienced instructors. According to Gonzales, “you must have someone to manage the program full time, including doing daily coaching, code reviews, design sessions, planning sessions, one-on-ones, communication outside of the group to gather requirements, etc. This person should be respected throughout the organization, as getting the program started and effective is going to be a bumpy road that will draw on company resources even beyond the coach.”
Unfortunately, the shortage of technical talent has left most companies without the bench strength to fill existing headcount and also train a large pool of junior developers. According to Marcy Capron, the founder and CEO of Chicago-based Polymathic: “Companies don’t have an infrastructure for ongoing learning. We really need a guide to mentoring junior devs. Hourly consulting firms can’t afford it because you can’t bill mentoring to the client.
So with universities failing us, and employers hungry but unable to grow their own talent, a new breed of apprenticeship-like programs have leveraged technology to deliver better outcomes, more affordably than ever before. Computer science bootcamps put students through compressed programs to prepare them for coding jobs. These bootcamp programs have found traction with employers and graduates alike. The first coding bootcamp was founded just four years ago, but Course Report estimates that over 150 bootcamps graduated more than 16,000 alumni in 2015 – a combined estimated market of $180M, up from $0 in 2011.
According to Western Governors University President Bob Mendenhall in the Washington Post “Neither accreditation nor regulation has caught up with the power of technology to impact both the quality and cost and accessibility of higher education.” And last month, Udacity raised $105 Million bringing their valuation to $1 billion, Dev Bootcamp was acquired by Kaplan, and Bloc recently announced a year-long Software Engineering Track, which includes a three month apprenticeship, before students start the job search. And now a slew of specialized apprenticeship programs are emerging.
Employees are also more open to non-traditional university education than ever before. According to a 2014 survey by Glassdoor, 72 percent of employees said they value specialized training over earning a degree. What’s more, 63 percent of respondents said they believe that nontraditional ways of learning new skills — such as certificate programs, bootcamps, webinars and massive open online courses — could help them earn a bigger paycheck. This growth for nontraditional skills training may be coming at the expense of graduate programs, with more than half (53%) of employees saying a graduate degree is no longer necessary to be offered a high-paying job.
As apprentice-like programs cross the chasm from early adopters to early majority, we may see see savvy millennials foregoing the traditional 4-year campus experience in favor of a leaner hybrid, pairing community college with a technical apprenticeship that gets them into the workforce and learning on the job earlier and with less debt.
With the hype around coding bootcamps reaching it’s zenith, we may see these programs coming full-circle, as they begin adding-back curriculum covering the computer science theory that they once eschewed.