I got accepted into App Academy!

Invitation from App Academy
Invitation from App Academy

Heya everyone! Today’s post is mainly an announcement.

I was invited to join App Academy’s November cohort and I accepted the offer!

Big thanks to my fam, friends, supporters, and non-supporters! I’m grateful for all of the experiences, good and bad, that have led to this point. Also, I’d like to thank all the following organizations for providing affordable education: Codecademy, Team Treehouse, freeCodeCamp, and of course, Google!

I predict that some of you may want to hear about my coding background and what I will be doing up to the start date of the program. I’ll do my best to give you guys a short summary.

My Coding Background

Coding Bootcamp?

I first heard about App Academy from my senpai, Imron, in December 2014.

I was going to graduate in half a year and had the initially planned on becoming an English teacher in Japan. However, I believed I could serve a better purpose to the world. So, I consulted my senpai, Imron.

Imron introduced me to the idea of coding bootcamps, where one can gain the practical skills necessary to land a software development position after 3 months of intensive study. Coming from the traditional context that software development jobs require a 4-year degree in Computer Science, this boot camp concept blew my mind.

From then on, I decided to take a stab at web development. In my spare time, I began dabbling in courses from Codecademy and Team Treehouse.

Codecademy Profile
Codecademy Profile
Team Treehouse First Badges
Team Treehouse First Badges

I feel that my progress in learning web development in 2015 was slow, but necessary. I went through a lot of failure and frustration(both in coding and in life events). However, through these experiences, I was starting to understand what the software developer mindset is.

Fast forward to January, 2016.

I quit a web design internship(which I won’t go into much detail in this post) in Tokyo and came back to America as a failure. At that point, I was thinking of getting a part-time job and studying web development on the side.

Starting the freeCodeCamp material
Starting the freeCodeCamp material

After a month of having no luck with searching for a part-time job, I decided to study web development full time. This time around, I mainly focused on using freeCodeCamp.

This time around, things were different. For one, I had knowledge and experience from my first slow year of learning code. So, compared to when I first started learning code, I was better at handling failure, debugging, googling, and finding answers.

In addition, I had more resources. freeCodeCamp has an amazing community. They have a reddit, forums, chatrooms, and local community groups. If I was completely stuck/needed project feedback, I could ask someone for help easily.

Lastly, I made a firm commitment to studying web development. I believed in myself, even when things have been tough(jobless, other events) since my college graduation(in June 2015). I committed at least 4 hours a day to activities related to web development(You might ask, “Why 4 hours?” – check out Gary Keller’s The One Thing or Cal Newport’s Deep Work).

Fast forward to June, 2016

Things I was already doing:

  • Contributing to the FCC Reddit and Forum.

  • Working through FCC Intermediate projects. Portfolio | Github

  • Submitting cold job apps to any web development related internships/positions.(~5-10 a week).

Things I started doing:

  • Writing this blog.

  • Attending coding meetups.

  • Listening to coding podcasts.

Near the end of July, I received the invitation to App Academy’s Jump Start program.

Initial thoughts/Explanation of Jump Start | Review of Jump Start

In the middle of August, I received the invitation to App Academy’s Bootcamp program. There you have it, the summary of my coding background.

What Now?

My cohort’s program starts in November and runs until February. We’ve been given prep work to complete before starting the program.

So, I’ll be studying the prep work. If I complete that prep work, I will most likely work on learning Rails and getting more comfortable with React. I might even check out some of the later topics found in the App Academy curriculum. I’ll probably also attend some local ruby/coding meetups in the Bay Area.

I anticipate that this program is going to be extremely difficult, so I’m going to do my best to overprepare. Wish me luck!

Well, that’s all I got. Thank you for sticking around and reading! If you have any questions/comments, please leave them in the comments below.

Peace,
-John

Jump Start for App Academy: Day 7 & 8 + Review

Heya everyone! The Jump Start program officially ended on Thursday(8/11). As usual, I’ll give a brief summary of what happened on the last two days of the program(8/10, 8/11). After that, I’ll give my own review of the Jump Start program.

Day 7

Lecture

For lecture, Ryan(our instructor) did a code demo a difficult problem from a pracice assessment test. I can’t discuss what problem it was, but I can outline some of the things he did.

He broke down the complicated problem by drawing out the problem on the whiteboard. A visual representation of the problem can help free us of some of the cognitive load(keeping all of the details of a problem in our head) and help us think of how to approach the problem.

I personally need to do this(drawing out the problem) more, since it’s difficult keep all of the details straight in my own head. I often do something similar though, which is write commented pseudo-code and brainstorm the general outline of a problem.

After drawing out the problem, we thought up of helper methods to define, created and tested our helper methods, and then solved the problem. The demo was amazing, because I know I probably couldn’t have explained the problem as well as our instructor did.

Something that concerned me was that the problem took about an hour to solve(I’m guessing it’d take ~20-30 minutes to solve if one didn’t have to draw & explain for a class). Our assessments are only one hour long. So, we’d be in trouble if a problem like that occurred on an assessment test.

Interesting note

There’s a command in irb/pry(ruby REPLs) callled load 'filename.rb', which allows you to load all content from one ruby file.

This means you can load methods and variables into the REPL, and test them quickly. I prefer to copy and paste my methods into the irb, but this command will definitely come in handy in the future.

After lecture, the day resumed as usual. We did our pair programming warm-up assignment and then went to work on grinding out the algorithm sets.

Day 8 – Final Assessment

Day 8 is the most important day of Jump Start, since it is the day that we take our last assessment test. If we pass the assessment test, our chances of getting into App Academy significantly increases. However, if we don’t pass, we can still apply to App Academy through the regular admissions process.

Lecture

We had a shortened lecture because it was assessment day. Ryan(our instructor) answered one student’s question and then ended lecture early so we could have more time to study for the assessment.

Assessment Test

I can’t give much details about the assessment tests, but I can say that I personally felt that this test was nearly as difficult as the first assessment test. I finished the assessment test with literally two minutes remaining before the time limit.

My biggest tip for preparing for the assessment tests is to overstudy. Run through the practice assessments and time yourself. In addition, try to get exposure to as many algorithm problems as possible.

Just to reiterate, if you pass the test, you have an increased chance of getting into App Academy. You are not guaranteed admission into App Academy. The next step differs for each candidate, but you’ll most likely have to pass a combination of technical and regular interviews.

If you don’t pass, there are no negative consequences. You can still apply to App Academy through the general admissions process.

My Review of Jump Start

Overall, I think that App Academy’s Jump Start program is fantastic. It’s a free 2-week course that prepares and evaluates if an applicant is ready to apply for App Academy.

I also took it to be a mini-preview of what life would be like studying at App Academy. You’ll be working on difficult problems, be surrounded by many competent and motivated individuals, and basically be grinding day in and day out.

In addition, the knowledge and experience you gain from this two-week program provides you with insight on whether you really want to study at an intensive coding bootcamp or not.

Perhaps, the one thing I didn’t like about the program is that it invites coders of all levels and has the same standard(assessment test) for everyone. So, imagine that your are a beginner with no prior coding experience, going up against people who have 1+ years(maybe even just 6+ months) of coding experience.

I’m not saying it’s impossible for a beginner to pass the assessment tests. It is possible. A beginner would most likely have to study ~4-6 hours before class and also need a few mentors to ask questions to when they can’t find the answer out themselves.

Yes, App Academy did explicitly state their intent on the first day of the program. For intermediate programmers, they want to streamline the application process and try to filter in those who are ready for App Academy. For beginners, they want to help them get further along on their journey towards becoming a developer.

Just a thought here, perhaps we could get this message before coming out to to San Francisco. Some applicants flew in from other states, probably with greater expactations.

Don’t get me wrong though, I still recommend this program to both intermediate programmers AND beginners.

For beginners:

  • You learn a coding language(ruby) rapidly. Of course, you don’t learn the entire language, but you learn enough to complete a multitude of algorithms.
  • You learn how to systematically approach problems.
  • You learn how to debug problems.
  • You begin to craft a developer’s mindset(getting used to failure/becoming resiliant+persistent, understanding that you need to be constantly learning, learning how to say “I don’t know” and asking for help)

If I was a beginner, these components are reason enough for me to go. I believe that some of these concepts are difficult to learn on one’s own.

For intermediate programmers:

  • You significantly increase your odds of getting into one of the most reputable coding bootcamps.
  • You will be constantly challenged to improve your problem-solving skills. Also, being around other competent programmers will also push you to step up your game.
  • You get an opportunity to work on your soft skills and communication skills.(Pair Programming)

Advice for those interested in the Jump Start program

  • Learn the basics of Ruby. Codecademy is a great start.
  • Do a ton of ruby algorithms problems. Use websites like Codewars. In addition, you could try searching for App Academy prep problems. I belive they have a problem set with ~21 problems available to the public.
  • Apply to App Academy. I got my invitation to the Jump start program because I started the application process for App Academy, one year ago. They say I was a “promising” candidate, but I’m not actually sure what “promising” meant since my application last year probably didn’t really contain any programmer-vetting material. So regardless of whether you feel ready or not, you should still apply.
  • If you’ve got a decent handle on Ruby and have started your application process to App Academy: try emailing or even better, calling them, to ask about getting into the Jump Start program.

The People

Instructors and Group/Pod Leaders

Our instructor, Ryan, was an awesome instructor. He’s very enthusiastic and is great at explaining both simple and complex problems to a large audience. I also like the fact that he is open to taking questions during the lecture, as opposed to asking people to hold onto their questions until the end.

The group leaders were pretty cool too. You primarily only interact with your group leader.

I could be wrong, but it appeared that all of the group leaders have already completed the bootcamp portion of App Academy and were actively seeking jobs. At any time during the warm-up or individual study time, you could ask your group leader questions. In addition, group leaders routinely ask if you need any assistance with an algorithm.

My Pod/Group

My group was awesome. Our group leader was Charlie. He is very helpful and has a great sense of humor as well. In addition, my group members were dope! Everyone was nice and I felt like the entire group had pretty good vibes since the first day. We were all very open to helping each other and I had no issues with anyone during the pair programming warm-ups. I’m grateful to have been a part of Team Charlie, aha.

Other Students

As I stated previously, students came from varying levels of coding experience. Some were new to programming, some had CS degrees, and some have dabbled in programming and were quick to adapt. Overall, everyone was very kind and open to helping you if you had questions.

Conclusion (aka tl;dr)

App Academy’s Jump Start program is amazing. I definitely recommend it to anyone who wants to try to get into App Academy.

Thank you for taking the time to read this! I had a lot of things I wanted to include in this review, but I chose to leave them out for time’s sake. If you have any questions/comments, please leave them down below!

Catch you later,
-John

Jump Start for App Academy: Day 5 & 6

We are now officially halfway through the second week of the program. Our final assessment test is coming up on this Thursday(8/11). I’ll quickly summarize what happened on Monday and Tuesday.

Day 5

Lecture

This lecture was pretty standard. We went over methods for numbers, hashes, and ranges. I’m not allowed to go into very great detail about what methods we learned about. However, I’m sure you can use google and the ruby documentation if you want to learn more.

Monday’s schedule was slightly different than our normal schedule. At the end of the day, we got to have a “Question and Answer” session with current App Academy Students.

Q & A Session

We(Jump Start students) received a chance to ask current students about what it’s like to be at App Academy, job search details, and advice.

I’ll take a guess that I’m allowed to talk about some of the stuff in the Q & A session as long as it doesn’t cover technical content.

Interesting Points

  • Though not desirable, it’s true that some students pull all-nighters and sleep at the facility.
  • As one can expect, they described the bootcamp as kind of a grinding process.
  • The end of the boot camp program focuses on the job search. Students are required to send 25~40 job applications out per week. If for some reason, they cannot find a job within a year, tuition is “free.”
  • If you graduate from App Academy and get a job in somewhere other than San Francisco / New York, the tuition model is slightly different. You pay a flat rate of $18,000 instead of 18% of your first year salary.
  • There’s a strike system at App Academy. You get strikes by missing roll call, failing assessments, etc. If you accumulate 10 strikes, you get flunked from App Academy.

Day 6

Lecture

Our lecture covered ruby style and conventions. Not a whole lot of new content here for me, as I’ve been exposed to style practices(indentation, naming variables) before.

I definitely agree that programmers should adhere to the style conventions, to an extent. However, I believe there should be some leeway..

For example, in Ruby, code blocks can be written with curly braces(“{ }”) or with the keywords “do” and “end”.


  # example. Creating alphabet for next functions
  alphabet = "a".upto("z")
  
  # the following blocks do the same thing
  # BUT curly braces("{}") are usually used for single-line blocks
  alphabet.each { |letter| puts letter }
  
  # do and end blocks are for multi-line blocks.  So the following code does
  # not follow ruby conventions.
  alphabet.each do |letter|
    puts letter
  end
  

Coming from a JavaScript background, I prefer to use the curly brace notation to define code blocks. However, in Ruby, it appears Rubyists prefer more verbose code and less code-like syntax.

I can understand both sides here, but I think that it shouldn’t matter if one uses curly braces as opposed to “do/end”. But who am I to say what should and shouldn’t be, I’m just a JavaScript guy, aha.

