I’ve seen people argue in favor of learning programming while building something: choose a project and start building. While you encounter obstacles, difficulties or simply problems that you don’t know how to solve, you search how to solve them. In this manner, you learn.

Check out this comment from an Indie Hacker on a thread called “10 things you wish you’d known when you started programming?” which explains this point better than I do:

  1. Don’t learn to code. Decide what you want to build and learn to build it. Having an end goal in mind will guide you and the progress towards your goal will motivate you. You will encounter unexpected challenges which will frustrate and surprise you, but that is how you will learn. This is what I call depth-first learning. Not topic by topic, but feature by feature. You will learn just enough of each topic to build what you are working on. You can go into the details of how it really works later, by which point you will have a practical context from your own experience to apply the theory to.

This sounds logical and convincing, but I’m here to respectfully argue against this.

I do think that an end goal in mind is important. Just look at my previous blog posts. I’m all about choosing an end point and then finding my way there. However, I think that you at least need fundamentals first.

For me, it is way more daunting and challenging to face a project which I don’t know how to build. Even more, learning a little bit of this language to add this feature, and then learning a little bit of this other language to add this other feature…it feels to me a little bit like applying duct tape here and there.

Don’t get me wrong, BUILD. But learn first. Perhaps a happy medium would be learn a little bit and build a little bit, then learn a little bit more and build a little bit more…at least I prefer knowing what’s on my plate before deciding where to start.

What do you think?

What I’ve Been Doing

I have been…wait for it…all over the place. I’m kidding. Well, I’m half kidding.

I’ve made my Full-Stack Developer I Want to Become Trello board public, in case you want to follow. It’s here, if you want to check it out. I update it constantly and like I said, nothing there is set in stone. It’s just a guide.

You already know that I started Wes Bos’ React for Beginners course. Well, the going got tough and I still don’t know if it’s normal when learning React or if it’s just me that I’m not ready. I feel that it’s both.

Because of this, I took a few steps back and decided to follow Tenizin’s advice: I got into some Sass, Gulp, Webpack and Node. I’m skimming through them and paused React for Beginners. I will finish React for Beginners, of course, but perhaps in the next couple of weeks. I still want to feel more comfortable building without it.

I’ve started designing a new website for a fictitious architecture company. My portfolio is not bad but I want real looking projects, the ones that people would really enjoy seeing. I think a lot of people focus on UI/UX instead of web development so I’m working on that.

Lastly, every single day I’m listening to Syntax and watching YouTube videos.

I’m just going to share the resources I’ve been using for these last technologies I mentioned: