Mostly Text Recounts of Existence and Code

FSA: Graduation

Reflections

After thirteen strenuous weeks, I graduated Fullstack Academy yesterday.

The latter half of the program, also known as ‘Senior Phase,’ passed by before my eyes. In this time, I worked on an e-commerce site, a Twitter bot that replied to users with image summaries created from links to news articles, and a web app that provides dedicated rooms to the discussion of YouTube videos, dubbed Quokka.chat. Learning to work with other people was as invaluable as the practical experience gained from building with the MEAN stack. At this point, I am comfortable saying that I know these tools well enough to be useful in a team.

Graduation itself was bittersweet. I was really happy that I’d come this far, but also couldn’t imagine not returning to the office this coming Monday. I am going to miss the staff, the great friends I’ve made, and the comradery. The staff reassured us that it wasn’t goodbye, that Fullstack is forever, but it won’t be the same. Still, this is a major milestone in my life. I have been taught by world class instructors whom have provided me with the tools to pave the roads to success. I am so grateful to have had this opportunity and very happy to have attended Fullstack.

Special shout-out to Joe Alves, a brilliant mind and the primary instructor for our cohort. Thank you for making my time at Fullstack the best learning experience of my life.

Post-Fullstack

My plans for the next month or so will center around the job hunt. A great piece of advice from David of Fullstack was to be time-driven rather than goal-driven. Goals are important of course, but goals can’t always be met in a single day. He suggested that he’s been most successful when he blocks out hours in the day dedicated to specific tasks. I’ve decided to take his advice and create a schedule of my own. The first draft looks something like this:

READ (0930 - 1100)

  • Do some JavaScript reading (I have a ton of books I’d like to read on this topic)

JOB STUFF (1130 - 1230)

  • Look for leads, respond to inquiries, set up interviews

CODING CHALLENGES (1400 - 1630)

  • Work on hard programming questions to prepare for technical interviews and to stay sharp

BUILD & LEARN (2000 - 2230)

  • Work on a side project, use new technologies, always be learning

The schedule will likely be amended in some fashion, but the general structure is there. I left out blocks for eating and other things such as blogging, exercising, and interviewing. Writing technical blog posts is something I am planning to do more of regularly, so stay tuned.

Thanks for reading!

FSA: Week 2 & 3

Time has really been hard to keep track of these past few weeks. Monday quickly turns to Friday and the days don’t ever quite feel like they end each night. Not a bad thing per se, only an observation.

Week 2

Week 2 was jam packed with Game of Life, Node.js, Express.js, and SQL. Game of Life was mind bending yet philosophically pleasant. Node and Express are very cool technologies. I now know how to build a web server using Node, create routes in Express, and how GET/POST requests and responses work.

Week 3

MongoDB! After struggling with SQL and implementing a SQL-like functionality with functional JavaScript for a few days, I was ready to dive into another means of storing data. MongoDB is schema-less which makes it difficult to create structure right out of the box. Enter Mongoose. Mongoose is an ODM, object document mapper, for MongoDB. Mongoose enables us to create schemas for MongoDB collections (tables in SQL). Schemas act very much like classes/constructor functions in JS. Creating a document in Mongo (a cell in a SQL table), is as simple as calling new myCollectionSchema and voila, you’ve got a new object (document).

We learned Mongo on a Wednesday. An assessment on Express and MongoDB would take place the very next day. I took the full three hours to complete the assessment. I managed to pass most of the test cases but it wasn’t easy. It was a valuable learning experience. During the assessment, I could feel myself finally putting the pieces of the JS full-stack puzzle together. Things I was confused about earlier that day suddenly made sense. I guess that’s why it’s important to be thrown in the deep-end sometimes. Amazing things can happen in times of stress. As long as you keep your cool and work hard, you’d be surprised how much you can accomplish.

Health Update

Hundred push up and two hundred squat challenge has been going well. I make sure to do one of the exercise routines every morning Monday - Saturday. I’ve been meditating in the campus group meditation sessions called Mindfulstack for 15 minutes on most mornings. Can’t say I feel transformed yet, but only time will tell! So far, health has been holding up fairly well. Could do with a bit more sleep, but whaddya gon’ do.

One last thing before I sign off. Friday we had a hackathon on campus, where the juniors and seniors banded together to create something using Tessels, a microcontroller that runs on Node.js. I was looking forward to making something awesome in the beginning. Sadly, we had issues with the Tessel hardware, wifi in particular (something Tessel 1 is infamously known) and our team just checked out. Working with hardware was really cool though and it’s something I’d definitely like to revisit in the future. Maybe I’ll finally do something with my Arduino Uno or pick up a Raspberry Pi while it’s on sale now.. The Tessel 2 will be out this summer as well, so that’s another option.

Anyway, tomorrow begins week four of my Fullstack journey. I think we’re going to be learning about front-end technologies which I am looking forward to, though I don’t think a lot of my classmates are going to be. Based on what I’ve heard, a lot of them aren’t in to the front-end like I am. But I suppose we’ll see! More to come..

Fullstack Academy: Week 1

Intense. That’s how I would describe my first week at Fullstack. Let’s break down my experience.

Monday

I awoke at 5:30am after having slept a paltry five hours or so. The excitement and anxiety of the upcoming day kept me up the previous night. Despite waking so early and starting my hundred pushup challenge, I miscalculated and missed my bus and nearly missed the 8:12am LIRR to Penn. That was stressful. I was determined to catch my bus for the rest of the week and my commute stress was greatly reduced.

On campus we did icebreakers and reviewed TestFirst JS. Everything was going well. Then we received notice that our assessment would be the next evening. This assessment was designed to test our understanding of Fullstack Foundations, the pre-work we were assigned four weeks prior to starting the program. I was nervous. What happened next was something that I should have expected. So, we were given some practice problems to work on for the rest of the day and of course, despite me trying to set up my MBP’s dev environment to match my iMac’s prior, I missed something. I forgot to install and make sure testem was working. Not a big deal, just npm install -g testem .. nope. Luckily there were junior teaching fellows available to help me diagnose my problem. With aid from three teaching fellows, an instructor, and twenty minutes later, testem was working. I was frazzled. I was falling behind. 7pm came and no one had left. I knew I had to leave by 7:20pm to catch the 7:49pm train back home. This was awkward. I didn’t want to be the first to leave, but I was the first to leave. I got home and looked over some of the practice problems some more. Did what I could and then went to sleep.

Tuesday

We reviewed the practice problems for the assessment. I was anxious for most of the day, even though multiple people from the senior class and teaching fellows said not to worry. 2:30pm came and it was time for the assessment. We would have until 6pm. There was both a written and coding component. I realized I made some errors in the written component afterwards, but I felt as though I did well enough. The coding portion was a lot better than I expected. I was able to complete the assessment but with 3 problems which failed to pass all of the tests. Overall I think I did okay, so I stopped worrying.

Wednesday

We dove right in to data structures. We were introduced to pair programming and it all started out pretty well. Later in the day, I began to spiral down into a state of crisis. My partner and I hadn’t finished the workshop prior to the last workshop, which was a problem because the last workshop involved using code from the previous workshop. I was really lost. I felt as if I was bringing my partner down. He was essentially working by himself. Every other group seemed to be getting it, at least from what I could hear. I was losing confidence and felt like this was it. I’m out. They’re going to kick me out. I decided to go home. It was noisy and I couldn’t focus. I got home around 9pm and just started writing in my notebook a key concept I wasn’t getting. Then something magical happened. I understood. The concept of linked lists finally made sense. With that small victory, I went to sleep.

Thursday

I still hadn’t completed key parts of the workshops from the previous day, which was searching through hash tables, so when I got to campus I looked it over.. and asked a couple of my classmates to explain it to me. That was super helpful. Slowly I started understanding. By the time we finished the review, I felt better about data structures.

We were also assigned teaching fellows and learning groups that day. The teaching fellow is meant to be someone we should feel comfortable asking for help. Someone that will care about how you are progressing in the program. Essentially they are mentors/counselors. I’m glad that they have this type of support system built-in to the program. I am sure I will have moments of doubt again in the future, so having someone to talk to about it is comforting.

