Những lời quảng cáo của Khóa học RubySteps khiến mình phải trăn trở nhiều, và cũng có nhiều câu hỏi mình cần tìm lời giải đáp. Làm thế nào để trở thành một Senior Back-End Developer » Full-Stack Developer? À mà khoan, làm thế nào để trở thành một Junior Developer tốt cái đã.
Learning Ruby on Rails sounded like a great idea - until you found out it meant learning Ruby, Rails, HTML, CSS, Javascript, SQL, test-driven development, object-oriented programming, refactoring, linux system administration, and deployment… just to be considered a junior developer.
You’ll always be a junior developer…
Unless you change the way you learn, right now.
What do expert Ruby on Rails developers do, on a daily basis?
Do they work through tutorial after tutorial after tutorial?
Do they re-create the same program that thousands of other developers have built?
Do they copy and paste code from Stack Overflow, until something appears to work? And repeat the process as soon as they realize it doesn’t work?
What’s the difference between expert Ruby on Rails developers, and you?
Expert Rails developers aren’t just better than you… they get better faster than you.
Expert Rails developers don’t spend their days following tutorials.
They don’t re-build the same programs as everyone else.
They don’t “program by Stack Overflow.”
Expert Rails developers solve problems that matter - to themselves, to businesses, and to end-users.
And here’s the dirty secret: they get stuck more than you, not less.
They know that getting stuck isn’t just part of the job, it’s the name of the game. And that’s what it comes down to: expert Rails developers play a different game than you.
You need to rise above the junior developers, and close the gap between you and the experts.
What if you could think like a world-class Ruby on Rails developer?
You could spend the next few months - or the rest of your career - reading tutorials and Stack Overflow posts… but why?
Why solve some made-up problem when you can identify your most important problem, understand it completely, and then solve it on your own?
Why re-create someone else’s application when you can build the web applications you’ve been dreaming of for years?
Why scout job boards for something that describes your current skill level, when you can rise to a more challenging position?
What if you knew how to solve any programming problem that came your way?
If you knew how to think like a world-class programmer, you could solve problems like one: design problems, scaling problems, deployment problems.
You could take any piece of legacy code and refactor it cleanly, add new functionality, and not worry that you broke anything.
You could profile slow code and optimize it, and save end users the pain of waiting for pages to load.
You could build your own MVP, test it with users, and iterate on it, instead of keeping it confined to your development machine for months.
Programming is all about feedback. You try something, you get a result, and you try something new.
And if you get a positive result, that motivates you to keep going, to try something new, even if you get a few negative results along the way.
But if you get too many negative results… you get discouraged. You get frustrated. You give up, and watch more videos, or waste time on Twitter. You push your dream farther away.
And you get too many negative results when you work on too big a problem without realizing it. And you always work on too big a problem without realizing it.