What I’m currently working on

I finished the curriculum’s problem sets on Sunday and have been working on problems at CodeEval and Codewars.

Codewars Sample Problem
Codewars Sample Problem

I definitely prefer Codewars over CodeEval since I’m more familiar with Codewars and Codewars is waay more user-friendly. In addition, I like to see the creative answers that others think of.

Codewars Sample Answer
Codewars Sample Answer

In addition to working on these websites, I’ve also been going over the practice assessment tests and timing myself. I can do the practice assessments, but it’s a completely differently feeling when it comes to the actual test environment. For now, I can only continue grinding away at problems and hope for the best.

Well, I got to get back to attacking more algorithms. Thank you for reading this! If you have a comment/question, leave a comment below!

Until next time,
-John

Jump Start for App Academy: Day 3 & 4

Day 3

Day three was uneventful.

Lecture

We had a lecture on debugging. Ryan showed us how to use a ruby gem called “byebug.” Byebug is an awesome ruby debugger that allows us to check our code at every line, so we don’t have to rely on placing puts statements everywhere.

The staple commands for byebug are:

  • next
  • step
  • continue
  • display

After the lecture, the day went by the regular schedule: pair-programming warm-up and then independent study.

Day 4 – First Assessment Test

Lecture

The 4th day was slightly different than the usual schedule because it was assessment day. We had a short lecture on learning how to break a complex problem into shorter manageable problems.

It appears that these complex problems that require you to create helper functions appear more frequently on problem sets 4-8 of the curriculum.

Ryan also taught us a cool trick we could use in the IRB(interactive ruby shell). If we forget a method, we can use call #methods on an object to get methods it can use.

 
    [].methods # => would return all methods we can use on an array.  

In addition, if we want methods from a module like the Enumerables module, we would run #instance_methods.


    Enumerable.instance_methods # => return all instance methods
    # recommended to run sort to alphabetize methods
    Enumerable.instance_methods.sort

Assessment Test

The assessment test was very challenging.

There were 4 problems in total but and the last 3 problems were difficult. I finished the first 3 problems, but could not wrap my head around the last problem.

If you hope to pass the assessment on the first time around, I definitely recommend overstudying and trying to complete as much of the curriculum as possible.

Assessment Results

We received the assessment results today(8/5).

Unfortunately, I didn’t pass the first assessment. The good news is that we get a second chance next week. It looks like I got to put in a lot of work before next Thursday!

Well that’s all I have to say for now. Thank you so much for taking the time to read this. If you have any questions/comments, feel free to leave them down below!

Peace,
-John

Jump Start for App Academy: Day 2

Alrighty! Day 2(8/2) finished yesterday! I’ll give you guys and gals another short summary of what went down.

Lecture

In the very beginning of the lecture, Ryan(the instructor) gave us some specifics about the assessment tests. Unfortunately, I cannot disclose those details.

Then, we received a lecture on array and string methods.

I’m not allowed to go into much detail, but I’ll give one interesting thing I learned for arrays and for strings.

Interesting point for arrays:


    # Enumerables Module
    # Basically an awesome module that works on any collection(ranges, hashes, arrays)
    # Examples: map, select, find, reject, any?, none? all?
    

Interesting point for strings:


    # #gsub works like JavaScript's replace.  It works with regex expressions

Pair Programming Warm-up

After the lecture finished, we met up with our assigned partner from our pod to complete pair programming warm-up problems. We are notified who our partners are for the day via email(sent 1 hour before lecture). This takes place at the tables at the back of the lecture area.

The way that the pair programming works is that you use one computer and one of the partners is the navigator, who gives instructions on what to code. The navigator is not allowed to touch the keyboard. The other partner is the driver, who receives instructions and only writes the code.

After about 10 minutes, the partners switch roles. In addition, the warm-up is expected to take only 20~25 minutes.

You can definitely see the importance of this practice. You need to be able to both 1) express clearly how to write the code and 2) how to receive and understand the instructions.

Independent Work

After the pair programming, we swapped places with group B. Group A went to the pod area and group B went to the lecture area to receive their lecture.

At the pod area, we all pretty much focus on working on the curriculum. If we have questions, we can ask our pod mates sitting around us. We also have access to our pod leader. Team Charlie let’s go!

Conclusion

Well, that was day 2! Thanks for taking the time to read this. If you enjoyed it or had any comments/questions, please leave a comment below!

Until next time,
-John