Programming Is NOT Enough | Add these 5 skills…

Tech With Tim · Beginner ·🤖 AI Agents & Automation ·1y ago

Key Takeaways

The video discusses the importance of acquiring skills beyond programming, including system design, scalability, and debugging, and introduces tools such as Redis, Rabbit MQ, Kafka, and Docker, as well as concepts like prompt engineering and AI orchestration.

Full Transcript

Learning to code was enough 5 years ago, but it's not anymore. In 2025, you need more than just typing Python into a keyboard. And if you don't master these five skills, then you'll be left behind, plain and simple. Now, look, I'm not here to motivate you. I'm here to give you a road map. I'll tell you exactly what you need to learn for each skill so you can actually do something about it. And by the way, if you want one-on-one advice for your exact situation, I've got something launching soon, which you can read more about from the link in the description. We're only taking 20 students, so jump on the wait list if you want a chance to join. With that said, let's get into skill number one, which is systems thinking. Now, most beginner developers only think in terms of the code. They're focused on things like files, functions, or classes, but they ignore the entire system as a whole. Now, as you get more experienced, you start to think more like a systems engineer or a systems architect, where you consider the entire system, not just all of the individual lines of code. So what I mean by this is thinking of a system like having a front end, a backend, an API, a database, maybe a queue or some kind of cache that's going on. Understanding how the data flows between those various components, and then looking at things like asynchronous programming or synchronous programming, how to handle various requests, how to potentially scale the system up using something like vertical scaling or horizontal scaling. These are the topics that I'm talking about here. And in order to really get to the next level, you need to start understanding some basic system design concepts. So what I have for you here is a quick list of tools and kind of resources or topics that you'd want to be aware of. So let me list these out. So first we have readies. Now this is a great tool for caching and I definitely recommend using it. Doesn't take too long to spin up and to learn. Next, for things like task cues, I'd look at something like Rabbit MQ or Kafka. And then I'd want to be looking into load balancing strategies and using proxies or things like EngineX. And then lastly, here's a few terms that you should be aware of. So things like throughput, latency, rate limiting, connection pools, and read replicas. Obviously, there's a lot more stuff that I could put here, but generally speaking, you want to start thinking about a system as a whole, breaking it into its various components, and really understanding how the data flows between those components. then you can start thinking more about scalability and some of the other skills on this list will help you with that. Now, if you did want to master this particular skill, here's a great project that you could work on that would cover almost all of these areas. Now, that project is to build a messaging app so you can cache, for example, the 50 latest messages per user. You can set up a queue like Rabbit MQ to handle email notifications or offload those. And then you have to deal with multiple messages coming in at once, maybe connecting different users to each other in private rooms. How will this scale? If you have users that are sending thousands of different requests, maybe you want to set up some kind of rate limit. You get the idea. A message app is a great way to get started building this skill. And I'd recommend that you try it out. But now, let's move on to skill number two. But first, I want to be real with you. These skills will all generally help you, but each of your situations are different and require a different strategy, especially if you want to land a job. Now, that's why I'm relaunching my mentorship program, Dev Launch, in just 2 weeks from now. Now, if you're interested, sign up from the link below to get notified when we go live, as I'm only going to be accepting the top 20 applicants. Now, this program is designed to help you launch your dev career, and I've teamed up with senior level software engineers from companies like Google to give a small group of students personalized advice and assistance over a 4month period. Now, you can register for the weight list down below. And as a bonus, I'll even send you a proven resume template that has landed hundreds of interviews for various students. Anyways, let's get into skill number two, which is prompt engineering and AI orchestration. Now, look, we're in the age of AI now. Obviously, it's important to understand how LLMs work and also how you can use them to build various applications. So, in this skill here, yes, I'm talking about utilizing LLMs for things like coding, but also how you can use them for building applications and tie them into your apps. So, let me go over a few topics that you'll want to be aware of. Now number one is prompt chaining or multi-step workflows. Next is token limits and the context window for LLMs. Then we have system prompts verse user prompts and how to utilize those properly. And then memory strategies like using lang chain memory or vector memory or various vector databases. Next we have rag or retrieval augmented generation to fetch data before you prompt and kind of inject that inside of the LLM. Now, in terms of learning these topics and actually using them in an app, I have a few tools that you may consider learning. So, first, in terms of some highlevel frameworks, you're going to be wanting to use things like Langchain, O Lama, and Llama Index. You also could use something like Langraph, for example, for a more advanced AI application. Then, you want to learn about various LLMs. So, obviously things like OpenAI or GPT, Claude, Gemini, Grock, DeepSeek. You don't need to know them all, but you should be aware of which LLM is best for which task and know when to choose which one. Then you're going to want to learn about things like vector databases. So things like Chroma DB or using something like Astro DB. There's all kinds of different vector databases out there. You should learn at least one and actually build a project around that. Now, in terms of a simple project that you could work on to learn some of these skills, I'd recommend just making a simple document question and answer bot. This means you're going to have some kind of LLM. You're going to load in some kind of PDF or some kind of documents. You're going to split those or chunk them up, store them in a vector database, and then you're going to have the LLM be able to use this vector database using something called rag retrieval augmented generation to pull in relevant context and then answer your question. So, for example, you may have some information about a restaurant like the menu. You give the LM access to that document or to the vector database that stores it and then you can ask questions about the menu and it can read that document and actually reply to you with contextually relevant responses. All right, that's skill number two. Let's move on to skill number three. All right, so the next skill on my list here is endtoend shipping or deployment. Essentially going from code to the cloud and actually allowing people to use your applications. Now, most developers actually never deploy something. They simply write the code, it works on their own machine, and then they stop there. Now, that's fine in a lot of situations, but if you really want to get to that next level, you need to understand all of the topics related to deployment because really, this is a whole job on its own. And there's so much you can learn here and add a lot of value to particular roles or organizations that you join. So, let's go over a few topics that you definitely want to learn. Now, first is Docker and containerization. How do you take large applications, split them into smaller containers, and how do you actually run those using tools like Docker? Next, things like GitHub actions. This can do automatic deployment or automatic testing for you. It's relatively simple, but allows you to run some kind of scripts whenever something changes in your GitHub repository. Great if you want to automatically deploy something on a particular branch. Next, something like secret management. So, how do you manage environment variables? How do you do that in the cloud? How do you deal with various keys, permissions, and access? Obviously, very, very important. Next, you need monitoring and alerting. So, of course, if something goes wrong in your application, you need to be aware of that, and you need a way to monitor what's going on on local host or when you're running it on your own computer. Sure, you can look in the terminal and you can view some basic debug information, but when something's deployed out to the cloud, it can be a lot more difficult to do that. So, you want to understand how do you monitor your app? How do you deal with logs? That's an important topic. Next, things like roll back and recovery. So, how do we take maybe a database in a corrupt state and bring it back to something that is proper? So, how do we roll something back or recover data? Now, a lot of this would be the role of a DevOps engineer, but it's still a good thing to be aware of and can definitely make you more valuable again, especially if you're looking for a job. Now, in terms of specific tools and topics, of course, like I mentioned, Docker, also something like Kubernetes in terms of orchestrating your Docker containers. Then, we have things like GitHub actions. Again, we already talked about this, but understanding how to actually write out those scripts. Then there's tools like Versel and Render if you want to actually deploy something out. And then we have tools for logging like Century or Log Rocket or Graphana. You don't need to learn them all. Just want to share a few with you here so you have some ideas of where you can get started. Now, in terms of projects that would help you to learn this skill, let me go over one that I think would be great. Now, this is to build a URL shortener. something like tiny URL where you paste in some long URL and then can make a shorter version of it and then whenever you go to that short URL it redirects you to the longer URL. This is actually more complicated than it seems. And if you really think about kind of the design and architecture of this, you'll realize what goes into this and how you need to use some of these skills. So for example, for the back end, you could containerize this with Docker. You could have the front end deployed on Verscell. You could write some GitHub action scripts to automatically test what's going on. And then you could use some monitoring and logging tools to actually track all of the URLs that are being generated and to make sure those are working properly. Anyways, that is skill number three. Let's move on to skill number four. So skill number four is API integration and design. Now most people know how to use APIs by like calling them for example, but they don't really know how to design them, especially at scale for other people to use. So that's really what I'm talking about here, understanding how to design APIs, some of the best practices, and some of the topics that I'm about to go through. Now, first you want to understand REST versus GraphQL. You then want to understand how to name your APIs, version, use various HTTP status codes, and make sure that it's actually reliable and that other people can use it. Then you need to have authentication and authorization. Of course, we don't want anyone to just be able to use our API. So, we need to understand how to register API keys, for example, or how to use various other methods like JWT tokens or maybe something like OOTH 2. Next, we want to talk about page nation rate limiting or back off and retries. Obviously, when you're using an API, you don't want someone to just be able to send massive amounts of requests. That's where rate limiting comes in. And a lot of times, if you're returning a bunch of data, you want to pagionate that data so you don't have these massive requests. and you can send maybe 50 results at a time rather than 5,000. Now, in terms of actually applying these concepts, here's a few tools that you might want to check out. Of course, there's so many different ways to build APIs, but here's what I typically use and what I think is pretty good for beginners to get started with. Now, if you want to build APIs, you can do that with something like fast API Express. If you want to work in something like JavaScript, you can do that with the Django REST framework. And again, I'm very kind of Pythonheavy because that's what my channel focuses on. But of course you can build APIs in something like Go using the Jin framework. You can build them in C++. You can build them in all kinds of different languages. But the point is you want to have experience actually building APIs. Next, you want to understand how to test API. So using something like Postman, for example, for sending various requests, and then I'd recommend looking into some APIs like Stripe for payment processing, using the OpenAI API, using the GitHub API and being familiar with actually using a lot of APIs because the more APIs that you use, the more you understand how they're designed, and then you can take those principles and apply them to your own APIs. And here's a project that you could work on that would help you do this. Now, this is essentially a backend API for wrapping something like GPT or some LLM call. Now, a lot of websites now you can use some LLM on them, but of course that's going to cost a lot of money. So, they want to be able to, for example, charge users. So, you should set up the exact same thing. Create an API, so a backend API, whatever framework that you want, allow users to authenticate themselves using either JWT tokens or something like OOTH, and then allow them to invoke an API. So call something like the OpenAI API, but every single time they do that or if they're going to be doing it a lot, charge them using Stripe. So for example, you can have the Stripe API set up. You can charge them maybe $5 to buy a bunch of credits and then they can use those credits when they call this LLM and then they obviously recharge it by buying more. I'm just giving you a simple example here so that you could use various APIs while building your own API and actually providing a real service. Anyways, that is skill number four. Let's move on to number five. Now, the next skill on my list here is a pretty common one, but this is debugging. Now, in the age of AI, I feel like a lot of developers have lost this skill, and that's why I'm putting it here. So, if you want to seriously level up as a developer, you need to get good at debugging. It's not just about fixing errors. It's about knowing how to approach the unknown. So, you can start by learning how to read a stack trace. This tells you where your code crashed and why. Now, don't just glance at it. Read it line by line. Follow the trace, and figure out where and why things went wrong. Next, you can understand techniques like binary search debugging. This means strategically placing break points or print statements to narrow down where a bug is happening, like a binary search for the faulty line of code. This is fast, effective, and critical when you're dealing with complex systems. Then you can get familiar with logs, metrics, and error tracking tools. Logging helps you reconstruct what your app was doing when it failed. And tools like Century or Log Rocket automatically surface exceptions and show you the full context. Now, for performance issues, you'll want to look at how to use things like profiles and system monitors. Now, you also need to know the common types of bugs that plague real systems. for example, no references, race conditions, memory leaks, off by one errors, and you should know what they look like, how they happen, and how you can prevent or debug them. Now, here's a quick tool set that you might want to master to make you good at debugging. First, code level debugging. So using things like VS Code debugger, PDB in Python, Chrome Dev Tools if you're debugging, you know, React or something like JavaScript, error tracing with Century, Log Rocket or something like Rollbar, and then profiling and performance using something like Cprofile, Pispy, the Chrome performance tab. There's all kinds of profilers based on the language and framework that you're using. So next we have system level debugging. So using commands like top or htop and various Linux commands so you can actually inspect and see what's going on in the system with processes with the memory the different file handles. That's important as well. You're not just debugging code. Sometimes you need to debug the system to see what's actually going wrong. Now this isn't just about knowing the tools. It's about building the mindset to diagnose and fix anything. That's really what good developers do right now. Generally, the faster and better you get at debugging, the faster you're going to become at shipping production grade code, which is really what matters for most people and most organizations. Now, look, there's all kinds of ways to learn how to debug, but generally, you just need to write a lot of code and also have that mindset that you're going to go in there and fix it and not just give up whenever a bug occurs. Read through your error messages, use all of the tools and resources that you have, and practice doing this on a daily basis so that you actually get good at it. So, there you go, guys. That is this video. Those are the five skills that I think you should add that are not just coding. Let me know if you agree with me in the comments down below and I look forward to seeing you in another video. [Music]

Original Description

Want to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter Learning to code was enough five years ago, but it's not anymore. In 2025, you need more than just typing Python into a keyboard. And if you don't master these five skills, then you'll be left behind. Now, look, I'm not here to motivate you. I'm here to give you a roadmap. I'll tell you exactly what you need to learn for each skill, so you can actually do something about it. ⏳ Timestamps ⏳ 00:00 | Overview 00:35 | Skill #1 02:56 | Mentorship Program - Limited Spots 03:40 | Skill #2 05:58 | Skill #3 09:05 | Skill #4 12:10 | Skill #5 Hashtags #Programming #SoftwareEngineer #AIAgents
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Tech With Tim · Tech With Tim · 0 of 60

← Previous Next →
1 A* Path Finding Algorithm(Visualization)
A* Path Finding Algorithm(Visualization)
Tech With Tim
2 Python Programming Tutorial #1 - Variables and Data Types
Python Programming Tutorial #1 - Variables and Data Types
Tech With Tim
3 Python Programming Tutorial #2 - Basic Operators and Input
Python Programming Tutorial #2 - Basic Operators and Input
Tech With Tim
4 Python Programming Tutorial #3 - Conditions
Python Programming Tutorial #3 - Conditions
Tech With Tim
5 Python Programming Tutorial #4 - IF/ELIF/ELSE
Python Programming Tutorial #4 - IF/ELIF/ELSE
Tech With Tim
6 Python Programming Tutorial #5 - Chained Conditionals and Nested Statements
Python Programming Tutorial #5 - Chained Conditionals and Nested Statements
Tech With Tim
7 Python Programming Tutorial #6 - For Loops
Python Programming Tutorial #6 - For Loops
Tech With Tim
8 Python Programming Tutorial #7 - While Loops
Python Programming Tutorial #7 - While Loops
Tech With Tim
9 Python Programming Tutorial #8 - Lists and Tuples
Python Programming Tutorial #8 - Lists and Tuples
Tech With Tim
10 Python Programming Tutorial #9 - Iteration by Item (For Loops Continued...)
Python Programming Tutorial #9 - Iteration by Item (For Loops Continued...)
Tech With Tim
11 Python Programming Tutorial #10 - String Methods
Python Programming Tutorial #10 - String Methods
Tech With Tim
12 How to Overclock a NVIDIA GPU
How to Overclock a NVIDIA GPU
Tech With Tim
13 Python Programming Tutorial #11 - Slice Operator
Python Programming Tutorial #11 - Slice Operator
Tech With Tim
14 Python Programming Tutorial #12 - Functions
Python Programming Tutorial #12 - Functions
Tech With Tim
15 Python Programming Tutorial #13 - How to Read a Text File
Python Programming Tutorial #13 - How to Read a Text File
Tech With Tim
16 Python Programming Tutorial #14 - Writing to a Text File
Python Programming Tutorial #14 - Writing to a Text File
Tech With Tim
17 Python Programming Tutorial #15 - Using .count() and .find()
Python Programming Tutorial #15 - Using .count() and .find()
Tech With Tim
18 Python Programming Tutorial #16 - Introduction to Modular Programming
Python Programming Tutorial #16 - Introduction to Modular Programming
Tech With Tim
19 Python Programming Tutorial #17 - Optional Parameters
Python Programming Tutorial #17 - Optional Parameters
Tech With Tim
20 Python Programming Tutorial #18 - Try and Except (Python Error Handling)
Python Programming Tutorial #18 - Try and Except (Python Error Handling)
Tech With Tim
21 Python Programming Tutorial #19 - Global vs Local Variables
Python Programming Tutorial #19 - Global vs Local Variables
Tech With Tim
22 Python Programming Tutorial #20 - Classes and Objects
Python Programming Tutorial #20 - Classes and Objects
Tech With Tim
23 Cool VBS Script to Prank Your Friends!
Cool VBS Script to Prank Your Friends!
Tech With Tim
24 How to Overclock an AMD GPU
How to Overclock an AMD GPU
Tech With Tim
25 Best GPU'S For Mining Ethereum (2018)
Best GPU'S For Mining Ethereum (2018)
Tech With Tim
26 Recursion and Memoization Tutorial Python
Recursion and Memoization Tutorial Python
Tech With Tim
27 Ethereum Mining Rig - Hardware Guide
Ethereum Mining Rig - Hardware Guide
Tech With Tim
28 Pygame Tutorial #1 - Basic Movement and Key Presses
Pygame Tutorial #1 - Basic Movement and Key Presses
Tech With Tim
29 How to Install Pygame (Windows 8/10)
How to Install Pygame (Windows 8/10)
Tech With Tim
30 How to Trade Your Cryptocurrency (Bitcoin, Ethereum etc.) For Cash!
How to Trade Your Cryptocurrency (Bitcoin, Ethereum etc.) For Cash!
Tech With Tim
31 How to Mine Ethereum 2018 - WORKING (Super-Easy)
How to Mine Ethereum 2018 - WORKING (Super-Easy)
Tech With Tim
32 Microphone Comparison - $10 Mic vs $150 Mic (Blue Yeti USB)
Microphone Comparison - $10 Mic vs $150 Mic (Blue Yeti USB)
Tech With Tim
33 Pygame Tutorial #2 - Jumping and Boundaries
Pygame Tutorial #2 - Jumping and Boundaries
Tech With Tim
34 Pygame Tutorial #3 - Character Animation & Sprites
Pygame Tutorial #3 - Character Animation & Sprites
Tech With Tim
35 Pygame Tutorial #4 - Optimization & OOP
Pygame Tutorial #4 - Optimization & OOP
Tech With Tim
36 OBS Studio Tutorial - Best OBS Settings
OBS Studio Tutorial - Best OBS Settings
Tech With Tim
37 Linear Search Algorithm - Python Example and Code
Linear Search Algorithm - Python Example and Code
Tech With Tim
38 Make Any Mic Sound AMAZING! (WITH OBS)
Make Any Mic Sound AMAZING! (WITH OBS)
Tech With Tim
39 Binary Search Algorithm - Python Example & Code
Binary Search Algorithm - Python Example & Code
Tech With Tim
40 Pygame Tutorial #5 - Projectiles
Pygame Tutorial #5 - Projectiles
Tech With Tim
41 Pygame Game - Mini Golf
Pygame Game - Mini Golf
Tech With Tim
42 Pygame Tutorial - Projectile Motion (Part 1)
Pygame Tutorial - Projectile Motion (Part 1)
Tech With Tim
43 Pygame Tutorial - Projectile Motion (Part 2)
Pygame Tutorial - Projectile Motion (Part 2)
Tech With Tim
44 Pygame Tutorial #6 - Enemies
Pygame Tutorial #6 - Enemies
Tech With Tim
45 Pygame Tutorial #7 - Collision and Hit Boxes
Pygame Tutorial #7 - Collision and Hit Boxes
Tech With Tim
46 Pygame Tutorial #8 - Scoring and Health Bars
Pygame Tutorial #8 - Scoring and Health Bars
Tech With Tim
47 Cloud Mining vs. Hardware Mining - 2018
Cloud Mining vs. Hardware Mining - 2018
Tech With Tim
48 How to Install Pygame on Mac OSX (Fast-Simple)
How to Install Pygame on Mac OSX (Fast-Simple)
Tech With Tim
49 Pygame Tutorial #9 - Sound Effects, Music & More Collision
Pygame Tutorial #9 - Sound Effects, Music & More Collision
Tech With Tim
50 Pygame Tutorial #10 - Finishing Touches & Next Steps
Pygame Tutorial #10 - Finishing Touches & Next Steps
Tech With Tim
51 How to Fade Your Screen in Pygame [CODE IN DESCRIPTION]
How to Fade Your Screen in Pygame [CODE IN DESCRIPTION]
Tech With Tim
52 How to Create a Button in Pygame [CODE IN DESCRIPTION]
How to Create a Button in Pygame [CODE IN DESCRIPTION]
Tech With Tim
53 Pygame Side-Scroller Tutorial #1 - Scrolling Background/Character Movement
Pygame Side-Scroller Tutorial #1 - Scrolling Background/Character Movement
Tech With Tim
54 Pygame Side-Scroller Tutorial #2 - Random Object Generation
Pygame Side-Scroller Tutorial #2 - Random Object Generation
Tech With Tim
55 Pygame Side-Scroller Tutorial #3 - Collision
Pygame Side-Scroller Tutorial #3 - Collision
Tech With Tim
56 Pygame Side-Scroller Tutorial #4 - Scoring and End Screen
Pygame Side-Scroller Tutorial #4 - Scoring and End Screen
Tech With Tim
57 How to Create A Message Box in Python - Tkinter
How to Create A Message Box in Python - Tkinter
Tech With Tim
58 Is Ethereum Mining Still Profitable - Is It Worth It (April 2018)
Is Ethereum Mining Still Profitable - Is It Worth It (April 2018)
Tech With Tim
59 How to Run MAC OSX on a WINDOWS PC (Clover Boot-loader)
How to Run MAC OSX on a WINDOWS PC (Clover Boot-loader)
Tech With Tim
60 Programming Problem #1 - Alphabet Soup (Beginner/Novice)
Programming Problem #1 - Alphabet Soup (Beginner/Novice)
Tech With Tim

The video teaches the importance of acquiring skills beyond programming, including system design, scalability, and debugging, and introduces tools and concepts to help viewers improve their skills in these areas. By following the steps and using the tools introduced in the video, viewers can design and implement scalable systems, utilize prompt engineering techniques, and debug complex applications.

Key Takeaways
  1. Build a messaging app with Redis and Rabbit MQ
  2. Implement prompt chaining and multi-step workflows with Langchain and O Lama
  3. Containerize large applications with Docker
  4. Write scripts for automatic deployment and testing with GitHub actions
  5. Manage environment variables and keys with secret management
  6. Monitor app performance with monitoring and alerting tools
  7. Learn how to read a stack trace and understand techniques like binary search debugging
💡 Acquiring skills beyond programming, such as system design, scalability, and debugging, is crucial for success in the field.

Related Reads

📰
Why Modern Job Hunting Feels Broken (And How ATS Algorithms Forced Us to Automate)
Learn how ATS algorithms affect modern job hunting and how automation can help, to improve your chances of landing a job
Dev.to · Hanna
📰
## Why I Built an AI Fortune-Telling Platform
Learn how to build an AI fortune-telling platform and understand the intersection of technology and ancient practices
Medium · AI
📰
How Businesses Can Reduce Costs with AI Automation
Learn how AI automation can help businesses reduce costs without compromising quality, and discover actionable steps to implement AI solutions.
Medium · AI
📰
Step-level agent evals exist now. Most teams still grade the finish line.
Learn to evaluate AI agents at the step-level, not just the finish line, to improve their performance and efficiency
Dev.to · James O'Connor

Chapters (7)

| Overview
0:35 | Skill #1
2:56 | Mentorship Program - Limited Spots
3:40 | Skill #2
5:58 | Skill #3
9:05 | Skill #4
12:10 | Skill #5
Up next
Upgrading The AI Robot: Part 3 (Formerly the ChatGPT Robot)
Making Made Easy
Watch →