Craig Rodrigues!

Learning to Code: Week 14 - Stacks & Queues

August 11, 2016

  • Euler #4
    • Gave up looking for a more complex solution and just brute forced it assuming the runtime would still be sufficiently small.
    • Hand-written notes and logic. Needed a function just to reverse the integer and test if the same.
    • Store largest value in a variable.
    • Once done just print whatever value was found to be the largest.
    • My code here: https://gist.github.com/CraigRodrigues/2f5dee93078abf2ed5c456e200957048
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
bool isPalindrome(int num);
int main(void)
{
int max = 0;
int num;
for (int i = 999; i >= 100; i--)
    {
for (int j = i; j >= 100; j--)
        {
            num = i*j;
if (isPalindrome(num) && num > max)
            {
                max = num;
            }
        }
    }
printf("%i\n", max);
}
bool isPalindrome(int num)
{
int reverse = 0;
int n = num;
while (n != 0)
    {
        reverse *= 10;
        reverse += n%10;
        n /= 10;
    }
if (reverse == num)
return true;
else
return false;
}

August 12, 2016

  • Forgot to mention the new book I got: A Mind For Numbers.
  • Finished The Checklist Manifesto. How can I incorporate this into development? Unsure, but I am sure it will help with any type of team environment. Perhaps a list of steps to do before I tackle any problem?

image00

  • I got into the Rmotr course! Now to decide if I am capable of doing it. I don’t have much time to decide (Monday the 15th).
  • I missed the questions on OOP in the application, since I’ve never done it (and it’s not a topic covered in CS50). Will I be able to learn enough about it in time to be comfortable in the course? I was initially rejected because of it, but in asking about the course and application that was overridden since I guess I showed some kind of persistence. https://rmotr.com/apply/74aaae30-ec6f-4bb2-b27b-a945c9f18374/skills-assessment-answers
  • I asked the guys for resources I could use to learn OOP as well.
  • Also I am going to try and set up a call with them so I can really make sure this is a good fit for me and I won’t be starting at -1 when everyone else is at 11. I am willing to work hard and get it done though. Won’t say I’m not nervous though.

August 13, 2016

    • Call with Santiago went very well (one of the founders of Rmotr.com)
      • I felt very good and confident about the course during and after the call.
      • Santiago wanted me to just be comfortable about my decision.

 

  • So my current plan is to finish CS50 and learn OOP and some basic Python before the next session which starts October 10th.

 

August 14, 2016

August 15, 2016

  • “Many of my students have been asking questions lately about how to do technical interviews, so I've decided to write about my interviewing experiences.  I will start by giving a number of anecdotes because they're interesting to everyone, but the later parts of this post are mainly targeted at prospective students who haven't done any software developer interviews before. “
    • http://blog.robertelder.org/50-interviews-with-facebook-twitter-amazon-others/
    • “I had an interview where the interviewer asked "What is your favourite language?".  My head wasn't in the right place at the time, and I said "Latin", and I went on to describe why I think Latin is such an interesting language.  He was of course talking about programming languages.  I didn't get an offer.”
  • Went to Panera after work and watched CS50 Week 5 lecture #2 and part of Week 6 lecture #1.
  • Apparently Problem Set 5 will be the hardest one. Yay?
  • How do I get skilled enough to work on open source projects?
  • Mind expanding books

August 16,2016

  • Finished Week 6 Lecture #1 video
    • A tiny bit more on data structures like Binary Search Trees, Hash Tables and Tries
    • Mostly focused on how the web works with protocols, ports, packets, etc gearing up to learn HTML and CSS.

image01

August 17, 2016

  • CS50 Week 6: Section Videos
    • Stack (Data Structure)
      • Last in, first out (LIFO)
      • Can use arrays or linked lists
      • Push onto the stack
      • Pop off the stack
    • Queue
      • FIFO structure
      • Very similar to Stacks above
      • Array or Linked List
      • Enqueue (add to END) or Dequeue (remove elements from the FRONT)
      • It acts just like any other line
      • Size of queue plus the front of the queue is where you put the next element when enqueuing something.
      • To wrap around when you hit the end of the array size you can modulo  against the size of the array.
      • Linked list based queues are just a doubly linked like that keeps track of the head and tail of the list only.

image02

August 18 2016

This is how hacking occurs in real life: https://www.youtube.com/watch?v=u8qgehH3kEQ

Learning to Code: Week 15 - Data Structures

Learning to Code: Week 13 - Specialize