How are YOU practicing the Challenges?

I am continuing my freecodecamp main stream challenges since past few weeks and Now I am in the latter part of “Basic Javascript”. Today I have discovered something pretty frustrating.

I was just practicing back all the HTML, CSS and jquery things just to freshen my memory and also know my boundary of how much I remember so far. I did very well. I remembered all of them without having an issue. Thanks to FreeCodeCamp.

But that’s not it. It could be a happy ending which it is not. When I started practicing Javascript back and forth, I have come to a realization that I don’t remember most of the part solving and Now I have to start over. Not to mention I do remember a few things but that’s just not enough. So Here I am, Knocking Your Door. Please Help Me out! How are you practicing your codes? I know this is just Basic Javascript. If I stumble upon to this, What is coming next in terms of learning Intermediate or Advanced level Javascript is freaking nightmare.
Please Guys who are already doing well and how did you approach specially when you learned JS, Sharing relevant tips and tricks could be Big time saver for many of us.
Looking forward to Your Kind Responses Guys.
N.B: Sorry Guys English is not my First Language. So, Spare my ignorance with your kindness :slightly_smiling_face:

Of course, I would guess a good majority of people here aren’t native English speakers. I wouldn’t have noticed if you didn’t mention it.

I breezed through the JavaScript basic challenges and went through the intermediate somewhat easily as well. The catch was that I had already been programming in C# for over a year when I started the JS section, so arrays, loops, conditionals, and variables were like falling off a log for me. The only catch I had was adjusting to the slightly different syntax and functions not classes. I know that when I first started learning programming, it was challenging. Some of the things that helped me learn were:

  1. Practice. Don’t just read about and try to remember programming skills. If you don’t actively practice them, they will just be limited knowledge not skills.
  2. Consistency. If you practice a week and then take a week off and then continue in some fashion like that, it will be hard for you to remember what you know. You need to practice at least 3-4 times a week when you are starting out to retain knowledge.
  3. Determination. Learning an actual programming language is hard. Some people might be offended at this, but learning HTML and CSS is super easy - especially when you compare it to an actual programming language like JavaScript. HTML is putting brackets around certain words which do certain things. CSS is taking words you used in HTML and adding some more keywords to do some styling. Besides the fact that there are thousands of keywords, there are possibly only 3-5 logical things you need to know to be competent at HTML/CSS. And then you have JavaScript a real programming language. Learning a programming language takes years not weeks or months like HTML and CSS does. I’ve been programming for over 3 years and still forget things I should know. You just have to keep at it. When you forget something (and you will) just look it up and practice it again. When you are determined not to give up and practice consistently over a period of time, you will get it. Give yourself a year of consistent practice - you will be surprised at what you know.
1 Like

There’s probably not as big a difference as you think. The things in basic JavaScript - Arrays, Strings, Numbers, Loops, Variables, Conditionals, Functions - are exactly what you will be using in the more advanced sections. The more advanced sections just take what you already know and push it farther and apply it in different ways. In the more advanced sections you will be doing the same things, loops, functions, conditionals, etc. If you can master programming basics (again: loops, conditionals, functions) you will be ready for the advanced sections where you just apply it. Think about it like driving a car at a training facility. Learning to drive can be challenging, and there is a lot to learn. You can sit there and struggle with driving in a restricted area and wonder how in the world you would be able to drive in a city. But once you learn how to drive a car, doing it in the city isn’t really that more challenging, you just have to apply what you learned in a more intense way.

3 Likes

That’s very Kind of You to mention.
and yeah It’s true that it takes year of dedication to master something specially something like a Programming Language.

Do you suggest any pro tips for practicing Javascript outside the box? By saying that I mean, through the practice I have found out fcc does not send you to next challenge for minimal detail anomalies like “cat” instead of “Cat” considered to be a glitch.
I have minimal to no experience of using any code editor Whatsoever. Well, Guess what I tried to figure out how I can code out of fcc so that those minor details won’t distract me off of from my learning curve. I learned that Chrome and firefox have their developer tools to debug the code but that’s not just enough. They are themselves pretty not so much user friendly. Long story short I have found Jetbrain and got their one year subscription via my Student Email (Let me know guys if you need any help this regards!) and downloaded their webstorm IDE for javascript practice. I thought that’s all. But I am pretty much stuck configuring that and looking for other solution. Or it could be pleasant surprise if someone shows up and help me configure Webstorm so that I can start practicing on my own machine.

Sorry for a Long Posts.

