OPERATING SYSTEMSOS Linux

Harvard CS50 – Full Computer Science University Course

Learn the basics of computer science from Harvard University. This is CS50, an introduction to the intellectual enterprises of computer science and the art of programming.

💻 Slides, source code, and more at https://cs50.harvard.edu/x.

⭐️ Course Contents ⭐️
⌨️ (00:00:00) Lecture 0 – Scratch
⌨️ (01:45:08) Lecture 1 – C
⌨️ (04:13:23) Lecture 2 – Arrays
⌨️ (06:20:43) Lecture 3 – Algorithms
⌨️ (08:37:55) Lecture 4 – Memory
⌨️ (11:03:17) Lecture 5 – Data Structures
⌨️ (13:15:36) Lecture 6 – Python
⌨️ (15:39:25) Lecture 7 – SQL
⌨️ (18:00:55) Lecture 8 – HTML, CSS, JavaScript
⌨️ (20:23:38) Lecture 9 – Flask
⌨️ (22:39:01) Lecture 10 – Emoji
⌨️ (24:02:50) Cybersecurity

Recorded in 2021.

HOW TO JOIN CS50 COMMUNITIES

Discord: https://discord.gg/cs50
Ed: https://cs50.harvard.edu/x/ed
Facebook Group: https://www.facebook.com/groups/cs50/
Faceboook Page: https://www.facebook.com/cs50/
GitHub: https://github.com/cs50
Gitter: https://gitter.im/cs50/x
Instagram: https://instagram.com/cs50
LinkedIn Group: https://www.linkedin.com/groups/7437240/
LinkedIn Page: https://www.linkedin.com/school/cs50/
Medium: https://cs50.medium.com/
Quora: https://www.quora.com/topic/CS50
Reddit: https://www.reddit.com/r/cs50/
Slack: https://cs50.edx.org/slack
Snapchat: https://www.snapchat.com/add/cs50
SoundCloud: https://soundcloud.com/cs50
Stack Exchange: https://cs50.stackexchange.com/
TikTok: https://www.tiktok.com/@cs50
Twitter: https://twitter.com/cs50
YouTube: https://www.youtube.com/cs50

HOW TO FOLLOW DAVID J. MALAN

Facebook: https://www.facebook.com/dmalan
GitHub: https://github.com/dmalan
Instagram: https://www.instagram.com/davidjmalan/
LinkedIn: https://www.linkedin.com/in/malan/
TikTok: https://www.tiktok.com/@davidjmalan
Twitter: https://twitter.com/davidjmalan

LICENSE

CC BY-NC-SA 4.0
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License
https://creativecommons.org/licenses/by-nc-sa/4.0/

🎉 Thanks to our Champion and Sponsor supporters:
👾 Raymond Odero
👾 Agustín Kussrow
👾 aldo ferretti
👾 Otis Morgan
👾 DeezMaster

Learn to code for free and get a developer job: https://www.freecodecamp.org

Read hundreds of articles on programming: https://freecodecamp.org/news

source

by freeCodeCamp.org

linux foundation

