Javascript isnt fun :((

I love making website and doing projects when I study html and css. But now, just solving Javascript problems about: “dog legs”, and “bird legs”, math … I didnt see the meaning of Javascript.
I miss the time when I build Wordpress Website without knowing code at all. Here is my first website I create in 2016:


I know Javascript can help me make a better website, but I dont know how to apply it in real life yet, even when I almost finish my Javascript certificate already. I am now at Intermediate Algorithm Scripting, very difficult, sometimes I spend the whole day just to think about a single problem and I lost interest in code. Should I forget about the algorithm homework and go do some fun projects, or just keep suck it up, and get the certificate then going to do projects ?

The algorithm problems represent common problems found in computer science in general and front end development in particular. You’ll run into issues based on the same core ideas as you try to build interactive websites.

To see some examples of where this will lead, you can look ahead to the front end libraries projects.

2 Likes

HTML and CSS allow you to make static webpages. They can display information, but they are not interactive. If you just want to build those for fun, then cool. You do you. Any code that actually does something, whether that’s submit a form or fly a spacecraft, does so via algorithms. Languages like JavaScript are required to tell computers how to take actions.

5 Likes

Your website is very nice, I like it. I can certainly empathize with your difficulty with JS. It’s a very different kind of study than using a website builder; basically it’s a type of math (in my opinion).

That is only one part of JS, though. Initially, JS was created to do fun little things on webpages. You don’t need many algorithms to make a button to switch to night-mode, or drag and drop things, or even add a form validation plugin.

If the FCC JS course isn’t working for you, that’s not because of JS but because of FCC’s approach. There are many other courses, books, videos, etc. that might work for you better. Ideally you will come back and finish the FCC course, though, because it touches on fundamental programming concepts and skills that will be helpful and maybe even necessary. If you never learn them, you will be limited.

If you want some more practical applications of JS, then look up courses on DOM manipulation. You might be ready to take Wes Bos’ JavaScript30 course, which is free and extremely fun, too. Good luck!

2 Likes

I know what you mean, and yes to solve FCC problems I do need to learn from different sources. I love FCC, today is my one month anniversary at FCC, I have my own plan to finish Javascript in a month, so I will have to try my best to finish this certificate. I know sometime it isn’t meant to be fun at the moment, but later on, hopefully I can create something fun with Javascript. Thank you for your recommendation about DOM manipulation, I will definitely look it up !

Have you tried w3schools? They do a good job showing more examples and they explain well. Take a look at javascript.info too and MDN goes more in depth. Don’t forget YouTube, try The Net Ninja. Take baby steps. Good luck!

1 Like

Hey Hezzi,

totally feeling your challenges.

I review a lot of HTML projects here.

So I see something like this a lot:

<li class="abc">
  <a href="..." class="xyz">Name: Max - Age: 25 - Job: Developer</a>
</li>
<li class="abc">
  <a href="..." class="xyz">Name: Alice - Age: 30 - Job: Janitor</a>
</li>
<li class="abc">
  <a href="..." class="xyz">Name: Bob - Age: 35 - Job: Race Car Driver</a>
</li>

When I want to update the li class, I have to update it 3 times (each li).
When I want to add an attribute to li, I have to update it 3 times (each li).
Sometimes you have more than 3 people, like 100…

With JavaScript you can write one li, one a, and run a for loop.
Moreover you can separate the data (Max, Alice etc.) from the representation (li, a).

Seeing that you’ve already finished the Responsive Web Design Certificate (:+1:), this probably seems useless, because the projects are fairly small and copying and pasting 3 things around isn’t that much work, but when you start building bigger stuff, this stuff will become annoying! And I think copy and paste is not what most of us want to do for 8h/day.

4 Likes

I think I just havent had enough examples and easier problems before jumping into the hard core algorithm. I have tried to look at w3school and other website just so I can go back to do FCC challenge. I was frustrated yesterday because it took me so long to solve one single problem, but I understand now that I just start FCC for a month, it is normal if JS is a little confusing for now. All I need is to do more challenges and research from other website to understand more about it. Thank you guys, I am now back on track to finish JS then will be on the real projects.

Quick idea. Go to this site and do the first ten or fifteen exercises as a test. They are mostly on the simple side. For example:

  1. Write a JavaScript program to find the area of a triangle where lengths of the three of its sides are 5, 6, 7.

But there is also plenty of work with strings, arrays, and booleans. It’s practice with the fundamentals.

If you work through all 150, you will have a nice set of basic skills and be in a much better position to tackle the FCC algorithms. Instead of struggling with the language, you will be able to focus on the puzzles.

It’s a basic concept of learning that it should be progressive. Start easy, gradually increase difficulty. Trying to learn variables, arrays, for loops, recursion, objects, ES6 syntactic sugar, and algorithms, all at once? Too hard for most people.

JS Exercises

2 Likes

So I want to clear up one point here. Its that I believe JavaScript, or writing code in generally isn’t inherently that fun.

Writing code is:

  • Finicky
  • Error prone
  • Annoying
  • Requires a bunch of time, work, effort

So yea, its fair to say “its not fun” because it really isn’t when you get down to it. However that doesn’t mean you can’t have fun doing it, but writing code is just part of the overall process of solving problems and building things. Both of those can be fun. Writing code is just part of that, it itself might not be that much fun, its actually a lot of hard work, but the results of what you can do with it are what makes it worth it.

You can build stuff with HTML and CSS, but its with JavaScript (or programming in general) you can build anything to do anything.

Keep learning it, keep grinding, and keep struggling with it, such experiences are what serve you well later once you want to use it to build something awesome!

4 Likes

It would be best if you continue practicing algorithms. If you left it today, you would never be able to develop an interest in learning it. So, continue it, with the time you can excel.

1 Like

I did manage to finish it, so I can move on and learn more, someday I will be back to do those challenges again to make sure I didnt forget them. Thank you! It is just a little frustrated but I wont give up!

I am back to learning JS from other sources too, I will do even more algorithm challenges until I am comfortable with it. Feel like I dont know anything right now, but looking back I actually did learn a lot! Thank you for making me feel I am not the only one feel this way!

Hi @hezzipham,

I think I just havent had enough examples and easier problems before jumping into the hard core algorithm.

In 1971 (half a century ago), Niklaus Wirth[0] wrote:

Programming is usually taught by examples… Unfortunately, they are too often selected with the prime intent to demonstrate what a computer can do. Instead, a main criterion for selection should be their suitability to exhibit certain widely applicable techniques.

Furthermore, examples of programs are commonly presented as finished “products” followed by explanations of their purpose and their linguistic details. But active programming consists of the design of new programs, rather than contemplation of old programs. As a consequence of these teaching methods, the student obtains the impression that programming consists mainly of mastering a language (with all the peculiarities and intricacies so abundant in modern PL’s) and relying on one’s intuition to somehow transform ideas into finished programs.

The problem with trying to learn a programming language using examples, exercises,
algorithms, etc. is that you are concentrating on getting “the right answer”, when what really matters is to learn “how to solve a problem” (these are two fundamentally different things).

An example of widely applicable technique is the use of “whishful thinking” to solve recursion (to solve a problem using recursion). I remember the first time I heard about this technique was in the video course of ‘Structure and Interpretation of Computer Programs’ from 1984 (according to youtube), a video from 36 years ago.

The thing is, all this techniques are NOT computer science, paraphrasing Harold Abelson:

Were (are) really formalizing intuitions about process – how to do things. Talking precisely about how to knowledge. As opposed to geometry that talks about what is true.

If you are interested, a really good course to learn this techniques is “How to Design Programs”:

Cheers and happy coding :slight_smile:

[0] http://sunnyday.mit.edu/16.355/wirth-refinement.html