If you’re looking for a good code editor I personally use Sublime Text 2 (I believe the current version is 3 but I’m totally happy using 2). It’s technically free if you don’t mind a popup every so often asking you to buy and register your copy. There’s no time limit to their trial, just the popup as I mentioned, and you get the full program right off the bat. Otherwise I think it’s $70, but seriously…I’ve been using it in its trial version for years.

Though you could use something like notepad or notepad++ I like the syntax highlighting and features of SB2 and there’s like very minimal set up. Plus you can install programming languages that might not be included by default and functionality plugins as you please.

I’m just learning JavaScript myself (though I’m doing a bootcamp course over at Udemy before I tackle the stuff here on FCC) and I feel your pain. It’s been a while since I’ve done anything with the basics so I’m probably going to have to go back over everything and refresh. I can make one suggestion that might help you though:

Personally, I take notes. I have a notebook dedicated to just JS and I write everything I learn down, note examples, make comments to myself about logic of doing something a certain way verses another, etc. It’s a super handy to be able to go back and quickly reference a topic or function or how do a certain loop, and putting everything in my own words at least helps me to remember it better.

Other than that it comes down to practice and repetition.

@dlyons Thanks for pointing out that Editor. I was wondering do I need to configure that to any specific way like installing any plugin or something to practice Javascript or just open it up and start writing! A walk-through in this regard could be nice.

javascript is such a terrible language, i hate it -_-

i have some experience with ruby, and after ruby any language, even vaunted python, is just meh, but as for javascript, i sometimes think they specially designed it to make people annoyed and frustrated. i mean, well, ok, i can turn a number to string with .toString() method (which also doesn’t work on the number itself but only on a variable, yes, ruby has spoiled me, in ruby i can call its analogue directly on a number if i want like 4.to_s to get “4” for instance), but to make a string into number i should call some function parseInt() because a string variable doesn’t have a method to make it into a number, or consider that Object.keys() stuff (seriously, no method to call for keys on the instances of objects?), but still it’s all are minor inconveniences, the really bad stuff it’s the stuff like that arrays need a special manually written callback to sort them properly because .sort() without callback will sort say [2,10,5].sort() as [10,2,5], because for some ungodly reason it treats the numbers as strings by default, stuff that 1 == “1” is true in js, stuff like that, guess what, x !== x can return true in js if x is NaN (i was shocked tbh, but apparently it’s the only easy way to check if something is NaN), that .indexOf doesn’t work with nested arrays ([1,[2],3].indexOf([2]) returns -1 !!!11) etc etc. and those ugly callback functions and their arguments, especially not anonymous…

and as for generally what i do, i just google stuff like “javascript array unique”, “javascript array sort”, “javascript binary to decimal” etc for documentation and stackoverflow examples

1 Like

I can confirm that the difference between basic and intermediate algorithms becomes less apparent in terms of difficulty once you get comfortable with the basics. So don’t be intimidated by titles.

@dlyons Do you mean a regular paper notebook? Do you find it more convinient than taking notes on a computer?
I’m starting to understand the value of taking notes. Learning by building projects and referencing docs is fine, but sometimes it’s so annoying when I look things up in the docs many times and still don’t retain them in my memory. I’ve noticed that taking notes started to solve this problem, probably because I have to put everything in my own words and sort of teach myself by doing it. For now I use dynalist with a couple of extensions that one of our campers recommended on this forum. It’s pretty cool.

1 Like

Nope, nothing you have to set up for JS to start using it, but see my note below about syntax highlighting. Basically you boot up SB2, make a new file (either via the File menu up top or with Ctrl + N) and then you got to the bottom right corner (next to “Tab Size”) and click on “Plain Text” to select your language of choice from the popup menu (by default, new files are always set to Plain Text file).

OR you can make a new file and then when you go to save it you can add the .js (or .html, or .css, or whatever you’re working with) file extension to it and it will set the language for you.

Now, SB2 does have JS syntax highlighting but some people prefer to get different highlight plugins, so that’s up to you. I’d say mess around with it first and see if you want to change it up afterwards. However, I still wanted to mention about package/plugin installation for the future.

First you have to install Package Control (makes installing plugins way easier), you can find a pretty straightforward guide on how to do that here.

Here’s a usage guide for Package Control. There’s also an install guide there too.

Here’s one recommended highlighter for JS, if you scroll all the way down they mention how to install it via the Package Control menu in SB2.

After you have those two installed you can set your syntax highlighting (and this goes for any highlighter you might get) via View > Syntax > then select highlighter from the menu.

1 Like

Yeah I’m kinda old school when it comes to note taking so I’ve got a regular spiral notebook. I wouldn’t say it’s more convenient, but I do find the act of physically writing something down more impacting on my remembering it. I can’t argue with the easy of just doing a search on a computer document to find something quickly, so I’ve begun putting small post-it tabs at the edge of my notebook to mark sections I reference often. Makes finding what I need a little bit easier.

