These days, instead of struggling and problem-solving, i seen myself going through vibe-coding a lot. for example when i encounter a bug, most of the time i have just pick up my shovel and copy the entire buffer for putting that in the front of so called language models like gpt-4. Worse than that, looks like i never can really sit and just write the code on my own. In general, my work heavily depends on external sources, whether it's chatbots, YouTube tutorials, or Stack Overflow.
I think this situation is quite common for a lot of people now days. Regarding this subject, I've also explored some communities of programmers in iran mostly on Telegram groups. i have seen sheer amount of people who are building resume for themselves by simply following the project based tutorials. I find this by exploring the people's portfolio. there was a good chance of finding exact same projects between all resumes. This phenomenon called "Tutorial Hell". It is a state of perpetual learning, often marked by the consumption of one tutorial after another without putting the knowledge into practice.
Tutorial Hell is similar to vibe-coding. In both cases, individuals may feel stuck or unable to progress because they rely heavily on external sources.
So what we can do about it to address these problems?
At the time, i find these two methods:
Do the same thing in multiple attmepts: One simple method that worked well for me is doing the same coding problem/project in multiple attempts. What do i mean by this? Well, Copy & pasting is not inherently bad. It's only harmful when you don't really undrestand how it is working. But your mind is deceptive. You may think you really understand the syntax and the algorithm by reading it, but you are not. What you can do is, Delete all the lines and start to re-implement that. (Weather it is a project like the instagram clone, or a npm module. it is not different). And in every attempt, try to make sure that the source of knowledge is yourself. In this process you may even come up with some better solution. you start to questioning "why it should be implemented like this? can i do that in this way? or..."
You may argue:
So you tell me to create my instagram clone project again? it was took me a month or two for me to built it.
Answer is: Yes, you should build it again. It may sound silly and cumbersome, but with each attempt, you will do it faster.
Leetcode: Leetcode has a vast collection of coding problems and challenges designed to help individuals improve their programming skills. it can be a great resource for improving your coding skills and breaking out of "Tutorial hell" habit and built up your problem solving skills. It will be hard at first. start with the easiet one in the problems collection. if you can't solve it, no problem. open up the solutions tab and see answer. think of it. test it. and re-implement it with the method that i described above.
There is some kind of controversy about the effect of leetcode on people's problem solving abilities in general. Some argue that these coding challenges are just a ticket for giant engineering companies like microsoft and apple. i don't know anything about this. But the only thing we can agree on right now is that, keeping your brain active is a good thing. Specially if it's relevant to your career.
The thought process and problem solving is the skill that you’ll always need. However, you can lose these skills if you don't use them, and AI tools can make it easier to take shortcuts around them.