This post is adapted from a prior post on this site before I made the jump over to a new platform. It is still a work in progress...
So you want to go to a code school and you found a relatively cheap one in [Portland, Seattle, Philadelphia] called Epicodus. What's the skinny? Why is it so cheap? What do you learn?
I'll keep the synopsis short but Epicodus is a full-stack code school that will set you up with a decent foundation of skills which you can then use to re-enter the job market and hopefully make it in web-dev.
A little background on me - I'm [not telling] years old, a serial learner and wanderer. I have a history of leaping before looking and for some reason, tend to land right-side up most of the time. I was doing swimmingly in a job, making good money but wasn't necessarily happy. I had some limited experience with Ruby/PHP and various frameworks but never quite worked in the development arena.
I wanted to make the move to Portland, OR for about a decade when a curious set of circumstances arose. So I did a bit of research and happened to find Epicodus as a viable option to re-focus my career and make the move to the city I wanted to be in.
After copious amounts of saving, I plunked down my cash and headed West. At just a hair under $5k, Epicodus is one of the cheaper "pay-for" schools out there that offers fully open courses. They also do something that was one of the primary reasons I chose them: they don't give you a bullshit guarantee that you'll land a job.
After Intro, the unofficial tracks look like this:
The way this ends up being broken up is you have one level 1 class (Intro), Two Level 2 classes, and one Level 3 class.
Note - some of these can be mixed and matched a bit but you'll want to talk to the enrollment person to get a feeling of what can be done. And also be sure to check the schedule to see what is available as not all courses are offered at the same time. Our class was one of the first Ruby classes in a while.
I will say this: Whatever track you choose - it probably matters very little initially. The goal is to build good programming habits. Language/framework/tracks should ultimately be a secondary consideration. When you come to the tail end of your program and start looking at getting a job, you'll need to take a peek at what is happening your desired market. You learn on your own to adapt.
I recommend that you take a survey of your intended job market and consider focusing on a track that is readily hiring in your chosen market.
You will pair with a partner every day at Epicodus. In fact, you arrive, find a pair and start on the day's content. You may have a brief series of announcements with the instructors - but beyond that, you and your pair work through the course materials on your own. There are no lectures.
This is one area that threw me off a bit. I somewhat expected the instructors to actually instruct - as in maybe do a presentation...nope. They don't. At all. Your learning materials are all online and you and your pair work through problems on your own.
If you encounter something you can't figure out:
- work on it for 15 minutes on your own
- see if you can find online resources to answer your question
- ask another pair
If none of this works, submit a help request for an instructor to stop by.
Here's how our internship process worked: Epicodus gave us a list of companies who were providing internships. We then ranked the selections in order of our preference. Then Epicodus took the results and assigned us to interviews with the companies. You will not always get your preferred company as there are only so many slots available. They do try to get at least one or two of your top choices along with a couple of others.
You will go to an interview with the companies and then rank the companies again, in order of preference. The companies will also rank their selections of who they want interning for them. Epicodus will play matchmaker and try to get a workable fit of interns to companies. I got my third choice which I was very happy with.
Remember: the more interviews you do, the more likely you are to be satisfied with the outcome.
Based on my experience, the job hunt has been the only real pain point. (see my advice below in scheduling). While Epicodus appears to have good ties with the startup and developer community, those relationships don't always turn into gold when panning for jobs. You're more at the mercy of the job market and the time of year and there's not a lot Epicodus can do about it.
They will provide you with access to a "junior dev jobs" job site they update with jobs they find. The bulk of the jobs posted appear to be culled from traditional job boards. The text of the posting is usually prefixed with a "We [have/do not have] a relationship with [company]". If they do have a relationship with the company, it is followed by "feel free to tell them we sent you!"
Occasionally, you may get an email or find a posting when a company reaches out directly to Epicodus. I managed to land a second (unpaid) internship from one of these postings. It wasn't pitched to Epicodus as an internship (that I'm aware of) so it was a bit of a surprise that it wasn't a formal job. But it is an opportunity I like so I was happy with the outcome.
From my experience: rotate your pairs regularly. Everyone brings something unique to the table and you can gain a lot of insight. Even if you know the specific content or material - try taking a step back if your pair knows a bit less.
I think there tends to be two pair types: Those who liked to stay on the tracks (follow the material word for word) and the adventurous souls like myself who can sometimes ramble off the beaten path, get into the weeds and then get a little bit lost. If you're the adventurous type, try to stay on the tracks as much as possible - it keeps things a bit more sane for your pair if they are of the opposite type.
...on your Intro class
Your Intro class is your networking pool. Get to know everyone as much as possible. Every Friday is solo project day which is a great opportunity to schedule something fun afterwards:
- Get a bunch of people together and go get drinks after class
- Celebrate the end of a section with a party of some sort
- Schedule a board game night with others
- Go to a meetup as a group.
What I think worked great for our class was someone set up a Slack channel for our class. Even as our group splintered into different tracks and courses, we had a consistent communication channel to keep in touch and share information.
...on scheduling your track
Place careful consideration on the timing of your track. Our class started in May and finished about a week before Thanksgiving. This also tends to be the dead zone for hiring for most companies that are trying to stretch out the rest of the year's budget. Job postings are scant, and doubly so for any "junior" positions.