I'm a big believer of learning by doing. Being an autodidact myself, I understand how important it is to do stuff to actually learn it. Sometimes it might seem counterintuitive, because you gotta learn stuff before you could do anything with it, but nothing is more effective than learning by doing.
For me, if I want to learn something, let's say React, I would think of a moderately difficult project and would try to build it - say, a game. How? I would start from the basics, and would keep on googling stuff.
Some initial questions might be: "How to create project with react" which might then lead me to a popular "create-react-app" solution. From there, I might be able to explore even more things, like how React works and what sorts of games have been previously built with React, just to get an idea.
After seeing that, we could read other people's code too, which is almost always a very good way to learn. When you read other people's code, it gives you a completely different perspective on how a particular feature or thing could be implemented. Personally, I've had a lot of "aha" moments just by reading others' code.
Also, It is always great to link some sort of utility with your project, just to keep you driven.
On the same lines, it is very important to break out of the habit of just consuming content. You can only read articles and watch videos so much. You have to, at some point, sit down, and stare into the unknown, and start coding.
This is where projects come in handy. They allow you to code towards a specific goal. This is what I always follow while learning something new, and this is something which always work, tried and tested.
I really appreciate and admire what freeCodeCamp does, and I believe together we're even stronger. At codedamn (which is a platform for developers to learn and connect), I'm trying to let people break out of their perpetual habit of just consuming and pondering the content.
This month, that is, September of 2019, at codedamn, we're introducing codecomp. It is an online competition for real-world-developer-skills (unlike what we usually see, raw Data Structures/Algorithms). The submission deadline is September 26.
This month's codecomp focuses on React developers. If you're a React developer (or want to be one, remember, learning by doing), you can take part in this free competition. You have to think of a creative idea for a game in React which could be experienced in more or less, 3 minutes. Basically, your submission would be judged on the following parameters in no particular order:
- Technical accomplishment
- Creativity of idea
- Code quality
I want to provide value to the community as much as I could. Partially because I want people to know about the fact that coding is something which is interesting, and could be learnt all by yourself. But you need to add a flavour of "doing work" to actually start the magic.
Hence, this competition is not just a raw competition. We'll be giving out actual prizes for the winners. Prizes for this competition are as follows:
- 1st Prize: 1 custom developer hoodie
- 2nd Prize: 1 developer T-shirt
- 3rd Prize: 1 coffee developer mug
You can find all this information plus how to submit here: https://codedamn.com/panel
We have a dedicated discord server channel, where people are chatting about codecomp and could brainstrom ideas. We aim to make it a fun place for developers to hang out, eventually. You could join our discord server here: https://discord.gg/K2kaXmv
Also, for your final submission, you need to do the following things:
- Code up your game project.
- Create a codesandbox.io version of your project.
- Submit your codesandbox link to codedamn. Open the panel page and go to "Competitions" tab above. You'll see a submission page.
- Wait for results! :)
And the best part is, everything's free! In fact, because not so many people know about codecomp yet, it's your best shot to take part and grab away the prizes ;)
With codecomp, I believe I would be able to drive more people towards actually building real world projects than just letting them consume my (or anyone else's) content. I really hope to see all React developers levelling up their skills by using this opportunity. And again, if you have any feedbacks or questions, feel free to throw them to me!