After 8 years of primarily working in a .NET environment, I decided it was time I refreshed my skills.

Before this, I worked with PHP and MySQL.

While in the Health Care industry and Security Sector I worked with .NET, C# and SQL Server sprinkled with a bit of Python once in a while to accomplish smaller tasks, but I wasn’t using any of the newer technologies.

The Director of I.T. at the Security sector gig didn’t want to take any “risks.”

“We can’t use Node.js because it was too new” - I.T. Director circa 2016

Although I had read a few books on full-stack Javascript development (MongoDB, Express, AngularJS, Node), I felt I needed a crash course to get up to speed on the technology.

I found and began the Udacity Frontend Nanodegree program, but an overwhelming schedule and tight deadlines forced me to put the nanodegree program on hold.

When I reached a point where I had some time, I began to consider attending a boot camp.

After much research I discovered Thinkful.

I found Thinkful around April of 2017, and based on what I read on their marketing page it sounded promising.

Maybe it was also the targeted marketing that kept coming up all over my phone and laptop after reading some pages on the thinkful.com website – but I felt it offered what I was looking for in a “boot camp” experience.

There was a high demand for React and MERN stack developers based on a few industry surveys I had read through many boot camps seemed to focus more on the Ruby side of development.

After eight or so months of research and convincing myself I decided I would do it.

NOTE: Thinkful does not sponsor this post. I have not, nor will I be compensated for this post. I am simply a Thinkful graduate and want to share my experience.

Thinking about Thinkful

I attended the Thinkful Engineering Immersion program from December 2017 to April 2018.

A week before graduation I already had 4 job offers, and I do believe Thinkful played a considerable part.

However, I was already a web developer; why then would I need a boot camp?

One of the main things about being a developer is that you never stop learning.

There were a few gaps in my knowledge which it seemed the Thinkful curriculum would cover to fill those gaps sufficiently.

You see, I often got called by recruiters with great jobs. Amazing jobs. (Amazon, Google, Hautelook, Wag, Space X, GoDaddy and Media Temple to name a few).

My experience, LinkedIn profile, and Github profile would get people to call me in for interviews.

Where I often struggled was during the whiteboard problems. Pair-programming and explain my previous projects was easy but explaining Big-O notation, Space and Time complexities, and deciding which data structure was appropriate for the current interview question was where I always got my butt kicked.

Although in hindsight I wasn’t as far off as I always feared, I think what put off most potential employers was my hesitation in answering the tough questions, despite often being told: “You don’t have to be right, just try your best.”

I understand now that this was more to see my thought process and how I go about dealing with something I don’t know.

As it turns out, being a self-taught developer can be both a blessing and a curse.

On the one hand, you can teach yourself almost anything, and you know that you are resourceful enough to find answers to unknown problems.

On the other hand, you may constantly doubt yourself; you might lose much time learning the wrong thing, going down the wrong path, or even be confused about what your peers may be discussing when it comes to computer science terms because self-taught web developers usually lack such experience or familiarity.

Now, before you say anything I have to point out that you cannot compare Thinkful to a University education. Lord knows, If I am ever fortunate enough to go back to school and earn a computer science degree, I’ll do it in a heartbeat.

What Thinkful does do though, is cover the minimum Computer Science concepts that you need to know to get hired.

When it comes to self-taught C.S., many resources can help give you a quick answer, but not many go into detail and often, depending on the resource you might end up picking up bad habits or anti-patterns.

What I needed was a well-structured, thoroughly thought out program that helped break things down quickly and efficiently. Also, having access to someone to ask questions and help clarify topics which may be harder to grasp alone.

The Engineering Immersion Program

Thinkful’s Engineering Immersion Program is an intense 5-month program which focuses on the full stack technologies: JavaScript, React, Redux, Node.js, Express, MongoDB, HTML5, CSS3, as well as Algorithms and Data Structures.

Now, when I say intense – I’m not joking:

Every day I spent roughly 12 hours between lectures and homework assignments collaborating with peers in my cohort and meeting with senior developers who mentored me on the latest industry practices for the MERN stack.

The first half of the program was mainly a refresher for me as I’d been doing web development since 2002. We went over the following topics:

  • Advanced command line usage
  • Mastering git and GitHub
  • Web Development Fundamentals
  • Creating Async Web Applications
  • SQL (Postgresql)

Some new skills that I picked up or polished included:

  • Server-Side JavaScript and Server-Side Rendering
  • NoSQL for REST APIs (MongoDB)
  • GraphQL
  • React and React Native

Also, what made Thinkful worth every penny in my opinion: Computer Science Fundamentals.

The Computer Science Fundamentals included:

  • Measuring algorithm performance with big O
  • Constant Time O(1)
  • Logarithmic Time O(log(n))
  • Linear Time O(n)
  • Polynomial Time O(n^k)
  • Exponential time O(2^n)
  • Binary and Bitwise Operators
  • Arrays
  • Linked Lists
  • Hash Maps
  • Binary Search Trees
  • Bubble Sort
  • Merge Sort
  • Quick Sort
  • Linear Search
  • Binary Search
  • Depth-first Search
  • Breadth-first Search

Before taking part in the program, I had a 10,000 foot-view understanding of these concepts, but explaining it in detail or using these concepts to pass whiteboard tests seemed out of reach.

Many self-taught developers will often say that they can pick up a book or read a tutorial and figure out enough to get the job done but truly learning a subject makes a huge difference.

The instructors would go through a lecture every day and answer questions as well as provide examples on-the-fly which helped in grasping new concepts.

Also, it was great to collaborate every day with other students in the program who were just as excited and passionate as I was about development.

In the Engineering Immersion program, my cohort and I built multiple portfolio pieces, and after every long section of the program, we underwent tough interview and review sessions with industry professionals.

One other great thing about the Engineering program was access to mentors and workshops throughout the program. Nights and Weekends there would be someone teaching a new workshop or expanding on a previously covered workshop or directly just available to help if you needed it.

Graduation

When you graduate, you graduate and nothing more. There isn’t much fanfare. There is no certificate of completion (printed or digital), no link or ‘proof.’

Matter of fact, when I finished, my friends and family were excited for me and wanted to know if there would be a ceremony – but since this was online and everyone in my cohort was out of state, there wasn’t even a happy-hour or meetup to celebrate.

It was a bit disappointing because I had just spent 5 months of non-stop daily learning and coding and when it was over, it was just over.

I asked if there was anything that I could add to my LinkedIn or something I could put on my wall, but I was told: “Your portfolio is your Proof.”

I still don’t know how I feel about that.

At the very least I walked away with new knowledge and perspective on computer science fundamentals which was the missing puzzle piece throughout my long career.

Not all puppy dogs and rainbows:

Thinkful is far from perfect. I attribute my success to my experience. Thinkful helped round out my skillset and was a huge help with computer science concepts of which I had no clue. However, with the right direction, I do feel I could have learned a lot of it on my own.

The reality is though; I probably wouldn’t have spent 5 months of intense non-stop studying so it would have taken a lot longer.

Three other participants in our cohort found jobs before graduation, as did I… but from our twelve member cohort, two people dropped the program within the first few weeks due to the intensity of the program, and six others found jobs within the first 3 month; two others went almost 5 months without a single interview.

(Update: March 2019: It is almost a year now, and I reached out to some of my boot campmates, and it turns out at the very least one person never got hired at all. I did not ask if Thinkful kept its promise of: “If you don’t get hired in 6 months you don’t pay!” but this person decided to go to a University for something other than Engineering”)

Thinkful isn’t a magic potion cure-all. We have to account for interview skills, resumes and portfolio pieces and Thinkful does its best at this by providing you a dedicated career coach that is assigned to help polish your resume, portfolio and LinkedIn.

It is up to you though to do all the grunt work of finding the places to submit your resume (there aren’t people lined up at Thinkful waiting for graduates) and you are encouraged to go to every single tech meetup in your area and “Network, Network, Network!” to the point of exhaustion. Well, I believe that at that point it’s an odds game though. If you do network enough and submit your resume everywhere – eventually someone will interview you.

If you interview enough, eventually you’ll find a job; however, it’s not easy.

Would I recommend Thinkful?

Yes.

I’ve recommended Thinkful to all my friends and family that say “Gee, I wish I knew how to do what you do”… however, it does take a particular type of person.

You have to love this. You have to be willing to spend sometimes up to 16 hours in front of a computer if needed.

Here is a picture of me after I grew out my beard because I was so busy I didn’t have time to get a good shave in.

Abraham Cuenca during Thinkful's Intense Engineering Immersion Program

How to succeed at a Bootcamp:

  • You have to love solving puzzles.
  • You have to be creative.
  • You have to want to learn something new continually.
  • You have to stick to it. Moreover, maybe most importantly,
  • You need discipline.

If I could recommend Thinkful to a particular audience though, I’d say that if you are self-taught and you want to bring your skills up by 10x then this is the way to go.

It is a small investment in both time and money that should pay off.

I don’t think Thinkful is for anyone who thinks “computers are cool” or want to learn to program because its “trendy” or “pays a lot.”

You have to know that this career includes frustration, continually solving problems that you don’t know how to solve and continue to learn.

The program had people from all walks of life, but yes, those who with prior limited exposure to a computer through email or office software struggled a heck of a lot more than those who had built their websites or fiddled with scripts in their spare time.

If you’ve never hacked around on some code or fiddled with scripts (or were never really curious to do so) then maybe it’s not for you.

Also, It’s not cheap. It’s not easy. It’s not impossible, but you’ll get out of it what you put in.

Dedicate the time and study, and you can succeed.