47 thoughts on “Harvard CS50 – Full Computer Science University Course

  • (00:00:00) Lecture 0 – Scratch

    (00:00:00) Introduction to Scratch

    (00:10:32) Basic Scratch commands and blocks

    (00:25:45) Using variables in Scratch

    (00:45:12) Conditional statements and loops in Scratch

    (01:15:20) Creating simple games in Scratch

    (01:45:08) Lecture 1 – C

    (01:45:08) Introduction to C programming language

    (02:10:22) Syntax and basic data types in C

    (02:35:57) Control structures in C

    (02:55:43) Arrays and strings in C

    (04:13:23) Lecture 2 – Arrays

    (04:13:23) Introduction to arrays

    (04:25:10) One-dimensional arrays and operations

    (04:43:58) Multidimensional arrays and matrix operations

    (06:20:43) Lecture 3 – Algorithms

    (06:20:43) Introduction to algorithms

    (06:30:15) Searching algorithms (linear and binary search)

    (06:45:02) Sorting algorithms (selection, insertion, bubble, merge, quicksort)

    (08:37:55) Lecture 4 – Memory

    (08:37:55) Introduction to computer memory

    (08:48:20) Memory hierarchy and cache

    (09:02:10) Pointers and dynamic memory allocation

    (11:03:17) Lecture 5 – Data Structures

    (11:03:17) Introduction to data structures

    (11:15:40) Stacks and queues

    (11:30:05) Linked lists

    (11:47:55) Trees and binary search trees

    (13:15:36) Lecture 6 – Python

    (13:15:36) Introduction to Python programming language

    (13:28:10) Python syntax and basic data types

    (13:40:48) Control structures and loops in Python

    (13:58:21) File handling and modules in Python

    (15:39:25) Lecture 7 – SQL

    (15:39:25) Introduction to SQL and relational databases

    (15:52:10) Basic SQL queries (SELECT, INSERT, UPDATE, DELETE)

    (16:05:45) Joins and subqueries in SQL

    (18:00:55) Lecture 8 – HTML, CSS, JavaScript

    (18:00:55) Introduction to web development technologies

    (18:12:40) HTML structure and tags

    (18:25:15) CSS styling and selectors

    (18:38:50) JavaScript basics and DOM manipulation

    (20:23:38) Lecture 9 – Flask

    (20:23:38) Introduction to Flask web framework

    (20:35:55) Routing and rendering templates with Flask

    (20:48:20) Handling forms and user input in Flask

    (22:39:01) Lecture 10 – Emoji

    (22:39:01) Introduction to emoji encoding and representation

    (22:50:15) Using emojis in text-based applications

    (24:02:50) Cybersecurity

    (24:02:50) Introduction to cybersecurity concepts and threats

    (24:15:30) Network security and encryption techniques

  • The stage lamps are binary. They have messages encoded in ASCII. I noticed this and haven't seen anyone in the comments point it out and feel proud of myself lmao.

  • tation of problem set 5

    13:53:30 Python is better for programmers because it is faster to write, while C is better for the computer because it is faster to run.

    14:03:15 Python code does not require a main function

    14:08:03 Convert user input to integer in Python using the int function

    14:18:25 Implement agreement program in Python with fewer lines of code.

    14:23:24 Handle multiple inputs for 'yes' in Python code.

    14:33:17 Python simplifies variable declaration and memory management

    14:38:28 Recreate C's do-while loop in Python using an infinite loop with a break statement

    14:48:31 Override new line character to print multiple outputs on the same line

    14:53:41 Learn to search for Python functions using the official documentation or Google and Stack Overflow.

    15:02:59 Create a program to uppercase a string input

    15:08:09 Implementing algorithms in Python such as binary search

    15:18:25 Implementing a phone book with CSV files

    15:24:10 Process Hogwarts form data into a dictionary using Python's CSV library

    15:34:04 Python program to detect faces and generate a QR code

    15:39:22 Learn how to store and persist data in files using Python

    15:49:49 Iterate over CSV file and filter out duplicates based on titles.

    05:00 Filter and standardize user input titles using Python

    16:04:55 Create a counter for titles and their counts in a dictionary.

    16:10:16 Python's sorted function can take a key parameter to determine what to sort by.

    16:20:26 Regular expressions can be used to express patterns in a standardized way in Python and other programming languages

    16:25:39 CSV is a flat file database, while relational databases are like spreadsheet programs that programmers can interact with using SQL.

    16:35:39 SQL can distill multiple lines of code into a simple select statement.

    16:40:46 SQL allows for filtering and manipulation of data using commands like 'select', 'where', and 'update'.

    16:52:15 Separate genres and shows into two tables to avoid complications with like keyword.

    00:53 Created two tables, shows and genres, with a one-to-many relationship between them

    17:08:10 Program to search for number of people who liked a show in favorites.db

    17:13:24 Combined SQL and Python to simplify searching and selecting data

    17:23:45 Relational databases use foreign keys to align tables with common data.

    17:28:52 Creating an index in a database allows for faster data retrieval using data structures like a B-tree.

    17:39:16 Join data from multiple tables using foreign keys and primary keys

    17:44:08 Using special syntax in SQL and not defending against adversarial attacks can lead to SQL injection attacks.

    17:54:27 Non-Atomic code execution can cause problems when multiple users interact with a server simultaneously

    17:59:17 Introduction to web programming with HTML, CSS, and JavaScript.

    18:10:10 TCP and IP are protocols that standardize communication on the internet.

    18:15:14 TCP/IP protocol ensures guaranteed delivery of data

    18:25:14 Understanding the structure of server requests and responses

    18:30:10 Visiting a website involves many HTTP requests and responses.

    18:41:20 Learn HTML and CSS to create the structure and aesthetics of a webpage.

    18:47:24 Created a web page in HTML and opened a web server on TCP port 8080.

    18:57:09 Learn HTML tags like P, H1, UL, and OL for better organization and readability

    19:02:04 Learned how to layout tabular data with HTML.

    19:11:49 Learned how to create links and make a website responsive

    19:16:52 Use meta tag 'viewport' to improve website responsiveness on mobile devices

    19:26:56 A simple web page with three main sections

    19:32:13 CSS supports inheritance, allowing child elements to inherit properties from their parents or ancestors.

    19:42:23 You can use developer tools to quickly edit and experiment with HTML and CSS on any website.

    19:47:16 CSS selectors and properties can be used to manipulate the aesthetics of a web page.

    19:56:45 Using Bootstrap can make websites much prettier and user-friendly with minimal coding.

    20:01:57 Implemented a Google-like search page using Bootstrap

    20:11:27 Add JavaScript code to greet the user when the form is submitted.

    20:16:22 Add event listeners to listen for events in web programming.

    20:27:13 Flask is a Python framework that simplifies web app development.

    20:31:42 Create a simple web app using Flask

    20:41:28 Enhance the Hello app to get input from the user using a form tag

    20:46:42 Form submission leads to internal server error

    20:57:30 Flask allows to factor out commonalities in templating

    21:02:54 Web programming using Flask

    21:13:18 Creating a web application using Flask

    01:22 User registration form created

    21:28:39 Missing name in HTML form caused registration failure

    21:34:05 Improved user interface for registering sports

    21:44:21 Implementing a database using SQL Lite is better than using a dictionary for storing information.

    21:49:43 Programmatically generate a list of dictionaries from a SQL database and render it in an HTML table.

    22:00:30 Implement sessions to log users in and keep them logged in.

    22:05:55 HTTP can be made stateful using cookies.

    22:15:58 Flask uses sessions to remember user data and streamline website functionality.

    22:21:22 Consolidate shopping cart functionality in a single route using GET and POST requests

    22:31:37 Use JSON format for more efficient data transfer between client and server

    22:36:43 JavaScript's Json function parses data into dictionaries and can be used to create dynamic HTML.

    22:48:06 Learn computational thinking and critical thinking to produce correct output

    01:16 Drawing a cube can be challenging due to the tension between abstraction and communication

    23:03:15 Transition from Cloud to client-side programming and explore hosting options

    23:07:56 Summary of a quiz show on coding concepts

    23:18:55 Bee Trees vs Binary Trees

    23:25:12 Representation of human languages through emojis

    23:35:09 Dumpling emoji proposal accepted

    23:40:25 Unicode controls Emoji, which took three years to unify and get onto devices.

    23:50:40 Gender diversity in Emoji Land

    02:20 New Emoji have been added to the keyboard, including more hearts, bird things, ginger, wireless, and holding hand fan.

    24:06:55 Phone security is a concern for many users

    01:33 The security of a four-digit passcode is questionable

    24:21:04 Using longer and more complex passcodes raises the bar for hackers

    24:25:37 Use a password with letters, numbers, and punctuation for increased security.

    24:35:14 Use a password manager to generate and manage unique passwords for each website.

    24:40:09 Google's confidential mode and incognito mode may not provide complete security.

    24:50:03 Use two-factor authentication and end-to-end encryption for more security.

  • tation of problem set 5

    13:53:30 Python is better for programmers because it is faster to write, while C is better for the computer because it is faster to run.

    14:03:15 Python code does not require a main function

    14:08:03 Convert user input to integer in Python using the int function

    14:18:25 Implement agreement program in Python with fewer lines of code.

    14:23:24 Handle multiple inputs for 'yes' in Python code.

    14:33:17 Python simplifies variable declaration and memory management

    14:38:28 Recreate C's do-while loop in Python using an infinite loop with a break statement

    14:48:31 Override new line character to print multiple outputs on the same line

    14:53:41 Learn to search for Python functions using the official documentation or Google and Stack Overflow.

    15:02:59 Create a program to uppercase a string input

    15:08:09 Implementing algorithms in Python such as binary search

    15:18:25 Implementing a phone book with CSV files

    15:24:10 Process Hogwarts form data into a dictionary using Python's CSV library

    15:34:04 Python program to detect faces and generate a QR code

    15:39:22 Learn how to store and persist data in files using Python

    15:49:49 Iterate over CSV file and filter out duplicates based on titles.

    05:00 Filter and standardize user input titles using Python

    16:04:55 Create a counter for titles and their counts in a dictionary.

    16:10:16 Python's sorted function can take a key parameter to determine what to sort by.

    16:20:26 Regular expressions can be used to express patterns in a standardized way in Python and other programming languages

    16:25:39 CSV is a flat file database, while relational databases are like spreadsheet programs that programmers can interact with using SQL.

    16:35:39 SQL can distill multiple lines of code into a simple select statement.

    16:40:46 SQL allows for filtering and manipulation of data using commands like 'select', 'where', and 'update'.

    16:52:15 Separate genres and shows into two tables to avoid complications with like keyword.

    00:53 Created two tables, shows and genres, with a one-to-many relationship between them

    17:08:10 Program to search for number of people who liked a show in favorites.db

    17:13:24 Combined SQL and Python to simplify searching and selecting data

    17:23:45 Relational databases use foreign keys to align tables with common data.

    17:28:52 Creating an index in a database allows for faster data retrieval using data structures like a B-tree.

    17:39:16 Join data from multiple tables using foreign keys and primary keys

    17:44:08 Using special syntax in SQL and not defending against adversarial attacks can lead to SQL injection attacks.

    17:54:27 Non-Atomic code execution can cause problems when multiple users interact with a server simultaneously

    17:59:17 Introduction to web programming with HTML, CSS, and JavaScript.

    18:10:10 TCP and IP are protocols that standardize communication on the internet.

    18:15:14 TCP/IP protocol ensures guaranteed delivery of data

    18:25:14 Understanding the structure of server requests and responses

    18:30:10 Visiting a website involves many HTTP requests and responses.

    18:41:20 Learn HTML and CSS to create the structure and aesthetics of a webpage.

    18:47:24 Created a web page in HTML and opened a web server on TCP port 8080.

    18:57:09 Learn HTML tags like P, H1, UL, and OL for better organization and readability

    19:02:04 Learned how to layout tabular data with HTML.

    19:11:49 Learned how to create links and make a website responsive

    19:16:52 Use meta tag 'viewport' to improve website responsiveness on mobile devices

    19:26:56 A simple web page with three main sections

    19:32:13 CSS supports inheritance, allowing child elements to inherit properties from their parents or ancestors.

    19:42:23 You can use developer tools to quickly edit and experiment with HTML and CSS on any website.

    19:47:16 CSS selectors and properties can be used to manipulate the aesthetics of a web page.

    19:56:45 Using Bootstrap can make websites much prettier and user-friendly with minimal coding.

    20:01:57 Implemented a Google-like search page using Bootstrap

    20:11:27 Add JavaScript code to greet the user when the form is submitted.

    20:16:22 Add event listeners to listen for events in web programming.

    20:27:13 Flask is a Python framework that simplifies web app development.

    20:31:42 Create a simple web app using Flask

    20:41:28 Enhance the Hello app to get input from the user using a form tag

    20:46:42 Form submission leads to internal server error

    20:57:30 Flask allows to factor out commonalities in templating

    21:02:54 Web programming using Flask

    21:13:18 Creating a web application using Flask

    01:22 User registration form created

    21:28:39 Missing name in HTML form caused registration failure

    21:34:05 Improved user interface for registering sports

    21:44:21 Implementing a database using SQL Lite is better than using a dictionary for storing information.

    21:49:43 Programmatically generate a list of dictionaries from a SQL database and render it in an HTML table.

    22:00:30 Implement sessions to log users in and keep them logged in.

    22:05:55 HTTP can be made stateful using cookies.

    22:15:58 Flask uses sessions to remember user data and streamline website functionality.

    22:21:22 Consolidate shopping cart functionality in a single route using GET and POST requests

    22:31:37 Use JSON format for more efficient data transfer between client and server

    22:36:43 JavaScript's Json function parses data into dictionaries and can be used to create dynamic HTML.

    22:48:06 Learn computational thinking and critical thinking to produce correct output

    01:16 Drawing a cube can be challenging due to the tension between abstraction and communication

    23:03:15 Transition from Cloud to client-side programming and explore hosting options

    23:07:56 Summary of a quiz show on coding concepts

    23:18:55 Bee Trees vs Binary Trees

    23:25:12 Representation of human languages through emojis

    23:35:09 Dumpling emoji proposal accepted

    23:40:25 Unicode controls Emoji, which took three years to unify and get onto devices.

    23:50:40 Gender diversity in Emoji Land

    02:20 New Emoji have been added to the keyboard, including more hearts, bird things, ginger, wireless, and holding hand fan.

    24:06:55 Phone security is a concern for many users

    01:33 The security of a four-digit passcode is questionable

    24:21:04 Using longer and more complex passcodes raises the bar for hackers

    24:25:37 Use a password with letters, numbers, and punctuation for increased security.

    24:35:14 Use a password manager to generate and manage unique passwords for each website.

    24:40:09 Google's confidential mode and incognito mode may not provide complete security.

    24:50:03 Use two-factor authentication and end-to-end encryption for more security.

  • 00:00 Learn computer science and programming with Harvard's CS50 course
    06:50 Computers count using binary system of zeros and ones
    18:08 Unicode allows for representation of all human languages and emojis with standardized patterns of zeros and ones.
    23:22 Computers represent colors using RGB values.
    35:13 Algorithm: Divide and conquer to efficiently search for information
    40:27 Efficiency of algorithms is about using intuition and programming languages to solve problems more quickly.
    50:49 Learn programming fundamentals using Scratch
    00:53 Introduction to Scratch programming
    1:06:02 Programming concepts such as inputs, outputs, and puzzle pieces can be recognized and applied easily
    1:11:08 Creating custom blocks in Scratch allows for better code design and abstraction.
    1:21:25 Assembling basic building blocks can bring programs to life.
    1:26:47 Making progress with implementing game mechanics
    1:37:04 Learned about implementing game mechanics
    1:42:24 Learned programming with C language in week one of CS50 course
    1:55:03 Programming environment and terminal window in VS code
    2:00:06 Compile source code into machine code and run it using the command line interface
    2:10:19 The get string function in C returns a value that can be used and reused.
    2:15:25 Implementing interactive programs with printf and scanf
    2:26:02 VS Code's syntax highlighting feature helps programmers focus by highlighting different types of code in different colors.
    00:03 C programming requires the use of header files to include libraries and define functions
    2:41:38 Command line basics and C data types
    2:47:01 Creating a simple calculator in C
    2:57:27 Limitations of 32-bit integers in programming
    3:02:58 Introduction to Conditionals in C programming
    3:13:46 Learned about remainder operator and equality operator in C programming language.
    3:19:09 Using while loops to repeat actions indefinitely in C
    3:29:20 For and while loops can be used to do the same thing.
    3:34:50 Declaring functions in C99
    00:15 Create a semi-graphical map in C by printing ASCII art
    3:50:33 Create a dynamic program that prints a square of bricks using nested loops.
    4:01:12 Floating point precision in computing
    4:06:32 The 2038 problem may cause computers to think it's 1901
    4:18:03 Enhancing the program to include cs50.h requires additional linking
    4:23:13 Compiling C code involves four automatic steps: pre-processing, compiling, assembling and linking.
    4:33:22 Compiling is a process of converting source code to machine code.
    4:38:30 Use printf for debugging and diagnosing problems in code
    4:48:48 Debugging with step into and step over
    4:54:07 Learn about data types and memory in C programming.
    5:04:31 Arrays allow you to store multiple values of the same type.
    5:10:01 Arrays can store multiple values and eliminate the need for multiple variable names
    5:21:13 Strings in computer memory are essentially arrays of characters, and a null character is used to separate one string from another.
    5:26:36 Standardizing null termination for strings
    5:37:47 CS50's manual pages provide beginner-friendly documentation for frequently used functions in C
    5:43:06 Printing a string without using percent s
    5:53:53 Use the two upper function to make characters uppercase in C
    5:59:31 C programs can take command line arguments using int main(int argc, string argv[])
    03:46 Returning a non-zero value from Main indicates an error in the program.
    6:15:54 Text analysis and cryptography discussed.
    6:27:22 Efficiency of algorithms is measured in terms of their running time, often described using Big O notation.
    6:32:36 New vocabulary for describing running time of algorithm.
    6:43:24 Linear search algorithm has a Big O of N and Omega of 1
    6:48:42 Binary search is more efficient than linear search
    6:59:15 Sorting data before searching may or may not be worth it depending on the use case
    7:04:20 Search for a string in an array of strings using strcmp
    7:15:17 Implemented a phonebook using arrays but it is not well designed.
    7:20:28 Define custom data types in C using typedef and struct
    7:31:17 Sorting unsorted input is a problem we need to solve.
    06:31 Sorting an array using the smallest number first
    00:03 The discussed algorithm is selection sort with a running time of O(n^2).
    7:52:04 Selection sort and bubble sort are both Big O of N squared
    8:02:45 Sorting algorithms can be fundamentally faster than comparison sorts using recursion.
    8:07:24 Recursion is a programming technique where a function calls itself to solve smaller puzzles at hand.
    8:17:52 Implementing a draw function using recursion
    8:23:12 Merge sort algorithm explained
    8:33:40 Merge Sort has a better running time than Bubble Sort for unsorted data
    8:41:16 Learn about hexadecimal notation for colors in images
    8:51:25 Hexadecimal is a convenient way of representing data in units of four bits
    8:56:40 Pointers store the address of a value in memory
    9:08:00 Pointers and addresses in computer memory
    9:13:28 Pointers are addresses used to store information in memory.
    9:24:43 Exploring memory addresses in C
    9:30:29 Strings are stored as Char Stars in C.
    9:41:21 Demonstration of pointer arithmetic in C
    03:16 An array can be treated as the address of the first element without a backslash zero.
    9:57:26 Copying a pointer only copies the memory address
    10:02:51 Use malloc and free functions to allocate and free memory
    10:13:32 Using malloc and stir copy to copy strings
    10:19:18 Understanding pointers and memory management
    10:29:43 Understanding pointers and memory allocation in C
    10:35:00 Passing copies of values to a function creates problems in C
    10:45:20 Pass in addresses instead of copies to swap values in C using pointers.
    10:50:49 User input via scanf and storing using pointers can be dangerous
    11:01:10 Introduction to data structures in computer memory
    11:07:18 Copying an array to insert a new number is a sub-optimal solution
    11:17:02 Dynamically allocating memory can lead to orphaning the original chunk of memory
    11:22:26 Use realloc to resize arrays in C
    11:33:19 Linked lists allow efficient use of memory by using pointers.
    11:38:13 Creating linked lists with nodes in C
    11:48:19 Initialized a new node with integer and null pointer
    11:53:22 Code to build a linked list using a new primitive
    12:04:01 Iterating through a linked list using a for loop
    12:09:20 Using star notation and arrow notation to free linked lists
    12:19:09 Linked lists require linear search for finding an element
    12:24:16 Using a binary search tree can retain the power of binary search while allowing dynamic memory allocation.
    12:33:55 Implementation of a binary search tree in C
    12:38:58 Recursion is elegant and works well with data structures like binary search trees.
    12:49:04 A hash table is an array whose elements are linked lists.
    12:53:56 Hashing can be used to sort data into distinct buckets for easier processing.
    13:04:01 A trie allows for constant time lookup
    13:08:54 Different data structures should be used based on the situation
    13:19:14 Python has simpler syntax for printing and declaring variables compared to C
    13:23:59 Python syntax is simpler than C syntax.
    13:33:55 Python has built-in data types and libraries for common tasks
    13:38:37 Python is an interpreted language, making it easier to use and learn with fewer lines of code and many libraries available.
    13:48:36 Python implemen

  • He seems like a little bit out of breath with that mask on 😅

  • Someone who did the course – can you help me? I have a question about the lecture 1 – C

  • no one feel his speed so high?i cant hear clearly what he said😭

  • It feels like getting taught by Rayn Ranolds. Soo it's pretty interesting for me😂😂

  • Please remove your mask, it must feel very uncomfortable to talk loudly from that mask.

  • Where could I get the certification for this course?

  • personal timestamp:
    woke up 2am after much procrastination i finally played it , finished 6:30am lol
    where i stopped: 56:07
    day 2 (actually 1 week later lol) 1:45:40

  • I just wasted 24 hours of my life. If you know how to program, you most likely won't learn anything new here.

Comments are closed.