The rest of the day we worked with the DOM. We had to implement the selector features commonly associated with jQuery. I really had a blast with this workshop. It was something familiar to me because of my experience in the front-end, so I really went in with a positive attitude. Not to mention, I worked very well with my assigned partner. We took turns driving and navigating on one machine, which was very helpful. I went home with high spirits.

Friday

I was very tired by Friday. It may have something to do with how I slept, but I think it was my body lacking energy. I hadn’t been eating very much during the week, due to lack of appetite and time. Lunches would consist of some sort of meal consisting mostly of vegetables. I think I had salad most days, but always ate about half and then the rest towards the end of the day. I only ate breakfast at home on Monday and then proceeded to eat the oatmeal available at school for the rest of the week. I ate some form of dinner maybe twice.

We had a group retrospective where people were free to voice their opinions. No one publicly stated any sort of difficulty, which made me hesitant to voice my opinion. Luckily, I had signed up for office hours on Wednesday to speak with an instructor at 2pm. So I figured I would talk to him about it then. After speaking with him, I felt a lot better. He told me not to compare myself to others. Two of my classmates have masters in Comp Sci and many others have had experience with data structures in the past. It was unrealistic to compare myself to them. He told me that struggling in the beginning is not an indicator of my success in the program. Certain people just have different strengths and some topics come more easily for others. He says by week two, everyone will level out. I was grateful that he took the time to talk to me.

Still though, I was lacking energy. We worked on sorting for the remainder of the day. Sorting, specifically bubble sort and merge sort, was something I was familiar with when I was preparing for technical interviews. I had an idea of how to implement it, but so did my partner, who also had a solution in mind from a previous exercise in Ruby. So, we both had answers in our mind going in to the problem. This was an issue. I tried to defer my opinion to just move forward with his idea, but at the same time, I wasn’t sure why it was broken. We spent a lot of time debugging and I was just burned out. I had checked out. I felt really bad for letting my partner down. He assured me it was okay, but I knew it wasn’t.

We ended the day with a campus cleanup, mingling & drinking, and hot seat. Hot seat is basically a volunteer doing a 10 minute AMA. Two instructors did the initial hot seats to set the stage for two volunteers from my cohort. Lots of laughs. A good way to end the week.

Oh but there’s more. The seniors invited the juniors to go to happy hour afterwards. I was a little reluctant at first, because tired, but I ended up going and I’m glad I did. I got to know my classmates better and also met more of the seniors.

Overall

I am very excited about the next 12 weeks. The intensity and rate at which we are learning is something I need to adjust to, but I am glad they are pushing us. The importance of health is becoming more and more evident. I need to become more disciplined in my actions and more efficient with my energy. Rather than waste energy on being negative and anxious, it would be best to appropriate that energy to learning challenging concepts. Focus and positivity are imperative. Health is crucial. I will take what I’ve learned this week and hopefully have a very kick-ass week 2.

Starting Fullstack Academy & Other Updates

I’m starting Fullstack Academy this coming Monday. I am experiencing bouts of excitement coupled with pulses of nervousness as I get closer to starting this new adventure. Ecstatic that I am one step closer to becoming a full-time web developer, but worried about whether I’ve prepared enough. Some parts of Fullstack Foundations (the 4-week part-time pre-work) were challenging for me. I knew coming in that my programming logic wasn’t very strong, so tackling higher order functions and recursion head on was humbling. I can say I have a better understanding of the latter concepts, but I am not at the point where I feel comfortable explaining these concepts to someone. Since I’ve finished all the assignments and have a couple days before class begins, it would be beneficial for me to do a high-level review of all the concepts and a deeper inspection of the concepts with which I struggled.

Note from the author: If you are reading this blog, you may have noticed the style in which I write is very much me writing to myself. My mind is rather busy a lot of the time so it helps me to isolate some of these thoughts and work them out in a text editor. One might say my blog posts are me trying to make sense of my mind.

Plan of Attack

I’ve been trying to plan my lifestyle for this 13 week course. Knowing me, it is likely I’ll be overwhelmed so I’m trying to factor that into my contingency plan. First things to go will be my quality of sleep, food consumption, then physical and mental health to follow.

Physical Health

The first thing I’ve decided to implement to combat the loss of control is to work exercise into my routine. A full workout is unlikely, so I’m trying to keep it as easy as possible. I stumbled upon the hundred push up challenge, a program that purports being able to do 100 push ups in six weeks. Six weeks just so happens to be the duration of Fullstack’s junior phase, so this will be a good secondary goal. The way the exercise program is designed, I will devote 3 days a week (Mon, Wed, Fri), 10 minutes each day. On Tues, Thurs, and Sat I will try the 200 squat challenge so that I am doing a little bit of exercise most days. I will do these exercises in the mornings prior to my cold shower. Cold showers are something I’ve been exploring for the past week or so. I saw this video about it and subsequently read a bunch of articles about the health benefits (check out Wim Hof if you’re interested), so I’m going to experiment.. I’ve been dealing with always feeling cold for a while now and increasing my cold tolerance seems like a good idea. They aren’t quite enjoyable yet.. but maybe after a couple more weeks..

Sleep

I think exercise and cold showers should help keep me physically and mentally focused. That in turn will help me sleep better. But just in case, I’ve started tracking my sleep cycles using SleepBot. I am terrible with getting to sleep before midnight.. For the last month I’ve been trying to wake up 20 minutes earlier every 3 days so that I can wake up at 6:10am by the time Monday rolls around. The gradual change worked well in the beginning, but my lack of discipline caused me to go back to sleep until mid-late morning.. My fear at this point is oversleeping one day and being late for class. I’m sure a switch will flip in my brain when it knows that I really need to be somewhere at 9am though.. It’s not used to me needing to be somewhere in the morning. Hahah. Anyway, based on what I’ve seen in my sleep data, the ideal time for me to sleep is around 10-11pm.

Food & Transportation

As for food, I see myself eating lots of eggs and cereal, maybe some frozen meat and whatever I decide to eat around campus for lunch. Making lunch probably won’t happen very often if I’m completely honest. Part of the reason is that the 1.5 hour commute each way will be a challenge. Taking the 7 train vs. the LIRR on paper is only about a 10 minute difference in favor of the LIRR. But the LIRR is an extra $218 plus the current fare of an unlimited MetroCard, ~$117? But under the surface, the LIRR is much more reliable and the commute is less stressful. The 7 train, from what I’ve read and heard, has been a major headache these past few months. For peace of mind and reliability, it might be worth the extra $218 each month for the next three months. My mental fatigue threshold isn’t very high, so it doesn’t take much for me to be overwhelmed.

These are all things I’m working on and based on experience, I tend to thrive in these focused high-stress situations, so I’m not too worried. Where I wither is when I’m forced to multi-task with completely different tasks, i.e. my previous job. Since everything is code, my brain will be in the same mode and will not require energy draining state changes. Oooh, I’m getting excited. My plan isn’t foolproof but I’ve tried to set myself up for the most success. There will be unexpected variables but c’est la vie. I’m stronger and more resilient than I once was. cracks knuckles

Other Updates

Sublime Text

After using Vim exclusively for four or five months, I’ve decided to move on to Sublime Text as my primary text editor. I had been resistant for a while to go back to Sublime. I first used Sublime Text 2 a couple years ago and wasn’t that impressed (though to be fair, I wasn’t aware of all the things you could do), so I hopped on the Vim bandwagon and embraced the smug attitude that is often donned when one prefers a CLI editor over an editor like ST. The true reason of my dismissal of ST was deeply seated in my desire to be “legit” and respected in the dev community, thinking using Vim would make me more “pro.” Hahah. Silly. Sublime + Package Control is amazing. Plus ST has Vintage mode which takes advantage of Command Mode basically ports in the best of Vim into ST (traversing my file with h,j,k,l and deleting shortcuts, etc). I’ll still continue to use Vim for certain things when opening ST is inconvenient or unavailable, so I’m glad I spent the time learning how to use it.

Books

I finished reading How to Win Friends and Influence People by Dale Carnegie and Gone Girl by Gillian Flynn. The former, has stood the test of time and contained universal truths of human relationships at its most basic level. I can summarize the book in four words, “Don’t be a jerk.” Definitely a good read for anyone looking to have better relationships in their lives. I read the majority of Gone Girl in the past couple weeks after starting over a year ago. Initially I wasn’t that interested, but I decided to pick up from where I left off and it became difficult to put down. It was riveting. I then watched the movie shortly after finishing the book. Eh. Great effort in my opinion, but not as gripping as the book. Though, I find most movie adaptations of books to be somewhat lackluster, so maybe it’s book bias.

