February 14, 2020 Opinion Would you recommend Lambda School?

A question mark sign
Would you recommend Lambda School?"

It's a question that's come up a few times in the past couple of months from friends, coworkers and at nearly every interview I go to.

I always answer with a version of "yes-if". After giving this answer so many times I realized it would make a great blog post so here we are.

Before we get too far ahead some background/full disclosure: I already had a technical degree and work experience before attending Lambda School (B.S. Civil & Environmental Engineering - UC Berkeley) & had been working as a high school math/science teacher for 5 years prior to starting Lambda's Full Stack Web (FSW) Development Program. I was a TA for Lambda's part time FSW program at night towards the second half of completing the curriculum (late 2018-early 2019). Once I finished the curriculum (early 2019) I additionally began to TA for the full time program during the day until I landed a role as a Frontend Engineer for Joymode.

Before we get to the "yes-ifs" let's start here:

  • Are there better options?
  • A menu of coffee options

    Pretty simple, if you have better options, don't go to Lambda School. What "better options" are is hard to say so let me try to give a few examples of what a "better option" might be for you.

  • Better financially. If you have a scholarship to a college/university CS program or other bootcamp that's better financially and that you are excited about then you should probably do that instead.
  • Better education. If you think you can get a better CS education elsewhere and have access to it then you should do that instead. This is subjective but talk to somebody you trust and get them to compare what you will be learning at Lambda against your other options. Get multiple opinions, you should be confident that you will be learning quality material. I felt and still feel like Lambda has a great curriculum but this is something you should look at and consider.
  • You know people in tech who can teach you and get your foot in the door. Now that I've been in this world for a little over a year I've met a handful of people who got their start this way. You can totally use your network to learn and start to get experience if you have friends who are in tech who can help you get started and get your foot in the door. Lucky you! 🙂
  • You can afford to study and learn on your own from freely available internet resources and are confident in your skills/experience/connections to get hired. Even if you DON'T have friends in tech that doesn't mean that you can't be completely self-taught and get in the industry. This is another option for some people, especially if you find an online resource that speaks to you and allows you to create interesting projects to showcase and level up your skills along the way.

  • Each of these are potentially better options than going through Lambda School. As I was looking at options for myself I didn't find a program that was a fit for me, didn't have friends in tech & didn't know where to start as far as a curriculum or the types of skills I needed to learn/showcase before being hirable. It was definitely the right choice for me at the time.

    Okay, now for the "You should attend Lambda School if you answer yes to these questions" portion of the show:

    A person jumping between 2 rocks

  • Can you afford it?
  • Read this: Lambda School ISA
  • Lambda School FSW track is 9 months full-time or 18 months part time.
  • Don't assume you will be hired early or right upon graduation, add at least 6 months.
  • Do a little bit of math and planning for yourself. Do you know how you will pay your bills while you attend Lambda School and will this allow you to at the same time have the energy/focus needed to learn challenging new skills?

  • Do you understand the terms of the ISA?
  • Read this: Lambda School ISA (yes again)
  • The rules on this vary state to state but at minimum you get 4 weeks to decide if this is going to work for you and can withdraw early without penalty. You get full access to course materials on day 1 and should have an idea if this is working for you in a month's time in my opinion.
  • Find out what entry level developer jobs are paying in your area. Be conservative and pick a salary number at the lower end of the range. Take your state's income tax % for that salary + Lambda's 17% cut to find out how much you're looking to be making as you start off. If you're comfortable with that then let's move on.

  • Can you really afford it? Do you have a backup plan?
  • Ok, so you've done the math, are aware of the terms of the ISA, and are ready to move on. Not so fast.
  • I want to make sure I emphasize this point because it's one of the most important factors to consider if you're going to do it. Factor in a lengthy job search, having to repeat a unit or two as you progress through a challenging curriculum, holiday breaks, length of program & unforeseen life events & setbacks. Can you really afford it?
  • As I mentioned above, I had 2 careers before this (Civil Engineer & HS Teacher) I could fall back to if it didn't work out. I'm not rich or wealthy but I was able to lean on my savings, renting 2 rooms at home, my wife, friends/family, & I got a part-time job with Lambda School (at night) as soon as I was eligible to while going through the program to make ends meet. It was a challenge but I planned this all out before I ever applied and made it work in my circumstances. If you have a plan and feel prepared then let's go...

  • Are you disciplined? If you're not disciplined, are you open-minded enough to trying to change that and have you built a support network for yourself?
  • Getting through Lambda School requires a lot of discipline. To dedicate yourself to something for that long requires a lifestyle change if you're not used to it. Like any new skill it requires practice and training long hours. I started jiu-jitsu a year before Lambda School. It's one of the toughest things that's become a consistent part of my life. It makes everything else, including going through Lambda School seem not so bad and was a great way to gain perspective. It built-up my discipline muscle prior to Lambda School and helped me throughout the process. Find something that helps you maintain your discipline and keeps you healthy/sane. If you know you are going to struggle with this then plan for that and build in the tools, resources, support network that you're going to need to stay on track.

  • A person looking at a laptop

  • Is this your learning style? If not can you adjust and make it work for you?
  • Read this: Lambda School Curriculum
  • Online lectures and projects aren't for everybody. Neither is Slack, online-meetings or working remotely. Check out the pre-course and see if this format is right for you. Ask questions, talk to current/former students. I loved the format and thrive with this setup. I enjoy working remotely and communicating on the internet. I personally think it's a great way to teach and learn but I definitely know that it's not a good fit for everybody.

  • Do you have a work plan? Are your family/roommates/dog on board?
  • Have you thought about what life is going to be like while you attend Lambda School. Do you know where you'll be working? Is it quiet at the right times? Have you scheduled out the track in your calendar? When are you going to find time to take care of all of your other responsibilities after adding this full or part-time commitment into your life? Are your family/roommate/dog/etc ok with this and going to be supportive? Your life during Lambda will be a lot easier if you planned for this ahead of time.

  • Related, are you collaborative or do you want to be?
  • Lambda School does its best to prepare you for a career after you finish the course. This includes working with teams of other developers, design, data science, UX, & iOS students to create projects as you progress through the course. You are encouraged to ask questions and to use your TA for help you when you are truly stuck. There are office hours and your fellow students will also be very helpful. If you planned on working as a solo-developer and never interacting with other students/staff then Lambda School is probably not for you. If you don't like working with others that's completely understandable and maybe you can use this as a starting point where you can begin to practice and develop those collaboration skills. In any case you should be open to working with others if you plan on going through Lambda School.

  • Do you enjoy learning? Are you someone who asks questions?
  • This is a silly question. We all enjoy learning. But do you enjoy learning the material that's being offered? There's pre-course material available for every track. If you are looking at signing up for Lambda School you would assume that you are excited and the answer is yes. Speaking from a TA's perspective for a moment I would run across students who would never reach out, wouldn't ask questions and would then proceed to complain that the material was too challenging or not clear enough. This may be true at times, it may be purposeful, but it makes teaching, progress, and learning the material impossible without any questions or feedback. Don't join Lambda School if you aren't willing to learn and ask questions along the way.

  • Do you enjoy challenges?
  • The Lambda School material is challenging. So is getting a job as a developer if you don't know how to code. I felt challenged every week if not everyday I was at Lambda School. I feel like I'm a stronger developer for it and was able to contribute in my first role from day 1 because of it. Even when the project was "easy" there were always extra stretch goals and other things I could learn to push myself when necessary. You're given the building blocks and can take it as far as you want. You have to be comfortable knowing this going in and be ready to push yourself and be open to challenging days/weeks. I mean all of the above in the best connotation of the word "challenge", I had a lot of fun.

  • Each of the questions above could have easily been a blog post of their own so I apologize if I was short or unclear in my responses to any of them. Feel free to DM me on Twitter if you have any questions or want to chat.

    A dog in sunglasses

    To summarize if there aren't better options and you answered "Yes" to the above questions then I would absolutely recommend Lambda School to you and would start telling you about other reasons you should check it out... such as:

  • Lambda's Slack Channel
  • As an alumni I'm on Lambda's Slack channel all the time. It's a great place to keep up with friends, encourage each other in #health-fitness, and have a friendly community of people I can interact with at any time.

  • Networking & Friends Along the Way
  • I made some good friends during my time at Lambda including some instructors and meet up with people from time to time for lunch or Lambda meet-ups which happen once a month. Looking at my LinkedIn now compared to a year ago and I'm amazed at how many Lambda friends I have working at various companies throughout the world now, it's pretty cool!

  • Career Services
  • When I found out that the Joymode warehouse in Culver City was shutting down, I was able to contact Lambda's career services team who helped me in my transition to a new role. They have daily office hours where you can meet and talk to a member of the team and get your career questions answered or just general advice.

  • Curriculum & Knowledge Sharing
  • The curriculum was one of the main reasons I chose Lambda School in the first place. I went through the pre-course. I saw who they were hiring as instructors and their background. After working with some of them directly I can tell you how much they care about maintaining an up to date world class curriculum. I have a lot of examples of this but one quick on is this: I've been working in Vue for the past 7 months, my next job is in React, I went back to the curriculum last month to brush up and the Redux units/projects are brand new, that's awesome.
  • When I needed to learn Ruby on Rails to help on the backend at Joymode I was able to use Lambda's curriculum to do that. As alumni I have access to all of the tracks which is an amazing career tool as I can easily add to my knowledge/toolkit at anytime for free. They also host frequent brown bags on various technical topics which are also very useful and interesting way to stay up to date on other technologies or best practices.

  • Brand/Identity
  • Being a Cal alum I'm well aware of the value and privilege that brings. It was a huge reason I went there in the first place. I knew I would be able to land a job in any major city in the world after I got my "engineering degree from Berkeley". It's mostly true, people know the name and respect the institution. I had been following Austen on Twitter for a few years before I signed up for Lambda School. I saw the progress. I was beginning to see the names of the companies that were hiring the first crop of students and I knew that it was a place that I would be proud to have attended and that would be known for producing talented developers. I think so far so good. I've been on multiple interviews since graduating and for those people I met that have heard of Lambda before meeting me I would say that all but one had a favorable view of the school, the structure, and the curriculum/talent they were seeing come out of the program.

  • Thumbs up in plants

    It's been one of the best decisions I've ever made but I don't recommend it to everybody, hopefully this helps explain why. I see it getting better everyday and would definitely recommend it if you said yes to all of the above.

    TLDR: Yes IF - there are no better options & you:
    Can afford it (understand the ISA). Like the material/format. Are collaborative (or want to be). Enjoy learning. Love challenges/puzzles. Are disciplined (or have a plan in place to be) and you have a plan.

    Bonus Tech Demo for my Twetch people, if you liked this blog post, show me some love!

    Joymode (months 4-6) 2020 Plans Startup Life

    Hi everyone I wanted to pick up where I left last time and recap months 4-6 at Joymode and give an update on my plans for 2020. The past couple of months have had a lot of changes but that’s to be expected from a startup and I enjoy the fast pace. I’ll try and cover the major changes and what I’ve learned.

    Months 4-6 Working from Culver City, Joymode in Temecula, & More

    Leaves from green to brown

    A couple of months ago we began working out of the Culver City warehouse, this came with the flexibility of working 2-3 days a week remotely which I enjoyed and was used to from my time at Lambda School. During this time I found my tickets increasing in complexity and I was touching more and more of the codebase. We were launching new features/pages regularly and I started to get more practice in with Ruby on Rails and the backend database. One of my favorite things we put on the schedule was a bi-weekly pair programming session with my manager where we would code, review or explore new tech. It’s great to code with others and be able to build something together.

    Some highlights from this time include the launch of a physical Joymode location inside of the Temecula Walmart, new JoyPass membership, and gift cards. Each came with changes to the front end and their own unique learning experiences. I definitely became really comfortable launching features quickly and iterating frequently.

    2020 Plans Reflecting & Moving Forward

    Joymode has definitely been the best job I’ve ever had and I’m super thankful to have been able to work with this team for the past 6 months. I am, however, currently in a transition period looking for my next role. I've recently started to work on a jiu-jitsu app (jiujits.io) using the Quasar framework and am planning on wrapping up most of the MVP functionality I envisioned at the outset as I search for my next role. I’m planning on launching a dev journal for this app (jiujits.io/devJournal) as it’s likely going to be a long term project where I can learn and develop in public. As for my next professional role ideally I’m looking to join another mission-driven startup with an LA presence and/or a remote friendly culture where I can continue to learn and contribute.

    Lastly, I have to give Lambda School another shoutout. When I needed to learn a new technology (Ruby on Rails) to contribute to the backend codebase at Joymode was easily able to complete a few projects in the supplemental coursework and feel confident contributing to production code. It’s amazing to have a place where you can continue to go too learn, chat with other developers, stay atop current technology/trends and just have a system of people who support and care for each other. There’s even a fitness Slack channel where we keep each other accountable on a daily basis.

    I know I made the right decision in joining both Lambda School as well as Joymode. I have learned so much from both and am confident I will have another announcement soon thanks to their training. Until then best wishes and happy new year!

    JoyMode Months 1 - 3 Living in Joymode

    It’s been 3 months since I got hired as a Frontend Engineer at Joymode and I wanted to recap how it’s been, what I’ve learned and what I’m looking forward to working on in the near future. Going into this role I knew that Joymode iterated quickly and was a very dynamic environment. Having gone through Lambda School I felt comfortable with rapid change and the flexiblity that's required to make adjustments on the fly. Inded every month has felt different than the last which for me feels right at home and that’s a perfect way to split up this recap:

    Month 1 Learning the Ropes, Joining the Team

    via GIPHY

    I have a notepad where I write things down that I want to remember, things I plan on doing and a reflection on how the day went. This makes writing this recap out a bit simpler but even so the first couple of weeks at Joymode were definitely memorable and not something I’ll soon forget. Part of the orientation process was to have coffee meetings with various team members throughout the company. This was a great way to get to know people as well as get some insight as to their role and how I could help. From the beginning I felt welcomed and was given clear assignments and value. I definitely felt like I had found the right environment to start my dev career.

    On day one I was able to push a change to production. Although it was a fairly minor copy change I appreciated being brought into the fold immediately and seeing my impact from the jump. The frontend framework used for the Joymode website is Vue.js. I had only used Vue a handful of times prior to working at Joymode but I was confident in my ability to quickly learn and contribute. It’s pretty cool and I’m still learning something new every day.

    Another big part of the orientation process was working at the warehouse for a few days and trying on different roles. It was a great way to see the company from many different perspectives and meet even more people. For a couple of days I serviced products, prepared bundles, made deliveries, & onboarded products. It was definitely the complete experience and I was excited to join such a dynamic company with so many different moving parts.

    Throughout this month I learned more about the codebase, the work environment, team schedule, testing, event tracking & code style guidelines. I was able to work on new landing page, the introduction of Premium bundles to the website and helped implement a new split test. I started to get comfortable with weekly sprints and the pace at which things moved.

    Month 2 Testing & Trust

    via GIPHY

    The second month at Joymode was definitely much different than the first. I started to see how quickly things change at a startup and also began to take on larger projects. One of my assignments was to fix some end to end tests that were working in development but failing during production (features were still functioning, but the production tests were failing). I’ll spare the details but it was incredibly rewarding to tackle this project and be able to get those tests to pass. I got very used to asking questions and began to pair program with others on the team. It really helps to be able to talk through code with fellow developers in order to clear up and enhance one’s own mental model of the codebase.

    One thing I love about Joymode is that I always feel like I’m a valuable part of the team. Whether it’s stand ups, engineering syncs, strategy meetings or one on ones with my PM I always feel like I have a voice which is really awesome. This month I started to feel like I was being trusted with larger tasks and I also had my first work from home day. It was great, I was able to code from the house and went to get a new contact lens prescription during lunch. Up until this point I hadn’t done any work from home days since I was still getting used to the workflow and the environment but I felt comfortable with the tasks I had for this sprint just made sense with the appointment.

    I also received my first full page assignment this month which was definitely a bit more complex than what I had been given up until now. I had a few moments where I felt like I was doing something completely wrong but after reviewing my own work and taking a weekend to organize my to-do list I was able to finish the new page (which hasn’t launched yet) and was re-energized. I was also injured most of this month and a bit of the previous month with a bad MCL sprain from training jiu jitsu which shouldn’t have affected me as much as it did but it was definitely annoying having to limp around everywhere and not be able to train. I think this contributed to me not feeling as organized as I normally am but luckily it was nothing major and everyone in the office was really nice about it.

    Month 3 Complex Tickets / Complex Communication

    via GIPHY

    This is definitely what I signed up for. Month 3 was definitely completely different than months 1 and 2. I’m communicating with more members of the team as my tickets have grown in complexity and have upgraded to a sweet 4 monitor setup 🤩. I’m getting better about writing tests for my code and am definitely feeling in the flow of things as far as adding features & changes to the site. There’s definitely never a lack of challenges to tackle here and it’s nice to be given to green light to try new things, make improvements or tackle existing issues.

    I’m always looking for ways to improve and things to maximize my flow state and in this 3rd month I’ve definitely found things that work for me. Some tips and tricks for making your dev life easier:

    • Exercise. I fell in love with jiu-jitsu a little over 2 years ago and train regularly a few times a week. It’s something that definitely helps keep me active and is a great way to clear your mind.
    • Music. I definitely code better when I’m listening to some instrumental background music. I can’t do anything with lyrics and podcasts are too distracting unless the work I’m doing is really straightforward.
    • Breaks. I start to get less focused after the 45-min to 1 hour mark and I definitely have to take a walk or play with my dogs for a bit before getting back to it. The Pomodoro method is effective as well.
    • Pair-programming. Working with someone else helps me cement my own understanding and I’m constantly pickup up cool things from my fellow programmers.
    • Side projects. I love working at Joymode but I definitely try to find space to work on my own ideas and projects. I plan on someday having a workable online jiu-jitsu training notebook jiujitsio & am debugging and in the process of making this Bitcoin Clock tick Bitcoin Time. Working on smaller side projects allows me to experiment and try things in a somewhat safer environment and you learn really quickly when trying to build something from scratch.
    • Networking. I don’t do enough of this but I am trying to be out there more and be an active member of the local dev community. You can learn a lot just be seeing what others are building and you never know what resources you have in your local community.

    Overall I’m incredibly grateful and lucky to have found this team and am excited for what’s ahead. There are lots of cool things that we have been working on that will launch in the near future that I am looking forward to seeing go live. See ya next time! ✌️

    NEXT Week 8 - CS17 & webPT4 TA / Hello Joymode!

    This week the students in my CS TA group were working through the 'Theory of Computation / Hash Tables' Sprint and my webPT 4 group is working through the "Building RESTful web API's with Express and Node.js" Sprint so it's definitely been busy trying to keep all my content straight but appreciate all the review and reps that I'm getting right now. The `Theory of Computation / Hash Table` Sprint is really interesting. Implementing arrays and hash tables in C really helps shine a light into the importance of this data structure and what is going on under the hood in many methods/data structures we see in higher level languages. To close the week out remember that on-site interview I went on last week? Well I was offered the position! I'm happy to announce that I will be joining the Joymode team as a Front-End Engineer starting in July! It's been a long journey but from day one I knew I was making the right decision when I applied to Lambda and couldn't be happier to join Joymode and take this next step in my journey.

    Week: TA for CS17 (Theory of Computation / Hash Tables), webPT4 (RESTful Web APIs with Express and Node.js) & Hello Joymode!

    Next week will be my last week as a Lambda TA as I prep for my new role at Joymode and I can't put into words how much I appreciate being given this opportunity not only to TA but to be part of Lambda at all. I could not have asked for a better experience. It has been an amazing time of my life. I've never learned so much in such a small amount of time. If you're on the fence about Lambda I can't recommend it enough.

    I'm starting as a Front-End Engineer with Joymode in July and am really excited. I can't wait to join this amazing team. During my on-site I was blown away by how friendly everyone was, the collaborative environment and the company vision/mission. I'm excited to not only jump into a new tech stack but be part of a company that I know is doing something special.

    I posted this in the #hired channel on Lambda's Slack and could go on and on about how great Lambda is, if you ever have questions about the school or my experience feel free to reach out.

    Thanks again Lambda, friends & family. I appreciate all of you and am looking forward to joining the Joymode and seeing what comes next.

    NEXT Week 7 - CS17 & webPT4 TA / Career Prep / Discord Hackathon

    What an exciting week! Started the month/weekend off by participating in the first ZEIT Hackathon with one of my teammates I worked on Flexlog with. Had a lot of fun making a ZEIT/Discord integration which notified you in your chosen channel of your ZEIT project deployments. Had a lot of fun building this and will go into more detail below. I also TA'd the intro to C portion of CS 17 for one of the groups and had a good time working through this portion of the curriculum through a new lens and getting extra reps with a low level language like C. I had an on-site interview with a company in Los Angeles on Tuesday that I'm excited about. I also went to my brother's high school graduation and capped the week off with a weekend of C, jiu-jitsu practice, and watching UFC 238.

    Week: ZEIT Hackathon, TA for CS17 (Intro to C), webPT4 (RESTful Web APIs with Express and Node.js) & Career Work

    Participating in the ZEIT Hackathon was such a cool experience. At first I was a bit intimidated when I heard the idea from my teammate - a ZEIT/Discord integration that would alert you to ZEIT events in your chosen channel, all built with TypeScript (a language I hadn't used before) - in 48 hours. Not one to back down for my challenge I dove in. Such an awesome learning experience. My teammate showed me how to work with the new language and we got to work. Lots of practice reading docs and working collaboratively in a hurry. After countless Zoom sessions it was awesome to see the notification come through the channel during our demo video. Checkout the integration if you are interested: ZCORD

    On Tuesday I went to an on-site interview with a startup in Los Angeles. I had such a great time learning about the company, meeting the team, and working through coding exercises and a pair-programming session. I can't remember having a more pleasant interview experience. I feel really good about the process and am thankful to my career coaches and everyone at Lambda who has helped me prepare and get my skills to a level where I can confidently apply and be prepared to take on full stack software engineering roles. Excited for what's to come!

    On the TA/Lambda side of things I spent most of my time working in C and making sure I was prepped for each guided project of the week. I'm having way more fun working in the language this second go around. Next week we go into the history of computing and hash tables in C. For the part-time cohort I'm going over backend material which I've been absent for this week with the interview & my brother's graduation falling on my guided project days.

    My brother's high school graduation was also this week on Thursday. He graduated from the same high school I did so it was so nice to see him walk the stage and give his graduation speech. He's worked really hard to set himself up for the future and I'm really proud of him. Wrapped up the weekend spending some time on the mats doing jiu-jitsu, watching UFC 238 (such a great card) and spent more time practicing C. Feeling good about the upcoming week.

    NEXT Week 6 - CS17 & webPT4 TA / Career Prep

    This past week was busy both in and out of Lambda School. I spent a lot of time this week studying Ruby, Vue and getting ready for the Zeit hackathon. After this weekend it's intro to C for my CS17 group and build week for my webPT4 group which is nice because I get extra time to focus on guiding the CS students through the introduction to C which can be tricky. It's a challenge but I'm excited to work through it all.

    Week: TA for CS17 (Build Week), webPT4 (Redux - Async/Middleware) & Career Work

    This was a fun week where I had some time to put into my own projects/studying since most of my students were busy being team leads for build week. I started to explore Ruby and am having fun learning a new language. This upcoming week my CS students are going into C which is a very interesting language that I'm excited to revisit. I also had a technical interview this week which was really fun and I'm looking forward to seeing what's next!

    This weekend I'm pairing up with one of my teammates from Labs to work on a Discord Bot for the Zeit hackathon. I'm super excited about this opportunity and it will be great practice for an upcoming on-site interview. Lambda School has opened up so many doors for me and given me the skills to tackle any task. Looking forward to seeing what we build! First Hackathon!

    NEXT Weeks 4 & 5 - CS17 & now webPT4 TA & Career Work

    It's been a busy past two weeks! So busy in fact that this is actually the first time that I've skipped a weekly blog post since starting at Lambda. One late day turned into another and here we are two weeks later and no update. Well, I'm back! What have I been up to? Career follow-ups, leading and prepping for Guided Projects in Python and this week I transitioned from a PM to a TA for webPT4 and led the intro to Redux. I couldn't ask for a better environment to practice my skills and keep sharp while I continue to look for my first role out of Lambda.

    Week: TA for CS17 (Data Structures & Graphs), webPT4 (Intro to Redux) & Career Work

    For CS17 the first week was Data Structures and the second week was Graphs. I've been trying to make use of Repl.it multiplayer as much as possible to get the students engaged and it does a really great job of allowing students to express themselves and get more hands on keyboards practice during the demos. I can't talk enough about how much I appreciate the extra practice I get as a TA. My understanding of the material and my skills as a developer have increased tremendously since starting this role and I appreciate having a look at how the instructors prepare the material and how much effort they put into making this the best learining experience possible and to ensure that every student leaves Lambda Schools with the skills needed to be a world class engineer. I'm learning something new everyday and enjoy seeing students have that aha moment or help them through some tough material.

    This upcoming week is Build Week for my group which should free me up to focus on some career items that I've been putting off and there may be a change in my TA role but that's to be announced/determined. Next weekend I'm joining up with a friend from Lambda to do the Zeit hackathon so watch out for updates from that!

    NEXT Week 3 - CS17 TA & Career Work

    This week I moved to be the TA for CS17's second sprint group which meant that I gave the Algorithms guided projects again which made it a smooth week. I also spent some time this week practicing whiteboarding problems as preparation for coding interviews and assessments.

    Week: TA for CS17 & Career Work

    Since I had just done these guided projects (for Algorithms) the previous week I was able to focus on making adjustments where things didn't go quite as planned the first time around. The best change I implemented was using Repl.it multiplayer to engage the students and allow them more "hands on keyboards" time and have them answer my questions by typing some code out themselves. It helped keep my group engaged and I'm happy with how these week's guided projects turned out.

    I also had a couple of interviews and finished (as much as I could) getting JiuJitsio ready for the final day of the Lambda/Pioneer contest. It's not functional yet but it's nice having a project I can keep working on and watch it grow as it's in line with my favorite hobby so I doubt it'll ever by truly done =)

    NEXT Week 2 - CS17 TA & Build Week Team Lead for WebPT4

    2 weeks as a TA has had a huge impact on my programming confidence. Revisiting key concepts in computer science has been really illuminating and I look forward to continuing to learn as much as possible in my new role as a Lambda TA.

    Week: TA for CS17, Build Week Team Lead for webPT4 & Jiujitsio (Lambda/Pioneer April Tournament update)

    I've started to implement a lot of the feedback that I've received over the past couple of days as TA. I am getting more comfortable coding without a solution in front of me and being ok showing the process of how I debug/program and then providing the solution at the end if we fail to get through the demo. I think this helps show problem solving strategies and also helps keep the class engages as I am asking them to code along with me. I admit that I was a bit nervous at first, I've taught before but never in this format, and it's taken me a few days to find my groove but I feel like I'm starting to find my own style and am getting comfortable with this format. It took me a few days to get back into the swing of Python but once we got going I've surprised myself with how quickly I can whip up a demo or solve problems that once took me hours to complete. Feels like I'm starting to see it all come together now. I'm really thankful for the opportunity to TA and interact with the Lambda instructors & students in this role. I also had a couple of interviews this week where I could see that my time talking through CS topics as a TA has helped me better communicate what I've learned and accomplished during my time at Lambda.

    My build week team is doing great with GigaPets and I am struggling to implement features on JiuJitsio =/ Mostly due to time constraints. I'm happy knowing that I have an app I can work on for a long time even if I"m the only user =) The plan is to hack on it tomorrow and try to make it presentable for the final day of the April Lambda/Pioneer tournament which is on Monday. This is also demo day for webPT4 build week, gonna be a fun week!

    NEXT Week 1 - CS17 TA & Build Week Team Lead for WebPT4

    Wasn't sure if I was going to continue to keep writing after finishing the Lambda curriculum but I think this helps me stay focused and is a good way to keep myself accountable. This week I began my role as TA for CS17 leading guided projects on this weeks topic - Intro to Python. As a TA I hope that I can help students understand the material and/or guide them to the proper resource depending on the question/topic. I'm thankful to be given this opportunity and so far I am learning a lot in the process.

    Week: TA for CS17, Build Week Team Lead for webPT4 & Jiujitsio (Lambda/Pioneer April Tournament update)

    Most of my time was dedicated to studying Python and the Guided Projects so that I could deliver them to the best of my ability. I'm trying to take in all the feedback and adapt as quickly as possible to make it a worthwhile experience for the students. I will say that I enjoy Python much more this go around. Also I'm a team lead for the Gigapets build week project for webPT4, I have an awesome team that is crushing it. I didn't make as much progress as I would have liked on jiujitsio but I did debug my database and am now making progress on some routes. All in all a very productive week.

    Next week I'm leading guided projects on the topic of Algorithms and trying to implement some features on jiujitsio while helping my build week team to the finish line. Wish me luck!

    CS15 Week 9 - Web Servers

    This was the last week of CS instruction and, as it turns out, was my last week as a Lambda student altogether! It's bittersweet to be at this moment but I couldn't be more thankful to everyone at Lambda and am excited for what's next. First a recap of the final week where we used all of our skills and knowledge from previous Sprints to revisit web servers, this time in C.

    Day 1 & 2: Web Servers I - Protocols, Sockets & HTTP

    This week really helped paint a picture of how the web servers work and was a great final challenge. We had a week long project where we implemented our own web server in C. On days 1 & 2 we learned about protocols such as TCP & UDP, the sockets API and HTTP. In short, we learned how data is transferred over the internet. I pair programmed most of the week which was helpful. I probably should have done more pair programming sooner in Lambda but I'm glad that I started to do so when I did.

    Day 3 & 4: Web Servers II - Mime Types & LRU cache

    To wrap up we learned about MIME types, LRU cache & general career advice. In order for your browser to know what to with the data it receives it needs to know what type of data it is. MIME types are used for this reason. I was able to get my server to display different file types with this change to the code. We also learned about the LRU (Least Recently Used) cache which is one way to keep your recently accessed pages in a cache for faster retrieval. We used a hash table with a doubly linked list written in C to do our gets and puts to the cache. It was a tough two days of coding but we got it done and I felt nervous and anxious for a final tough Sprint.

    Day 5: Sprint: A Simple cURL-like Client

    This sprint challenges us to implement a barebones client that could make requests to servers in C. After reading the instructions and inspecting the code I was off to a good start on the sprint. At some point I had an interview with a PM who asked me questions on the content and I passed that portion of the Sprint. After inspecting the code I started to pseudocode my way to the solution. Then I implemented my actual solution. After mixing up some variables and general debugging I was able to get my code to display web pages. Pretty cool! I then went to test my server from the week and I realized that I didn't like how that output was being shown so I was able to fix some things on that project as well. Overall a very challenging sprint that took me into lunch to finish but I got it done and learned a lot this week.

    I didn't even talk about my Pioneer/Lambda tournament entry or the fact that I have been asked to be the lead TA for CS17 starting on Monday! So many things happened this week. I decided on a name for the jiu-jitsu app I'm developing for the tournament. Jiujitsio! There is a landing page up at: jiujits.io right now there isn't anything to do other than sign up but I plan on having some preliminary features done by next week, fully featured by the end of week 4 and a polish for week 5. It's really testing my ability to code in hurry. I can't wait to put more time into it.

    While I continue to search for my first role out of Lambda I decided to apply to TA for CS17 which starts on Monday. TA is a bit different from my current PM position for webPT4 in that there are guided project(s) that I will be leading in the form of a live lecture daily for the entire CS curriculum. This is going to absolutely force me to learn the material at a deeper level and will be a great learning experience. I'm going to be spending some time this weekend reviewing Python to prepare for week 1.

    Technically I still have a week left as a student which was a build week but I am going to participate in CS17's build week(s) as an instructor so I'll get that last one in when the time comes. Ultimately as the last blog post as a student I want to say thank you to all of the Lambda staff, students and community as well as to everyone in my life who has helped get me this far. I've learned a lot and so many doors and opportunities are open now because of this. I'm working on things I love and couldn't be more excited for the future. I'll keep you posted.

    CS15 Week 8 - Computer Architecture

    Another mind-blowing week at Lambda School. This week was dedicated to understanding how computers work at a very low level. We practiced converting decimal, binary & hexadecimal numbers, explored the components of a computer, saw how useful a CPU stack was, learned to handle subroutines & implemented our own CPU emulator in C. I also had my first hour-long technical interview this week.

    Day 1 & 2: Computer Architecture I - CPU components, decimals/binary/hex & bitwise operations

    It's hard to believe that there's only 1 week of CS instruction left before my final week of the full stack web development curriculum. What a ride it's been. We started a 4-day project to program an 8-bit emulator that was Turing complete in C. While a lot of the project was built out for us it took me awhile to wrap my head around the project and all it's files. The lectures were really interesting and it was nice to get a deep dive into computer architecture. I spent most of the afternoon looking through the project spec and familiarizing myself with the documentation. By the end of the 2nd day I felt like I had started to understand all the pieces and was making progress through MVP.

    I appreciated this week's lectures, I had never seen the decimal/binary/hex conversions and purposes explained so eloquently. It all started to click this week. I pair programmed with a friend from FSW14 day 1 and it was a great experience to problem solve together and hit MVP.

    Day 3 & 4: Computer Architecture II - CPU Stack, Subroutines & 1st Technical Interview

    Days 3 and 4 were nice. I had finally begun to know how to work through this week's project and was starting to see how the CPU stack was being used in conjunction with the CPU counter. I saw how a computer moved through memory to call subroutines and began to see all the pieces work together. It was incredible to think that this program could open any file I gave it and as long as I defined the instructions it was capable of anything. A truly powerful feeling.

    I had a technical interview Thursday morning which was the first one I'd been a part of. I think I did "OK" but know that I could have had a more elegant/optimal solution. I explained my thought process and was mostly able to implement the additional features I was asked to write. Either way this goes I would not be in this position had I not signed up for Lambda School.

    Day 5: Sprint: Binary, Decimal, and Hex Conversion, and Implementation of Conditional Jumps

    So today's Sprint took me a little longer to complete than I anticipated. Once I started to use some debugging techniques I learned in class and began to draw out how the program was supposed to work it was manageable to find a path forward. We were tasked with adding conditional jumps to our LS-8 emulator which was a challenging yet fair assessment of ours objectives for the week. We also had to answer some questions from a PM that related to the objectives and that was helpful as it is good practice for real interviews. Went a little bit over the time limit but managed to hit MVP and am looking forward to the weekend and spending some time building out my jiu-jitsu app.

    A very busy week but I'm really proud that I met MVP for the project and the Sprint. I also had a good experience with my first technical interview. I learned a lot about my strengths and weaknesses when it comes to these situations and know exactly what I need to review to improve next time. I got a chance to start my Pioneer project which was another nice accomplishment. It's going to be a jiu-jitsu app that will let the user track their sessions/drills/techniques & stats. I have the data model complete and have mapped out what the app and features will be. I've started to code it out and am making progress. This is fun!

    CS15 Week 7 - Theory of Computation & Hash Tables

    Nice week, starting to get the hang of the C language and am learning something new everyday. This week we learned a bit about the history of computers & programming while at the same time implementing arrays & hash tables in C. While I am looking for my first opportunity as I wrap up my time at Lambda School; I did go ahead and apply to be a PM for CS17 which starts at the same time as my final week in CS. Reviewing CS topics & helping others along the way while I transition to a full-time role is the current plan. I'm excited about all the possibilities in front of me and look forward to what's coming next.

    Day 1 & 2: Theory of Computation & Arrays

    Very interesting to hear about the history of computers, programming and how computers work at their most basic level. I feel like this was a very eye-opening week and I'm feeling more and more confident with my C skills and the ability to learn any computer language put in front of me. We had a 2-day assignment where we needed to implement arrays & array functionality in C. After going through the training kit & reviewing some videos from previous lectures I was able to complete the assignment.

    Day 3 & 4: Hash Tables

    The next 2 days had us talking about hash tables and why they are the single most important structure known to mankind. They are powerful because their read, write & insertion time is O(1) due to the nature of having key/value pairs stored in an object where the index of each entry is the hashed function's output of that key. If that sounds like a lot, don't worry, just know that they are awesome and being able to impement one in C has been one of the most satisifying things I've done so far. I felt like these past few weeks have been challenging/busy but it's nice to see things come together, even if it's just a HW assignment =)

    Day 5: Sprint: Theory of Computation & Hash Tables

    This was the first Sprint where we had to answer questions live as part of an interview with a random PM. It definitely helped me prepare knowing that I had to communicate my knowledge to another human being instead of just completing a coding challenge. It was a nice twist. The project itself had us work on some Boolean Algebra problems and then some exercises where we needed to solve problems with hash tables in C. It feels really great to be able to take what you've done during the week and then solve a completely new problem with those tools at the end of it. I was able to get through the core of the Sprint with a 2 (passing) and am going to go back and try the extra problem for a 3 over the weekend.

    Excited to go deep next week and get into computer Architecture after a successful week. I also have a fun project to work on for the next few weeks! I signed up for Lambda School/Pioneer's April tournament where you work on a project for a month and the top 5 students get a $2000/month 9-month living stipend. I have an idea for a jiu-jitsu app I want to work on and it would make a fun portfolio piece if nothing else. See ya next week!

    CS15 Week 6 (Flex) - Intro to C

    Since I was busy last week working on a project for a potential employer, I started the week in Flex working on 'Intro to C' one more time. This time I was in a smaller group reviewing the material and working on the same projects I was supposed to complete last week. This was really nice! My instructor Luisan is very knowledgable and I get a chance to ask more questions in the smaller group. I'm really thankful that Lambda has this as part of the program and I can pickup right where I left off. I felt a lot more prepared having heard the lectures once before and had fun working through the various C assignments this week. I also had 2 phone screens and 3 short coding challenges this week. Definitely feels like things are moving in the right direction.

    Day 1 & 2: Intro to C

    Over these two days we covered the basics of C starting with a bit of history and discussion over it's importance in computer science. We then began to cover some usage including how to include header files, basic types, arrays, strings, flow control & functions. We were given a two day assignment and I had some good momentum going into day 2. I was extra excited because I was able to schedule 2 phone screens that morning. The following day we continued our dicussion of C and began to learn about the memory model and how pointers work. We explored structs and dynamic memory. It was a lot to take in over two days but having seen it once helped a lot. I was almost done with the first assignment by the end of day 2 but since I was preparing for phone screens on Tuesday & Wednesday I didn't complete this project until the following day.

    Day 3 & 4: Processes and System Calls

    For days 3 and 4 we had another 2-day project covering processes and system calls such as pipe() and fork(). Using these system calls lets us take great control over our programs and it felt really powerful to be programming this "close to the metal". It was really interesting to learn what was going on under the hood and I felt a great appreciation for the language and how computers and programs operate in general. I mostly finished the project and felt prepared for the Sprint.

    Day 5: Sprint: Intro to C & Processes

    This week's Sprint challenged us to write an application in C that printed out a directory listing & size for the directory that the user specifies on the command line. At first this seemed a bit intimidating but after reading the instructions I was able to pull my knowledge of C syntax, a computer's memory model, structs and system calls to finish MVP before the end of the 3 hours. It felt great after not having time to work on these topics last week to successfully complete the assignments and pass the Sprint.

    This was a really fun and interesting week. I used to be intimdated about learning Computer Science but I'm confident approaching/learnign new material and have really grown since I started training jiu-jitsu and since I started Lambda School. With each interview/code challenge I get more confident and I'm very excited for what's to come.

    CS15 Week 6 - Intro to C

    Spent most of the week working on a Coding Assessment as part of a company's interview process so I didn't get a chance to work on as much of this week's C material as I would have liked. Going to be going over this material next week as a Flex student which is there for situations like this where you might need to spend extra time coding for a work opportunity and you can pickup with the material where you left off. I attended every lecture so I feel prepared and I'm happy with the way the project turned out so it was a win-win =)

    Day 1, 2, 3, 4 & 5: Setup, Testing, Finishing Touches & Next Steps

    I received a Coding Assessment Monday morning to build a UI for an API that delivered an array of reviews with the author's name, publish date, rating & the content of the review. This was the first coding assessment I've received since I started applying and I was really excited to get started. I spent some time sketching out what I wanted to UI to look and act like (design & functionality) was up to me. Once I had a plan in place I started to build out a skeleton of my project and install all of the dependencies I would need. I was feeling good so far.

    I took the opportunity to get some more practice using Hooks which was both awesome but very challenging when it came to implementing tests (write-up coming soon!). I spent a lot of time trying to not get my test suite to crash when trying to use state with my useContext hook. I finally managed to superficially run some tests but was ultimately disappointed that I couldn't get the tests that I wanted to try to run. Even though I was happy with the end result - an app which lazy loaded the reviews and then sorted by date, rating & had search functionality - I was still thinking about how I could have done testing or what the solution to my problem was.

    The next day (after submitting the project) React 16.8.5 was released, part of the release was a fix for what was crashing my test suite all week (Enzyme wasn't able to preserve the state of Hooks between shallow render calls). I'm excited to do a write-up of the process and I'll post a link to that here when I"m finished.

    Even though I wasn't able to successfully complete the assignments this week I'm looking forward to hitting C hard next week now that I'm done with this project. I had a great time building something from scratch and flexing those Hook muscles. 💪 Going to spend some time doing a write-up of what I've learned this week and get back to finish testing my newly created app.

    CS15 Week 5 - Build Week

    Build week was awesome. I had the chance to work as a team leader for a data science + web hybrid project using a Fifa 19 API. It was a great experience to work with other developers again and to experience a new role. It was a big task to put together a project in one week that was functional and had a data science component but our group had great communication and were commited to having a quality product by the end of the week. Our app is called Fifa Stronger Links and its purpose is to analyze teams in Fifa 19 & make recommendations to upgrade your team based on the "weakest link" theory. By demo day we had finished all the endpoints and were displaying a metric called the `Over Valued Ratio` for every player in Fifa 19. In the following weeks we plan on adding futher functionality for a recommendation engine to optimize your team by removing your most over-valued player(s). I'm excited to keep working with this group and to continue learning more CS in the upcoming weeks. I've also been applying to jobs and looking for that first opportunity out of Lambda School.

    Day 1, 2, 3 & 4: Planning & Building the App

    I had met this group the previous Friday and from that first meeting I could tell that this was going to be a great week. We had our first stand-up Monday morning and began to plan out our app and develop a gameplan. As team lead I was responsible for setting up all the repos, managing daily stand-ups, creating our Trello board, reviewing and merging pull requests to `master` branches, managing deploys, and overall management of the team. I made it a point to communicate with every team member and ensure that I was available for questions, pair programming or as a resource throughout the process.

    The toughest part of making this app was that our project lacked a wireframe and that it had a data science component on top of that. It took us awhile to decide on an minimum viable product (MVP) that our team would be happy with at the end of the week. Once we agreed on a MVP our front-end and back-end had to work with mock/dummy data while the data science students ran their analysis. It was stressful to get it all together once the analysis was complete but after some debugging and some group zooms we were displaying what we wanted and had reached MVP.

    Our group still wants to add more functionality to this app now that our initial analysis/endpoints are complete and to improve upon our current iteration so that it could be useful to players of Fifa 19 and make for a nice portfolio piece. You can visit the site in it's current state here:Marketing Pages, React Front End & FC Barcelona Example

    Day 5: Demo Day

    Our group volunteered to present to the rest of the build week cohort and it was a great point of pride to see how far this group has come from even just a couple of hours ago. We got a great reaction from the instrutors and people who were soccer fans in the audience. After the demo we met for a retrospective where we discusssed what we accomplished, what we learned, what went well, and what our next steps will be. The group had a very positive experience and we are plannning on working together over the next few weeks to polish the app up.

    Another great learning experience doing something I've never done before at Lambda School. I really appreciate my team for working well together and contributing to a nice fun app. I've learned some good lessons this week and I can't wait to give the app some polish, apply to more roles as a full stack engineer and start learning some C this upcoming week as we wrap up the CS curriculum. ⚽

    CS15 Week 4 - Graphs

    This was a tough week but I enjoyed learning and seeing how Graphs were implemented not just as a basic data structure but as a powerful tool to display and search through data and solve real-world problems. I also got to meet the group of students that I'll be leading through Build Week on Friday and we started to brainstorm some ideas of what to do with our app. I chose a data science/web hybrid project with a focus on the FIFA 19 database. Super excited to get started on that but first a recap of the week.

    Day 1 & 2: Graphs, Traversals & Randomness

    We covered a lot over these first 2 days, the reason being that we actually had a 2 1/2 day sprint challenge we started on Wednesday. This was the first time a Sprint was structured this way for me but I think that working on the fly and making adjustments are part of how Lambda operates and I've learned to be flexible. I learned that a graph is basically like a tree structure except instead of nodes having children up and down they can connect with any other node in the structure.

    After we learned the basic structure of a graph we began to explore more details such as weighted graphs and directed vs un-directed graphs, and cyclical graphs. We also incorporated the algorithms we had previously learned to traverse and search our graphs. We were assigned a 2-day project with some challenging stretch goals. It was nice that the assignment was spaced out and I was able to finish MVP on each of the 2 days.

    One thing that I'm doing differently during CS that I didn't do as much of during the web-dev portion is pair-programming. It's helped me so much to be able to ask questions and get instant feedback from my peers. We have a good group that hangs out after lecture and works on the assignments together. It's been nice.

    Day 3, 4 & 5: Graphs Sprint Challenge

    This sprint challenge was new just for our cohort and it was really simple (as far as total length of the solution code is concerned) but incredibly complex at the same time. We had to write code that would allow our player to traverse a 500 room graph. Since we had lecture on 2 days that we had this Sprint, the instructor went over the approach we should take and helped the class pseudo-code one possible approach. Some students finished MVP on day 1 but I needed the entire 2 1/2 days. I had a flaw in my mental model of the problem that I was able to clear up after day 2 of lecture. By that night I was close to a solution and was able to implement it that Friday morning. I'm excited to work more with graphs and go back and explore some of the stretch goals that I didn't get to this week.

    Hard to believe but the first month of the CS curriculum has come and gone. On the 5th week we get to participate in build-weeks as team leads. I chose a data science-web hybrid project which means we get 2 data science students in addition to front-end, back-end, and user interface roles. The project I chose involves the FIFA 19 dataset. I'm really excited to work in this role and be part of another amazing project with fellow Lambda students. Should be another fun week! ⚽

    CS15 Week 3 - Data Structures

    This was a nice week diving deep into data structures that are found across languages. We explored linked lists, queues, binary search trees and heaps. We also learned methods to analyze the complexity of algorithms that make up the methods associated with these data structures. While it was definitely a complex week the fact that we had a 4-day project this time around helped space the concepts out and allowed us to focus on each data structure at a good pace. I also had my first interview since joining Lambda School and was lucky enough to pickup elvis.dev🔥!

    Day 1, 2, 3 & 4: Data Structures

    Over the course of 4 days we learned about liked lists, queues, binary search trees and heaps among other data structures. We saw how to code each of these from scratch and the CRUD methods associated with each. Towards the end of the week we saw how these data structures can be used and built from each other and that's when everything started to click. Conceptually I feel strong after this week but I'm definitely going to spend some more time practicing these fundamental concepts. I'm also getting more and more comfortable with whiteboarding challenges with each passing week. We also spent a good amount of time optimizing our code and analyzing time and space complexities of different algorithms associated with each structure.

    I love how there is a big focus at Lambda School around learning and asking questions. The instructors trust us to explore and become self sufficient by the time we are near graduation. I finished MVP for this project on day 3 and spent most of day 4 reviewing and finishing some more cover letters and applications.

    Day 5: Data Structures Sprint Challenge

    The Sprint Challenge this week was interesting; it made good use of a Lambda function which deepened my appreciation and understanding of the Python language. We were tasked with writing an algorithm to traverse a binary search tree, optimizing some code, and analyzing the time and space complexities from our first 2 tasks. I used up the entire Sprint time to finish but I was confident with my responses.

    After meeting with my PM to discuss my solutions and a post sprint lecture by our instructor I felt good about the week and am excited to start studying and prepping for Graphs next week

    I'm excited to have landed elvis.dev🔥! when the `.dev` domains went on sale and am super pumped about all the exciting companies/opportunties that I'm applying to now that I've been endorsed by my career coach at Lambda School. Super excited to see what materializes in the coming weeks. 💪.

    CS15 Week 2 - Algorithms

    This was a tough week where we began to learn about different types of sorting algorithms and general problem solving techniques. We also started to do twice-a-week whiteboarding sessions, I got around to applying to some more jobs and began prepping for an upcoming interview.

    Day 1 & 2: Sorting Algorithms

    We had a 2-day assignment to start the week and the focus on was on modeling and implementing various sorting algorithms. It's nice that the assignments are spaced out over more than 1 day. It gives me a good chance at diving deep into the problems and understanding what's going on without moving too fast. The algorithms themselves weren't hard to understand or visualize but implementing them in Python was another story. It took me a bit to get MVP complete but after some trial/error and a bit of research I managed to finish MVP for this assignment. I felt like I was starting to understand Python a bit better after every coding session.

    Day 3 & 4: Problem Solving - Iteration, Recursion, Dynamic Programming

    These were a fun 2 days. We had another 2 day assignment, this time more general in nature and we had to solve the problems in the assignment using the techniques we learned in class and then analyze their run-time complexity and begin to think about how we can make our programs more efficient. They weren't easy and I finished MVP shortly before our second standup but they were very interesting and I am starting to get more and more confident about being able to tackle any problem put in front of me.

    Day 5: Algorithms Sprint Challenge

    This Sprint Challenge was super interesting and not what I was expecting at all. We were given code for a robot that only had a few functions and 1-bit of memory (the light on it's head). This robot was supposed to sort a list that was given to it. Seemed simple enough and I thought I could figure it out pretty quickly. I was wrong!

    There were lots of rules attached to what methods we could use and were restricted from declaring variables or accessing `self` values directly. I thought I had solved it initially but I had violated one of the rules and had to go back for a re-attempt. My second solution hanged for large lists. After talking to my PM I was given some more time to work on the project (until Sunday night).

    This problem was all I could think about! After sleeping on it, I busted out the deck of playing cards again and began to think like the robot again. I came up with a plan, re-did the project and got the list sorted! After re-watching the lecture vids I figured out how to make even this iteration of my solution better using bubble sort but since I had sorted the given list and passed most of the test conditions my project was at MVP and I could move on to prepping for the upcoming week 😅.

    Another fun, challenging week at LambdaSchool. While this CS portion is definitely tricky, I'm enjoying learning these topics and am starting to see how everything connects. It's really amazing to be able to go back to previous topics/lectures/podcasts of things that I am into, such as crypto, and be able to understand what is going on at a much deeper level. Similarly when researching algorithms, or problems I encounter while coding, I can navigate technical documentation or forums related to CS and know what most pages are talking about or at least begin to know where to start researching or what questions to ask. it's such a great feeling.

    This upcoming week we're learning about data structures, I have my 1st interview since starting LambdaSchool, and am planning on sending out a couple more applications 💪.

    CS15 Week 1 - Introduction to Python & OOP

    This week went by so quickly. Starting the computer science portion was a little intimidating but I've played with Python before and we did really well in labs so I wasn't too worried. This week we learned some Python fundamentals and explored object oriented programming. We also got our app onto our own domain: FlexLog.app and I scored my first interview since I began applying post career coach endorsement. 💪

    Day 1 & 2: Introduction to Python I

    Over the first two days we explored all sorts of Python features and syntax. We met our instructor, Beej Jorgensen, and our new pm groups. Beej has a pretty cool style where he really focuses his lectures on the questions that are asked and just explores the material and what could be without following a strict pattern. It's nice to know that we are able to learn on our own and make the lectures meet our needs at this point. Although I do wish we had some more examples for certain portions, there's nothing I can't look up or clarify through asking questions. This is a big point of emphasis in lecture and I can see why. I completed most of the assignment on day one and left a bit for myself to do the next day. The following day we got into classes and some file manipulation. Although it felt a bit overwhelming I reminded myself that this was normal when learning any new language and pushed forward.

    Day 3 & 4: Introduction to Python II

    For the next two days we were given another 2-day project, this one was to create a text based adventure game using OOP and Python. Simple right? 😅 Once I got started on the project what seemed like a long list of tasks started to get cut down one by one and it started to seem more manageable. I would get stuck on some syntax errors or the familiar typos but I felt like I understood what was going on for the most part. I know that the more reps I put in the clearer this will all become. On day 2 we started to dive deeper into OOP, came up with a bunch of examples of how to use OOP and learned how to inherit and override methods between class objects.

    Day 5: Introduction to Python Sprint Challenge

    Today's Sprint Challenge was pretty straightforward while still implementing some problem solving by throwing in new Python features that we have not used before. I was able to use my notes, some Google-Fu, and the Python docs to reach MVP. I did get stuck for a bit when reading content from a CSV file but I caught my error and everything made sense again. All in all a very fun week of Python.

    Beyond just learning Python this was also a fun week because we got our domain for our labs project up. You can check it out at FlexLog.app! Also I scheduled my first job interview after getting my career coach's endorsement and have a few other applications out in the wild. Let's see how this goes! Next week the topic in CS is algorithms. 😅

    web14 Lambda Labs 9 - Weeks #1-5

    Lambda Labs is a 5 week immersive capstone experience where I worked on a team with 4 other developers to create an app that tracks your fitness progress and scheduled workouts.

    Weeks #1-5: Labs 9

    As part of Labs I kept a development journal which gives an in depth recap of everything that occured in Lambda Labs along with links to the project, code examples & whiteboard videos I recorded each week. Elvis Ibarra's FlexLog Development Journal

    I'm writing this on Tuesday of the 5th week and it has been an amazing experience. During this time I was also able to re-do my resume with the help of my career coach. Check it out: Elvis Ibarra's Resume I'm excited to present our project demo on Friday and move on to CS & job applications.

    FSW14 Post Full Stack Web / Pre-Labs & CS - Winter Break - Week 3/3

    Just a short update this week as we are on break for 3 weeks for the holidays.

    This was a really busy week outside of coding so I'll keep it brief. I spent some time practicing Python & doing some coding challenges to stay sharp. I was busy getting the house ready for a couple of friends that are moving in so I had to miss the Hackathon but am definitely planning on doing the summer one! Hyped to start Labs!

    FSW14 Post Full Stack Web / Pre-Labs & CS - Winter Break - Week 2/3

    Just a short update this week as we are on break for 3 weeks for the holidays.

    This week I slowed down the work on my notes project to focus on Python & start putting some job applications out into the world. I was curious where I was "skill-wise" and began to look at some listings. I was pleasantly suprised to see that I met the requirements for many positions almost perfectly. Most of the time the only thing that wasn't a match was the experience. There were some really interesting companies I saw that needed people with the skills that I just picked up over these last few months. It's a great feeling knowing that the hard work is paying off. I figure at worst I'll get some interview practice out if it. There's an exciting week up ahead with the LambdaSchool winter Hackathon happening and hopefully I can finish implementing collaboration on my notes project now that I'm almost done applying to the companies that caught my eye.

    FSW14 Post Full Stack Web / Pre-Labs & CS - Winter Break - Week 1/3

    Just a short update this week as we are on break for the holidays.

    Week 1: Updating Lambda Notes w/Authentication

    This week I worked on updating my Lambda Notes project to have working authentication that would show only the notes belonging to the logged-in user. I ran into many roadblocks but was able to power through and get things working after dropping in and out of the code over the week. The last thing I want to add to this project other than a final styling and responsiveness check is the ability for users to share notes with each other. Once I implement that I can move on to studying some Python and maybe dabbling with some Vue.

    I also want to start applying to some jobs to see what's out there and start exploring the opportunities I see. See you next week! =) Checkout my project and drop me a friendly note! (Mobile Responsiveness in progress): Lambda Notes

    FSW14 Sprint 15 - Project Week: Back End

    15 weeks down, 1/2 way thru Lambda School's full stack web development curriculum. What a ride. Today I presented the project that I have been working on all week to my entire cohort during demo hour. I was nervous but I knew that my project worked and that even though I didn't have the fanciest of features, it was functional and I had built it using all the skills I had gained over the past 15 weeks. I deployed my front end (built with React/Redux) to Github Pages and the Back End to Heroku. I am so happy that it went well and that I was able to pull of this project and hit some stretch goals. I'm so glad that I decided to apply and attend Lambda School. As my instructor Luis said "What if I told you that Lambda Notes was only the beginning?"

    Day 1: Setting up the Server & Updating the Front End

    Got right to work and setup my Trello board with MVP and some stretch goals. I felt confident that I would be able to finish the project but was also slightly nervous because I had been confident in the past only to finish right in the nick of time. I was able to wire up my server and started to adjust some of my routes to point to the new backend instead of Lambda's pre-built server. It was great to make significant progress on day one.

    Day 2: Deploying the Backend & Updating Routes on the Front End

    I essentially hit MVP on this day. I had my front end and back end working nicely by the end of the day but I knew there was a problem. I had not changed my production to be postgres which would give my database real persistence. Our instructor was going over this in the following lecture so I made sure my project was good to go otherwise. Things were ready.

    Day 3: Postgres Update & JWT Authentication

    Our instructor showed us how to deploy our backend to Heroku and make modifications necessary to change the database to postgres in production. This brought a few tiny changes I needed to make to keep it all working the same (Sqlite3 to Postgres) but nothing too complicated. After I had this setup I spent most of my time getting an authentication system to work. I was so happy to see a JWT token after a user had logged in after getting it all setup. The app had come a long way in 3 days.

    Day 4: Small Tweaks and Presenting to the Cohort

    Now that my authentication was working I started to make some modifications to the front-end with the new routes and logic. I commented this out just before the demo because I ran out of time in incorporating this logged in status to a user's personal notes but is definitely something I"ll be revisiting over the break. The demo was the most nerve-wracking part but I quickly got over it once I committed to doing it and prepped my project with a practice run-through. Really though, I was so happy it was all working with about 2 minutes to spare. It went well and it was bitter-sweet to be done with this part of the course. Some of us will be moving onto labs, some to CS and some will be full-time PM's. I'm not sure what I'll be doing yet (Labs or CS) but I'll keep you posted.

    It's Friday morning as I write this piece and I just found out that I was selected to be part of a pilot group that is doing Labs before the CS portion of the curriculum 😃. This morning I saw the current Labs group present and was blown away by all the awesome projects. I'm looking forward to the next step in this awesome journey. Over the break I plan on working some more on the playlist app that we began working on over Thanksgiving Break, re-learning some Python and learning some Vue.js. Checkout my project and drop me a friendly note! (Authentication & Mobile Responsiveness in progress): Lambda Notes

    FSW14 Sprint 14 - Testing

    Another fun week at Lambda School. This week focused on automated testing which is a way to be confident that your code will do what it says it does. Although some of the assignments were a bit tedious this week I appreciated all the practice I got by the time the last lecture came and I saw my peers guide our instructor on a complete end to end test. It was awesome. I was able to finish the sprint where we used Test-Driven-Development (TDD) to create a simple Web API using Node.js and Express.

    Day 1: Introduction to Automated Testing

    On day one we were given a broad overview as to why testing is important and were shown how to use Jest to automate tests for you. We were then given a 2-day project to write lots of test for. I was able to finish the day 1 assignment but there sure were a lot of tests to write. Automated testing is pretty cool, I liked how I could check for something before I created it and that would guide how it was built. We talked about the benefits and downsides of coding using test-driven development. It was hard to see the connection to a full application since we didn't get to React testing until day 3 but it was an interesting new topic.

    Day 2: Automated Testing II

    On the second day of our intro to automated testing we talked some more about testing philosophy and explored how to setup our tests to work asynchronously. We got a lot more functions to test for part 2 of our project and I ended up running out of time because I wrote too many tests for the first couple of functions without realizing just how many we had to do.

    Day 3: Testing React Applications

    This was a very cool lecture. There was a lot of practice creating the React app from scratch which was welcome since it's been a few lessons since we've been required to build with React. We used Enzyme and Jest to snapshot our components and test what they do. I didn't finish the project on time because I was still a bit confused with how to use the Jest documentation in conjunction with Enzyme but luckily I've gotten a lot of practice and I was able to debug by the end of the day.

    Day 4: Testing Web API's

    We finished our front end curriculum with a 🔥 lecture where our instructor used members of my cohort to pair program a full end-to-end test for a Web API. It was awesome to see my classmates crush it and be able to take our instructor step by step through the process. We learned how to use an npm module called supertest that loads an instance of our server which lets us make requests and test our assertions about the responses. I struggled a bit to get it setup but once I fixed my issue (it was in the setup of my files) I was good to go. I used most of this day's knowledge in the next day's sprint. I didn't quite finish everything I needed to do for this project since I ran out of time with my error but I was confident that I could do the sprint since everything was working.

    Day 5: Sprint 14 - Testing

    For our last regular sprint of the front-end portion of the curriculum we used Test-Driven-Development (TDD) to create a simple Web API using Node.js and Express. I decided to go for it and implement a stretch goal of using a database to do a full end to end test. I ran into an issue where my routes where in the same file as my `server.listen` which was causing an issue with my tester. It was a rookie mistake which cost me a few hours. Once I cleaned it up I had a nice looking database which will serve me well in next week's Sprint Challenge. Every Sprint Challenge so far has taught me something new in one way or another.

    This was an enjoyable week after I got through the tediousness of learning tests for the first time on a bunch of functions. I understood why we were doing it, there's lots of different types of problems we'll see as engineers and we should be able to apply our skills to many different scenarios. I loved how it all came together when we built a React app with snapshot testing and also tested the web API we built. I'm stoked for project week and to play with all the skills I've learned during our 3 week break.

    FSW14 Sprint 13 - Authentication

    Two weeks have passed since my last post, I will talk about what I worked on over Thanksgiving break and then jump into what week 13 at Lambda School was like. Over the week long break I started to work on a project that a few of my peers in my small group and myself thought of to push ourselves further and keep our skills sharp. This was a great experience as it gave me a taste of what it would be like to work in a team and also gave me practice reading documentation and implementing something that I did not know how to do before. I learned how to use the YouTube API with a JSON web token to make requests on a user's behalf using permissions from their YouTube account. We decided to build an app using React and although we didn't get a finished product we have a solid start and I will definitely post more details as we develop this further.

    Day 1: Introduction to Authentication & First Day as a Part-Time Project Manager (PM)

    Authentication is definitely a complex topic but the introductory lecture made starting the afternoon project pretty straight forward. We got a big overview as to what authentication was and were given some good guidelines and best practices for things we should be thinking about when we work on authentication projects. One of the things we learned how to do is use a library to hash passwords before saving them to a database. I was able to follow along with the lecture and finish the MVP for day 1 of our first 2- day project of the week.

    In the afternoon I started day 1 as a PM for the Full Stack Web Development Part-Time 4 cohort. I'm using it as an opportunity to see the curriculum through a new lens, network with more Lambda peers, and get some real world experience working in tech. I have a great group of students and look forward to helping them get through Lambda and to see their growth as the weeks go by.

    Day 2: Using Sessions and Cookies

    This was a very enlightening day in terms of the new information I picked up and what I learned about how the internet operates. I had heard of sessions/cookies before and had a rough idea of what they did before Lambda but I had never bothered to really research them or learn how to use them. To describe what they do, they allow you to retain information about your client so that they do not need to log back in if you don't need them to and their information will still be shown to them upon returning to the site. After this lecture I felt everything coming together and could see myself delivering a full website experience using everything I've learned so far. It was a great feeling. The lecture made it so that you could complete your project if you followed along so it wasn't too bad to hit MVP for this day. I definitely feel like I need more practice in general but I for sure am getting that each and every day. 😄

    Day 3: Using JSON Web Tokens (JWT)

    We started another 2 day project on day 3 of this week where we began to learn how to add authentication to an API using JSON web tokens (JWTs) and creating a React App that would use this authentication. The lectured focused on JWTs, what they are and how to use them. I learned that a JWT has three parts; a header, a payload and a verify signature. We discussed how to use that token to authenticate a user and I was able to finish day 1 MVP by following along with the lecture. This was the same material that I had done on my own when working on my Thanksgiving project the week before so I thought that was kind of cool.

    Day 4: Client Side Authentication

    This was definitely the meatiest day of the week in my opinion because we had to take all our authentication knowledge and combine it with all our React knowledge to create a functional app that would authenticate a user using a JWT. With JWTs the client is responsible for holding onto the token and sending it on every request. I re-watched the lecture and followed along closely changing items that were unique to my server. I didn't finish on time but I was able to wrap up right as my PT job as PM was about to start. I felt ready for the Sprint and did not do a review for this one (mistake!)

    Day 5: Sprint 13 - Authentication (RDBMS)

    This sprint challenged us to implement a User Authentication System that used the bcrypt libary and a JWT. Had I written my review beforehand I would not have gotten tripped up by some of the "easier" parts of this challenge. For me the most challenging part was actually being able to import/export all the pre-built files correctly. I appreciated the setup once I figured it out and finished MVP because I was able to identify ways to improve my own practice. Once I figured that out it all fell into place. I plan on spending some time making a React front-end for this app over the weekend to improve my score from 2 stars (finished MVP) to 3 stars.

    Another busy week at Lambda School but busy in the best way. I picked up a lot of material and met a lot of cool people in the part-time program. I now know that I'm able to pickup a new technology and be able to learn them in a relatively short amount of time. I look forward to our last full week of instruction next week when we get into testing before starting our back-end project and wrapping up the front-end portion of the curriculum. It's gone by really fast and we've come really far in a short amount of time, amazing.

    FSW14 Sprint 12 - Adding Data Persistence to Web APIs

    This week has been packed with information. This week focused on databases and how to use them with our Web APIs (Application Programming Interface(s)) It feel's so nice to make a database from scratch and really get to see what all these words in your code finally mean. It's really magical. I appreciate databases like I never have in the past. This was also the first time our cohort was asked to apply to become project managers for an upcoming part-time cohort. I applied for the position on Sunday, the day the application opened, read on to day 3 to see how my interview went and onto day 4 to see if I got in or not!

    Day 1: Introduction to Relational Databases and SQL

    Day 1 focused on the concept of a Relational Database and how to write Structured Query Language (SQL) to communicate with said database. This was definitely the "easiest" day of the week. The language is really straight forward and easy to use. Our project was to write some queries which I was able to do after looking at the documentation examples and to create a table using SQLite with some constraints on the entries. I finished MVP and was feeling pretty good about the day. I should note that this was a day off from live-lecture due to a holiday but we were still expected to do the project after watching a pre-recorded lecture.

    Day 2: Inserting and Modifying Data

    After this week I'm starting to think that writing a review Thursday night isn't good enought and I should be doing this every night... too much information and this has been so helpful to my understanding. For example, I wasn't even completely clear what knex was doing until the morning of day 4 even though I successfully used it on day 2. Before we get to that we learned how to manipulate data using basic CRUD commands in SQL and then learned how to use knex to write these same commands but to our web API. This is where I got a little lost and didn't realize that the knex docs were meant to be used very literally. This was completely my fault in that I didn't read the training kit closely enough, it was even in bold letters! 🤦 I don't know, I think that I was on autopilot and wasn't even aware that I was using knex and not SQL somehow. This wouldn't clear up until the morning of day 4.

    Day 3: Querying Data, Migrations, and Seeding

    This day focused on using Knex to create migrations which made our tables and our seeds to send data to those tables. I also had my interview for the PM position on this day. Tip to future PM applicants, make sure your webcam is on and in front of you (was one of the things I was commended on). The interview went well and I was told that I would find out either way the following day. Back to the databases... migrations are any changes to our database. The way knex does this is really cool. I had some issues which my peers helped me fix by doing a rollback and then remigrating my tables in the right order. It was a stretch goal to use a join for two tables which would allow me to display records from each that were related and that was what got me thinking about what knex truly was. I got stuck on this problem trying pure SQL methods and went to sleep frustrated.

    Day 4: Introduction to Data Modeling

    This day was all about the big picture of how to model a database and what sorts of relationships and tests you should be thinking about. We covered the types of relationships data can have "one to one", "one to many" and "many to many", including how to implement these with primary keys/foreign keys. I definitely need to see some more examples but this was great for a an intro to the topic with a real demo and project. Speaking of the project it was really detailed today. Before I started working on it however I asked a peer and a got help from my PM to fix my stretch problem from the night before. The problem was that I was not using the knex documentation correctly. Once I saw my error the week became very clear.

    I got back to the project of the day. We had to build the back-end for a recipe book with all kinds of constraints. I spent most of my time thinking of my data structure and having my aha moment with knex playing with migrations and seeding. I was confused on how to reference a separate table but this was mainly due to being tired from a long day. This might be my only 1 star project in my Github repo. Didn't finish MVP because I ran out of time.

    Also, I got the part time PM position! It's official. I will be a PM for FSWPT4 starting after Thanksgiving break. Let's me see the curriculum from a fresh perspective and lets me be more involved with Lambda and help some people who are going to be in a position I was in just a few short weeks ago. Looking forward to it! So glad I wrote this, I feel ready for tomorrow's sprint.

    Day 5: Sprint 12 - Relational Database Management Systems (RDBMS)

    For this sprint we used Node.js, Express.js and Knex to build a RESTful API for a project tracker application that persisted data to a SQLite database. There were definitely a lot of moving parts to this project and I needed ~45 minutes extra to finish MVP but I as super proud of myself for troubleshooting and getting it setup the way that I wanted to. After lunch we met with our instructor and he went over some of the nuances of the project and showed us even more material before sending us off to break.

    To wrap the day up I had my orientation for my lambda PM internship and the orientation with the cohort that I'll be a PM for. It was fascinating to hear the orientation again through a new lens. Looking forward to my new role and am thankful to Lambda for the opportunity.

    Glad to get to a break in the program but not a break from coding! Currently in talks with my small group in my cohort to work on a project over break, we have a lot of ideas we just need to decide on one and go =) Some of the things we are talking about I would have had no clue how to implement a few weeks ago but am super confident we could come up with something decent in a week's time. I might let you know how it goes!

    FSW14 Sprint 11 - Building RESTful Web APIs with Express and Node.js

    Writing this blog is has been a great way for me to either prepare for a sprint (I'll start writing Wednesday or Thursday) or review what I've just learned (I'll start writing Thursday or Friday). This week was the latter, and I definitely needed it. We started the back-end portion of the curriculum which means we started to learn about what happens on the server side of the client-server relationship. It was a bit like learning how a magician does his tricks. For our sprint this week we built an API (Application Programming Interface) that performs CRUD (CREATE, READ, UPDATE, DELETE) operations on a pre-built data access layer.

    Day 1: Introduction to Node.js and Express

    Monday was another fresh start as we started to dive into the back-end portion of the curriculum. It's never a dull day at LambdaSchool. We met our third instructor and started to get into new material right away. We began to learn how to use Node.js as a platform to write server code that can communicate with clients (other computers) using JavaScript. On top of that we brought in Express which is a web application framework atop Node.js that lets us add routing and middleware. A lot to digest for one day but our instructor was really patient and gave us great code-along demos. We started a 2-day project whose day 1 objective was to successfully implement a GET request. I was feeling tired but solid on the instruction and the project by the end of the day.

    Day 2: Server-side Routing

    In day 2 we delved deeper into Express and saw how it gave our application a way to handle different URL+HTTP method combinations. We used it to send requests that manipulated the data on our server in different ways. We used Postman as a tool to manually test our requests which was valuable when it came time to do our projects this week. We also saw how to read data from the query string, request body and route parameters. It always seems like a mountain of content at first but the instruction and the projects help bring it all together in a digestible way. I'm lucky to be able to put in the time to do the work. That is one thing that is necessary to be successful. You have to be fully committed. That being said I was able to finish this 2 day project and whip up a quick React app to view the posts that my server was spinning up. We're moving fast.

    Day 3: Express Middleware

    This day focused on using middleware to extend the features that were provided by the Express framework. I enjoyed that our instructor demoed how to write custom middleware which made it easy to understand what Express was doing under the hood. We started another 2 day project which had us practicing more endpoint routing and writing our first custom middleware.

    Day 4: Deployment and Good Practices

    As I write this I'm impressed at how much we've covered in one week. On the fourth day of instruction we saw how to use error handling middleware, learned how to use Express Router to organize our code (which made my server file a lot cleaner and shorter) and deployed to Heroku. All in a day's work. Once again I was able to finish this 2-day project on time and wrapped it in a presentational React app to display a portion of our data. I thought the next day's Sprint would be straight forward... I probably should've studied or written this recap earlier.

    Day 5: Sprint 11 - Node-Express

    For the sprint this week we were tasked with creating an API that performed CRUD operations on two data sets that were pre-built for us. (Sprints are only 3 hours long). I struggled getting a 404 request to return when I wanted it to, had I learned anything at all? I was stumped. And hungry. I reached out to my project manager and let her know that I wouldn't be finishing my Sprint on time but would debug and submit after lunch. As I was eating I had my lightbulb moment! I was expecting something of my method that it couldn't do and had actually solved a similar problem earlier in the week. I got home, debugged my code and submitted my project. Mission accomplished.

    After my one-on-one with my project manager I felt relieved to hear that I wasn't the only one in my cohort to have had that issue with the Sprint. I'm amazed every week at the new skills we learn. Next up, we add data persistence to our web APIs.

    FSW14 Sprint 10 - Project Week: Front-End

    It is Friday morning the day after we (FSW14) completed Project Week for the Front End portion of the Full Stack Web Development Curriculum at LambdaSchool. We were tasked with building a minimum viable product (MVP) for a note taking app in React called "Lambda Notes" for our "client", which was our instructor. This project was really challenging but so much fun. I completed MVP early Thursday morning but didn't put the finishing touches on the project until about half an hour to demo time. Probably the most thrilling week so far in my time at LambdaSchool.

    Day 1: Project Setup & Getting the Data

    Having been through a project week already while attending LambdaSchool I was much better prepared this go around because I kind of knew what to expect going in. The project was a to-do notes app that we had to create using React given some design files which were just visuals for what the app should look like. We worked on the project from Monday to Thursday at 2pm at which point some of our cohort presented to the group and that was followed by a smaller group presentation with your project manager. I had setup my Trello board the previous night and had an idea for what MVP looked like. The app needed to fetch notes from a server, display them, display a single note, edit a note, and delete a post. Using Redux was a "stretch goal" and thus not required but I felt comfortable with it from the previous week and it seemed like a logical choice for this app, I cleared that with my Project Manager and got underway.

    Github Elvis Ibarra Day 1 Progress

    The above image is from my Github account and shows the "commits" or saves that I did throughout the day. Day 1 was pretty smooth. I wanted to start easy and not overwhelm myself by trying to implement all the MVP features at once so I focused on getting my notes to appear using a POST and doing the styling for the main portions. I was feeling good about my progress after day 1 and was at 2/6 on the MVP list.

    Day 2: Posting a Note & Reload Issues Emerge

    I started to run into issues that would last up until Thursday morning when it all came together. I focused on getting a POST request to work and was having trouble getting my page to render all the notes after using a POST request without doing a hard reload of the site. I tried lots of different things and at the end of the day I decided that at least it was working and that maybe if I focused on implementing some of the other MVP features I would fix this on time. This is when I started to get a working Route implemented which got me to look into WithRouter which solved my reload issue. Well, that and calling another GET request after my POST request in the POST action. I started to wrap my connect with a WithRouter function from my middleware and that moved my Router methods from the Context area of my React tools to my Props. If that made no sense to you don't worry, I basically fixed my reload issue which gave me confidence going into day 3. If I had a working POST method, then PUT and DELETE weren't far behind.

    Github Elvis Ibarra Day 2 Progress

    I was at 3/6 MVP and feeling okay about the project and the week so far. For some reason I thought we had until Friday for this project and something clicked on this night that the project was actually due Thursday! I still thought I could wrap MVP up by Wednesday night so I wasn't too worried.

    Day 3: WithRouter Saves the Day MVP a Day Away

    Wednesday was Halloween and also the the day I spent the most time with this project. It was quite spooky. I spent most of the day coding away and by the end of the night I had gotten MVP with some quirks and styling that didn't feel quite right. I definitely was not happy with my product that night but I had the following day to change my simple inputs that were placeholders for a full form and get my delete modal finished which is what I needed to feel satisfied with my project. I was feeling awesome about being able to problem solve and make progress every single day.

    Github Elvis Ibarra Day 3 Progress

    Even though I was at 6/6 on the MVP list I was not complete in my head until I had a working modal and a form with multi-line text and not just 2 inputs on a screen. 1 day to go.

    Day 4: Demo Day - Lambda Notes - FSW14

    The delete modal was a little tricker than I thought but since I had most of the morning to focus on it I got that and my form conversion done right at around 1:30pm. It was so cool to see something that you created come to life and work as expected. Sure there are things I could improve but this was mine and it worked =) At 2pm we all met to watch some of our classmates present. Awesome stuff. We have some very talented individuals in my cohort who did some really cool things with their projects. One of the major differences from this go around to last project week was that this time my reaction was "That's awesome, I can see how they did that and can't wait to implement that on my next project." instead of "Wow, that's so awesome, I have no idea how they did and I'll never be that good".

    Github Elvis Ibarra Day 4 Progress

    At the end of the day I presented a 6/6 MVP project to my group which used Redux (1 stretch goal) and I am hosting on Github Pages here: Front End Project - Lambda Notes

    Such a fun week. I learned so much and am so lucky to have such an awesome group of people around me. I could not have pulled off this project without the awesome instructors, project managers and my fellow FSW14 cohort at LambdaSchool. Even though we've only known each other for 10 weeks it truly feels like a family. Which reminds me that this was also our last week with Dustin Myers who was a great instructor and am thankful for the time he spent with our cohort. As a final note my project was initially built out of 2000px x 2000px design files which is why the app seems huge and I didn't have time to optimize it for smaller screens or anything like that since I spent so much time getting it to work and display correctly at this size in the first place. There's plenty more I would improve but I'm happy what what I got.

    FSW14 Sprint 9 - Redux

    As a wrap up (content-wise) topic to the front-end portion of the Lambda School Full Stack Web Development Curriculum we explored Redux in week 9. Redux is a state management system that can be used in conjunction with React to develop large scale applications. Its uses are to provide your application with a single source of truth without having to worry about passing state around from component to component like we were last week. As I write this week's post I am working on fixing my Sprint project (my Smurfs needed a reload to show) but overall it was another week full of new content and fun breakthroughs.

    Day 1: Redux Fundamentals I

    Ok, now that my Sprint project is fixed I can finish my weekly blog post. On Monday we were introduced to Redux and it was definitely a lot of information but the project was manageable and after asking a cohort member for some help with one part of my code I was done with the first project and had begun to setup the next day's project. At this point I had an idea of what Redux was and how to use it but was still iffy on some of the basics such as the difference between the Redux state tree and the React component states. These concepts cleared up with some more practice on days 2-5.

    Day 2: Redux Fundamentals II

    On day 2 we explored how Redux is based on the immutability (don't mess with data) principle and the methods/techniques we can use to take advantage of Redux's state tree. Our project was to re-create a project we had completed before but using Redux, this was a to-do list app. I didn't finish on time but this project was the one that started to clear things up. I didn't finish because I was mixing up component state and my redux state. After some research I came across a GitHup post where Redux's creator is addressing this exact topic and explaining the differences and when to use which. It was great to see the main developer involved in his project and helping others out who are trying to use his technology. I started to see the possibilities with Redux and how smooth it could be.

    Day 3: Async Redux - Redux Thunk I

    This was a powerful day. We learned about middleware in Redux that lets you do things to actions before they hit the reducer, which, in turn, let you do asynchronous calls in your applications. We rebuilt another previous application today which interacted with a Star Wars server and returned some characters. I got this project done on time which was a great relief from the day before and gave me a confidence boost in learning Redux.

    Day 4: Async Redux - Redux Thunk II

    The last day of instruction for the week and we explored asynchronous calls in more detail. We rebuilt yet another application we had worked on before but this time there was no pre-provided code so we had to whip up the whole thing from scratch. This was a pretty cool experience and it definitely prepared me for the next day's Sprint challenge. I didn't finish what I wanted to on time but I got the bulk of the project done.

    Day 5: Sprint 9 - Redux Smurfs

    After a week of re-working projects it was only appropriate to re-work a prior Sprint as well. We were tasked with building a React/Redux application that interfaced with a Smurfs API asynchronously. I finished on time but didn't have the functionality I wanted. I hit some stretch goals with deletion but still haven't mastered an edit feature. After spending some time today looking at my code I fixed my mistake which involved not passing a dispatch correctly when adding a Smurf which caused me to have to reload the page to se my new list. Fixing this cleared up many things and it's always a good idea to check out the solution to the Sprint after you pass to see what you could've improved.

    The major difference I noticed in how I worked this week compared to last was that I was less flustered when I didn't get something right way. I remembered a theme during the after hours lecture which is that the code is doing precisely what I told it to do and that each error has a meaning and a purpose. Sometimes it may be tough to find out just what that is but that is our job as programmers. This made redux issues more enjoyable and the learning process a lot smoother this week. Next week is project week which means our last week with our 2nd instructor and another week-long project where we get to display all we've learned so far.

    FSW14 Sprint 8 - Single Page Applications

    This week we focused on learning two packages with React: Axios and React Router. Now that I've had 3 weeks working with React I'm starting to get comfortable building with it. Being able to start a local server and interact with the data was fascinating to use, and simple too now that I have more reps under my belt. I'm finally starting to appreciate how useful React can truly be.

    Day 1: React Router I

    We started the week learning the difference between client-side routing and server-side routing. The pros and cons of having all your data brought in at the beginning vs pinging a server and having your page reload with each request. We then started to learn and implement the Client Side Routing Library (React Router). This gave us the ability to create dynamic routes using URL parameters to display our components with whatever user interaction we needed. Being able to match items to URL paths and seeing how easy it was gave e a great sigh of relief after a tough two weeks. We had two projects to complete over the next two days relating to this topic. I finished the first pretty quickly that day and left about half the second project for the next day. A smooth start to the week.

    Day 2: React Router II - Sub-routes and Link/NavLink

    This day we dove deeper into React Router and although it was a bit more intense (content-wise) I was still able to follow along. Looking back I didn't appreciate how the render prop or the history object was used until it came time for the sprint. With React Router you can pass data to components via the render prop, I didn't really understand what this meant until Friday. I was also confused with the history object that React Router has but it all cleared up on Friday. I truly appreciate React Router and its intricacies until I had used it for a few days in a row. I finished my project but didn't hit stretch goals. I felt at the time like I understood the basics but still needed practice to be able to implement any of the stretch goals we were given. Link and NavLink are used in React Router to link as the names imply but NavLink can add an active-class to a selection which is awesome for styling purposes.

    Day 3: HTTP/AJAX I

    On day 3 of this week we learned what AJAX meant (asynchronous JavaScript and XML) and learned how to perform requests to an external server in order to retrieve, create, modify, or remove information. We were also introduced to Axios which is a library for performing promise based HTTP requests. These promises are what allow you to make multiple asynchronous requests and continue with your apps operation until those requests are fulfilled or rejected. It was pretty straightforward but the project we were using to explain the concept was pretty complex and interesting. We learned our request via a web store applications whose items we could add, edit, or remove. Cool to see the concepts we were learning in an actual application. Although some if it wasn't clear in real time seeing the videos again and being able to pause and follow along was key for me. I realize through this journey that I'm not great during live lectures. I try my best to keep up but if I mess up a keystroke or for whatever reason don't follow along for a few minutes I'll be lost and just watching along instead of coding for myself. I much prefer watching a prerecorded lecture where I could go at my own pace. That's just a personal preference. I appreciate the live lectures 100% but I know that moving forward I will appreciate them way more knowing that I don't always have to keep up and can and should be instead going back and watching at my own pace at a future time. Or, even better, a cool thing about Lambda School is that the previous cohort's videos are available for us to watch. So instead of going through the training kit and trying to read and do the exercises this week, instead I watched all the videos from prior cohort's lectures and followed through those. When it came time for our live lecture I got lost (coding along) as expected but I had already seen and understood the material so I wasn't stressing. I was still able to do the projects because I had put in the time to watch and code along to the exercises the night before, same instructor and everything! I love the ability to play a video at 2x or pause for 20+ minutes if needed. Especially with all the new content we are consistently learning.

    Day 4: HTTP / AJAX II - Axios

    We finished our online store demo using Axios to add, modify and delete items. I completed my project for the day but I wasn't able to hit stretch or delete/modify my entry. It wasn't required for our sprint the following day but it is something that I'm working on learning. I also am at 90% on Code Academy's second React course which helped clear a few things up again this week, have to mention it as a fun learning tool that I'm using along with Lambda School.

    Day 5: Sprint 8 - React (SPA) Smurfs

    This project was fun. We built out a CRUD (create, read, update, delete) application that consumes an API to update Smurfs being shown on screen. I hit MVP way before time was up and I was surprised at how well I had done compared to the two previous weeks. I even hit a stretch goal of implementing a delete feature. POST is still tricky for me to implement on a solo project but it is something I"ll have down by project week with lots more practice to come.

    2 months later and I have no doubts that I made the right decision with Lambda School. I'm learning more than ever before and couldn't of asked for a better experience. Next week we are learning Redux which is a state management system and then we have our week long project week for this front end section of the curriculum. This is going by so fast!

    FSW14 Sprint 7 - Intermediate React

    This week we learned some more advanced React techniques and worked on a week long project to create the User Interface for an Instagram Clone. It was definitely the toughest week by far but at the same time I feel like my preparation and truly trusting the process helped me successfully finish this week's Sprint challenge which seemed daunting just a few days ago. I also pair programmed for the first time this week which was a fun learning experience and something that I need to go out of my way to do more of.

    Day 1: React Tooling

    We had this day off for Indigenous People's Day but we were expected to complete Day 1 & Day 2 parts of the week-long project by end of day Tuesday so we were still expected to have Day 1 work done by Tuesday morning. We were free to do this anytime starting Friday afternoon. I spent the weekend working on Code Academy's React part 1 course because I still felt a bit shaky and I'm glad I did. It was a confidence boost #1 because I was amazed at how much I already knew and but #2 I was able to appreciated some things that I missed or just saw in a different light going through these exercises. I got through the course over the weekend and while it definitely holds your hand a bit too much and is not as deep as the Lambda projects I appreciated going over the basics one more time. Learn from wherever you can. Anyway, on Monday I started and mostly finished the project for the day. The content was all about setting up a React project on your local machine. It seemed a bit redundant since many of the tutorials when we started React were on this topic but I can see why it was necessary to go over this since we had been in a code sandbox for the previous week (at least for instruction). We also went over how to use PropTypes to 'type check' data being passed to our components. Basically putting a check into our code for ourselves and future developers to know the type of data that a component expects. I didn't appreciate how useful this would be until later in the week.

    Day 2: The React Lifecycle

    Whooo... this was a topic that felt like we could've spent a week on to get good at or maybe that's just me. The React Lifecycle refers to every component in React having a lifecycle. It's not a complicated concept, a piece of UI is created, used, and terminated/deathed when it has served its function. There's a lot however going on under the hood and some new methods were introduced that React components can use to manipulate data and share it amongst other components. We were expected to use these newly taught skills to make our Instagram Clone come alive and be able to add comments to posts and increase the like count by clicking on the hearts. This seemed pretty straight forward before React but now we needed to set a state and pass it down? I understood during lecture but in practice I was struggling. Luckily I picked the perfect day to pair program. I had a good conversation the previous week with one of my peers in the cohort during our code review and we were both struggling then so I suggested we tag team this project in the afternoon after lecture. Luckily he agreed and we struggled through it together. We didn't successfully implement the add comment functionality but we got close! Luckily I have some awesome people in my smaller group that I meet with daily during stand-up and they were able to explain how they solved the problem which showed me where my mistake was. I felt shaky but ready for day 3 after reviewing the solution code for the day and looking at the following day's material.

    Day 3: React Composition Patterns

    This was another topic which felt like I could've spent way more time on (...and I plan to!). A Higher Ordered Component (HOC) is pattern seen in React that gives reusability to component logic. It is a function that receives a component as an argument and returns a component. The name is a bit misleading in that respect. Our Day 3 project with this concept was to implement an authorization page on our Instagram Clone using a Higher Order Component. Once again the lecture felt smooth and I felt ready to implement but it was definitely tricky and I didn't finish on time. I did get a chance to review the previous day's solution and started to get a better sense for how React works. I can't say how thankful I am to have great peers in my group who do a great job of explaining their work and my project manager as well who is encouraging and helfpul in answering our questions or finding somebody who will. I was starting to feel a little bit nervous about the upcoming Sprint Challenge on Friday after having failed to finish my project in time for two days in a row but I took solace in being able to read the solution and be able to follow along during lecture.

    Day 4: CSS in JS - Styled Components

    Day 4 brought a well-received 'easy' topic with Styled Components. Having the ability to style your components from within your React file looked really cool when it was demonstrated and it was super simple to implement. It's really fascinating to see the different ways there are to do the same thing and having the ability to pick and choose based on the situation or your personal preference. This day's project was pretty easy - refactor the previous day's page to use styled components. I spent most of the day reviewing HOC material from the day before. I didn't feel 'ready' for the Sprint but I was confident that either way I had learned a lot this week and was reminded by a peer that two weeks ago I didn't even know what React was.

    Day 5: Sprint 7 - React Lambda Times

    This project brought back a previous project we had worked on when we were learning about Functional Components - The Lambda Times. Our task was to refactor our prior project using React. Most of the code was built out for us but there was definitely a lot for us to do! I hacked away at it and was mostly done by the time 11am hit. If I haven't mentioned it before you are expected to work on your sprint from 8-11am PST. I was stuck getting my articles to update based on my selected tab. I was growing frustrated but I knew I was close. I told my project manager that I would wrap up shortly after lunch. After getting some food in me I got back to it and after plenty of console logging and React debugging I got it to work! I guess I knew some React after all.

    This was definitely one of the most fulfilling weeks in my time at Lambda School. I struggled but I knew that the concepts would come with practice and time. Plus if you are struggling then it definitely means that you are learning. I was super happy to pull this week's project off and am off to prep for next week's material on... let's see... Single Page Applications using React Router and HTTP/AJAX... umm time to go read up!

    FSW14 Sprint 6 - Introduction to React

    This week was all about React. React is a UI library that was developed by Facebook that allows you to create small, reusable pieces of UI that can be put together to make larger applications. There wasn't anything tough conceptually but it was a lot at once this week and I struggled with some of the syntax and how to apply state across my components. A tough week but I got through it and after putting in sometime this weekend to review I feel better heading into week 7.

    Day 1: Functional Components I

    We started the week with the basics, what is React and what potential problems does it address? I touched on this in the intro but the answer is data. React is a way to interact will all the potential ways a user can use the application and interact or provide data and have that application re-render in an efficient way. React allows us to do this using Components. I finished the day 1 project on time which was to use JSX to create a social card which was a copy of a Twitter Tweet. Fun to see on a day 1 project.

    Day 2: Functional Components II Shape

    Day 2's focus was on the use of props in React and how tio implement the map function to loop through an array and display multiple elements at once or just loop through data that would be given or needed to be used in an application. We created a calculator application without the functionality (that was stretch) as our project and I finished MVP on time. Tuesday was the day that I attended my first Lambda School after-hours from 6-8pm PST. After-hours are on Tuesday and Thursdays and they are an extra Q&A session with an instructor who goes over questions or just gives more examples. I was feeling a little bit overwhelmed with the new info and decided to attend and I'm glad I did. I cleared up a lot of misconceptions I had and reinforced some of the material from the morning lecture.

    Day 3: Class Components I

    We talked about Class Components which are unique to React and are how we manage our data and user interaction. Introducing state and passing that down to the components. I should mention that we got a new instructor this week (every 5 weeks at Lambda School for each new unit) and the lectures have been good. I follow along content-wise but when it came to implementing this day's project I got a bit tripped up. The task was to create functional to-do list. This involved having to take user input and interaction. I realized that a majority of my problems were simple spelling errors "do" vs. "Do" or a misuse of syntax. I was ok knowing that I could understand my peers work during standup.

    Day 4: Class Components II

    Our project for the day was to finish our calculator project from the previous day. The lecture got into nested components and further instructions on how to use setState to control how your components are rendered on screen. I stayed for a 2nd after hours because I was still struggling with getting my events to work and my app to do what I wanted it to do. After reviewing the solution code I realized that I needed to brush up on my basic Javascript if I wanted to be successful with React.

    Day 5: Sprint 6 - React Wars

    This project was easier than our calculator App but something about it was still giving me issues. We had to take data and render it to our screen in React. The data was from a Star Wars API which was awesome to use a real API in a project that I was creating. Seemed easy enough, I had done this multiple times throughout the course of the week. One thing slowed me down. I didn't pass down my props in my render function to my components! After carefully reviewing some similar projects I was able to finish on time and submit a product. I didn't hit stretch but I knew I had to spend some time over this 3 day weekend to brush up and really figure out where I went wrong. This blog goes a long way in clearing out those thoughts and figuring it out.

    I spent some time this weekend on Code Academy in their React section. There were definitely some gaps in my understanding on the fundamentals and I feel way better about this upcoming week. I know we have another week-long project and I am ready to jump in knowing what to do and ready to execute. I'm going to look into peer programming for a bit this week so that I don't get stuck doing this by myself. I feel like I can solve my problems faster by just talking things through with somebody else. Next week we are building an Instagram clone in React learning new material such as prop checking and component styling.

    FSW14 Sprint 5 - Project Week: User Interface

    This was my first Project Week as a Lambda School student. Project Week is a 4 day Sprint where you are working on your own to complete a project by a Thursday afternoon deadline. You are expected to use all of the skills and lessons given during the first 4 weeks to successfully complete the project. There were many pieces to the project and plenty of additional tasks to complete if you finished ahead of schedule. We were tasked with creating a full website with multiple pages and responsiveness for different devices. It needed multiple user interface functionalities that needed to work in order for the project to be considered successful. It was an intimidating task but I knew it was possible because there wasn't anything new other than doing everything we've done all in one project instead of one a small part where pieces are provided. This was all us from scratch other than some design files and styles. The project theme was an architectural design firm - S&J Associates - website, we were tasked with a mobile and desktop design of the home page and a desktop design for the services page plus the header navigation and the tab navigator in the services page. The above link will take you to my completed project.

    Day 1: Project Setup and High Hopes

    This was the day I started to outline my project and decided to go with a mobile first approach to challenge myself as every project we had done in the past was desktop first. I' m talking about whether you design your mobile or desktop first which affects how the view adjusts across devices. I printed and marked up my designs with HTML tags, organized my files, forked and cloned the Github project repository, built a Trello board with MVP (the essential items needed to get accomplished, 5 total) and stretch goals and started coding my mobile desktop page right after lunch. I finished the day with the mobile page about halfway finished. I felt confident that I could get most of the project done the following day but was a bit nervous that others (a small amount, but still) in my group had finished all of the main tasks in this one day.

    Day 2: The Main Page Mobile and Desktop Versions Take Shape

    On this second day I struggled to finish the mobile and desktop pages by the end of the day. I truly appreciated the complexity of the design files we were given and also my own lack of practice in creating websites and using the tools at my disposal. I loved re-learning some things I had just done a few weeks ago and solidifying some of that knowledge that I had only recently gained. Even though I was done with 2/5 tasks I now felt like I was falling behind but was pretty sure that I could finish the project with the 2 days I had left but wasn't so sure that I could get it done by the following day anymore.

    Day 3: Services Desktop is Finished and I Get Stuck Trying to Get My Navigation Overlay to Close

    A breakthrough day for me. I finished most of my HTML and LESS for all the sites at all the breakpoints necessary for MVP and I started to focus on building the two functional Javascript components. I mostly finished one where the user clicks on the navigation and an overlay menu opens and then it closes when the user clicks the X. Sounds simple but I got stuck not getting the overlay to close and went to sleep dreaming about solutions. I found one as I was drifting to bed but was reminded of it the following day. I knew I had the whole day to implement a functional component that I had succesfully done in the past and to debug my almost done main navigator. I was 80% confident I would finish the project at all by the deadline.

    Day 4: Pulling it All Together and Demo Day

    I woke up and got right to coding knowing that at 2pm was Demo Time. I reached out to my Project Manager and told her of my progress and said that I might have to have a video conference to talk through my issue if I couldn't debug it myself. She gave me a nice tip on how she solved it and it sparked an aha moment of my thought the previous night. Once I got that fixed the remaining navigation component went quick and I finished the MVP tasks with a few hours to spare. I got it reviewed and after a quick modification I was good to go on trying some stretch tasks before final submittal. I was relieved and proud of myself for sticking with it and finishing on time.

    Now that project week is over and we have a 3-day weekend to reflect and look ahead I'm thankful and grateful for this experience. In 5 weeks I have a project on my own domain which I created with the skills that I picked up in a very short amount of time. Some of my classmates have some really incredible work which I'm super proud of and inspired by. Demo day was a good time to learn and see what's possible with more time and patience. Next week we begin to learn React and I am still planning on fixing some things on my S&J Architects page as well as getting around to implementing the tab navigator on this page and adding a Projects page to display S&J Associates. I also need to fix the mobile view of this page. See you next week if not sooner.

    FSW14 - Sprint 4 - Applied Javascript

    It's hard to believe that it has been a month already of Lambda School. We've come a long way. I am excited and slightly nervous about tomorrow's sprint challenge. I've struggled a bit this week to complete all of the projects. It's mostly been silly mistakes that send me down a path that leads to a new mistake and before long I've lost myself and am not sure where the problem is. I felt good Monday and Tuesday but Functional Programming has been a bit of a challenge. After doing some review I've noticed that most of my errors have been simple spelling mistakes or forgetting to closely check how to call the CSS on a query selector. I'll be on the lookout for that during tomrrow's sprint.

    Day 1: DOM I - Intro

    I felt really good about this day and probably overconfident as we moved into Tuesday. I had done a fair amount of work over the weekend watching the previous cohort's lecture and starting the project. I didn't appreciate the subtle difference between query and element selectors which cost me heading into Wednesday but I learned a lot on this day. We learned that the DOM stands for the Document Object Model which is an object representation of the HTML of a website that is a tree structure that can be traversed and used to give functionality to websites. The things you can do once you learn this are amazing and I couldn't wait to try the stretch project (a timer that I want to convert into my own jiu-jitsu round timer). A great start to the week.

    Day 2: DOM II - Events & Propagation

    This was great, we learned how websites listen for events (such as a mouseclick) and respond to that event in some way. We place what are called event listeners on our DOM elements. There were tons to play with. The project entailed adding some to a project we had worked on previously, the Fun Bus Website. I had a good time changing things and learning how to make websites interactive. I did not get to the stretch task on this day and I started to get a bit lost using query selectors to work with some of the event listeners that I was trying to implement.

    Day 3: Components I - Intro

    We began to learn about components and functional programming as an overall theme. I found the material to be really cool because it allows you to do so much on a website with the skills we have learned so far. Components use HTML, CSS, and Javascript as a chunk of code that can be used to give a website functionality. This was the day we brought it all home and learned how to use objects as classes to target various parts of a website using any methods we wanted. I loved how our project solved a question I was grappling with on this very blog which was, how do I organize all these posts in a way that a user can quickly read what he wants and hide the rest? Components. I failed at completing the project on time due mainly to silly mistakes and typos but I'm starting to see it come together.

    Day 4: Components II- Class Syntax and Data Attributes

    Learning how to make classes interact and dance with class syntax and data attributes. So here we are now able to pass data from our HTML to our CSS/Javascript using data attributes. One application of this could be linking different components on a website that share behavior. I, again, failed to complete the project on time. Again, silly mistakes. I didn't catch a capitalization error which was giving me a headache and I added a period to a class selector that didn't need it. I'm hoping I don't make the same mistakes tomorrow.

    Day 5: Sprint Challenge 4 - Applied Javascript

    In this sprint we are completing challenges similar to what we've been working on all week. We'll see how this goes.

    Sprint was good this week. I finished the basics with about 20 minutes to spare. There were definitely some moments of uncertainty but I had a huge breakthrough in this challenge. I was able to successfully debug my program using the debugger tools we had been shown this week. They were so clutch in getting the logic to work as I wanted. It felt amazing to figure something out that I had struggled with all week. I spent the next few days tinkering with the stretch goal of getting the an image carousel to work and got that done today. The project itself was to create functionality to a website that behaved like the LA Times page. Naturally it was called the Lambda Times. What I really loved is that this week gave an an answer to a question I had which was how to display the contents of this blog in a more organized way. Use components! Going to restyle the site over the next week using all we've learned. This upcoming week is a 4-day long Sprint challenge where we take all our training for the past month and put it all to use. We got a preview on Friday and it all looks very do-able. Looking forward to next week and beyond.

    FSW14 - Sprint 3 - JavaScript Fundamentals

    This week we started to learn JavaScript. It was great to see how JavaScript connects with HTML and CSS to produce content we see on web pages and applications across the internet. My favorite activity of the week was adding content to the start of a text-based RPG using the JavaScript skills I had been learning throughout the week.

    Day 1: JavaScript I - Fundamentals

    We got into it right away on day 1. We covered some of the basics in the first hour of the lecture: variables and arrays and then moved onto objects and functions in the 2nd hour. Presently to be accepted to Lambda School you have to complete the pre-course work which included a lot of this JavaScript material or pass the Lambda Challenge which is an on-line JavaScript test essentially. Luckily I had already completed Khan Academy's Javascript section which was extremely helpful in getting me to pass the Lamba Challenge but was also a great foundation for this week's content, especially once we got to object methods and classes. We wrapped this day up talking about the differences between 'function scope' and 'block scope' and completed a project where we created objects and used array methods to retrieve specific information from a large data array.

    Day 2: JavaScript II - Closure, Callbacks & Advanced Array Methods

    On day 2 we covered the concept of closure, callback and introduced advanced array methods to simplify our work from the previous day. This was a bit confusing at first but once I started to practice and fix my mistakes it was easier than I thought. Closure simply refers to a function within a function, this function will have access to its own variables and methods and those of its parent function but the parent will not have access to the child's attributes or methods. A callback refers to a function that references another function which it needs in order to run. Advanced array methods such as .filter, .map & .reduce are ways to go through an array and pull meaningful data in various ways. The part of the project which was a bit tough for me today was creating a counter function that increments each time it is called. Once I saw my mistake in implementation the concept of closure became a lot clearer.

    Day 3: JavaScript III - 'this' Keyword

    Here we learned how to use the 'this' keyword to interact with the objects we create in JavaScript. The four types of binding for 'this' are: Implicit, Explicit, New & Window. Implicit binds 'this' to whatever is to the left of the dot when 'this' is used. Explicit binding is when 'this' is bound to a function method (using call(), apply() or bind()). You can use a functions 'this' scope as the context when you call or apply (to array) it. Bind is used to store a 'this' for later use. New is used to bind 'this' to new objects created by Constructor Functions. Binds 'this' to the constructor function object. Finally, Window binds the 'this' keyword to a global or window-scope.

    Day 4: JavaScript IV - Refactoring and the Class Keyword

    Major 'aha' moment for me on this day. Seeing our objects we've been working with this week transform using the Class keyword made closure and inheritance seem way easier than they looked at the beginning of the week. The structure is nicer and made my coding go at a much faster rate. Our project involved refactoring (converting) our constructors into ES6 classes from the previous day's project and using our new skills to create a "school" in Javascript using different classes and methods (for Instructors, Students and Project Managers). I feel ready for today's Sprint Challenge now.

    Day 5: Sprint Challenge 3 - Assessing Your JavaScript Fundamentals

    In this sprint we are completing challenges similar to what we've been working on all week. Should be pretty straightforward. There hasn't been anything tricky or different from what we've been covering each week in these Sprint Challenges which makes them challenging yet allows you to demonstrate that you understand the knowledge from the week. Time to get started!

    Sprint 3 is finished. I completed all tasks with a few minutes to spare and completed the stretch goal 8 minutes past the hour. There were some tricky portions but it was more of myself overthinking what I had just learned rather than the problems themselves being tough. JavaScript fundamentals was tough but I learned a lot this week as I have every week of this Lambda experience.

    FSW14 - Sprint 2 - Responsive Design and Preprocessors

    This week we learned how to use media queries to build websites that look good on devices of all sizes. We also learned how to use a preprocessor (LESS) to take our CSS skills to another level. Preprocessors are used to increase productivity and reduce errors in that it allows us to re-use codes by using variables and nesting. My favorite project this week was the personal resume page because I was able to throw it right on this website and it was fun to create.

    Day 1: Responsive Design I - Layouts and Media Queries

    Although this was technically a holiday we were still assigned a lecture the previous Friday and had up until the end of day 2 to finish the project. We learned what it means for a site to be fixed, fluid, adaptive or responsive and how to use media queries to make sites that we design behave and look as intended.

    Day 2: Responsive Design II - Fully Responsive

    This was the official start of the week and we started at the beginning, going over many of the concepts from the intro video, but by the end we had learned how to make sites fully repsonsive using percent based values. It was very interesting to hear not only the technical side of coding but also the real world application of when to use a desktop first approach vs. a mobile first design. Great start to the week.

    Day 3: Preprocessors I - LESS

    We were introduced to the LESS syntax and learned how this is turned into CSS by a Javascript compiler. Once I saw LESS in action there was a real lightbulb moment and a lot of web development was demystified all at once. It became clear how you could organize all kinds of data and pages using this powerful tool. This was the day we created our digital resumes for daily project.

    Day 4: Preprocessors II - LESS Variables, Mixins, Namespaces & Project Organization

    We dived deeper into LESS and learned how large projects can be organized using a master LESS file.

    Day 5: Sprint Challenge 2 - Responsive Web Design and Preprocessing

    In this sprint we updated a website using the responsive web design skills that we learned throughout the week. Portions of the website were provided and we were expected to match a desktop and mobile design using the LESS preprocessor and then submit a pull request using Github.

    Feeling really good about these first two weeks. I feel like I have learned an incredible amount in a really short amount of time and am having a lot of fun doing it. Time to study up on some Javascript, looking at the material before the lecture has been really helpful in not getting lost during lecture.

    FSW14 - Sprint 1 - Introduction to User Interface

    The goal of this sprint is to build user interfaces and introduce responsive web design concepts. Concepts covered: Advanced CSS techniques, user interface development practices, and responsive web design patterns. -

    Day 1: User Interface I - Semantic HTML and CSS

    Learned about semantic HTML tags, how to markup a website and integrate CSS styles.

    Day 2: User Interface II - Box Model and CSS Reset

    Learned how to setup a website using the Box Model and why a CSS reset is important for cross-browser functionality.

    Day 3: User Interface III - Flexbox

    Learned how to use the flexbox module with the box model to refactor the previous day's assignment and style a new page. It all started to make sense on this day! I realized that I had not made use of an overall "container" in the prior day's assignment. Reviewing the solution and the flexbox lecture cleared it all up.

    Day 4: Git for Web Development

    Learned how to use the command line interface (CLI) to fork and clone a repo using Git and Github. Created and worked on a branch locally. Learned how to submit a pull request to share code that I have worked on.

    Day 5: User Interface and Responsive Web Sprint Challenge

    Created a fully responsive website from several design files.

    I made this website you are on now with the skills I learned this week! How cool is that!?