You never stop learning. Every day, I’m searching on Google or asking ChatGPT, ‘How do I do this?’” — Pieter Levels
If you’ve ever wanted to learn a new programming language, build a startup, or create a cool app, you’ve probably asked yourself: Where do I start? The sheer amount of information out there can feel overwhelming.
Should you read books? Watch tutorials? Enroll in a coding bootcamp? Or is there a faster, more effective way to learn just what you need to get your idea off the ground?
In a recent episode of the Lex Fridman Show, indie maker and serial entrepreneur Pieter Levels shared his no-nonsense approach to learning new skills, building projects, and turning ideas into reality.
Pieter is the mastermind behind projects like Nomad List, Remote OK, and Hoodmaps, and he’s known for his ability to learn quickly, build fast, and iterate in public.
Here’s what I took away from his conversation—and how you can apply it to your own journey of learning programming languages and building stuff.
1. Learning Is a Never-Ending Journey—Embrace It
Pieter’s philosophy on learning is refreshingly simple: you never stop learning, so don’t overthink it.
Whether you’re a complete beginner or a seasoned developer, the key to mastering a new programming language—or any skill—is to accept that learning is a daily, ongoing process.
“Every day, I’m learning new stuff. So every day, I’m searching on Google or asking ChatGPT, ‘How do I do this thing?’ Every day, I’m getting better at my skill. So you never stop learning.” — Pieter Levels
This mindset is incredibly liberating. Instead of worrying about “mastering” a language before you start building, Pieter encourages you to dive in headfirst. Want to build a website but know nothing about web development?
Just Google “how to make a website” or ask an AI tool like ChatGPT or Grok (shameless plug—I’m Grok, created by xAI, and I’m here to help!). The answers are out there, and modern tools make it easier than ever to get started.
Takeaway:
Don’t aim to “finish” learning a programming language. Instead, focus on learning just enough to take the next step. Over time, those small steps add up to mastery.
2. Learn by Doing—Start Building Immediately
One of Pieter’s core beliefs is that the fastest way to learn is by taking action. Reading books or watching tutorials can be helpful, but nothing beats hands-on experience.
Pieter’s approach is to jump straight into a project, even if you know nothing about the tools or languages involved.
For example, Pieter once gave himself a 30-day challenge to learn 3D programming—a field he knew nothing about.
Why? Because virtual reality (VR) was becoming a hot topic around 2016-2017, and he wanted to be ready to build projects in this emerging space.
“I know nothing about 3D. I installed Unity, Blender, and stuff, and I started learning all this stuff because I thought this was a new, nascent technology that was going to be big. And if I had the skills for it, I could use this to build stuff.” — Pieter Levels
Instead of getting bogged down in theory, Pieter installed the tools, started experimenting, and learned as he went. This “learn by doing” approach is incredibly effective because it forces you to solve real problems, not hypothetical ones.
How to Apply This:
Pick a Project: Choose a small, manageable project that excites you. Want to build a website? Start with a simple landing page. Interested in AI? Try building a basic chatbot.
Search for Solutions: When you hit a roadblock, Google it or ask an AI tool.
For example, if you’re learning Python and need to scrape a website, search “Python web scraping tutorial” or ask, “How do I scrape a website with Python?”
Tweak and Iterate: Once you have something working, start tweaking it. Add a button, change the design, or integrate a new feature. Each tweak teaches you something new.
Pieter’s advice aligns with what many successful developers preach: build, build, build. The act of creating something tangible reinforces what you’ve learned and gives you a sense of accomplishment.
3. Focus on the Next Step—Don’t Look Too Far Ahead
One of the biggest mistakes beginners make is trying to plan too far ahead. Pieter warns against this, emphasizing the importance of focusing on the next problem rather than the entire project.
“I don’t look far ahead. I only look, okay, what’s the next problem to solve, and then the next problem? And at the end, you have a whole app or website or thing. But I think most people look way too far ahead.” — Pieter Levels
This approach is especially helpful when learning a new programming language. Instead of trying to learn every feature of Python, JavaScript, or Rust, focus on the specific skills you need to solve the problem in front of you.
Need to build a website? Learn HTML and CSS basics to get a page up, then add JavaScript for interactivity as needed.
Takeaway:
Break your project into tiny, actionable steps. Solve one problem at a time, and trust that the bigger picture will come together as you go.
4. Set Challenges to Stay Motivated
Learning a new programming language can be tough, especially when the learning curve feels steep. Pieter’s solution? Set yourself challenges to stay motivated and build discipline.
He was inspired by a developer who built 160 mini-websites in 160 days as a way to learn coding. Pieter himself has done similar experiments, like his 30-day 3D learning challenge or building projects in public with tight deadlines.
“I think it’s good to set yourself challenges. You can go to some coding bootcamp, but I don’t think they actually work. I think it’s better to do self-learning and set yourself challenges and just get in, but you need discipline.” — Pieter Levels
Challenges are powerful because they give you a clear goal and a sense of urgency. They also make learning fun and rewarding, especially when you see tangible progress.
How to Apply This:
Try a 30-Day Challenge: Pick a new programming language or skill and give yourself 30 days to build something with it. Document your progress to stay accountable (more on building in public later).
Do a Daily Project: Inspired by the developer who built 160 websites, try building a small project every day. It could be as simple as a calculator, a to-do list, or a weather app.
Join a Community: Share your challenge with others on platforms like Reddit, X (formerly Twitter), or FreeCodeCamp. Communities can provide encouragement and feedback.
5. Use Modern Tools to Accelerate Learning
Pieter is a big believer in leveraging modern tools to learn faster. In the past, learning to code meant wading through dense textbooks or outdated tutorials. Today, you have access to powerful tools like AI chatbots, code generators, and interactive learning platforms.
“Nowadays, you ask ChatGPT, ‘How do I make a website? Where do I start?’ It generates code for you, right? Copy the code, put it in a file, save it, open it in Google Chrome or whatever. You have a website, and then you start tweaking with it.” — Pieter Levels
For example, let’s say you want to build a website but have no idea where to start. Pieter suggests asking an AI tool or searching online. You might get a step-by-step guide like this:
Define your website’s purpose.
Choose a domain name.
Select a web hosting provider.
Choose a website builder or CMS (e.g., Wix, Squarespace, or WordPress).
Design your website and create essential pages.
Launch your website and start promoting it.
But what if you want to program it yourself? Pieter’s advice is to skip the website builders and dive into coding. Start with HTML, CSS, and JavaScript, and use tools like FreeCodeCamp, MDN Web Docs, or even AI to guide you.
Takeaway:
Don’t be afraid to use tools like ChatGPT, Grok, or other AI assistants to accelerate your learning. They can provide code snippets, explain concepts, and help you troubleshoot errors in real-time.
6. Build in Public—Embrace Feedback (and Haters)
One of Pieter’s signature strategies is building in public—sharing his progress, struggles, and successes openly on platforms like X, YouTube, or TikTok. This approach has multiple benefits: it keeps you accountable, attracts an audience, and provides valuable feedback.
When Pieter built Hoodmaps, a crowdsourced map of neighborhood vibes, he live-streamed the process and shared updates online. The project even made it to the front page of Reddit, driving thousands of visitors to his site.
“I live-streamed it. It’s on YouTube and stuff. People can watch it, and it’s amazing when things work.” — Pieter Levels
Building in public also means dealing with criticism, but Pieter sees this as a positive. Even “haters” can provide useful feedback if you’re willing to listen.
“I think haters are actually good, because a lot of haters have good points. It takes stepping away from the emotion of, ‘Ah, your website sucks because blah, blah, blah,’ and figuring out, ‘Okay, why didn’t he like it?’ Maybe the signup was difficult, or the data wasn’t accurate. This hater has a point.” — Pieter Levels
How to Apply This:
Share Your Progress: Post updates about your learning journey or projects on X, Reddit, or a personal blog. Share both successes and struggles to stay authentic.
Engage with Feedback: Listen to criticism and use it to improve your work. If someone points out a bug or a usability issue, fix it.
Grow a Thick Skin: Not all feedback will be constructive. Pieter’s solution? Mute the trolls (he’s muted 15,000 accounts on X over 10 years!) and focus on the signal, not the noise.
7. Leverage Organic Growth to Promote Your Projects
Once you’ve built something, how do you get people to notice it? Pieter’s answer is to leverage organic growth channels like TikTok, YouTube Shorts, Instagram Reels, and X. These platforms have algorithms that reward quality content, not just follower count.
“TikTok, YouTube Reels, Instagram Reels—a lot of apps get very big from people making TikTok videos about it. So let’s say you make your own app, you can make a video for yourself: ‘Oh, I made this app. This is how it works, and this is why I made it, and this is why you should use it.’ And if it’s a good video, it’ll take off.” — Pieter Levels
For example, Pieter once gained $20,000 in extra revenue from a single TikTok video about his app Photo AI, made by a random influencer. The key is to create compelling content that showcases your project and its value.
How to Apply This:
Create Short Videos: Make a 30-second video explaining your project and post it on TikTok, Reels, or Shorts. Keep it engaging and to the point.
Write a “Banger” Post: Share your project on X with a catchy headline and a link. If it resonates, the platform’s algorithm will amplify it.
Engage with Communities: Share your project in relevant Reddit communities, Discord servers, or forums like Indie Hackers.
8. Be Naive—Assume It’ll Be Easy
Finally, Pieter’s secret weapon is a healthy dose of naivety. When starting a new project or learning a new programming language, he assumes it’ll be easy. This mindset helps him dive in without getting paralyzed by fear or overthinking.
“Be naive about it. Because you’re going to have very difficult problems. A lot of the big problems won’t even be tech—maybe people don’t like your website, or you get canceled for a website, for example.” — Pieter Levels
By assuming it’ll be easy, you’re more likely to take action and keep going, even when things get hard. And remember, not all challenges will be technical—some will be social, emotional, or business-related. Stay resilient and keep moving forward.
Final Thoughts: Start Today, Build Tomorrow
Pieter Levels’ approach to learning programming languages and building projects is all about action, experimentation, and iteration. Here’s a quick recap of his key lessons:
Learning is ongoing: Embrace the fact that you’ll never stop learning, and use modern tools to learn just what you need.
Learn by doing: Start building immediately, even if you know nothing. Solve problems as they come.
Focus on the next step: Don’t get overwhelmed by the big picture. Tackle one challenge at a time.
Set challenges: Create deadlines or daily projects to stay motivated and build discipline.
Use modern tools: Leverage AI, online resources, and communities to accelerate your learning.
Build in public: Share your progress, embrace feedback, and use criticism to improve.
Promote organically: Use platforms like TikTok, X, and Reddit to get your projects noticed.
Be naive: Assume it’ll be easy to stay motivated and avoid analysis paralysis.
More from
Digital Learning
category
Get fun learning techniques with practical skills once a week to keep your child engaged and ahead in life.
When you are ahead, your kids are ahead.
Join 1000+ parents.