How to Succeed in an Online Coding Program

on Friday, April 1 @ 4:13pm

Learning online is hard

As online education proliferates (read: online coding programs), its proponents and detractors develop increasingly stronger opinions on its effectiveness. Proponents tout online education’s low cost, accessibility, and flexibility. Students can learn anywhere, according to their schedule, and usually at a reduced expense. Detractors, on the other hand, cite high dropout rates and a lack of effectiveness. While both sides of this debate are correct, there is a strategy for succeeding in an online program.

Create a dedicated home office, and make it awesome

A dedicated home office doesn’t require a large investment. As an online student you’ll work from home most of the time. You must find a space that’s quiet, clean, and allows for ergonomic amenities. 100 square feet should be plenty of space to create an office. You can find high-quality office furniture at IKEA, or buy used from a site like craigslist. Consider using a standing desk, or treat yourself to an ergonomic desk chair. Better yet, you can buy a sitting desk and build a modular standing desk, so you can stand or sit.

After your desk and chair are positioned, build the rest of the office around them. Hang pictures or paintings and buy a small bookshelf to fill with inspirational books. Save your money for perhaps the most expensive things, like a computer and monitor. It’s essential that you have a capable computer, and I recommend splurging on a large monitor. You’ll need to have multiple windows open from time to time, and a large monitor provides the real estate to do this.

Finally, if you live with other people, ask them to respect your office space. A clean, organized, and comfortable office will set you on the right path for succeeding in an online program.

Immerse yourself

When you take an in-person program, immersion in the topic is inherent. You’re physically near your classmates which means that you’re likely to discuss the program and share knowledge. As an online student, immersion is not necessarily inherent – you have to force the issue. Your program will probably have a community – forums, chat rooms and mail lists – and while those are good places to hang out, you shouldn’t stop there. Subscribe to blogs and podcasts and find people to follow on Twitter. Get to know the lingo of your topic of study, and some of its key figures. It doesn’t matter if you understand everything right away, it’s important to become comfortable with the “language” you’re learning.

Study every day

In-person programs impose a routine of study because you have to go to class at specific times. Online programs offer more flexibility, so you have to manufacture a routine. Without a consistent and disciplined routine of study, you will not succeed in an online program. Whether you spend 15 minutes or 8 hours studying, you must study every single day. Create a habit for yourself. How long it takes to form a habit depends on the person, but you’ll know once you develop it because it will feel wrong not to study. Make sure that your study time is scheduled when you are at your mental best, and not when you’re tired or easily distracted. Find a method that helps you get into a relaxed zone, and make sure you schedule your study time around it.

Find meetups

The fact that you don’t have a classroom doesn’t mean you should avoid people and in-person interaction. An online program offers many benefits over an in-person program, but interaction in real life is something it can not offer. Fortunately, there are many options for meeting people in real life for many different areas of interest.

For example, if you’re studying to become a Rails web developer, there is almost certainly a Ruby or Rails meetup in your area. Join the meetup group, discuss your program with others, tell them what you’re working on and what you’re having trouble with. You’ll learn a lot from these experiences, and often in ways that are hard to duplicate virtually.

Rebase iteratively, and celebrate

No matter how great your virtual community is or how many meetups you attend, as an online student you’ll spend most of your time alone. It’s easy to forget how much you’ve learned when nobody is there to remind you. You must make it a habit to remind yourself. At the end of every day, you should rebase. That is, think about what you know, compared to the prior day. Think about the problem you’ve been toiling over, and that you finally solved. Even though these may seem like small wins, celebrate them! Treat yourself to a beer, order a pizza, or do something to spoil yourself for every little win.

Celebrating your wins is as important as embracing your struggles. If you focus too much on either, you’ll derail your progress. Develop a balanced mindset for both, and you’ll create momentum to capitalize on your wins, and grit to push you through struggles.

Will an online program work for you?

It certainly can, but whether it does or not ultimately depends on your commitment, consistency, and discipline. The strategy outlined in this blog will ensure that you succeed in your program, but you have to embrace every part. If you do, an online program will provide you with a quality education, at a reduced cost, and on your own schedule.

More advice on changing careers

Should I Become a Software Engineer or a Junior Web 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.)

fst-vs-set

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.

Which Bloc Track Should I Choose?

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.

In the Full Stack Web Developer Track, you learn the critical skills for modern web development, including Ruby on Rails, JavaScript, HTML, and CSS. You practice these by creating a variety of web apps during your course. Graduates of this Track are qualified to work as junior web developers.

Here are the main differences:

fst-vs-set-chart

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.

Should I Become a Software Engineer or a Junior Web Developer?
Lies, Damned Lies, and Statistics: Coding Bootcamps and the Authenticity of Placement Rates

Authenticity

We’ve never formalized our core values at Bloc, but if you surveyed our employees you would probably see authenticity in the top three most cited responses — followed closely by swag and Batman. We’ll focus on authenticity today.

Authenticity is a word that we use very specifically, and we don’t use it to mean the same thing as honesty or transparency. The easiest way I’ve found to articulate the difference is to explain it in the context of someone asking a question:

  • Honesty is truthfully answering the question someone asked.
  • Authenticity is truthfully answering the question someone intended to ask.
  • Transparency is a bulk CSV export of your data.

Here’s an example: when we raised our Series A investment last year, a few of my friends asked me if I was now a millionaire.

An honest answer would be yes. On paper, if we had hypothetically raised a round with a post-money valuation over $5M and I owned at least 20% of the company I would have 20% x $5M = $1M ownership in a privately valued company and could technically be considered a millionaire.

The authentic answer would be no, not even close. The question my friends intended to ask was “do you have a million dollars of liquid cash that you can spend to buy me a Tesla Model S?” And the answer to that question is decidedly “no”, unless Elon would accept Bloc equity as cash.

... And Statistics

The developer bootcamp industry has an obsession with something called “the placement rate number.” It’s meant to measure a program’s efficacy by quantifying the percentage of graduates who successfully start careers as developers.

Bloc is one of few programs that has never advertised a placement rate. Prospective students are eager to ask us for this statistic, and I don’t necessarily blame them given how appealing it is to use a simple benchmark to compare programs. We don’t publish a placement rate though, as we believe it would potentially conflict with our commitment to authenticity, not because we lack confidence in the efficacy of our program.

When a prospective student asks us “what is your placement rate?” we could honestly say anywhere between 0-100% depending on how we qualify our answer. We could, today, say that 99% of our students find jobs after they graduate from Bloc in a way that is both technically honest and legally defensible, but not authentic or ethical. It’s not very difficult to game that statistic.

splorks

99% of our “splorkdents” find “globs” within 90 days of “schmanuating”. – Credit: SMBC Comics.

The truly authentic answer has nothing to do with statistics though. The question our students intend to ask is closer to “Does your program work?” or more specifically “Will your program work for me?” We’ve found a better way to answer that question: our Software Engineering Track comes with a tuition reimbursement policy for students who are unable to find new careers in software development after graduating, and now our students don’t have to worry about landing on the wrong side of a program’s 90% placement rate.

When there are programs with less than 20 grads touting a 100% placement rate and dozens of hidden qualifications, that number devolves from a transparent industry benchmark to a disingenuous marketing prop. While we look for authentic and quantifiable ways to evaluate program quality, I’ll encourage students to dig deeper: ask about the curriculum, background and experience of instructors, tuition and opportunity costs, and the hidden qualifications of these placement rate numbers.

Lies, Damned Lies, and Statistics: Coding Bootcamps and the Authenticity of Placement Rates