Bit of Code

Bit of Code

By Brady MurphyTechnology
Download on the App Store

Bit of Code episodes

  • Data Structures & Algo: Stacks
    Glad to be back delivering you guys more coding podcasts to help you on your coding journey! Today we're talking about the Stack ADT and how you can use it and implement it within your code. I highly recommend you guys go to hacker ranked and check out their examples on stacks to test your understanding from today's episode. Like always, if you have any questions regarding this podcast feel free to contact me at [email protected]. I will try my best to answer your questions as fast as possible. Enjoy!
     
    SHOW NOTES
    ----------------
    - think of a stack data like a stack of books, ice cream stack, and/or a stack of plates
    - Stacks are a LIFO data structure, which means that it's a last in first out. So whatever object is placed last onto the stack will be the first one retrieved from it
    - methods: push(T entry), pop(), isEmpty(), clear(), peek()
    - YOU CAN ONLY ACCESS THE TOP ENTRY! (is it in your head yet)
    32 min
  • Data Structures & Algo: Trees Intro
    Hope you guys are having a great fourth of July! I couldn't be more excited to bring this episode to you because trees are one of my favorite data structures! In my opinion, this data structure really helps bring you from a beginner developer to a more intermediate one and really helps open up a world of possibilities due to their hierarchical structure. Since there is SOO much you can cover with trees, I tried my best to give you guys a firm foundation of all the terminology and examples that trees can be used for. As always feel free to contact me if you have any questions regarding the information covered in this podcast 
    SHOW NOTES
    ----------------
    Tree ADT
    So far we have focused on linear data structures
     
    We want to minimize the most frequent operations
    - so if we are looking for something, then we would want to use a sorted array and probably implement a binary search
     
    Hierarchal data
    This would be a place where trees would be used for
     
    The root of the tree is at the top
    - we are then branching out in the downward direction
     
    A collection of entities called nodes linked together to simulate a hierarchy. Non-linear. The topmost node is called the ROOT
    each node will contain some data
    each node may also contain a link to a reference to another node called its children
     
    Each arrow pointing from a node to another node is called a link
     
    Children of the same parent are called SIBLING
     
    The root node is the only node without a parent.
    if there is a direct link to some other node then there is a parent-child relationship between the nodes
     
    Any node in the tree that doesn’t have a child is called a leaf node
     
    When we’re walking the tree we can only go in one direction
     
    Definition
    A tree can be called a recursive data structure that consists of a distinguished node called ROOT and its subtrees
     
    in a tree with N nodes, there will be exactly n-1 edges(or links)
    all nodes will have exactly ONE INCOMING EDGE
     
    Depth
    Length of the path from the root to x, or number of edges in the path from the root to x
     
    Height
    Number of edges in longest path from x to a leaf
    the height of a leaf node is ZERO
     
    Height of tree
    The height of a tree is the height of the ROOT NODE
     
    Binary Tree
    A tree in which each node can have at MOST 2 children
     
    Node
    You will have two references used for a pointer to the left node and to the right node
    The node will also have a field for storing the data of the node
     
    APPLICATIONS OF TREE
    Natural hierarchal data
    - file system
    Organizing data
    - for quick search, insertion, deletion
    (eg. Binary search tree)
     
    Complete Binary Tree
    All levels except possibly the last are completely filled and all nodes are left as possible
     
    Assuming that the root depth is 0 (or level 0) then the maximum number of nodes at any given level can be represented by 2^l
    - where l is the level
     
    If all levels are completely filled, the binary tree can be called a PERFECT BINARY TREE
     
    Maximum of number of nodes in a perfect binary tree can be represented by 2^(no of levels) - 1
     
    The height of a complete binary tree can be represented as floor(log2(n))
     
    Balanced Binary tree
    We want to keep a binary tree balanced
     
    DEF: we call a binary tree balanced if the difference between the height of left and right subtree for every node is not more than 1
     
    How can we create a binary tree
    1) dynamically created nodes
    2) in some special cases, arrays are used for complete binary trees
    42 min
  • Algorithms: Binary Search
    Can't find Waldo in your array with a fast enough time complexity? Look no further! Today I'm going to be talking about Binary Searches and how to implement them to allow you to search through your sorted arrays in no time! Well.... not in no time, but in O(logn) time! Hope you guys enjoy it. Make sure to try coding the algorithm yourself after listening to this podcast to retaining the information and resolve any misunderstandings that you may have. The best way to get better at something is by doing, so before you step in front of your interviewer at that big company, work out the iterative and recursive algorithm. As always, hope you guys have a great week! Please make sure to rate this podcast, as it helps me reach more students to educate.
    32 min
  • Cybersecurity: DoS and DDoS attacks
    What is up, guys! Hope you've had a great past week like me. I've been all over the continent this past week trying to refresh from work and my outside projects so I can come back more sharp and ready for all of you guys following the Bit of Code journey. If you haven't listened to my past episodes, my name is Brady Murphy and I am a student at Virginia Tech studying Computer Science and mathematics. Today, I decided to bring you a slice of the work I'm doing at NASA and that is cybersecurity. Although most people understand that it's vital to have a strong cyber defense these days, not many understand how to actually defend against these attacks, or even have a general knowledge of what is being executed. So, to clear up the smoke screen for you guys, today I'm going to be talking about Denial of service attacks. 
    SHOW NOTES
    ----------------
    What is a denial of service attack?
    "In computing, a denial-of-service attack is a cyber-attack in which the perpetrator seeks to make a machine or network resource unavailable to its intended users by temporarily or indefinitely disrupting services of a host connected to the Internet." - Wikipedia
    These are conducted when a single attacker sends so many packets to the server that it can barely distinguish between valid and invalid requests. The point of this is to exhaust one of the resources that the server has, which is usually bandwidth and/or computing power. All of these requests will then overwhelm the server to a point where it can't process any more requests and effectively denies the clients of the server from accessing the resources needed.
    DDoS attacks are very similar, but instead of it being a one-man army, the hacker employs thousands of bots to work for him/her. This is done by creating some form of malware and getting humans to install it themselves by clicking on various links and emails. 
    Once a user installs this malware, they're officially a bot for the hacker to use. The accumulation of thousands of bots is called a botnet. The botnet is then used to execute the distributed denial of service attack on their victim of choice.
    How can we defend?
    1) Since the hacker establishes bots by capitalizing on the human error. Make sure to instill within the company that noone should by any means click on a link that they do not know the destination too. Yes, that Nigerian Prince is FAKE and NO you won't be getting his money... he'll be snatching yours!
    2) Higher a blue team to validate vulnerabilities and define ways to fix them/ higher a professional cybersecurity company to install software to monitor traffic and filter out invalid requests.
    3) Have a bandwidth subscription that is way over the normal usage to allow for fluff room in case a DoS attack is executed against you.
    4) Set up a stronger firewall!
    17 min
  • Data Structures & Algo: Linked Lists
    Glad to say we're back with another episode of data structures and algorithms! Today we will be talking about Linked Lists, one of the most fundamental data structures that you can have in your tool belt. We will go over the pros and cons of using a Linked List and how to choose between a Singly Linked List vs a Doubly Linked List. Make sure to look at a Linked List diagram if BEFORE listening to this podcast if you've never seen one before. As always, make sure to check out Hacker Ranked for examples on linked lists to help test your skills after listening to this podcast!
    22 min
  • I hit a fork in the road: Why trying new things is vital to your success
    Whats up guys! Hope you've had a great week and are ready for a weekly recap of my internship with NASA. This week I hit a fork in the road and it's going to end up diverging my life plans completely from what I had planned out for after this summer... but that's okay! Trying things and failing is GOOD! Don't be afraid to try new things and face different challenges in your life because if you only play in one sandbox, you won't understand the value offered by the others. Enough of the writing, hope you enjoy!
    22 min
  • Why you should (or shouldn't) choose engineering as your major
    Whats up guys! Hope you're having a great productive weekend like me. In today's (second) episode, I'm going over why you should (or very well shouldn't) choose an engineering concentration as your major. In this episode, I go over all the negatives AND all the positives that I have experienced being an engineer at Virginia Tech to hopefully shed some light on the things that people don't talk as much about in this major. I go over a couple of my tips for getting a 4.0 in college and how you can make the most out of the hardships that you face in engineering. As always, if you have any questions about the content discussed in the podcast or would like a consultation with me about software engineering, please feel free to email me at [email protected]. Make sure to stay motivated and keep knocking out a BIT OF CODE EVERY DAY.
    35 min
  • NASA Internship: Week 1
    In this episode, I go over the AMAZING first week I had at my NASA internship. I start from day one and traverse through the week day by day, highlighting the most important events that happened each day. This ranges from software engineering to expanding your network to learning how to become a better worker in your workplace environment. Hope you guys enjoy it! Get ready for linked lists Tuesday!
    19 min
  • Data Structures & Algo: Arrays
    In this podcast, I go over one of the most fundamental data structures... wait for it... ARRAYS! Arrays will be one of the most fundamental tools in your toolkit and a building block for creating more complex data structures in the future. 
    Show Notes
    -------------
    - Choose an array when you want one variable to store many Objects or primitive values. This will allow for better organization of          variables and Objects within your code.
    - Understand that the index of an Object stored within/referenced by an array is different than the actual Object stored there
    - Make sure you're iterating through the array from index 0 - array.length-1
    - Arrays have a set in stone size that you define when you create them so make sure you define that size wisely!
    Make sure to practice on Hackerranked and/or code wars to ensure you have the fundamental understanding of using arrays so we can build upon that in future episodes!
    17 min
  • How to get your first software internship and work for NASA
    In this podcast, I dive into the fundamentals of securing your first software internship. I go over the mistakes I made so you can ensure that your experience a less bumpy road than my first attempts to secure my dream internship. Lastly, I talk about how I was able to secure a software engineering/ cyber security internship with NASA and how you too can set yourself up to work for such a prestigious company/agency. I hope you enjoy! Let's get to this bit of code!
    28 min

About Bit of Code

From the publisher's feed

Your one stop shop to get insights into the coding field and how YOU can get going with launching your career in the software industry.