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:
#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;
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?


  • 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.
  • 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
      • 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. “
    • “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.


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.


August 18 2016

This is how hacking occurs in real life:

Learning to Code: Week 15 - Data Structures

Learning to Code: Week 13 - Specialize