I feel lost, I can not keep up with freecodecamp. help!

Hello!

I’m using 2 months freecodecamp. I managed to complete all the basic algorithms (with some difficulty) and I did the first intermediate project where you have to create a random machine quote.

From here my decline began. I’ve been stucked with “show the local weather” for about a week.

So for frustration I started making some intermediate algorithm to change. At the Roman Numeral Converter I was stucked for 3 days. I tried with the hints but nothing. In the end I’ feel “surrendered” and I saw the solution. To me it seemed impossible to get there alone.

So from here I came back to the root, I bought 2 books on the javascript and started studying them doing some exercise to try to keep the mind trained.
From here, my will has gone more and more. I started studying 8 hours a day, then 6, then 4, now 2.

I feel very frustrated, I feel like I’m wrong, like I’m slamming against a wall.

By self-taught, what should I do to get back to being constant with the study?
Is it normal to feel like me at the beginning?

I thought I would split the day into:

  1. theoretical part
  2. practical part (algorithms)

Maybe I have to use some other site with freecodecamp?

The main problem for me is to understand the programming mindset, there are many solutions to certain algorithms that I still do not understand. I often feel lost, and often I can not understand how to apply the right solution for a problem.

How did you do it?

Sorry for the long post!

6 Likes

Do not worry, you’re not wrong, there’s nothing wrong with you. I remember that time, same as you, it was difficult and I took 14 to 21 days to complete each intermediate project!
The key was to keep trying every day. I watched lots of coding videos, read 2 books on javascript and ajax, practiced by doing side-projects.
I promise something will change, just keep trying everyday and you will understand things better, and when you’re blocked, you will research better, thus getting and understanding solutions faster.

If you haven’t already, I suggest you join the #100DaysofCode challenge on twitter (by @Kallaway) . More info official page for the 100daysofcode! It helped me tremendously because it feels good to be with other coders. We’ve all been though this.

10 Likes

If you have 0 programming experiences, it takes a while for things to ‘click’. I still remember my moment of epiphany where I went “Oh so THAT’s how objects work” (I was waking up from a stress nap; thanks edX).

Usually once one part of the paradigm makes sense, it will slowly come together. So instead of going “Oh geez oh man this whole thing doesn’t make sense,” break it down one by one and focus on one aspect that you don’t understand.

Take your time instead of rushing. If something doesn’t make sense now, maybe you need to go back and review earlier concepts. Also, pay special attention to keywords and data types. They’ll help you later on when you’re reading documentations.

One thing you can do to crawl through algorithm challenges is to step by step keep track of how data is being passed around. For example, if a for loop isn’t working as you expected, throw an alert or a console.log in there somewhere. Maybe a variable is being modified in a way you didn’t foresee. Or maybe it’s not being modified at all.

As far as finding the right solutions - it feels like people put way too much priority on code elegance, which can be discouraging for people who are just learning. “Make it work, then make it better” was the motto, not “make it perfect the first time.”

14 Likes

Don’t feel bad. As long as you make some progress you haven’t failed. Even learning how something can’t be done is a success. The projects have lots of little moving parts that you have to get to move in unison. I struggled with some of them as well. And I have experience teaching programming at a (for my country) prestigious university.

5 Likes

Like others have said, what you’re feeling is completely normal. This is hard stuff. If this were easy, there would be no need for FCC and the jobs would pay minimum wage. So in a way, the difficulty equates to good wages and job security. You just have to invest the time and frustration.

Yeah, that Roman numeral one was tough. I used to do light work as a computer programmer and that one took me a few days. If you look for hints, that’s OK too. The important thing is that you are learning. Try it on your own. If that doesn’t work, look for hints. As long as you truly understand what you came up with, you are learning.

I thought I would split the day into:

1, theoretical part
2, practical part (algorithms)

Maybe I have to use some other site with freecodecamp?

First of all, you definitely need something besides FCC. You are expected to research things outside as you need. FCC is not comprehensive. But that reflects how a coding job works - your boss doesn’t provide tutorials for everything, you have to do a lot of side research.

Use FCC as a framework. I kept a notepad next to keyboard and would write down things to investigate. Somethings I needed to investigate immediately because I needed them for the program (“What was the correct format of a switch statement?”) and others I knew there was more to it.

I have the notepad right here. I can see entries like “RegEx”, “Array prototype functions”, “Ajax”, “What is an API?”, “Promises”, etc. These were things that I just got by in but wanted to know more about. These are things that late at night I’d look up articles and youtube videos on.

Don’t worry about being too methodical about it. I’d say just focus on the practical, using FCC as a path, and take little side journeys as you need. And if you can’t find the answer on the internet, ask the forum.

6 Likes

I would like to thank everyone for the answers that you have given to me. Each one has encouraged me and cheer me up!

You have given me great advice. what I’m going through is normal and that it is part of the process.
Sometimes I forget that what I’m doing not have to look like a sprint but like a marathon.
It takes time and patience that will eventually be repaid.

Thanks again to everyone for the answers :slight_smile:

9 Likes

This stuff takes a long time to learn, it’s not easy, you learned more than most people that attempt to learn to code and give up. Keep going.

2 Likes

FCC is not a race, it’s not a ranking or leaderboard, it’s not a competition. There is nothing to keep up with.

The only person you’ll be competing with is YOURSELF from yesterday.

If today you learned something new, became faster at something, understood something more clearly VS yourself (from yesterday), then you’re winning. Keep at it.

11 Likes

I think the general consensus is, at the very beginning, things can and do get a bit frustrating. What has often worked for me is to take mini breaks when I start to feel really overwhelmed. This allows me some time to digest the new material as well as think up ways it can be applied… Hope this helps some.

2 Likes

If u don’t have a tech education or any tech background in computer science/programming/anything that uses math and logic, then it’s just gonna take u awhile to “start thinking the right way”. It’s never about code or language syntax, it’s always about that algorithm of “how will this thing work” steps. And it’s fine, take your time.

Start small. Break it into smaller parts, like:

  • How to I identify user location? geolocation? ip? etc. Do research on how to get and use those.
  • Where do I get my weather data from? A lot of API’s out there, I can recommend https://www.apixu.com/
  • Do some test requests just to see server answers etc
  • Only then should u start thinking about unimportant stuff like interface and such
2 Likes

I remember slamming my head against the wall trying to figure out how to get the weather application to work, too. It took me quite a while, a about 2 weeks to figure it out. The entire time I was cursing Javascript for it’s weird asynchronous nature and use of callbacks, trying to work out how to get the API to work, all that stuff. (Hint: I started with using console.log() to log the responses from my API calls until I could narrow it down to the point I could extract what I wanted). It required me to break everything down into smaller, more digestible chunks. A lot of people have already said this, but I’ll try to help by showing my thought process for tackling larger problems like this without just giving the answer away (because, like I said, I struggled a lot on this too).

For instance, to get the weather for a user’s location, I had to know 2 things: their location, and the weather there. To find their location, there are APIs and functions you can use. To find the weather at a location, there are weather APIs you can use by sending them location information to get weather for that location.

I picked out which API to try using for the weather, then figured out what it was asking me for: in my case, it was the zip code and country. I hard coded my zip code and country into the javascript and made sure I could get weather that way. Using console.log(), I was able to log individual chunks of the JSON response until I figured out exactly which chunks told me what I wanted to know (current weather conditions, and temperature). Then I started putting that on the webpage. The temperature was returned to me in Kelvin, so I had to build a function to calculate either Fahrenheit or Celsius temperature from that, put the temperature in a <div>, and then a button to toggle between the two.

After I got that ironed out, I had to figure out how to do it for all locations, not just my apartment at the time. I had to know what a user’s address was, and found the easiest way was to use the Google Maps API to find the address from coordinates. I googled around and found navigator.geolocation.getCurrentPosition(), which I had to learn to use to get coordinates. That took a day. From those coordinates, I could feed them to the Google Maps API, which in turn would send me JSON data about the location. I then followed the method from before of using console.log() to make sure I could extract the parts I wanted from it. From those parts, I isolated the zip code and country, and passed them to the function I built to get and render the weather data.

I felt triumphant after I got everything to work! I loved it and quickly ran to my friends apartments and the local Chick-fil-A to see everything working and showing the addresses of these places. It all worked out fine.

And then, without warning, it broke 2 months later. The API I used for my weather had changed, so I had to go back, and use console.log() to start logging JSON responses manually and figure out, once again, how to get the information I needed from the JSON because it had changed. Using the method I used to initially build the page and figure out how to query the APIs, I was able to fix it in under an hour when I figured out what the problem was.

The finished product is here, if you want a look at it. I enjoy javascript and programming logic more than design, if that wasn’t apparent. If you look at the javascript code and are intimidated, just remember, in June I was just like you, and this final product looks nothing like the way it was written. Every function was changed and rewritten several times, as well as several functions that are no longer there because I figured out a different/more efficient way of doing it. I started out with just $(document).ready(function(){}); and started putting one thing inside at a time.

In a few weeks, you’ll be stuck on the PomoDoro clock or Tic-Tac-Toe, thinking about how much harder those are than projects like this, and you’ll look back at these times and realize how much you improved, and how much you’ve learned. The fact you’re pushing through something difficult means you’re improving. And, I’m not gonna lie, on the stuff I’ve been stuck on recently, I look back at the mid-level an advanced-level front-end challenges for reminders on how to do, or how I did certain things. Once you write the code yourself, and don’t just copy/paste, you not only know you can solve that problem again, but you can look at code you wrote for reference in the future. That’s WAY more helpful than someone else’s code on StackOverflow.

I’ve been stuck trying to make some of the final back-end challenges. After 2 weeks I still can’t make a user authentication mechanism despite many tutorials online about how to do it. The key is to keep trying. If you don’t stop you keep slowly getting better, without realizing it.

