Jennifer Bland header image
≡ Menu

Data Structures – Linked List, Set and Hash Table

A data structure is a particular way of organizing data in a computer so that it can be used efficiently.  Previously I talked about two very similar data structures – tree and graph. Today I am going to talk about Linked Lists, Sets and Hash Tables.

There are many different types of data structures simply because each one provides certain benefits over the others. One may be better at retrieving data, another might be better at inserting data and yet another might be better in its ability to expand as the size of the data increases.

[continue reading…]

6 Skills Every JavaScript Programmer Needs to Have

It is very easy to pick up a programming book on JavaScript and learn the fundamentals. There is a big difference between somebody who knows the fundamentals and a very skilled JavaScript programmer.

There are 6 skills that every JavaScript programmer needs to know. Knowing these skills will set you apart from the competition but it will also provide you with a solid foundation of skills that will support you over the coming years.

Most of the skills are above and beyond what you will find in a basic introduction to JavaScript programming book. The reason is these skills are built upon knowing the foundations of the language already.

You can measure you knowledge of JavaScript by measuring how well you know these six basic skills.

[continue reading…]

Hack Reactor Week 5 Review

Monday morning of Week 5 we had an hour long review of our experience from Week 4. Since week 4 is considered the hardest week, there is concern from the instructors that we would be disappointed and frustrated. We all talked about our experiences and realized that we learned quite a bit during the week despite our frustrations.

Week 5 starts out with an introduction to authentication. Now that we have completed our first full-stack application, we need to be able to implement authentication to allow users to create an account and to login to the server.

There are many things to consider when implementing authentication on your server.

  • How do I store user and password information securely
  • What additional steps will the user need to take when interacting with the application
  • What strategies do I need to employ to secure existing site functionality
  • How often should the user need to enter their username and password

[continue reading…]

Time Complexity Analysis in JavaScript

An algorithm is a self-contained step-by-step set of instructions to solve a problem. It takes time for these steps to run to completion. The time it takes for your algorithm to solve a problem is known as time complexity.

Here is the official definition of time complexity. The time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the length of the string representing the input.

That sounds like a mouth full and you are probably trying to understand exactly what that means. In simple terms, time complexity is defined by the time and space required by a particular algorithm.

It is not unusual to find many different methods that you can use to solve a problem. The length of time it takes and the number of operations taken are used to determine how effective your algorithm is in solving the problem. Complexity helps programmers to understand, and therefore improve, the efficiency of our code.

The best programming solutions in JavaScript utilize algorithms that provide the lowest time complexity possible.

[continue reading…]

Hack Reactor Week 4 Review

Week 4 is considered the hardest week at Hack Reactor. In fact it is so challenging that at the end of Week 3 we had a special meeting to discuss what to expect for this week.

When the instructors tell you point blank that it is not uncommon for people to feel completely lost and totally confused then you wonder what is in store for you.

Week 4 is our first foray into building complete full-stack applications. During this week we will learn about NodeJS and handling asynchronous event loops. Mid week we transitioned into learning about data storage structures and server side concepts. The end of the week we jumped head first into databases.

[continue reading…]