DEV Community

How do I make myself learn?

Ethan on December 26, 2022

Currently I do fronted web dev with HTML/CSS/JS. And I want to learn a framework for the front end. I did research and choose React mainly for its ...
Collapse
 
tracygjg profile image
Tracy Gilmore • Edited

Ethan,
Personally I do not think you can force yourself to learn. You have to find a passion, something that excites you. I question your justification for choosing React. It is popular and for good reason but that does not mean it is right for you or even the projects you will be working on. I suggest you consider two things:

  1. What of the three technologies you already use excites you most? If it is HTML consider React from the JSX and component (function or class) perspectives. If it is CSS and UI design, you might want to investigate topics such as: styled components and Material UI. However, if JS is your thing you might want to err away from one specific framework and deepen your understanding of the language (check out MDN). You might want to explore Functional Programming or even venture into TypeScript (which need not be as great a leap as you might think).
  2. If you specifically want to learn a framework, I suggest you might want to broaden your perspective and look at some of the newer contenders such as SOLID, Alpine or Svelte. Again, see which one interests you most, after all, React is popular now but it will be replaced one day, who knows by what, so keep your options open.

Studying that which excites you most is (I have found) the best way to maintain motivation. It was the advice I gave my kids when they were considering go to Uni, chasing the money is a fools errand and seldom makes people happy.

Best of luck on your learning journey.

By the way, I have 30+ years in the Software industry and still learning. I achieved this by not chasing the buck but following that which excited me.

Collapse
 
yuridevat profile image
Julia πŸ‘©πŸ»β€πŸ’» GDE

These kind of problems (motivation, time management, ideas) where all problems I faces when I had no proper goal in mine.

When I started to get really interested in accessibility and community all these problems went away on their own.

So maybe you lack on real interested. Until then, just do it and make a habit out of it. And hopefully the motivation is starting to show eventually when realinzing you are making some progress.

And as @cppshane mentioned in his comment, maybe the tutorial thing isnβ€˜t for you. Wasnβ€˜t for me either.

Collapse
 
flkdnt profile image
Dante Foulke

@yuridevat , you are exactly right. In my life experience, especially with ADHD, motivation has nothing to do with willingness to learn, but everything to do with applicability. If I didn't see a use-case, or a problem was that solved by __ technology, or even how I could use it in my day-to-day life, I'm highly unlikely to spend time to learn it, as I am sure many people are.

It's literally why I put off programming for several years until I saw a problem(managing and maintaining several hundred windows servers treated as pets, not cattle) that programming(specifically PowerShell) would help me manage. And since I had that revelation, I've gone all in on learning programming languages, containers, IaC etc.

So, for Ethan, I don't know much about React, but, if you are already working in web development then it's going to be easier to look at a "new" technology like React and determine if it'll make your life/workflow easier. I'd honestly start with YouTube videos of the use-cases that make sense to you:

  • How is X company using this technology?
  • How would you do the same thing with html/css/js and React(side-by-side comparison)
  • Maybe a history of why react was developed to begin with - all frameworks/programming languages are developed out of some sort of necessity, frustration, or ideology and learning the reasons behind it can provide important insight.
  • Also, look at conference talks on react, or "How React made my life easier" or"How React made my life harder"(you can learn a lot about the limitations of something by looking at criticisms)

Also, as a side note, having something like a lab environment or Docker installed makes it so much easier to play around with new technologies.

Collapse
 
cppshane profile image
Shane Duffy

Eh I've always hated the tutorial/training sites where you make a pointless app specifically for the purpose of learning.

