
I would advise against starting with "JavaScript: The Good Parts" by Douglas Crockford and Kyle Simpson's "You don't know JS" series for an total beginner. I think these are best read after already having a basic understanding of JavaScript as well having put some time in front of the keyboard using JavaScript. Both books/series, however, I *highly* recommend. Do read them, but after you've read another introductory book. I have read "Professional JavaScript for Web Developers" by Nicholas C. Zakas and I think it is a great book for learning ES5. But I haven't read "Speaking Javascript", "Eloquent JavaScript", or "JavaScript: the Definitive Guide". However, Eric Elliot, an experience JavaScript programmer who has written his own JS book, has written an article that may help:
12 Books Every JavaScript Developer Should Read – JavaScript Scene – Medium[^]
After you've learned the language fundamentals, you will be overwhelmed with all the other "stuff" you will need to know. For all that "other stuff", I think you will find this other article, also by Eric Elliot, to be *very* helpful:
Top JavaScript Frameworks & Topics to Learn in 2017[^]
I'd also recommending subscribing to JavaScript Weekly to keep up to date on things and find out some great articles:
JavaScript Weekly: A Free, Weekly Email Newsletter[^]








ALL ABOUT COUNTING RIGHT
In a dark room (so you can't actually recognize the coins, but feel and mover them only) there are 284 coins scattered on the floor. It is known that only 14 hast their tail upward.
Create two piles of coins  using all the coins in the room  with the same number of coins with their tails up...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
modified 2Mar17 16:38pm.





Balance all of them on their edge.
Now none of the coins have their tails up.





Yeah! Good luck with that
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





Ok, then alternate solutions...
1) Turn on the lights.
2) Bring a flashlight. Seriously, this is 2017. Everyone has a flashlight on their cell phone.
3) Pick up the coins and move them to a room that isn't dark. You said the coins could be felt and MOVED, so move them out of the dark.
4) Split them into two piles and just assume it's fine. After all, it's dark... No one can tell if you're right or not.
5) Cut each coin in half without flipping any, and put half in each of the two piles. By definition, they now all have the same number of tails facing upward.





You came up 5 alternative options, all complicated (except the light, but you have to find it first), while there is a very simple and easy one out there  15 seconds, most...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





How is turning on the flashlight in my cell phone complicated? I can do that in about five seconds
Or are you suggesting just opening the door? Because you never said it was light OUTSIDE the room.





After you turned on the flashlight, you still have to scan all the coins, that will take some time...
See the comment from Nagy (he may had an extra gin) below...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





Damn, and I was only one step away from suggesting burning down the room so all the coins would be so scorched that none of them would be showing heads OR tails.
And he had to go and post an actual answer...
How's a guy supposed to troll in this kind of environment?





That's the gin. No cure for it!
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





Soo... you can feel the coins (determine sides) and the only requirements are two piles with equal tails up coins? Just pick up all the coins, splitting them into two headsup piles of 149 each. Or two piles of 142 headsup, 7 tailsup, or any other combination that strikes your fancy. You can determine coin side by feel pretty easily for all coins I'm familiar with





Too much work for a lazy one like me... Call math to make it less...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





Could also just feel around for the 14 tails, flip them over, and you're done. No matter what you decide is a "pile" it will have the same number of tails up  zero.
EDIT: Or even better. Pick two coins. If they're both heads you're done. If either is tails flip it over. Done. It never says you have to use all the coins.





But to find all the 14 tails you have to 'feel' all the coins  there is a much more easy way...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





Did you see my edit? Do we have to use all the coins? Or can you simply pick two coins, if both heads you're done (two piles of 0 tails up each), both tails you're done (two piles of 1 tails up each), and in the case of 1 heads 1 tails simply flip one of them and you're done?





The two piles  together  should contains all the coins in the room...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





I think I figured it out. My last guess (though it didn't account for all the coins) was on the right track. Take a simple example of TTTHHHHHHH (7 heads, 3 tails). If you take three coins you'll get either {TTT}, {TTH}, {THH}, or {HHH} leaving {HHHHHHH}, {THHHHHH}, {TTHHHHH}, or {TTTHHHH} respectively. Those don't match up, but if you notice, flipping what was taken yields equal tails (example: {TTH} > {HHT}, {THHHHHHH} = 1T each).
This flipping works by removing coins equal to the number of tails. By subsequently flipping the coins, this set now contains a number of a heads equal to the number of tails removed from the original set and a number of tails equal to the number of heads removed from the original set. This naturally balances out the number of tails in each set.
An example: 10 tails {TTTTTTTTTT}. Let's remove 6 tails {TTTT}. Those 6 tails are now in the taken set {TTTTTT}. We need 10 total coins though, so we must have taken 4 heads as well {TTTTTTHHHH}. Because we removed the same number of total coins as the number of total tails, whatever amount left in the original set in tails must be represented as heads in the taken set. Thus after the flip we now have {HHHHHHTTTT} which has 4 Ts just like the original set {TTTT}.
So for your question: Pick 14 coins, any coins, and flip them. Done.





Right answer. Overcomplicated explanation...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





But the only answer that explains why it works





Let see...
After you separate 14 coins from the rest there is exactly n coins with tails in that pile...
In the other pile there is 14  n...
Now flip the coins in the pile of 14, now it has 14  n coins with tails, just as in the other pile...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.





Your explanation doesn't account for why taking an amount of coins equal to the number of tails is necessary But yes, the rest of the explanation could be simplified by math instead of words





Gather 14 coins at a time. Feel them if found any tails keep them separate. Repeat until you find all 14 tails and then gather rest of them ( All heads ) and make two piles with same number of coins from head and tail pile. Best case you find all 14 in first go. Worst case you have to feel all 284 coins.
Zen and the art of software maintenance : rm rf *
Maths is like love : a simple idea but it can get complicated.



