App Academy Open - v1 vs v2
AAO v2 Launch
In April of 2022, App Academy released version 2 of their App Academy Open curriculum. While the older version parallels their Ruby-on-Rails, 16-week campus software engineering program, this new version parallels their JS and Python 24-week online software engineering program.
My AAO Experience
I began working on AAO v1 at the start of January 2022 and continued until mid-May. Then, once I reached a good transition point at the end of the “Ruby” section, I switched to v2. I worked on v2 for the rest of May and June and completed through “Data Structures & Algorithms”. Both of these stopping points are roughly the end of what I would consider each curriculum’s “fundamentals of programming”, after which the curriculum shifts more in to frameworks. I estimate that I’ve completed about 3-400 hours of fundamentals curriculum between the two of them.
Here are some observations I’ve made, and some general criticisms I’ve seen from other learners, regarding both AAO v1 and v2.
Languages & Frameworks
Just to get it out the way, the most obvious differences between v1 and v2 are the languages and frameworks.
Version 1 teaches these languages/frameworks:
- Ruby
- SQL/PostgreSQL
- Ruby on Rails
- Front-end JavaScript
- React/Redux
- MERN
And version 2 teaches these languages/frameworks:
- JavaScript
- HTML/CSS
- Front-End JS
- Express
- SQL/SQLite3
- Sequelize
- React/Redux
- Python
- Flask
It is worth noting here that AAO v2 is mostly a full-stack JS curriculum, with Python/Flask coverage after spending the majority of your time in JS. While v1 does cover full-stack Ruby-on-Rails (so using the V of MVC to render views in the browser), around the 50% mark it switches to using JS & React for the front-end and Rails for the backend.
Overall Strengths of v1 (Ruby/Rails) Curriculum
- Solution sets to most problem sets, projects, etc
- This is a huge positive, IMO, because you are introduced via these solutions to patterns you might not be familiar with, and if you get really stuck, you are less likely to just give up and move on.
- “From scratch” projects
- Specifically in “Ruby”, rather than writing to tests like you did in Software Engineering Fundamentals, you build projects up from scratch.
- Creating mini frameworks from scratch
- This is a bit further in the AAO v1 curriculum, but you end up building mini versions of ActiveRecord, Rails, and your very own jQuery library. This is a great chance to see a simplistic view in to how frameworks work under the hood.
- Fundamentals
- Lots and lots of fundamentals (like 200 - 300 hours minimum). This is either a positive or negative, depending on your expectations. So projects in HTML/CSS/JS don’t come until much later in the course. This means you really focus on mastering programming basics, but if you are working through curriculum fairly slowly, this could also mean you won’t see things you made in the browser for many months.
- Alvin in Intro to Programming and Software Engineering Fundamentals
- He is a fantastic teacher and introduces how to think in programming. You really get the feeling like you are being tutored one-on-one with all the videos in those sections, and there are a lot of problems that have the structure of: (1) introduction, (2) now you try, (3) now let’s do a walkthrough of the problem together.
- Haseeb in Data Structures & Algorithms (and a bunch of other sections)
- He has a very conversational style, which lends to making the quite abstract concepts more approachable. His explanations are what I imagine it would look like if you managed to snag the attention of a more senior engineer and asked “how does an LRU cache work?” It might be a bit rambling, a little organic, and for whatever reason it sticks in my mind more due to it being more conversational.
- Ruby
- This was a great language to really tackle the fundamentals of programming in because of how readable it is, and as a result, how quickly you can abstract away the language and focus on the concept. I wish more popular frameworks were built with Ruby.
Common Criticisms of v1 (Ruby/Rails) Curriculum
-
“The industry has moved on to JS-centric frameworks”
- There is definitely some truth to that, from what I’ve seen, especially outside of the SF/NYC scene, where Rails sees more action. However, as a teaching tool, I felt like I learned programming more effectively through Ruby than I did in v2 through JavaScript. I think Ruby has a reputation for being a well-designed language, and that may have an effect on learning. This might be over-generalizeing, but in v1, I felt like I was learning programing, and in v2, I felt like I was learning JavaScript.
-
“The curriculum is too old”
- The oldest Rails content was recorded in 2014, and a lot of the rest of the content I’ve seen was written/recorded between 2016 and 2019. However, from what I’ve seen, Rails is a pretty stable ecosystem, so the age of the curriculum is less significant. But the point is especially valid when directed toward JavaScript/React. The JS ecosystem has been in a constant state of rapid evolvement since the course’s creation. It is hard to say what is too old, but I do think you will need to put in additional work afterward to modernize your understanding.
Overall Strengths of v2 (JavaScript/Python) Curriculum
-
Full-stack JS
- If you don’t want to have to switch from one language to another, this could be a benefit. It does introduce Python and Flask, at the very end of the curriculum.
- HTML/CSS Coverage
- The HTML/CSS project in Web Fundamentals has you building an HTML/CSS project right at the start of the course. Then later, there is a whole stand-alone section of HTML/CSS where they seem to do a great job of covering the some of the trickier bits, like grid/flexbox. (This is actually an interesting comparison, because AAO v1 has CSS scattered throughout the curriculum, and it often feels a bit arbitrary where they put it.)
- It’s newer and based on JS/Node
- Things like setting up your dev environment, or installing dependencies, are typically better documented and you see less issues from deprecated repos.
- More Reading, Less Videos
- If you get bored by watching videos, this could be your jam.
- Introducing git early
- With all the skeletons you are required to clone in GitHub, this forces students get in to git earlier.
- Pacing
- The pacing seems much more doable for a new programmer. While the projects might take more time than originally prescribed, they usually feel somewhat doable in the alotted time. This is in contrast to v1, where I heard many people take 1-2 weeks on what was supposed to be a 4-8 hour project.
Common Criticisms of v2 (JavaScript/Python) Curriculum
- “It is lacking solution sets”
- This means that if you have a project to work on and you get stuck, you have no way to move forward without floundering indefinitely, or reach out to the community. In my opinion, this severely hurts the curriculum. One of the best things you can do when learning is to read others code, especially people who are more advanced than you. The program uses tests to help guide the student, but unguided projects (i.e. projects without specs) were really valuable to me in v1.
- “Less vidoes”
- Most of the videos I’ve seen in v2 are for the introductory topics. Once you get to TDD & OOP, they become sparse, then in Data Structures & Algorithms, they are completely absent. I understand why they focused on building out content for new learners. The lack in DS&A, however, means it gets pretty tedious, and I retained little from the section as a result.
My Conclusions
I’ve personally enjoyed my time in AAO v1 more than AAO v2. I think it is the combination of the personalities in v1, the intense focus on fundamentals, and the chance to peek behind the curtains when building our own “lite” versions of things. In all fairness, v1 has had a lot of polishing over the years. v2 has a lot of potential. It continues to improve with the AAO team working behind the scenes. And there is no way to get around it, AAO v1 is getting long in the tooth. I’m hopeful for the future of App Academy Open, and even with all its flaws, I’ve yet to come across an equivalent resource that is freely available.