I will say it’s nice to be able to just open my notebook and have that in front of me while my code is on the screen and not have to jump back and forth between say a text doc and my code editor.

Although when I do practice coding examples, I’ll write notes there via comments in the script itself. So that’s sort of like digital notes. I’ve never tried dynalist, I’ll have to check it out!

1 Like

@dlyons Thanks for making this clear for me. I see you did mention some resources as wellll. Definitely gonna take a look in the morning.

1 Like

btw if you don’t want the hassle with installing javascript locally, stuff like repl.it makes testing and running snippets of code much more convenient than the built-in freecodecamp’s editor that always runs all the tests, you also can run the stuff in your browser console in the developer tools (ctr-shift-i), but it’s more for one liners to quickly check if something works or not and how it works exactly

1 Like

I would have thought Jetbrains IDE would be good with javascript.
I believe they work on the file type so if you save your file as a .js file it should recognise you are coding in js and apply the correct formatting rules. I presume this is how IDEs work?

Either that or use an online IDE like others have suggested.
I have tried a few out like JSbin, JSfiddle, Pythontutor and repl.it. All good for doing simple algorithms.

I tried both changing file extension to .js and creating javascript type file from webstorm. Both Failed to initiate the javascript! Although I have got some spark yesterday when a JS code finally executed (console.log(“Hello World”)) :rofl: LOL and outputted result after installing node.js in my machine. But that was it, there were several more other codes I tried to execute (From FCC) but they returned nothing whatsoever. Same code happened to be executed in chrome developer Console.
I guess I am missing something there when it comes to configuring webstorm! But Anyway #noZeroDays

I do get your feeling @catherinewoodward and I have been in the same position in 2014 and I did the worse choice which was to give up. However as I was doing my PhD in parallel, I always had contact with programming in some way and last year when I decided to get back to JS I noticed that I could do things much easier, I just had to check the syntax but the logic I knew. Therefore I tell you that this feeling you have is completely normal and practice is the only way to improve your coding skills . Practice, Practice and Practice (I suggest codewars.com and codecademy.com and of course stikc with FCC).

I wish you all the best and do not dot give up…never. :wink:

@luuizpaulo
Yeah, it is really hard putting everything aside and just code. To be an average level Coder it is my gut feeling that You can not just code once in a while and pretend like You nailed it or something. When I started out and was practicing HTML and CSS I was like Dang! Coding is piece of Cake. Ha Ha Ha! That was a bad Joke! and Javascript made sure of that. But I believe perseverance is the mother of All Success so I am being one.
By the way, Codewar is not poping up for me. You mind take a look?
codewar

Happening both in FF and Chrome.

Hey @catherinewoodward this might be a bit more than you want to get into but I thought I’d toss it out as an option (and to anyone else really if they want to try it)…I set up WAMP on my windows computer and basically it turns it into a workable server. I can then store and run my files locally and access them through my browser with something like “localhost/someproject/index.html”

The directory system is just like a normal computer directory. So I can just make a new directory in the server’s main folder (www), put all my code files in there and then access it by a browser while the server is running.

From what I’ve used it for I know it can run html/css, js, php (in fact it comes built in with Apache and MySQL). You can put together databases with phpmyadmin and run wordpress installations, actually you can run pretty much all the major CMS’s with it. I’ve had drupal on there and joomla. It’s basically where I build and test all my prototype code and sites.

I’m not going to lie, the set up is pretty involved but not awful :laughing:. I mentioned it to a fellow camper with links to what he would need: Apache Server and MySQL not Installing

Of course that’s all if you’re running a windows pc but fear not!

MAMP (for Mac’s): https://www.mamp.info/en/

LAMP (for Linux): https://www.lifewire.com/create-lamp-web-server-using-ubuntu-4135422

Just a heads up, I’ve never installed MAMP or LAMP so I can’t help you with those if you have any questions.

2 Likes

Spaced Repetition for the win!

1 Like

I would add no words. Keep going and if you need support we are all here, also noobies and also learners. :man_technologist:

About the codewars, this error is already normal. From time to time the site chrashes, the tests do not run and everybody complains. A quick look in google and you will see a lot of people reporting multiple errors everyday. I have no idea why their platform is so unstable.

Freecodecamp is an amazing tool ( the best I would say) to learn but is not the only one, I´m reading books, designing websites outside FCC assigments and watching youtube tutorials. You are going to learn by repetition doing over and over algorithms and of course we cannot keep all the information but once you learn the basics you can storage more info un your brain.

Just Keep coding !