Future

Very excited for this new chapter in my life. I am optimistic and am coming to terms with the choices I’ve made. Letting go of blame and resentment. Taking responsibility for myself. Coming of age. Becoming a man. Huzzah.

Fullstack Academy

Yesterday I received an email that contained great news! I have been accepted by Fullstack Academy to attend their April class. I’m going to do it! I still can’t believe it. For anyone unfamiliar with web development immersives (aka coding bootcamps), these are generally 3-month intensive courses dedicated to training students to become full-stack developers. Graduates of these courses are equipped with the skills and are prepared to succeed as junior developers upon graduation. Fullstack has been recognized as one of the best institutions in this space and I am truly delighted by their decision to accept me.

Why am I doing this?

Four months ago, I quit my job to pursue learning JavaScript in hopes of working as a junior developer at a software company. I learned a great deal in my time off, to the point where I felt I was ready for the big time. I applied to some jobs and internships, had one interview then quickly realized how little I knew. I honestly re-evaluated my last four months. Truth be told, I was neither disciplined nor structured throughout. I would have periods of flow, but as soon as I hit a wall (boy, did I hit walls), I would get derailed and lose momentum. I consider myself an individual with a respectable level of Google-fu, but the wealth of knowledge available on the internet requires a different level of intuition to parse and differentiate between the varying levels of helpfulness and relevance. It’s very easy to be overwhelmed by this, especially when you’re still wet behind the ears.

I had reached a fork in the road and an important decision to make. What path should I take to bridge the knowledge and skill gap to get to my desired goal of software engineer? Do I continue my inefficient learning or enroll in a bootcamp to get from zero to hero in 3-4 months? The answer was a no-brainer. To make the decision required me to swallow my pride though. I had oft thought that I could take the self-taught route and save the large sum of money that these schools require for tuition. This was when I valued money more than time. My time off has taught me the true value of time. The first month of my fun-employment was me relishing the newfound freedom I had reclaimed. First thing I did? Binge-watched anime. Watched Death Note in two days. While I was proud of this feat at the time, after a month of consuming, consuming, and consuming brain noise, I realized how much time I was squandering. Another thing, I’ve been penny-wise and dollar-foolish. I didn’t think it was worth spending that kind of money on myself. But I’ve learned the importance of investing in your brain, and that’s what I’m doing. I’m investing in myself, my success, and my future.

Application Process

So I applied a couple weeks ago and went through the three stages of the application process. The three parts being, a code assessment, an interview, and the decision process. I’m not going to get into too much detail about the process, but preparation was really really important. If you’re interested in applying, I would recommend going through the recommended resources and practice doing coding exercises on a site such as coderbyte.com. Honestly, even some of the Easy problems were very challenging for me. Some of them took over an hour to solve, and not without help from Google. This application process was by no means easy. I was thoroughly challenged in every coding practical, which I believe to be telling of the level in which Fullstack pushes its students. (Being challenged is a good thing.)

Advice & Musings

For anyone looking to attend a web development immersive, spend some time to figure out if you really want to be a developer. It’s a large time and monetary investment, so minimize the cognitive bias and figure out your goals and motives. This took me a little while. I am interested in design and technology, but I never thought about programming. I didn’t think I was smart enough. It’s difficult and frustrating in the beginning because thinking like a computer requires you to break down tasks we humans take for granted. The brain does so much behind the scenes that it literally requires you to break down tasks to a very specific series of instructions. Computers are dumb, they need to know every little detail. Logical thinking gets easier over time as you spend more time telling your computer what to do. As you do this, life sort of changes.. at least for me. I am less emotionally driven, which isn’t necessarily a bad thing. I think about life more objectively and thinking about life in this manner kinda makes sense. Life is math, math is life. By the way, I recently read Scott Meyer’s Off to Be the Wizard, it’s relevant to this topic of life being simply data and algorithms, highly recommended! Fun read.

Anyway, new beginnings! So happy to be taking this new step in life.