JavaScript Problems…

I’ve started a new type of tutorial on the YouTube channel: JavaScript Problems.

Every so often I want to do a tutorial which is simply presenting a problem that needs to be solved in JavaScript and then going through the process of solving it. Usually, I will present more than one way to solve the problem because I think that is great way to learn JavaScript: look at different solutions.

In the first tutorials I created, I used some problems found in some of the many JavaScript books I have access to. However, I would also like to include problems you are thinking about. So this is a chance for you to shoot me over some problems. It may end up in the next JavaScript Problem I choose to record.

To submit ideas, you can add a comment to this post, you can send an email to shancock@allthingsjavascript.com or you can add a comment to one of the YouTube videos.

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.

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

Approach to Projects

Sometimes the most difficult part about a project is starting. It can reduce a lot of stress and put you well ahead if you have a process for starting a project.

For example, something I commonly do is to spend time setting up the structure of the project and the processes needed to test and minify project files. That little bit gets my head into the project and then I can get going. Otherwise, I feel like I languish before I can really get started.

The other day I read a great article at Sitepoint about how to approach projects. I thought it organized all the starting tasks really well. These starting tasks are not only important, but I realized they can accomplish the same thing of getting your head in the project and getting you going in the right direction.

Give it a read here.

What approaches do you take?

How Do You Know if Someone is an Expert in JavaScript?

I love this type of question! Not so much because I want to find out if I am an expert. It is mainly because I love to read the answers that people post to this type of question.

Obviously the posts will reflect what that person sees as important. I find this very helpful because I can then evaluate whether that is a strength of mine or not. If it is not a strength, I can look to learn more in that area.

This question was recent posted on Quora, and I found the responses interesting. In some cases it caused me to think about whether that skill is really important or not. But most of the time I agreed and mentally marked topics that are important to understand in JavaScript.

What skills do you think make someone an expert JavaScript programmer?

If you want to read the original post go here.

Navigating the Crazy World of JavaScript Libraries and Frameworks

The world of JavaScript libraries and frameworks is exciting, overwhelming, constantly changing, chaotic, and many other adjectives that I can’t think of right now. The popularity of JavaScript has lead to a large number of libraries and frameworks that can help us do our jobs easier.

However, in order to receive that help you have to be able to figure out what is available, find out what it does, and then implement it into your project. It is important to keep abreast of libraries and frameworks, but what is the best way to do that?

I recently found a site that has been invaluable. Javascripting.com contains what is probably the most complete list of JavaScript libraries and frameworks I’ve found. There looks to be over 1200 listed. And it is not just a list; information about each library or framework is provided.

For each one you can access an about page and you can link directly to the repository. Javascripting.com also has a rating system for each item. The rating system is based on several factors, but it can be a good place to start when trying to determine if the library is something you should try. Information from github is also displayed. You can sort the libraries/frameworks by most popular, new or trending.

So…if you want to get up to speed on the latest libraries and frameworks, or check out a particular one you have heard about, navigate on over to javascripting.com and you will appreciate having all this information in one location.

What other resources have you found for JavaScript libraries and frameworks?

My Favorite Book on JavaScript

My first degree from college was a BA in English. The only reason I mention this is to point out that I love to read and that I can sometimes be overly critical of certain books. Because I love to read, I have purchased numerous books on JavaScript.

I’m very analytical about the books I purchase. I won’t buy just any book on JavaScript. But despite that, as I take a quick look at my library, I have over a dozen books just on JavaScript. That doesn’t even include the books on various frameworks and libraries.

So which book is my favorite? Without any further ado, here it is:

This book serves two purposes for me. It acts as a reference which I use several times a week for that purpose. The index is well done, which is necessary for a reference book. Second, it also works quite well as an instructional tool. If there is something in JavaScript I am not familiar with, I can always turn to this book for an explanation of how it works or how to use it.

The book is divided into two main parts: Core JavaScript and Client-Side JavaScript. I like this approach. It sends the message that JavaScript is not just for the browser. However, there are several important nuances when using JavaScript in the browser that are covered thoroughly in the section on Client-Side JavaScript.

This book is nothing if not thorough. I can always find what I am looking for. Want to get an intro to Node or jQuery? It is in there. Want to find out about modules. It is in there. Hoping to understand closures better? It is in there. Or maybe you simply want to know the primitive values in JavaScript. It is all in there. From the simple to the complex, this book has something to say about each topic.

This book is probably not the most exciting book I have on JavaScript. Nor is it the most interesting to read. It is probably not the book that has expanded my thinking the most about JavaScript. But it is the book I always turn to. It is the only book I have purchased twice. I originally bought the 4th edition, and then a couple years back upgraded to the 6th edition.

If you don’t have this book, you may want to add it to your library or use it to start your JavaScript library: JavaScript: The Definitive Guide.

Trying Out Thimble by Mozilla

A couple of weeks ago I first learned about Thimble while reading one of the several newsletters I receive each week. Quoting directly from the Thimble web site, it is an online code editor that makes it easy to create and publish your own web pages while learning HTML, CSS & JavaScript.

The tool seems to be designed for younger kids, but it looks helpful to anyone that is just starting in web development and needs to learn HTML, CSS. You can view a quick introduction video, create an account and get started by visiting the Thimble web site.

Here are a list of features that Thimble offers:

  • You can start a new web page by copying an existing web page. This is called remixing in Thimble. This is a great option for beginners. You get to see the HTML, CSS and JavaScript, make tweaks and see how those tweaks change the site. If you choose to, you can also start a web page from scratch.
  • The Thimble editor consists of three areas: a file manager, a code editor and a preview pane. This allows for ultimate flexibility as you try out different things. You can add additional pages via the file manager. You can then build or edit pages using the code editor. When you make changes in the code editor, those changes automatically show up in the preview pane.
  • Assistance features are provided to help you learn. For example, you can highlight a CSS attribute or an HTML tag, press Alt+k and the code editor will display a description of the tag or CSS attribute. I tried to do this with JavaScript reserved words, but it didn’t seem to work.
  • Some projects have a tutorial file that walk you through a short tutorial different techniques for that site.
  • Once you have created a site, you can publish it to the web. You are provided with a URL that you can share with others. This is a great option for younger learners.

Go ahead and give Thimble a try and see if it is the type of tool that could aid in your web development learning.