My Experience With Thinkfuls Engineering Immersion Program

27 Apr 2018 - Abraham Cuenca

Categories: blog

After a few years of primarily working in a .NET environment, I decided it was time I refreshed my skills. I had been working with .NET, C# and SQL Server as well as a bit of Python but I wasn’t using any of the latest technologies out in the wild because our Director of IT didn’t want to take any risks.

At one point this person told me that we could not use Node.js because “it was too new” (this was in 2016…)

Although I read a few books on fullstack javascript development I felt I needed a little more to get a good grasp on the technology. I had started the Udacity Frontend Nanodegree program but a serious of projects took up a lot of my time and I had to put that on hold.

When it came time to pick it back up, I looked into other programs that offered more than just the frontend side of the popular JS stacks. This is when I found Thinkful.

I discovered thinkful in April of 2017 and it sounded promising. Maybe it was the targeted marketing that kept coming up but I did feel that it offered more of what I was looking for. The developer landscape at the time had a high demand for React and the MERN stack and other bootcamps seemed to focus more on Ruby.

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

NOTE: This post is not sponsored by Thinkful. I have not been compensated, nor will I be compensated for this post. I am simply a Thinkful graduate and want to share my experience.

Thinking at Thinkful

I attended the Thinkful Engineering Immersion program from December 2017 to April 2018. A week before graduation (I had landed a job at Edmunds.com, Inc). and I do believe thinkful played a huge part in me receiving an offer.

Wait… But I was already a web developer!

Yes, I was but one of the main things about being a developer is you never stop learning. Besides, there were a few gaps in my knowledge which, based on what I had read about the Thinkful curriculum it would cover those knowledge gaps sufficiently.

You see, I often got called by recruiters with great jobs. My past experience would get people to try and get me in for interviews but where I had trouble was explaining Big-O notation, Space and Time complexities, and deciding which data structure was appropriate for the current whiteboard challenge.

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 really more to see my thought process and how I go about dealing with something I dont know.

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

On one hand, you can teach yourself almost anything, and you know that you are resourceful enough to find answers to tough problems. On the other hand, you’re constantly doubting yourself, you may lose a lot of time learning the wrong thing, or you may not have an idea about what your peers may be discussing when it comes to computer science terms because self-taught web developers don’t often know how or what to study when it comes to computer science topics. (by the way a great resource is TeachYourselfCS.com)

Now, before you say anything I have to point out that Thinkful can’t be compared with a university education, and if I am ever fortunate enough to go back to school and actually earn a computer science degree, I’ll do it in a heartbeat.

What Thinkful does do though, is cover the minimum CS concepts that you need to know in order to get hired.

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

What I needed was a well-structured, fully thought out program that helped break things down quickly and efficiently.

The Engineering Immersion Program

Thinkful’s Engineering Immersion Program is an intense 5 month program which focuses on the fullstack 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 commandline 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

And 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

Prior to taking part in the program I had a 10,000 foot-view understanding of this and a general idea but I couldn’t explain it clearly or pass whiteboard tests implementing these data structures or algorithms because I didn’t know enough.

Many self-taught developers will tell you 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 really 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.

We built multiple portfolio pieces and after every major section of the program we were put through tough interview and review sessions with industry professionals.

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

Graduation

When you graduate, you’re done. There isn’t much fan-fare. 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 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. But at the very least I walked away with new knowledge and perspective on computer science fundamentals which was the missing puzzle piece throughout my career.

It’s not all puppy dogs and rainbows.

Thinkful, although great - is far from perfect though.

I attribute my success to my past experience. Thinkful helped round out my skillset and other than the huge help with computer science concepts I do feel I could have learned a lot of it on my own. The reality is though, I probably wouldnt have spent 5 months non-stop 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 a few weeks due to the intensity, and six others found jobs within the first 3 months and two others went almost 6 months without a single stroke of luck.

Thinkful isn’t a magic potion or 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!”. At that point, I think it’s an odds game though… If you network enough and submit your resume enough - eventually someone will interview you. If you interview enough, eventually you’ll find a job… but it’s not easy.

Would I recommend Thinkful?

Yes, without a doubt or hesitation.

‘ve literally recommended Thinkful to all my friends and family that say “Gee, I wish I knew how to do what you do”… but it does take a certain 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. Matter of fact, here is a picture of my after I grew out my beard because I was so busy I didn’t have time to get a good shave in.

Abraham Cuenca with a long unruly beard which he grew out during the Engineering Immersion Program

You have to love solving puzzles. You have to be creative. You have to constantly want to learn something new. You have to stick to it. And maybe most importantly, you need discipline.

If I could recommend Thinkful to a particular audience though, I’d say that if you are a self-taught web developer or software engineer 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 really will pay off.

I don’t think Thinkful is for anyone who just 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, constantly solving problems that you dont know how to solve and continuously learning.

The program had people from all walks of life, but certainly those who with past limited exposure to a computer through email or office software struggled a heck of a lot more than those who had built their own 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 its not for you.

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 really study and you will do well.