What I usually do is come up with a very simple app idea (of something that I'd actually be interested in making), and then just... start googling.

Following tutorials is boring, but building something you actually want to build is addicting.

Collapse
 
cppshane profile image
Shane Duffy

I actually did this a few years back when I was trying to learn Angular. I made a simple little app that just displays two different random publicly available API's to help developers come up with new project ideas:

sparkr.dev

Perhaps it will help spark your imagination πŸ˜‰

Collapse
 
beeburrt profile image
B. Burt • Edited

So that site of yours @cppshane , it's to help people find ideas for projects to build? Is that right?
That's fricken super cool! I'm into it

Thread Thread
 
cppshane profile image
Shane Duffy

Haha thanks, yeah I've used it a few times to get the creative juices flowing.

Collapse
 
bcostaaa01 profile image
Bruno

Hey Ethan,

Thank you for sharing your experience and feelings with the developer community.

I must tell you in advance that I (and perhaps all of us or the grand majority) have faced the same as you are facing right now.

To keep yourself motivated, you need to first find the motivation within yourself. If it is coding and creating things that excites you about programming and that made you want to learn and get into this community, then building projects, even if small for the beginning/current time, might give you that extra boost, the β€œpush” you perhaps need.

As for learning React and any other framework out there (Vue, Svelte, etc), investing deeper in JavaScript or venturing into Typescript might be the wisest decision to take for now, as @tracygjg very well mentioned.

Setting (clear and achievable) goal/s, as @yuridevat mentioned, is also a great strategy and indeed that’s what would guide yourself the best throughout your career. It is great to set ambitious goals, but β€œbaby” steps, one at a time, will take you further for now.

My personal advice: stick around here in the community, share your learnings, your projects, your goals, thoughts, read other people’s articles, etc. A sense of community can give you an extra boost of motivation. In the end, we all share the same passion, right? πŸ˜‰

Good luck in your path to becoming a great software developer! I hope to see you around here more often πŸ™‚

Collapse
 
cicirello profile image
Vincent A. Cicirello

Give yourself a project. Something that you want to build. And then use that as motivation. Use Google, etc to figure it out as you go.

Collapse
 
webjose profile image
JosΓ© Pablo RamΓ­rez Vargas

Nobody will come hold your hand, so I guess you are greatly on your own. I'll just tell you what motivates me: Ego and money. The more I learn, the greater the number of times I'm right, and I like being right. πŸ˜„

Then, the more times I'm right, the more money I get to charge employers.

Collapse
 
tracygjg profile image
Tracy Gilmore

Hi Ethan,

It looks like you are getting some good advice from the community. I particularly like the suggestion from @bruno to start a small personal project. Keep it simple and build it up. Use it the investigate unfamiliar techniques and push it out to repo regularly.

I would also suggest following as much of the SDLC as possible. Don't just cut code but create unit tests and even exercise TDD. Try to adopt professional engineering principles as more as possible but also don't let them drag you down or damage your enthusiasm.

It is all too easy to get trapped in to perpetual tutorials so be selective of which ones you follow.

Best Regards.

Collapse
 
wiseai profile image
Mahmoud Harmouch

It can be tough to keep up with the constant learning curve as a developer. New technologies and frameworks are always emerging, and it can be difficult to find the motivation to stay ahead of the curve. However, there are a few things that you can do to make the learning process easier and more enjoyable.

One way to make sure that you're always learning something new is to participate in hackathons and other coding competitions. This will not only force you to stay up-to-date with the latest trends, but you'll also have a lot of fun in the process.

Another great way to learn is to take on side projects. Use your spare time to work on something that interests you, and you'll be surprised at how much you can learn in the process. Not only will you pick up new skills, but you'll also gain valuable experience that will help you in your day-to-day work.

I think the best way is to set small achievable goals. Break down the learning material into chunks and focus on one at a time. This will help you stay focused and motivated. Also, try to understand why you are learning something and how it will help you in the future. This will help keep you motivated and engaged as well.

Another great way is by setting rewards for yourself after achieving each goal. It could be anything from a special treat or an extra hour of sleep or even a night out with friends; whatever works for you. Knowing that you have something nice waiting for you after completing your task can really help keep you focused and motivated.

Last but not least, make sure that you are taking regular breaks while studying. Taking frequent breaks can help restore your energy levels and also give your brain some time to process the new information that it has learned. You can also use this time to reward yourself for all the hard work that you have put in so far!

Collapse
 
lissy93 profile image
Alicia Sykes

Is there a project idea you have, that you'd really enjoy building? I often find the best way to learn a new language or framework, is just by using it. And maybe if you're building something that you find interesting, it could help you stay motivated.

There's also things like #100dayOfCode, to help you stay accountable, and all the communities that go along with it.

Collapse
 
xsgxmicha3lx profile image
xSGxMICHA3Lx R6S

**** motivation! **** others! Go and see what others are doing with programming and after that explore AI. (being programmer is good, because the programmer always can create everything he or she wanted). next go for good researching on your resource that you are using, after that fix your problems and go for higher peaks.

Collapse
 
ritulsingh profile image
Ritul Singh

There are several strategies you can use to make yourself learn effectively:

  1. Set clear goals: Having a specific goal in mind can help you stay focused and motivated to learn. Make sure your goals are achievable and specific, and break them down into smaller, more manageable tasks.
  2. Create a positive learning environment: A comfortable and distraction-free environment can help you learn more effectively. This might include finding a quiet place to work, reducing visual distractions, and organizing your workspace in a way that promotes productivity.
  3. Use active learning techniques: Instead of simply reading or listening to lectures, try to engage with the material actively. This might include taking notes, asking questions, or participating in discussions.
  4. Practice regularly: Repetition and practice can help you retain information better and improve your skills. Set aside regular practice sessions to review and reinforce what you have learned.
  5. Take breaks: It's important to give your brain a break to rest and recharge. Take regular breaks to stretch, relax, and do something enjoyable.
  6. Seek feedback: Asking for feedback from teachers, mentors, or peers can help you identify areas for improvement and guide your learning.
  7. Stay motivated: Keep yourself motivated by setting small goals, rewarding yourself for progress, and reminding yourself of the benefits of learning. It can also be helpful to find a study partner or join a study group to share the learning experience and stay accountable.

Overall, the key to learning effectively is to find what works best for you and stick with it. With the right strategies and mindset, you can make learning a meaningful and enjoyable experience

Collapse
 
hjrobinson profile image
hjrobinson • Edited

Yeah, so I remember when I first started learning React I read the documentation. I won't say that this approach is fruitless and you definitely should read it but I wouldn't necessarily start there. It's not what I would call beginner friendly. If you haven't already run across it on YouTube Web Dev Simplified is a great channel for beginners learning React.

I also want to alert you (again if someone hasn't already) that class components are the old way of working with React. I never really bothered to get good at learning how to use class components and I've gotten by just fine. The only time I've needed to refer to them is if I'm reading someone's code on Github that they never bothered to update. The more modern way to use React is with functional components. You should also familiarize yourself with hooks. The hooks I use all the time are useState, useEffect, useRef, and on rare occasions useCallback. In my experience you can get by most of the time with just these. It might be a good idea to learn how to write custom hooks as well(this is actually not that hard).

Beyond that it's just a matter of using JSX which is very similar to writing the HTML you're already using. One thing I remember really throwing me off at the beginning was the idea of one component being nested inside another, passing props, reusing components, and conditional rendering (oh yeah and children). But once you get the hang of it it's not that bad.

I don't want to overwhelm you but you may want to learn about managing global state. React's useContext hook or Redux can be used for this. If you get into backend development and use a GraphQL api instead of a REST api then you may not need to bother with those if you use Apollo Client because you can use Reactive Variables for this. But that's a whole other can of worms.

Also, I read some of the earlier comments and I will say this. Pay attention to what's on the horizon but learn whatever is most popular at the time. Almost all the frontend code I've run into is written using React. For example I've never run into an occasion where I needed to learn Angular or Vue. You're going to need to use code out there that's already been written and you need to be able to communicate with others in the development community. If you put all your effort into learning something that's very niched it's going to hinder your progress. It's not always necessary to reinvent the wheel. How many people use Yahoo or Bing compared to Google?

As far as motivation to learn goes, meh. You've probably already heard this and it's a cliche but it's not unusual for something to be fun and exciting at the beginning no matter what it is. Novelty can wear off. Learning can be a pain. It's almost always funner to use what you already know. I'm still trying to reach the point where I can surf on what I know already and I've been coding for 8 years. If there are folks out there that can honestly say they're 100% passionate about learning something new about coding everyday then more power to them. Make up your mind what you want to spend your time doing. If you have specific goals in mind it might make it a little easier to push yourself. Don't expect to arrive too early at your destination because there's almost always something new to figure out.

Anyway that's my rant. Good luck!

Collapse
 
wallterr profile image
Walter

Find yourself a project or app that motivates you and start from there. >Get the basic of HTML and JS. Then find the best framework that suits your app. Then start google. I been also in tutorial hell, building pointless aps and following endless training programs.

Collapse
 
fidehlg89 profile image
Fidel Ernesto Alonso Ochoa

The path of the programmer needs good motivation, in particular sometimes I need a music to carry the programming and if you are studying even as a background it can help you. But the most important thing is not to stop studying, this is very big and it is full of challenges.

Collapse
 
aghost7 profile image
Jonathan Boudreau

Start small and frequent. Each day, spend just 30 minutes learning something. There is research showing that frequency helps greatly with building a habit.

Collapse
 
664848 profile image
DAREALENDERJACK

i have the best idea you could learn ok i am done with the just just take it one step at a time