# TutorialEdge.net > Practical, hands-on tutorials for software engineers covering Go, Python, JavaScript, cloud development, and computer science fundamentals. Written by Elliot Forbes, a software engineer and technical educator. ## Go (Golang) Tutorials ### Getting Started - [Getting Started with Go](/golang/getting-started-with-go/): Introduction to the Go programming language - [Go Basic Types Tutorial](/golang/go-basic-types-tutorial/): An overview of the basic types available in Go - [Go Functions Tutorial](/golang/go-functions-tutorial/): How to define and use functions in Go - [Go Methods Tutorial](/golang/go-methods-tutorial/): Working with methods on types in Go - [Go Pointers Tutorial](/golang/go-pointers-tutorial/): Understanding and using pointers in Go - [Go Complex Types Tutorial](/golang/go-complex-types-tutorial/): Working with structs, arrays, slices, and maps - [Go Maps Tutorial](/golang/go-maps-tutorial/): Working with maps (hash maps) in Go - [Go Interfaces Tutorial](/golang/go-interfaces-tutorial/): Defining and implementing interfaces in Go - [Go Closures Tutorial](/golang/go-closures-tutorial/): Using closures and anonymous functions in Go - [Go Variadic Function Tutorial](/golang/go-variadic-function-tutorial/): Writing functions that accept variable numbers of arguments - [Go Type Assertions Tutorial](/golang/go-type-assertions-tutorial/): Working with type assertions and type switches - [The Go init Function](/golang/the-go-init-function/): Understanding the init function and its uses - [Go Constructors Tutorial](/golang/go-constructors-tutorial/): Constructor patterns in Go - [Functional Options Parameter Pattern in Go](/golang/functional-options-parameter-pattern-in-go/): Using functional options for flexible APIs - [Accept Interfaces and Return Structs](/golang/accept-interfaces-return-structs/): A key Go design principle explained ### Concurrency - [Concurrency with Golang Goroutines](/golang/concurrency-with-golang-goroutines/): Introduction to goroutines and concurrent programming in Go - [Go Channels Tutorial](/golang/go-channels-tutorial/): Communicating between goroutines using channels - [Go WaitGroup Tutorial](/golang/go-waitgroup-tutorial/): Synchronising goroutines with sync.WaitGroup - [Go Mutex Tutorial](/golang/go-mutex-tutorial/): Protecting shared state with mutexes - [Go Context Tutorial](/golang/go-context-tutorial/): Managing cancellation and deadlines with context ### Testing - [Introduction to Testing in Go](/golang/intro-testing-in-go/): Getting started with Go's built-in testing package - [Advanced Go Testing Tutorial](/golang/advanced-go-testing-tutorial/): Table-driven tests, subtests, and test helpers - [Benchmarking Your Go Programs](/golang/benchmarking-your-go-programs/): Writing and running benchmark tests - [Improving Your Tests with Testify](/golang/improving-your-tests-with-testify-go/): Using the testify assertion library - [Testing with Fake HTTP Services in Go](/golang/testing-with-fake-http-services-in-go/): Mocking HTTP dependencies in tests - [Getting Started with TestMain in Go](/golang/getting-started-with-testmain-in-go/): Using TestMain for test setup and teardown - [t.Cleanup Tutorial in Go](/golang/t-cleanup-tutorial-in-go/): Using t.Cleanup for test resource management - [Introduction to Logging in Tests](/golang/intro-to-logging-in-tests-golang/): Logging strategies for Go tests ### Web Development & APIs - [Creating a Simple Web Server with Go](/golang/creating-simple-web-server-with-golang/): Building a basic HTTP server in Go - [Creating a RESTful API with Go](/golang/creating-restful-api-with-golang/): Building a REST API using the standard library - [The Complete Guide to Building REST APIs in Go](/golang/go-rest-api-guide/): Comprehensive guide to REST API design in Go - [Basic REST API with Go Fiber](/golang/basic-rest-api-go-fiber/): Building APIs with the Fiber web framework - [Making HTTP Requests in Go](/golang/making-http-requests-in-go-tutorial/): Using net/http to call external APIs - [Consuming a RESTful API with Go](/golang/consuming-restful-api-with-go/): Parsing and consuming REST APIs - [Validating HTTP JSON Requests in Go](/golang/validating-http-json-requests/): Request validation patterns - [Authenticating a Go REST API with JWTs](/golang/authenticating-golang-rest-api-with-jwts/): JWT-based authentication - [Go OAuth2 Tutorial](/golang/go-oauth2-tutorial/): Implementing OAuth2 in Go applications - [Go File Upload Tutorial](/golang/go-file-upload-tutorial/): Handling file uploads in Go HTTP servers - [Go Swagger Tutorial](/golang/go-swagger-tutorial/): Generating API documentation with Swagger ### WebSockets - [Golang WebSockets Tutorial](/golang/golang-websockets-tutorial/): Real-time communication with WebSockets in Go - [Go WebSocket Tutorial](/golang/go-websocket-tutorial/): Building WebSocket servers in Go ### JSON & Data Formats - [Parsing JSON with Go](/golang/parsing-json-with-golang/): Decoding and encoding JSON in Go - [Go JSON Tutorial](/golang/go-json-tutorial/): Working with JSON data in Go - [Parsing XML with Go](/golang/parsing-xml-with-golang/): Reading and writing XML in Go ### Databases - [Go MySQL Tutorial](/golang/golang-mysql-tutorial/): Connecting to and querying MySQL from Go - [Go Redis Tutorial](/golang/go-redis-tutorial/): Using Redis as a cache or data store in Go - [Go ORM Tutorial](/golang/golang-orm-tutorial/): Using an ORM for database access in Go ### gRPC & Protocol Buffers - [Go gRPC Beginners Tutorial](/golang/go-grpc-beginners-tutorial/): Building gRPC services in Go - [Go Protocol Buffer Tutorial](/golang/go-protocol-buffer-tutorial/): Defining and using Protocol Buffers in Go - [gRPC Metadata in Go](/golang/grpc-metadata-in-go-tutorial/): Working with metadata in gRPC calls ### GraphQL - [Go GraphQL Beginners Tutorial](/golang/go-graphql-beginners-tutorial/): Building a GraphQL API in Go - [Go GraphQL Tutorial Part 2](/golang/go-graphql-beginners-tutorial-part-2/): Advanced GraphQL patterns in Go ### Modules & Tooling - [Go Modules Tutorial](/golang/go-modules-tutorial/): Managing dependencies with Go modules - [Go Tools Overview](/golang/go-tools-overview/): Overview of the Go toolchain - [Makefiles for Go Developers](/golang/makefiles-for-go-developers/): Using Make to automate Go workflows - [Taskfiles for Go Developers](/golang/taskfiles-for-go-developers/): Using Taskfile as a modern alternative to Make - [GitHub Actions for Go Projects](/golang/github-actions-for-go-projects/): CI/CD with GitHub Actions - [Building a CI/CD Pipeline for Go Projects](/golang/building-ci-cd-pipeline-go-projects/): Automated build and deployment pipelines - [Improving Go Workflow with Git Hooks](/golang/improving-go-workflow-with-git-hooks/): Automating checks with pre-commit hooks - [Go Project Structure Best Practices](/golang/go-project-structure-best-practices/): How to structure a Go project ### Docker & Cloud - [Go Docker Tutorial](/golang/go-docker-tutorial/): Containerising Go applications with Docker - [Go Multi-Stage Docker Tutorial](/golang/go-multi-stage-docker-tutorial/): Optimising Docker images with multi-stage builds - [Build a Go Serverless App with SST](/golang/build-a-go-serverless-app-in-5-minutes-with-sst/): Deploying Go functions with SST ### WebAssembly - [Go WebAssembly Tutorial](/golang/go-webassembly-tutorial/): Running Go in the browser with WebAssembly - [Go WebAssembly Primer](/golang/go-webassembly-primer/): Introduction to Go and WebAssembly - [Writing a Frontend Web Framework with WebAssembly and Go](/golang/writing-frontend-web-framework-webassembly-go/): Building UI with Go and WASM ### Patterns & Best Practices - [Go Decorator Function Pattern](/golang/go-decorator-function-pattern-tutorial/): Implementing the decorator pattern in Go - [Writing Loosely Coupled Go](/golang/writing-loosely-coupled-go/): Dependency injection and decoupling in Go - [Clean Architecture in Go](/golang/clean-architecture-fully-mapped-functions-in-go/): Applying clean architecture principles - [Secure Coding in Go - Input Validation](/golang/secure-coding-in-go-input-validation/): Writing secure Go code with proper validation - [Go Garbage Collection Overview](/golang/go-garbage-collection-overview/): Understanding Go's garbage collector - [Essential Golang Interview Questions](/golang/essential-golang-interview-questions/): Common Go interview questions and answers - [Go Generics Tutorial](/golang/getting-starting-with-go-generics/): Using generics introduced in Go 1.18 - [Go Iterators Tutorial (Go 1.23)](/golang/go-123-iterators-tutorial/): Range-over-func iterators in Go 1.23 - [Joining Errors with errors.Join in Go](/golang/joining-errors-with-errors-join-in-go/): Multi-error handling patterns - [Go Panic Recovery Tutorial](/golang/go-panic-recovery-tutorial/): Recovering from panics gracefully - [Retrying HTTP Requests with retry-go](/golang/retrying-http-requests-with-retry-go/): Resilient HTTP clients in Go ### File System & System - [Reading and Writing Files in Go](/golang/reading-writing-files-in-go/): File I/O in Go - [Working with Environment Variables in Go](/golang/working-with-environment-variables-in-go/): Reading environment variables - [Executing System Commands with Go](/golang/executing-system-commands-with-golang/): Running shell commands from Go - [Reading Console Input in Go](/golang/reading-console-input-golang/): Reading user input from stdin - [Temporary Files and Directories in Go](/golang/temporary-files-directories-go-111/): Creating temp files and dirs - [Go Unsafe Package Tutorial](/golang/go-unsafe-package-tutorial/): Understanding and using the unsafe package ### Encryption & Security - [Go Encryption and Decryption using AES](/golang/go-encrypt-decrypt-aes-tutorial/): AES symmetric encryption in Go ### Messaging & Events - [Go RabbitMQ Tutorial](/golang/go-rabbitmq-tutorial/): Messaging with RabbitMQ in Go - [Event-Driven Go with RxGo](/golang/event-driven-go-with-rxgo/): Reactive programming patterns in Go ### Miscellaneous Go - [Building a CLI in Go](/golang/building-a-cli-in-go/): Writing command-line tools in Go - [Go Linked Lists Tutorial](/golang/go-linked-lists-tutorial/): Implementing linked lists in Go - [Go Sorting with sort Package](/golang/go-sorting-with-sort-tutorial/): Sorting slices and collections in Go - [Go Ticker Tutorial](/golang/go-ticker-tutorial/): Using tickers for periodic tasks - [Sending Email with Go and Mailgun](/golang/sending-email-using-go-and-mailgun/): Sending transactional email from Go - [Writing a Twitter Bot in Go](/golang/writing-a-twitter-bot-golang/): Automating Twitter with Go - [Golang Integer to String Conversion](/golang/golang-integer-string-conversion-tutorial/): Converting between int and string in Go - [Embedding Lua Scripts in Go](/golang/embedding-lua-scripts-in-go/): Running Lua inside Go applications - [Go Face Recognition Tutorial](/golang/go-face-recognition-tutorial-part-one/): Face recognition with Go --- ## Python Tutorials ### Getting Started - [Getting Started with Python](/python/getting-started-with-python/): An absolute beginner's guide to Python - [Python Functions and Variables](/python/python-functions-and-variables/): Core building blocks of Python programs - [Working with Lists in Python](/python/python-lists-tutorial/): Creating and manipulating lists - [Python Modules Tutorial](/python/python-modules-tutorial/): Organising code with modules - [Python Project Layout Best Practices](/python/python-project-layout/): Structuring Python projects ### Concurrency & Async - [Python Multithreading Tutorial](/python/python-multithreading-tutorial/): Concurrent programming with threads - [Python Multiprocessing Tutorial](/python/python-multiprocessing-tutorial/): Parallelism with the multiprocessing module - [Getting Started with Asyncio in Python](/python/concurrency/getting-started-with-asyncio-python/): Asynchronous programming with asyncio - [Asyncio Event Loops Tutorial](/python/concurrency/asyncio-event-loops-tutorial/): Deep dive into asyncio event loops - [Asyncio Tasks Tutorial](/python/concurrency/asyncio-tasks-tutorial/): Creating and managing asyncio tasks - [Python ThreadPoolExecutor Tutorial](/python/concurrency/python-threadpoolexecutor-tutorial/): Thread pool execution - [Python ProcessPoolExecutor Tutorial](/python/concurrency/python-processpoolexecutor-tutorial/): Process pool execution ### Web & APIs - [Making HTTP Requests in Python](/python/python-http-requests-tutorial/): Using the requests library - [Creating a RESTful API with Python and aiohttp](/python/create-rest-api-python-aiohttp/): Async REST APIs in Python - [Python Socket.io Tutorial](/python/python-socket-io-tutorial/): Real-time communication with Socket.io - [Fetching Web Pages in Python](/python/fetching-web-pages-python/): HTTP requests with urllib - [Creating a Python Web Crawler](/python/creating-python-web-crawler/): Scraping the web with Python - [UDP Client and Server in Python](/python/udp-client-server-python/): Low-level networking with UDP ### Data & Files - [Working with JSON in Python](/python/working-with-json-in-python/): Parsing and generating JSON - [How to Manipulate CSV, XLSX, and JSON Data with Pandas](/python/csv-xlsx-json-data-python/): Data wrangling with Pandas - [Reading and Writing Files in Python](/python/python-reading-writing-files/): File I/O in Python - [Working with the File System in Python](/python/python-working-with-file-system/): File and directory operations - [Python YAML Tutorial](/python/python-yaml-tutorial/): Parsing YAML configuration files ### Testing & Debugging - [Getting Started with PyUnit Testing](/python/getting-started-with-pyunit-testing/): Unit testing in Python - [Debugging with PDB](/python/debugging-with-pdb-python/): Using Python's built-in debugger - [Python Logging Best Practices](/python/python-logging-best-practices/): Structured logging for Python applications ### Patterns & Advanced - [Python Decorators Tutorial](/python/python-decorators-tutorial/): Writing and using decorators - [Python Generators Tutorial](/python/python-generator-tutorial/): Memory-efficient iteration with generators - [Python Iterator Tutorial](/python/python-iterator-tutorial/): Implementing custom iterators - [Python Method Resolution Order](/python/python-method-resolution-order-tutorial/): Understanding MRO and multiple inheritance - [Python Event-Driven Programming with RxPY](/python/python-event-driven-rxpy-tutorial/): Reactive extensions for Python - [Python C Extensions Tutorial](/python/python-c-extensions-tutorial/): Writing C extensions for Python ### Essential Python Interview Questions - [Essential Python Interview Questions](/python/essential-python-interview-questions/): Common Python interview questions and answers --- ## Computer Science Fundamentals ### Data Structures - [Data Structures - Arrays for Beginners](/compsci/data-structures/arrays-for-beginners/): Understanding arrays - [Data Structures - Stacks for Beginners](/compsci/data-structures/stacks-for-beginners/): LIFO data structures - [Data Structures - Queues for Beginners](/compsci/data-structures/queues-for-beginners/): FIFO data structures - [Data Structures - Hash Tables for Beginners](/compsci/data-structures/hash-tables-for-beginners/): Key-value storage with hash tables - [Data Structures - Graphs for Beginners](/compsci/data-structures/compsci-graphs-for-beginners/): Graph theory and representations - [Data Structures - Sets for Beginners](/compsci/data-structures/sets-for-beginners/): Working with sets - [Data Structures - Priority Queues for Beginners](/compsci/data-structures/priority-queues-for-beginners/): Heap-based priority queues - [Getting Started with Tries in Python](/compsci/data-structures/getting-started-with-tries-in-python/): Trie data structure implementation ### Sorting Algorithms - [Implementing Bubble Sort in Python](/compsci/sorting/bubble-sort-in-python/): The bubble sort algorithm - [Implementing Selection Sort in Python](/compsci/sorting/selection-sort-in-python/): The selection sort algorithm - [Implementing Insertion Sort in Python](/compsci/sorting/insertion-sort-in-python/): The insertion sort algorithm - [Implementing Quicksort in Python](/compsci/sorting/quicksort-in-python/): The quicksort algorithm ### Concepts - [Memoization for Beginners](/compsci/memoization-for-beginners/): Caching results to speed up recursive algorithms - [Bit Manipulation for Beginners](/compsci/bit-manipulation-for-beginners/): Working at the bit level --- ## Cloud Development - [Getting Started with Serverless](/cloud/getting-started-with-serverless/): Introduction to serverless architecture - [Creating Go Lambda Functions in AWS](/cloud/aws/creating-go-lambda-functions-tutorial/): Deploying Go functions to AWS Lambda - [Python Lambda Tutorial](/cloud/aws/python-based-lambda-tutorial/): Python functions on AWS Lambda - [Build a Scalable REST API with Go, Terraform, and AWS](/cloud/build-scalable-rest-api-go-terraform-aws/): Infrastructure as code with Terraform - [An Introduction to Autoscaling](/cloud/an-introduction-to-autoscaling-your-website/): Scaling web services automatically - [Basic Website Resiliency - Load Balancers](/cloud/basic-website-resiliency-load-balancers/): Load balancing strategies --- ## JavaScript Tutorials ### AngularJS - [AngularJS Controllers Tutorial](/javascript/angularjs/angularjs-controllers-tutorial/): Controllers in AngularJS - [AngularJS Directives Tutorial](/javascript/angularjs/angularjs-directives-tutorial/): Writing custom directives - [AngularJS Promises Tutorial](/javascript/angularjs/angularjs-promises-tutorial/): Asynchronous patterns with promises - [AngularJS Form Validation Tutorial](/javascript/angularjs/angularjs-form-validation-tutorial/): Validating forms in AngularJS - [AngularJS Filter Tutorial](/javascript/angularjs/angularjs-filter-tutorial/): Filtering data in AngularJS - [Interacting with APIs using $http in AngularJS](/javascript/angularjs/interacting-with-apis-using-http-angularjs/): Making HTTP calls from AngularJS --- ## About TutorialEdge.net is written and maintained by Elliot Forbes, a software engineer based in the UK. The site focuses on practical, working code examples over theoretical explanations. - Author: Elliot Forbes - GitHub: https://github.com/elliotforbes - Twitter: https://twitter.com/Elliot_F - Site: https://tutorialedge.net