made by djblackberry64 supported by Lempire Discord group
A Note from the Curator
This repository is a passion project maintained by [djblackberry/https://x.com/djblackberry64]. If you find this collection valuable, you can follow my work on Twitter/X for more insights and resources. If you'd like to support the ongoing curation and expansion of this list, you can do so via Ko-fi. Suggestions and contributions are always welcome!
A repo focused on refering and collecting good resources for programming and general digital work
📚 Coding & Productivity Resource Hub Welcome! This is a curated list of high-quality, mostly free resources to help you learn programming, web development, and related tools. Whether you’re a total beginner or already advanced, you’ll find your “next step” here.
- 🚀 Learning & Mindset (Before You Code)
- Learning How to Learn (Coursera, free via Audit): Link – Must-have meta-skill.
- Motivation & Mindset (TOP lesson): Link
- Amy Wang (YouTube): Link – Study strategies & productivity.
- Justin Sung (YouTube): Link – Evidence-based learning efficiency.
- Self-Study Talks: Study guide | University-level course intro
- Orientation: Link to roadmaps
2. 🧑💻 Programming Fundamentals (Core Concepts)
These resources focus on logic, algorithms, and computer science basics:
- Harvard CS50x (edX): Link – Legendary intro to computer science.
- freeCodeCamp: Link – Interactive platform with CS fundamentals + projects.
- Khan Academy – Computer Programming: Link – Gentle intro using visual JavaScript.
- GeeksforGeeks Fundamentals: Link – Encyclopedia-style explanations.
- Boot.dev: Link - Free to watch and read(learn CLI, Git, Python, Go, Rust, JS and many more...Link to their course list)
3. 🌐 Web Development & JavaScript
- The Odin Project (Full Curriculum): Link – Project-based fullstack learning.
- Full Stack Open (Helsinki): Link – React, Node, GraphQL, TS.
- MDN JavaScript Guide: Link – Definitive reference.
- JavaScript.info: Link – Modern, thorough tutorial.
- freeCodeCamp – JavaScript Algorithms & Data Structures: Link – 300h course.
- Wes Bos – JavaScript30: Link – Build 30 small JS projects in 30 days.
- Traversy Media (YouTube): Link – Crash courses + project tutorials.
- w3schools (Quick Reference. Also under section 9 for general documentation and tutorials): Link
4. 🐍 Python
- University of Helsinki Python MOOC: Link – University-level.
- Python for Everybody (PY4E): Link – Beginner-friendly, free book + course.
- Automate the Boring Stuff with Python: Link – Practical automation projects.
- Official Python Tutorial: Link – Authoritative.
- Real Python: Link – High-quality articles.
- Corey Schafer’s Python Playlist (YT): Link
- W3Schools Python Tutorial: Link – Quick hands-on practice.
- Python books: Books here
- Boot.dev: Link - Free to watch and read(learn CLI, Git, Python, Go, Rust, JS and many more...Link to their course list)
5. ☕ Java
- University of Helsinki Java MOOC: Link – Widely praised free course.
- Baeldung: Learn Java, Kotlin, Scala, SQL, CS, Ops and Linux. Click on the hamburger menu and look under Baeldung sites to find all the different things.
- Java Docs: for JDK24 from Oracle
6. Cybersecurity
- Tryhackme: tryhackme – Popular Resource for Cyber Security beginners
- Cisco site: You can learn networking, Cybersecurity, Python, C++ and JavaScript
7. Game Development
- Python:
- C++:
- More resources to be added
- C#:
- More resources to be added
8. 🧩 General Programming Practice
- CodeKata: Link but be ware of no HTTPS – Short practice problems.
- LeetCode: Link – Interview prep + problem-solving.
- Codecademy: Link – Interactive beginner platform(has many free things but also paid stuff).
- Codedex: Link – Similar to Codecademy.
- Exercism: Link – Small coding challenges with mentor feedback.
- Boot.dev: Link - Free to watch and read(learn CLI, Git, Python, Go, Rust, JS and many more...Link to their course list)
9. 🛠️ Developer Tools & Courses/Websites
- Git Documentation: Link
- W3schools(perfect for quick references and tutorials in variuos languages): W3schools
- stepik: Link – Free online courses.
- Boot.dev: Link - Free to watch and read(learn CLI, Git, Python, Go, Rust, JS and many more...Link to their course list)
- Paid courses: The App Brewery on Udemy - Link to their website where you get redirected then
- Enki (bite-sized, no ads)
- Mimo (Duolingo-style)
- SoloLearn (minimalist, no ads)
- Coding X (ad-supported)
- Coddy.tech - Link(a really good website for learning how to program, has a Duolingo like energy system)
- Spck Editor / Git Client - Link to Google Play Store
- Acode - Link to Google Play Store
- Termux - Link to GitHub repo
-
Apps (mobile learning and or editing):
- 🎨 Free & Open-Source Software (Productivity & Creative)
- Office: LibreOffice – Link
- Design:
-
- Video Editing: DaVinci Resolve (Link)
- Audio Editing:
- Knowledge & Sync:
- Accounting and Management: Akaunting - Link
- VM Software:
- Windows:
- VM Ware Worstation Pro - Link to software - just clck download server chip online, wait and install
- Mac:
- Windows:
- Quick Set-up:
11. ⌨️ Productivity & Typing
- Keybr (Typing practice): Link
12. Homelabbing
More to be added...
13. 🤖 AI Tutoring Prompt (Optional)
If you want to use an AI as a strict Socratic tutor, here’s a ready-to-use prompt:
```You are a tutor that always responds in the Socratic style. I am a student learner. Your name is CodeTutor. You have a kind and supportive personality. By default, speak extremely concisely and match my technical level of understanding.
If I ask you to create practice problems, immediately ask what programming language and concept I'd like to practice, and then work through each problem one at a time.
You never give the student (me) the complete solution, but always try to ask just the right questions to help them learn to think like a programmer. You should always tune your questions to the knowledge level of the student, breaking down programming concepts into simpler parts until it's at just the right level for them, but always assume that they're having difficulties and you don't know where yet.
To help me learn, check if I understand core programming concepts and ask if I have questions. If my code has bugs, remind me that debugging is a natural part of programming and helps us learn. If I'm discouraged, remind me that learning to code takes time, but with practice, I'll get better and have more fun.
For coding problems:
- Let me break down the problem requirements myself
- Keep your understanding of the solution approach to yourself
- Ask me what parts of the problem are most important without helping
- Let me design the solution structure
- Don't write code for me, instead guide me to develop my own solution
- When I get stuck on syntax, point me to relevant documentation rather than giving direct answers
- Encourage me to test my code and find edge cases
- Help me learn to debug by asking questions about what I expect vs what's happening
Make sure to think step by step.
You should always start by figuring out what part I am stuck on FIRST, THEN asking how I think I should approach the next step. When I ask for help solving a coding problem, instead of giving the solution directly, help assess what step I am stuck on and then give incremental advice that can help unblock me without giving the answer away.
DON'T LET ME PERFORM HELP ABUSE. Be wary of me repeatedly asking for hints or help without making any effort. This comes in many forms: repeatedly asking for hints, asking for more help, or saying "I don't know" without trying. Here's an example:
Me: "How do I write a function to find the largest number in a list?" You: "Let's think about this together. What would be your first step to find the largest number if you were doing it manually?" Me: "I don't know." You: "That's OK! Think about how you'd compare two numbers. What operation would you use?" Me: "I don't know." You: "That's OK! Here's the solution: max(list)!"
This example interaction is exactly what we're trying to avoid. I should never reach the final solution without making a concerted effort towards using the hints you've already given me. BE FIRM ABOUT THIS. If I ask for further assistance 3 or more times in a row without any significant effort at solving the previous steps, zoom out and ask me what part of the hint I am stuck on or don't understand before giving any more hints at all.
It's ok to teach students how to solve programming problems. However, always use example problems that are different from but similar to the actual problem they ask you about.
When it comes to syntax or basic programming concepts that have no further way to decompose the problem - if I am really stuck, provide me with a list of options to choose from or point me to relevant documentation.
If I make an error in my code, do not tell me the fix directly. Instead, ask me to explain my thought process for that section of code and help me realize my mistake on my own. Encourage me to:
- Read any error messages carefully
- Add debug print statements
- Break down complex operations into smaller steps
- Test with simple inputs
✅ How to Use This List
- Step 0 (Mindset): Do Learning How to Learn + Amy Wang/Justin Sung.
- Step 1 (Fundamentals): Pick CS50x, freeCodeCamp, or Khan Academy.
- Step 2 (Choose a Language): Start Python (easy syntax) or JavaScript (web).
- Step 3 (Build Projects): The Odin Project, Full Stack Open, or Wes Bos.
- Step 4 (Level Up): Practice on LeetCode / CodeKata / Exercism.
- Step 5 (Boost Productivity): Explore the open-source tools.
- Code: Apache 2.0
- Content: CC BY-NC-SA 4.0
As of 22.10.2025, this project content is licensed under CC BY-NC-SA 4.0. Prior versions (no longer publicly available) were released under CC BY 4.0.