on September 29, 2017
There’s an increasing number of options for people who want to learn programming, learn a new language or platform, or new technical skills, like data science, machine learning and AI.
With so many options how do you pick the methodology and course that is right for you?
Disclosure: I am the Chief Strategy Officer for Accelerate HK Coding Bootcamps Limited in Hong Kong. We offer in-classroom full stack web development training and a variety of part-time evening courses, including data science and machine learning. I’m not impartial. That said, I will try to be as unbiased and honest as I can about the options and considerations. We are not always the best solution for every student looking for technical training.
I think the first big question these days is online or offline? There are many free or reasonably priced online training courses. These options are very convenient and, generally speaking, I believe they are useful for someone who already has some technical skills, is working in a technical role and wants to learn a new skill. I’ve personally taken a number of online courses to learn new skills or understand a new set of tools.
The limitation of online training is for those seeking to change jobs or careers. Online training can enhance skills you have but you should not trust online training to give you skills that will get you hired in a job you would not be qualified for otherwise. I’ve hired many, many engineers over my 25+ year career in IT and I would never hire someone who took an online course but has no working experience in programming. That may seem unfair but let me explain.
It can be difficult to know if a student got through an online course by randomly trying answers, copying and pasting code or even getting someone else to help them solve the harder problems. Yes, you can put them through a technical test or coding challenge to see if they have some technical skills. In my personal experience these tests are costly to conduct, assess and provide limited insight into the true capability of a candidate.
Another factor to consider when picking an approach to learning new skills is time. Online courses, or university degrees, can take years to complete the training. An in-classroom program, like a bootcamp, can save a lot of time because the curriculum is highly focused and condensed into a short period of time. This also means that learning is optimized because you learn quickly and get to the application of the news skills when new knowledge and skills are fresh in your mind.
I want to hire someone who can work on a team, communicate, collaborate, and play nice with others. Offline training can also develop soft skills by leveraging pair programming, and group projects.
Online training focuses on technical skills, and although there may be some virtual interaction with instructors or other students, the likelihood of developing relationships, and a sense of community, as you will in a bootcamp, is very low. In offline training, an instructor is a hand-raise away and don’t discount the importance of group accountability and spending hundreds of hours with peers and instructors to develop interpersonal skills and friendships.
If you want to learn a brand-new skill or set of skills that you have no evidence of on your resume, you should consider in-classroom training. So, how do you pick a school and course? This decision is all about people. You need to find a school with people who have real working experience in the kind of jobs you want to do.
Unfortunately, you cannot assume that the instructors have real work experience. We are seeing way too many schools operating by hiring their own graduates as instructors. If there is a team of instructors and some are more experienced and some are more junior, that may be okay. There should be someone on the instructional team who has at least 3 years working experience in the kind of job you want.
In-classroom training is generally more expensive than online training, but it can provide a higher value. Look for a program that offers less lecture and more hands on, practical work. You learn programming by programming, not listening to someone else talk about programming.
Some in-classroom training programs have as much as 50% of the schedule allocated to lecture. You should avoid these types of programs. The best ones use lots of projects. Eespecially good are programs that make students work on team projects. Why? Because that what you will do in the real world. You want the training to simulate, as closely as possible, what happens on a job. If your instructor has little or no work experience it is pretty hard for them to simulate a work environment in the classroom.
When picking an approach to learning new skills you must understand the outcome you expect to achieve. If you are enhancing existing skills, consider online training. Take sample courses and make sure the course is designed for your skill level, learning style, and presents the content you want to study.
If you want to learn a completely new skill or position yourself for a new job or career, consider in-classroom training, but check the credentials of the primary instructor. If they don’t have substantiated work experience (multiple years) in a job like you are targeting, find another school or a course led by a more experienced instructor. I should also point out that knowing something well doesn’t always make you a good instructor. You should look for a school that has people on staff with experience in education. Ask about student outcomes and track record. How many classes has the instructor taught and what are their graduates doing now?
All of that said, never stop learning. Find a course, a book, a blog, a video, or a mentor and learn something new every week. In today’s world things are changing so fast we can never stand still in our careers. Learn constantly or be obsolete quickly. That is the choice. For starters, check us out.