Advice for New Developers
Practical advice for those new to software development: working hours, learning strategies and paths to success.
Work Habits
10,000-Hour Rule
Maximizing your working hours is in your best interest. The 10,000-hour rule applies to software development too. The faster you fill those hours, the faster you'll advance in your career.
Regular Work
Work regularly every day. The real learning happens during sleep, so don't skip days.
Pomodoro Technique
Instead of working until you're exhausted, use the Pomodoro technique. By taking breaks before getting tired, you can work longer hours without excessive fatigue.
Core Skills
Find Your Passion
You need to enjoy doing software development. You need to enjoy spending long hours at the computer and solving problems. If you get bored easily, software development is probably not for you.
You can certainly work without loving it and without dedicating time to self-improvement. But you won't have a very bright career.
Programming Language Choice
Which language you learn often doesn't matter. Still, choose languages that are in demand. Stack Overflow surveys can be a good guide.
Terminal and Git
Use CLI tools. The terminal will be your closest friend.
Learn Git from day one. You can read my Basic Git Usage post.
English
English is essential for following trends and learning. You need to know enough to understand what you read and hear.
Practical Experience
School and Major
Important in the early years, but loses significance later. Studying software engineering is not mandatory. Try to gain your first work experiences with dedication.
Side Projects
Find a topic that excites you. See a need in your surroundings and start a project.
Open Source
Contribute to a project. You can search on Perplexity with queries like "research an open-source .NET project related to xyz topic."
System Design and Technology Knowledge
Research technologies you'll encounter: Redis, RabbitMQ, MongoDB, etc. Understand what they do, what problems they solve, what alternatives exist. Ask AI, watch short videos like "RabbitMQ in 100 seconds."
An application for 1000 person vs. 1 million people has different design considerations. Knowing these technologies will give you an advantage. I'm not saying spend tons of time, but dedicate at least some.
Videos from the ByteByteGo channel are useful. Learn system design bit by bit. Check out roadmaps at roadmap.sh.
Using Artificial Intelligence
Follow the Tools
Keep track of which AI tools are popular. If it's hyped, there's a reason for it. Try it if you have the opportunity.
Be Careful While Learning
While learning software development, write code by thinking for yourself. AI can make you lazy. Turn off autocomplete.
However, AI has changed the way we work. Those who don't use AI will fall behind. You need to maintain balance during the learning process.
Efficient Usage
If you're using AI through a browser, it's not efficient. Use tools like Claude Code, Cursor, Windsurf, Cline in your working environment. This way you can benefit from features like AI memory and MCP servers.
Hybrid Work
Write code yourself first. When you get stuck, stage your code in Git, then have AI complete it. Review the AI's changes in Git changes, understand which part made it work. You can read this blog post about Git.
Use It to Learn
Don't just have code written. Ask questions: "Why did we add this code?", "What was the alternative?", "What would happen if we refactored it?". Ask a question after every code generation. Even if you can't find one, ask anyway.