The higher I go the harder it gets

It’s quite frustrating really, learning to code on your own. I’ve been on this for a year now and i have nothing to show for it, I’m still stuck solving js algorithm questions and i still can’t solve a lot of them. I hope I get better at it, cause it’s depressing.

Hi @nwobodoemmanuel479 !

Learning to code on your own takes a lot of work and patience.
A lot of people go through this.
You are not alone.

I have been active on the forum for about a year now and a lot of people who come here quit within a few months.

So the fact that you are still here and learning is something to be proud of.
Plus I wouldn’t say you have nothing to show for it.

Try to focus on what you have learned within a year :grinning:

Everybody learns at their own pace.

For me, I learn at a slower pace but I just try to take it day by day and work on getting better a little bit at a time.

Hang in there :grinning:

2 Likes

An alternative to working on code on your own or learning solo might be getting involved in open projects. Whether getting involved with projects on github or a meetup coding jam, finding a group and coding together can be a powerful way to motivate yourself, network with peers, and learn.

I’m involved with a half dozen meetup groups near me (central Massachusetts area), and many of them do remote coding sessions. There a number of code book clubs that might take a book and work through a chapter or two a week, both theory and practice.

There are ways, but i wonder if the issue is the learning, or the learning and projects on your own?

Both, some concepts seem easy to understand at first but difficult to implement in actual challenges. And yes, learning on my own has not been the easy cause sometimes I get really confused.

It sounds like you need to get off the “learning treadmill.”

There are a couple of tips I can impart:

  • Build some things with your current skills. It doesn’t matter how you build them. You will come across many things you don’t know how to do, or problems or bugs you will create, or design & architecture mistakes. It doesn’t matter! There is no better way to actually learn and gain confidence than to stop “learning to program” and start “programming”

  • Programming is problem solving. There are many ways to solve the same problem. Free yourself of doubt or concerns as to whether or not you are doing something the “right way”.

  • Learn to use google, stackoverflow, etc. When you don’t know how to do something, you need to be able to break it down into pieces, and be able to search and evaluate the materials you will find, using the right terminology. You need to develop your vocabulary in order to find the right search criteria to get to the information you want.

  • Be curious, keep track of what you don’t understand. Jargon, applications, language terminology, etc. When you see reference to something, and you don’t know what it is, or what it means, put that in a todo list, and allocate some time to study, research, learn and experiment. Your “experiments” will be mini-projects that can not only teach you things, but also are actual “programming” where you will improve your skills.

  • However, this should be something you allocate an hour or 2 a day/night to, and should not prioritized over actually developing your projects.

  • People always recommend joining open source projects. I think that for most neophytes, this is bad advice. Experienced programmers don’t want ill-conceived contributions from a beginner. If there is a place where you are safer dipping your toe in, then it’s in the area of unit tests. Unit tests are code, and it’s also a great way to learn how to write tests, learn about unit testing for your own projects, and in general, learning how professionals actually work.

  • The most important thing, is that you truly have interest in the field, and a strong desire to master it. If you have that desire, then learning is not work (even if it is at times very difficult and requiring of focus).

3 Likes

Hi, thank you very much for this. I’ll try my best to implement this process.

You’ll get better. Keep in mind you’re not just learning how to code, i.e., express concepts in a language the computer understands (Javascript in your case). Assuming no background, you’re also learning:

  • Computer and systems architecture
  • Networking fundamentals
  • Software engineering
  • Problem solving techniques
  • Maybe some discrete mathematics

Consider a simple problem like sorting a list. Before you even start thinking about code you need to consider your approach. Brute force approaches like bubble sort are simple but sub-optimal. Divide-and-conquer approaches like quicksort or mergesort are optimal but harder to understand.

Once you’ve got your approach pinned down, you’re into software engineering territory. Recursive or iterative code? What are you doing about error handling? And so on.

It’s Javascript, so you’re probably on the web. So how are you communicating with your endpoint? REST or SOAP? Data format – JSON? XML? Text? Error handling – again! What happens when the request times out? Is your service idempotent?

Look – bottom line – you think you’re just learning to code. You’re not. There’s a million computer science things going on in the background and you have to learn those too.

But here’s the good news. You can absolutely do it, and you don’t have to do it by yourself. There’s communities like this one and tons of online courses. And you don’t have to be perfect right out of the gate. There’s billions of lines of terrible code in production. Perfection is not required. Learning is. But it’s a lot, so relax and enjoy the journey. :slight_smile:

jrm

2 Likes