How and what to learn after reaching intermediate level?

Hi guys, I wanted to share my concern in terms of the learning journey. My question in a nutshell is: How do I learn advanced concepts and frameworks? Sounds easy, right? Indeed, it is easy to pick up coding and reach beginner level. Then if you stick to one area you become intermediate after completing a few big projects, but how to reach the professional level?

I will refer to Web Development throughout the post. I have completed all relevant courses on Codecademy. Took very specialized courses from Udemy. Watched numerous YouTube tutorials. Created 6 personal big projects. Got a job in as a full stack developer.


I feel like everything I know is very basic. I do not know how to grow from now onwards. If you could share your ways of learning more advanced concepts, stacks, techniques - that would be great!


I feel like learning programming is bit like this curve:

The steps to become better become smaller and more incremental.

You should be happy you get a job as (full stack) developer. This opens up an opportunity to learn from others. To have projects run in production (lot of learning there as well, not sure you have been through this?). Maybe a more senior developer has time for code reviews or pair-programming? That could be a massive boost.

Keep practicing is always good advise. There is no shortcut for experience.

Sometimes working another programming language/with someone else his code can lead to a revelation: They do things differently here, why? What are the pros and cons of this approach compared to the other one?


Well nothing beats experience on the job but as an addition that hasn’t been mentioned have a look into textbooks in your field which often offer best practices that may otherwise be overlooked. As per @stetim94’s comment it’s a slow accumulation but there are many options to supplement this. Try a few out, don’t be afraid to ask around in your job (there’s nothing better than direct experience) and you’ll find something that works for you. The fact you’re putting effort in means it’s almost inevitable you’ll improve even if it increments more slowly that you notice :+1:.

There are also general textbooks like: Refactoring: Improving the Design of Existing Code, one I still intent to read (some day)

1 Like

Thank you guys! I have found all tips very useful!

It depends what you call advanced. Asynchronous programming and race conditions? Understanding enough to use it competently isn’t that hard, completely understanding the language’s implementation etc can be advanced.

Moving from intermediate to advanced programmer becomes less about your ability to know the syntax and code in a language and more to do with design and architecture of code in my opinion. It is about knowing how to implement design patterns well, separate concerns, make reusable code, identity where needs optimisation etc. Refactoring is an important part of code but being good at it is a by product of being good at the things above. You can’t become good at refactoring without those things, which is why most people aren’t good at refactoring.

1 Like