You can do this.

7 Likes

Thanks for the walkthrough!

Yes, your app works here too, in Italy :slight_smile:
You are absolutely right about dividing large parts into smaller parts and see how they work through alert or console.log.

I’ll use your hints tonight to try and make the app again. THX!

@lediable - i am in same situation as yours , stuck on the last four tasks before the final 4 projects,

javascript is a bit hard to wrap mind around as its very flexible, also i have difficulty in understanding calls like

Array.protitype.map.apply etc, i am studying books and working my way up , its a slow process but what else one can do but to read , watch video and ask for help its my 4th month and still struggling … You are much better then many others in terms of progress…

Regards

1 Like

I am actually at the exact same point! I finished all the basic algorithms and projects and my progress has been very slow since then. I too am stuck on the Weather app and the Roman numeral generator. One thing I found is that the navigator.geolocation function is a little shoddy. I have verified this on StackOverflow, sometimes mine grabs the temperature and sometimes it does not! Which is pretty frustrating considering I am not super smooth with JS to begin with. This often leaves me asking “oh shit did I accidently delete a brace or something?” Fortunately I keep a forked version of the app with a geolocation function to test whether or not the navigator is working on my system.

I think I am going to redo some of the earlier HTML/CSS/algorithm material to strengthen my foundation. I have been posting to a blog too which has kept me moving forward. Yeah I think what other people are saying about keeping other side-journeys open is a good idea. I did a differential equation problem yesterday just to feel like I was doing something lol.

I also opened an account on StackOverflow which I think was worthwhile. But like I said, you are not alone I guess. I am literally in the exact same stuck point. I’ve been on FCC for about a month. I guess no one said this would be easy, and if it were easy everyone would do it… it is hard! Don’t give up though, if you made it this far you are probably smart/hard-working enough to make it through the rest.

3 Likes

Buddy, I am coming from the future to tell all is right and I was where you are know and what I did ?? Keep trying and coding Solutions till finding the right one. Your perseverance will always win, maybe not at this moment but it will win at some time. To see what I did and what I am doing here is my Twitter account :
https://twitter.com/The_Engineer92
See my back twits and You will know what I mean. My advice just keep practising, coding and trying solutions. And for additional improvement, You may find a Good Algorithms course on coursera and I highly recommend CS50 on EDX as a great CS course in general. Good Luck mate

5 Likes

I hit a brick wall on the random quote machine instead. I loved the algorithm challenges even when a couple drove me mad I just took a break for a day or two and let it stew in my mind.
Before this section (JSON API and AJAX) I felt there were good examples of what the challenge wanted, but starting here it seems like you just copy exactly what it says and go. I don’t feel like I learned anything in that part and it makes using APIs very difficult to grasp. I also found that I’m much less interested in the web-development side rather than actual standalone programming. I like the idea of writing the random quote generator itself, but the API part is completely uninteresting to me.

I also started the intermediate algorithms after getting frustrated with this section, but have an OCD about doing things in order which has brought me to a screeching halt now.

Anyway, long story short; glad I’m not alone (still). :slight_smile:

1 Like

I found there was nothing more mind-numbing and soul destroying than trying to batter my way through a book about Javascript concepts with little real world context.

However flash forward to where one of my projects isn’t behaving properly and one of these concepts seems like it could be the cause, and suddenly it’s the most interesting subject in the world. Because it is of immediate consequence to me now.

I find it much, much easier to learn by doing, rather than reciting from a text book. I’m sure most people feel that way- don’t beat yourself up about it. Get building instead!

3 Likes

You shouldn’t be too negative about getting stuck OP. If you get stuck, you’re likely to do a lot of research and learn a lot of things that will turn out to be useful in the end. The danger is when you start judging yourself and saying “I can’t do this”. Forget that. The computer is a moron and getting a moron to do complex things isn’t easy, so don’t be hard on yourself. If you are stuck, you have an opportunity to learn about how to instruct the moron precisely and you also have the opportunity to learn how to manage your own psychology when faced with difficult problems. If you don’t ever get stuck, that’s a problem as well and you should probably simulate getting stuck so you do the research and learning that being stuck forces you to do. You’ll be fine OP, just see it as a learning process.

1 Like

I have to say that it describes perfectly what happened to myself. I just gave up, unfortunately.
The good part of reading your question and some of its replies is that it motivates me to pick up where I stopped and follow through. :slightly_smiling_face:

1 Like

Don’t give up! I think everyone hits a roadblock at some point. I find, for myself, it helps to work on a different project with a different scope (could be a really simple hello world type program, or something more difficult) that I know how to solve. This way I reaffirm myself and I “get back into the groove”. Even going back in the project I’m stuck on and refactoring (rewriting code into something more efficient or readable) some of my earlier code using new techniques I’ve learned along the way helps. Of course, be careful not to break anything :slight_smile: .

I guess the important thing is to not give up, and keep trying! Like someone said, this stuff is hard. That’s why not everyone is doing it.

1 Like