The Coding Challenge
Following ChatGPT's Guide to Land My Dream Google Internship.
I've always dreamed of interning at Google (Japan). When I saw that they were accepting interns that spoke English, I realized I didn't have much time to apply and that I didn't know much about APIs and network programming. So I decided that I needed to level up my coding skills to make it happen. And so I embarked on a 10-day coding challenge. I used ChatGPT to make a guide to becoming a coding wizard. (I would have liked to use Bard but it isnt available in Japan yet, and I don't have money for a VPN).
I'll be covering all the requirements listed, Systems software, Algorithms,Windows environments, APIs, TCP/IP and network programming.
After this intensive regimen, I'll be a coding wizard, ready to take on any challenge Google can throw at me. And who knows, maybe I'll even land that dream internship. So here's to ChatGPT's guide, and to becoming a coding master!
Day 1
Systems software or algorithms-Introduction to Computer Systems
Free Resource: ("Computer Science: Computer Systems" by Harvard University)
Starter Project: Write a program that prints out "Hello, World!" to the console.
Windows-Introduction to Windows
Free Resource: ("Windows 10 Tutorial for Beginners") by Britec09
Starter Project: Set up a new user account and customize the desktop background.
APIs-Introduction to APIs
Learn what APIs are and how they work
Starter project: use an API testing tool (e.g. Postman) to make a simple request to a public API and see the response
TCPIP And Network programming-Introduction to TCP/IP
Learn the basics of TCP/IP protocol
Understand the layers in TCP/IP model
Learn about IP addressing and subnetting
Resources:
TCP/IP Fundamentals for Microsoft Windows: https://docs.microsoft.com/en-us/windows-server/networking/technologies/tcp-ip/tcp-ip-fundamentals
Starter project:
Create a simple network diagram of your home network or a small network you know about.
Day 2
Systems software or algorithms:-Memory Management
Free Resource: ("Memory Management" by mycodeschool)
Starter Project: Implement a program that allocates and deallocates memory using malloc and free functions.
Windows-Basic Windows Navigation
Free Resource: ("Windows File Explorer Tutorial") by Teacher's Tech
Starter Project: Use File Explorer to navigate the file system and create a new folder.
APIs- HTTP Requests
Understand the basics of HTTP requests and responses
Starter project: use Postman to make different types of requests (GET, POST, PUT, DELETE) to a public API and examine the responses
TCPIP And Network programming-Network fundamentals
Learn about networking devices such as routers, switches, and hubs
Understand how devices communicate with each other in a network
Resources:
Computer Networking Tutorial - 15 - Network Devices:
Starter project: Set up a small home network with two computers and a router. Test the connectivity between the two computers.
Day 3
Systems software or algorithms-Algorithms and Data Structures
Free Resource: ("Data Structures and Algorithms" by Abdul Bari)
Starter Project: Implement the bubble sort algorithm to sort an array of integers.
Windows- Installing and Uninstalling Software
Free Resource: ("How to Install and Uninstall Software on Windows 10" by Britec09)
Starter Project: Use the Microsoft Store to install a new app and the Control Panel to uninstall an existing app.
APIs- API Design and Documentation
Learn the importance of good API design and documentation
Starter project: examine the documentation of a public API and create a simple flowchart or diagram showing how to use the API
TCPIP And Network programming-Introduction to Network Programming
Understand what is network programming
Learn about socket programming
Understand the different types of sockets
Resources:
Introduction to Network Programming:
Starter project:
Write a simple program in Python or C++ that creates a socket and connects to a remote server.
Day 4
Systems software or algorithms:-Operating Systems
Free Resource: ("Operating Systems" by mycodeschool-)
Starter Project: Implement a basic shell program that can execute simple commands.
Windows- System Settings
Free Resource: ("Windows 10 Settings You Should Change" by ThioJoe)
Starter Project: Customize the display settings and configure power settings.
APIs- JSON and XML
Understand the basics of JSON and XML and how they are used in APIs
Starter project: make a request to a public API that returns JSON or XML data and examine the structure of the response
TCPIP And Network programming- TCP/IP Sockets
Learn about TCP/IP sockets and their uses
Understand the difference between TCP and UDP protocols
Learn about the Berkeley Sockets API
Resources:
TCP/IP Sockets in C: Practical Guide for Programmers: TCP/IP Sockets in C: Practical Guide for Programmers:
Starter project:
Write a simple chat program that uses TCP/IP sockets to communicate between two computers.
Day 5
Systems software or algorithms:-Computer Networks
Free Resource: ("Computer Networking" by Andrew S. Tanenbaum)
Starter Project: Implement a simple chat application using sockets.
Windows-System Maintenance
Free Resource:
("Windows 10 Maintenance" by Britec09) Starter Project: Use the Disk Cleanup tool to free up disk space and the Windows Defender tool to scan for malware. APIs- Authentication and Authorization Learn about authentication and authorization in APIs and how to use API keys Starter project: make a request to a public API that requires an API key and examine the authentication process TCPIP And Network programming- Network Security Learn about network security concepts Understand the different types of network attacks and how to prevent them Resources: Network Security Fundamentals: https://www.cisco.com/c/en/us/products/security/network-security-fundamentals.html Starter project: Set up a firewall on your computer and configure it to allow and block traffic. Systems software or algorithms:- Databases Free Resource: ("Database Management Systems" by Jennifer Widom) Starter Project: Implement a basic database application that can insert, update, and delete data. Windows-Using Microsoft Office Free Resource: ("Microsoft Office Tutorial for Beginners" by Anson Alexander) Starter Project: Use Microsoft Word to create a new document and Microsoft Excel to create a new spreadsheet. APIs- Error Handling Understand how errors are handled in APIs and how to troubleshoot them Watch this video: Watch this video: Starter project: intentionally make a request to a public API that will return an error and examine the error response TCPIP And Network programming- HTTP and DNS Learn about HTTP protocol and its uses Understand DNS and how it works Resources: Starter project: Write a program that connects to a web server using HTTP protocol and downloads a file. Systems software or algorithms:-Compiler Design (Free Resource: "Compiler Design" by Alex Aiken) Starter Project: Implement a basic compiler that can translate a simple programming language into machine code. Windows-: Multimedia (Free Resource: "Windows 10 Photos App Tutorial" by Teacher's Tech) Starter Project: Use the Photos app to view and edit photos and the Windows Media Player to play music and video files. APIs- Versioning and Rate Limiting Learn about versioning and rate limiting in APIs and how to manage them Starter project: examine the documentation of a public API and determine how to handle versioning and rate limiting in requests TCPIP And Network programming- Network Troubleshooting Learn about common network problems and how to troubleshoot them Understand the tools used in network troubleshooting Resources: Starter project: Troubleshoot a network problem on your home network. Systems software or algorithms- Computer Architecture (Free Resource: "Computer Architecture" by David Wentzlaff) Starter Project: Implement a simple CPU simulator that can execute basic arithmetic operations. Windows- Backup and Restore (Free Resource: "How to Backup and Restore Windows 10" by Britec09) Starter Project: Use the File History tool to back up files and folders and the System Restore tool to restore the system to a previous state. APIs- Using APIs in Web Applications Understand how APIs are used in web applications and how to make client-side requests Starter project: create a simple web page that makes requests to a public API and displays the response TCPIP And Network programming Free Resources: Video tutorial: ("What are Ports and Sockets?" by Eli the Computer Guy on YouTube) Article: ("Understanding Sockets and Ports" by RealPython) Starter Project: Build a simple client-server application that allows a user to send messages to the server and receive them back. The client should be able to specify the IP address and port number of the server to connect to. Systems software or algorithms:- Parallel Computing Free Resource: ("Parallel Programming" by David Culler) Starter Project: Implement a program that can calculate the value of Pi using the Monte Carlo method. Windows- Remote Access Free Resource: ("Remote Desktop Connection Windows 10" by Britec09) Starter Project: Set up a remote desktop connection to another Windows computer. APIs- Best Practices for Using APIs Learn about best practices for using APIs, including error handling, caching, and security Starter project: examine the documentation of a public API and determine how to implement best practices when making requests Systems software or algorithms:- Review and Project Work Free Resource: ("Project Euler") Starter Project: Choose a problem from Project Euler and solve it using the concepts learned in the program. Windows- Review and Project Work Free Resource: ( "Windows 10 Training and Tutorials" by Microsoft) Starter Project: Choose a project from the Microsoft training and tutorials resources and apply the concepts learned throughout the program. APIs- API Project Use your knowledge to create a project that uses a public API to solve a real-world problem or provide a useful service Use any language or framework you are comfortable with Examples of public APIs: OpenWeatherMap, Twitter, Google Maps, Yelp, GitHub Participants should aim to complete each day's starter project before moving on to the next day's lesson. This will help them build on their knowledge and skills and reinforce their learning. TCPIP And Network programming Free Resources: Video tutorial: ( "TCP/IP and OSI Model" by PowerCert Animated Videos on YouTube) Article: ("An Introduction to Network Protocols" by Codecademy) Starter Project: Build a simple packet sniffer that captures and displays information about network traffic, such as the source and destination IP addresses, ports, and protocols.
Day 6
Day 7
Day 8
Day 9
Day 10