The State of JavaScript Survey

In case you haven’t heard, the State of JavaScript 2017 is now taking survey responses. The survey is officially open! I received my notification yesterday.

The State of JavaScript report from last year was very insightful. A lot of their data is built from survey respondents, so if you haven’t done so yet, take a moment to fill out the survey.

You can access the survey here: http://stateofjs.com/

Advanced Topics Course if Finally Here

After six months, I have finally release the Advanced Topics course. The Advanced Topics course is a part of the Learn Modern JavaScript series which begins with the Getting Started course.

I love the nuances of JavaScript and therefore this new course has been exciting for me to produce. It provides a lot of opportunities to delve into those types of topics.

This brand new course has over 70 lectures, over 11 hours of video, 2 quizzes, 7 assignments, and 1 large project at the end. In this course I also felt the need to create several Think Like a Programmer sections. In these sections I address topics that come into play when you are working as a JavaScript professional. I feel these contain some valuable information.

If you are interested in taking this course, here is a link that will allow you to take the course hugely discounted on Udemy:

Take the Course

JavaScript Problems: I Need Your Help!

Today I launched a new section of tutorials on our YouTube channel. It is called JavaScript problems. The idea is that every so often the tutorial released during that week will be a JavaScript problem to which I will provide one or more solutions.

Here is the first tutorial in this section. It shows two techniques for computing a fibonacci sequence given two starting numbers and how long you want the sequence to be.

The idea isn’t so much to show how to solve a particular coding problem, but more what can be learned about JavaScript by solving the problem. For example, in this first tutorial we use a while loop and also recursion.

So here is where the help comes in. There are numerous problems on the Internet that I can use for these tutorials, but I would rather use real world problems. If you have a problem you have seen in the past or one you are working on, provide it in the comments. It might be the perfect example to use in one of the upcoming JavaScript Problem tutorials.

Functional JavaScript

Functional programming in JavaScript has been a topic of considerable discussion for some time now. Several books have been published about functional programming in JavaScript and there are developers that use this approach almost exclusively.

Whether or not JavaScript is a functional programming language is beside the point now because so many people are using it for such.

I don’t know enough about functional programming to teach the ins and outs of that particular approach. However, what I do know is that functional programming has some very valuable concepts that you can draw on to improve your code. I’m advocating a pragmatic approach to functional programming in JavaScript. In other words, use elements of functional programming that you find valuable.

So this begs the question, how to get started? Well, as mentioned there are several books published about the subject, and I will be reviewing some of those in the future. But I think a great first step is to really understand some of the methods of the Array object. These methods were designed around functional programming concepts. For example, map, forEach, every and reduce are a few that are valuable to understand. And it just so happens we have a tutorial on some of those methods.

What are your thoughts on functional programming in JavaScript?

You can find the tutorial here:

Exception Handling

Exception handling is an important aspect of JavaScript coding. I know that when I first learned exception handling, it opened for me new horizons on how I could approach problems. If an exception occurred because of circumstances that were not ideal, I could react to that exception and still keep my programming running.

The main mechanism for exception handling in JavaScript is the try catch statement. It is great for exception handling, but it is also possible to use try catch in situations where there is not an exception.

I just completed two tutorials on exception handling. The first shows how to use try catch statements in your code. The second talks about when you should and should not use try catch.

Take a look at both videos and if you have any additional rules to add for using try catch statements post them here.

Obfuscation in JavaScript

I love the word obfuscation. It seems to reflect its own definition. To obfuscate something is to make it difficult to understand.

So why would we want obfuscation in JavaScript. Well, let me give you an example. Recently I was working on a project where we had to connect to an online system. The online system did not have the security fully implemented yet, and as a result we had to include some of the details about the system in the JavaScript code. Well, we didn’t want it to be super simple for someone to discover that information. We wanted to hide it a bit. So the solution…we obfuscated that portion of the JavaScript code.

I learned about a couple of sites that help do this. They obfuscate your JavaScript code by moving things around and converting information to Hex. I used both of these locations. I would pass the code through the first location and then pass the results through the second. Technically, someone could figure it out, but it is quite difficult. Drop some code in, obfuscate it, and then see if you can make heads or tails of it.

https://javascriptobfuscator.com/Javascript-Obfuscator.aspx

https://www.daftlogic.com/projects-online-javascript-obfuscator.htm

Objects, the Center of the JavaScript Universe

When someone says that JavaScript is not an Object Oriented Language, what they really mean is that JavaScript doesn’t use the approach to object orientation that they are used to. It doesn’t use classes. It is not necessary to create a class in order to instantiate an object. To me that is a big advantage with JavaScript.

To say that JavaScript doesn’t use objects is very far from the truth. I will put it this way: it is almost impossible to do anything of value using JavaScript without using objects. Everything but primitive values are objects. Arrays are object. Functions are objects. A regular expression definition is an object. A date value is an object. And it goes on and on.

So objects are central to everything in JavaScript. Because of this point I have started compiling (in the form of a playlist) a bunch of tutorials on objects in JavaScript. There are numerous topics that could be covered with objects, so this compilation is not complete, but that is what I would like to work towards.

If you haven’t taken the time to really sink you teeth into objects and understanding the object oriented nature of JavaScript, you need to! It needs to happen sooner rather than later. You can start with this playlist.

Then get a book on objects in JavaScript and dive deeper. I have reviewed a couple as a part of this blog. Here are two good ones.

Debugging Tips

When I first started working with JavaScript, I did most of my debugging with alert messages. That was painful!

Now I find that a lot of my debugging is done with the console. At times I will open up the debugger, but for most things, I can figure it out pretty quickly using the console.

Over the years I have learned a few console commands that are very helpful. I know I would have loved to have these commands when I started out, so I put together a tutorial on some of the lesser known console commands. I think these can help you find a resolution faster.

Take a look at our latest tutorial.

Why I Prefer JavaScript

Many years ago when I started my university studies (more than I would like to think), I elected as my major computer science. I stuck with that major for about 2 semesters and then switched to English. Many people thought it was a drastic switch; from one side of the spectrum to the other. Two majors that are not even closely related.

However, I considered both majors similar. I discovered that the reason I enjoyed English during my undergraduate studies is because I enjoy expressing myself with language. (Now, I may not be that great at it, but I still enjoy it.) I also enjoy seeing (reading) how others express themselves with language.

Well, in that sense I see many similarities between programming and writing. In programming you need to use the syntax and semantics of the language to express what you are trying to accomplish. You not only have to communicate to the computer, but you also need to communicate to other programmers that will need to read and understand your code.

This brings me to the reason that I prefer coding in JavaScript over other languages. JavaScript is a very flexible language. There is never one way to solve a problem. JavaScript includes multiple approaches to coding and doesn’t force you into a single approach. I love the flexibility. I love the freedom. I love to see how different programmers approach a similar problem; the unique techniques they come up with and basically how they express themselves. And I enjoy not only solving the problem, but there is a certain satisfaction when you can solve it in an elegant, expressive way.

This is why I prefer JavaScript. Probably not a reason you expected to hear, but it is the most persuasive reason for me personally.

Why do you use JavaScript?

A Complete List of JavaScript Tutorials

We only publish about half of our JavaScript tutorials in this blog and we want to make sure you have better access to them. So it was decided by the powers that be to create a full list of tutorials on our website. I know, it is not a difficult conclusion to come to; we should have done it a long time ago.

The tutorials are currently organized into 5 categories. As we see the need, we will break them out into more categories. Take a look at the list and find those you would really like to view.

Also, take a moment and suggest a JavaScript tutorial you would like to see by making a comment in the comment section.

Here is a link to the list:

http://www.allthingsjavascript.com/youtube.html