Struggling with "advanced" topics

So this may sound pathetic but I feel very uncomfortable with my recent situation as a self-taught developer. I’ve started this path about 18 months ago, when FCC still had the old curriculum without React and lots of the beautiful things we can enjoy now :smile:

I had my ups and down, I quit a couple of times because I couldn’t remember how to make a “for loop” but then something clicked in my mind: I was finally able to retain these topics and I quickly went through most of the old curriculum and The Web Developer Bootcamp by Colt Steele. Few months ago, in September, I felt confident enough to build my first webapp: it is a very simple CRM that I use to keep track of some of my new clients as a business consultant. I used Node, Mongo, EJS, Bootstrap, Passport: it took me 3 weeks but it was one of the most interesting activities in the last few years.

I felt very proud about this project, but then I started to think about the possible future features: I didn’t use any frontend framework, I didn’t use Rest API/GraphQL, I didn’t use tests, I didn’t use SASS, I didn’t use OOP principles, I didn’t use Docker and many other things that a modern web developer should use in his/her daily routine.

I thought: “Fine, I’ll build new projects while studying this stuff”. I started with React: it seemed fine but I couldn’t really get this component thing. Instead of challenging myself, I moved to Vue: everyone said it’s very easy!

A couple of weeks on Vue and I finally started to understand components so I said: it’s time to go back to React! I studied and used the basic stuff (JSX, state, props, functional components, hooks, class based components, …) then I met Redux: did I focus on the technology? Of course not. As soon as I faced the first tough parts, I quickly looked for an easier alternative: apparently, GraphQL (with Apollo) might be able to replace Redux so I started to study GraphQL. Did I complete anything on that topic? You can guess it…

As soon as I faced some difficult aspects I couldn’t retain, I decided that my newest top priority was Typescript.

I am in this infinite loop since October, I know which topics I want to study but I cannot focus on any of them in a proper way. I feel like the stereotype of “jack of all trades, master of none”: have you ever felt this way too?

Hey! I don’t know much about what you were saying so I’m not sure if I can help but I still wanted to share a little something regarding never surrendering and motivation.

I know I am off topic but I thought that would be a good thing to have in your bag ANYTIME.

So, recently there is one thing I learned by having a down time that I guess I just got out of :smiley: ! Is being a developper what you want? If yes, then STICK TO IT. You are sure about it? Then STICK TO IT. DON’T SURRENDER BECAUSE OF A LACK OF MOTIVATION. It can come and go. Motivation is a catalyser not a fuel. In my opinoin, the fuel is you praticing and seeing yourself get better which will make you the happy developper you might want to become.

-Tech.

So theres a few things to disect here.

  1. There’s a lot to learn out there, don’t get distracted by every little thing. Its the usual Fear Of Missing Out, plus some laziness thrown in.
  2. There are differnet levels of learning, it sounds like you got the first part down where you learn about different kinds of software out there, and what you can use. The second part is diving into and really learning how to use the new technology. It sounds like once things start getting tough, you jump ship and move onto “something easier”.

So you should focus on a few things. For starters, pick something and stick with it for a while. Don’t expect to have a flawless experience learning something new, if your struggle, good. You will learn more if you struggle a bit, doing 10 hello world level apps wont give you the deep experience to become the “senior” programmer, and having only mediocre knowledge in multiple things doesn’t help since you can really offer any deep insight into anything. I wouldn’t even call this jack of all trades, as that person should have enough experience in each discipline to be good enough to overcome common challenges. If you can’t overcome early challenges yourself, you can’t offer much help to those just starting out.

So now since you’ve jumped into multiple technologies you should have an idea of what you’d like to learn, and choose and stick with it though the thick and think for a given project. It’s fine to learn multiple technologies, but don’t learn them because you got to lazy with the things your currently learning, as you end up learning nothing significant.

I’ll end this by saying no solution will “fix all your problems” and the grass isn’t that much greener on the other side. Your better off spending more time on specifics to gain a deep understanding and switch technologies on preference, not necessity, or if you know it well enough you select technologies based upon your knowledge of its pros and cons. For example, Vue is “easier” to use, but React has a larger community and better support. Typescript is great for scalability, but works best with Angular, and you want to build a project with typescript since you need that scalability. Then you end up learning/using/building something with typescript. Not because its easy, but because it provides what you need, and you know this from experience rather than what someone said.

Goodluck, keep building, and stick to your guns. :smile: