As a developer (beginner to be more specific), you've often been advised by professional devs to always practice and keep practicing as this would increase your potentials and understanding of that particular field or language.
The truth is, they are right.
This also applies to almost (if not all) fields in life generally.
Practice makes perfect
They would most times advice you to build things too.
I wouldn't want to ignore the fact that people have different learning approaches. Personally, I used to love video tutorials compared to reading articles.
Articles to me were always boring, although currently, I'm more around articles than videos.
Nonetheless, the more you practice (by whichever method you learn), the more you are faced with the project at hand. The more you are faced with bugs π€.
WHAT'S CODING WITHOUT BUGS?? Think about it π
When beginners hear 'practice and build', they tend to think it's all about building large projects. But no, it isn't.
Yes, it involves building big projects, but even little projects could be practiced.
Calculator app, to-do-list app, stopwatch app and so on, they could be practiced too. It doesn't matter if such apps have been created already, the purpose of practicing and building is to be efficient in that particular language.
They also improve problem-solving skills as you are practically faced with the project at hand.
Once efficiency is achieved to a level, you can start pushing towards bigger projects or even, projects that aren't existing already.
Let me share a little story with you π
After this story, I promise to share the tips π
Currently, I am learning ReactJS. Though I read articles alongside, I have been following a udemy course - React - The Complete Guide (incl Hooks, React Router, Redux)
The lecturer started with a brief overview of Javascript and the new features in ES6.
He continued with an introduction to React, folder structure, components and so much more.
The course also contained a project which was a good implementation of React - A burger builder app. You could check my version of the project - deee-burger-app.
While following along the project,
- I ensured I didn't copy and paste his codes.
He shared archived files of his source codes, for cases where the student didn't get the result he was getting. The student could just easily copy his codes and get their application to work exactly.
I also encountered issues where my application was logging several strange errors to the console and it wasn't doing what I wanted. At those times, I ensured my app got to do what I wanted by continuous playback of his videos.
- I implemented functions before him.
The app was built from scratch, hence, my understanding kept increasing along the way. Most of the time, when he wants to add functionality to the app, I'd pause the video then challenge myself to achieve the target without watching. My rate of success was poor at first, but it kept increasing and increasing.
- I saw errors that this lecturer wasn't seeing π€£
Yes, he didn't see them. He came across a few errors that he was able to fix. But, how would I tell this lecturer to help me out with the errors I was getting π€·?? This forced me to carry out research, read many articles just to get the error fixed.
Now, imagine what I was able to learn while making those research π€. If I had copied his source code, I wouldn't have gotten any errors.
- I did different implementations.
Added to the fact that I would try to achieve a function before watching his videos, I would use another approach towards achieving the same goals.
- and so much more ...
Yes, I was guided by the tutorials, it's not a project I could say I did on my own, but I practiced a lot. I didn't just get my app to work, I tried different methods and understood how it was working, how the props were passed and all that.
Sorry, some terms may sound strange if you are not familiar with React π
Tips to Practice and Build Projects
π»..
- Do not copy and paste source codes.
While following a tutorial (article or video with resources), ensure to type the codes yourself. From my story, you'll see that you get to fight bugs. It may at some point be discouraging, it will always be, but when you are able to attain victory over the bugs, there'll be so much more you have learned already.
- Try out different approaches.
Try out different methods in achieving the same results while watching tutorials. This way, you are but only getting better at that language. Where the teacher users classes, use functions. Where he uses, loops, use recursive functions.
- Build and build.
It may not be large applications, start with small ones. It may have been built already, build it again. Keep Building. IMPROVE YOURSELF.
Devs nowadays have issues finding project ideas which further discourages their learning but like I said, go online, find out already-made projects and build your own. The more you build, new ideas begin to arise.
- Try out Challenges
Battle with friends, try out online challenges, they help build you.
Examples of online challenge platforms you could try out - Codewars: Train with Programming Challenges/Kata, HackerRank, etc. You could check more of them them online.
- Keep reading articles
Yes, you're also practicing this way. On a particular concept, say 'DOM Manipulation', go through different articles until a good understanding is obtained.
- Ensure you're practicing
Yes, ensure you are. Don't just read articles, or watch videos, ensure you are practicing.
Personally, when reading articles, I do open a new tab in my browser, pull up the console and practice along.
There's a whole lot of potentials you possess, don't just wish for more, start manifesting them.
Check out this Florin-Pop's Post for project ideas to level up your skills.
You've read it all. Now explore π
Kindly share useful tips in the comments π
Top comments (9)
Great article!
Another thing that turned out well for me is exploring other peopleβs projects. By placing some breakpoints here and there Iβm learning a lot.
I also take notes of what fascinated me about that project so I can do further research on topics.
In my opinion, one way to apply your knowledge these days would be to contribute to open source projects. Iβd rather spend the time to understand the code base and build something for that project instead of building my ownπ€
Thanks for sharing!
Yes, good tips also.
Thanks for sharing.
I love what you had to say about learning from bugs. I've learned more researching bugs than I did from some courses. Invaluable. Great post.
I'm really glad it was helpful.
Yes, some course teachers don't encounter some bugs because they have (obviously) prepared themselves before teaching, but you the student may not have ideas about what they are going to teach, that's why you experience bugs more than they do.
And then, you learn from the bugs π
Truly invaluable as you said.
Hi, the link to Florin-Pop's post is redirecting to this post again
Hi, thanks for notifying me.
I've fixed that now.
Awesome sir, thanks for sharing.!π€
I'm glad it was helpful.
Thanks for the compliment π
You're welcome.
I'm glad it was useful π