Photo by Daniel Cheung on Unsplash

Objectives

  • Motivate the need for something like Big O Notation

Intro to Big O Notation

We can have 10 or 20 totally different implementations or solutions for the same function. How can we determine which one is the best? This is really what Big O is about.

Big O Notation is a system of generalizing code and talking about it and comparing code and its performance. …


Photo by Daniel Cheung on Unsplash

Execution Context always contains three parts, a variable environment, the scope chain in the current context, and the this keyword. Let’s have a closer look at the variable environment and how variables are actually created in JavaScript.

Hoisting in JavaScript

Hoisting is a mechanism that makes some types of variables accessible/usable in the code before they are actually declared in the code.

Before execution, code is scanned for variable declarations, and for each variable, a new property is created in the variable environment object. This happens is the creation phase of the execution context.

Hoisting does not work the same for all variable…


Photo by Daniel Cheung on Unsplash

Each execution context has a variable environment, a scope chain, and a this keyword. In this article, we’ll cover the scope and the scope chain in more detail.

Basic Concepts of Scoping

Scoping : Scoping is how our program's variables are organized and accessed by the JavaScript engine. Scoping asks the question "Where do variables live?" or "Where can we access a certain variable, and where not?".

Lexical Scoping : In JavaScript, the way variables are organized and accessed is entirely controlled by the placement of functions and blocks in the code, which means where we write our functions and code blocks.

Scope


Photo by Daniel Cheung on Unsplash

What is an Execution Context?

Let’s see how the code is executed in the call stack in the JavaScript engine. When the code compilation is finished, then it is ready to be executed.


Photo by Daniel Cheung on Unsplash

What is a JavaScript Engine?

JavaScript Engine is a program that executes JavaScript code. Every browser has its own JavaScript engine, for example, Google’s V8. The V8 engine powers Google Chrome and Node.js.

JavaScript engine is composed of a call stack and a heap. A call stack is where our code is actually executed, using execution context. A heap is an unstructured memory pool which stores all the objects that our application needs.

In order to execute the JavaScript code, the code has to be converted into a machine code. There are two ways to compile code into a machine code.

Compilation vs. Interpretation

Compilation and interpretation are…


Photo by Daniel Cheung on Unsplash

These are some keywords describing JavaScript. Each of them will be covered in detail in the series <How JavaScript Works behind the Scenes>.

Keywords Describing JavaScript

  • High-level language

High-level language

  • With low-level languages, such as C, developers have to manually manage hardware resources, for example, allocating memories of computer when creating a new variable.

Garbage-collection

  • An…

2019. Manhattan Beach, California.

올린의 교육 철학

올린 공대(Franklin W. Olin College of Engineering)는 학부 중심의 4년제 대학으로 엔지니어링 교육에 중점을 두고 있다. 전체 교육 과정은 인문사회학, 엔지니어링, 비즈니스-창업 과정 이렇게 세 가지 축으로 구성되어 있으며, 입학생 수준은 MIT, Stanford 같은 명문대와 동등한 것으로 알려져 있다. 전교생 규모는 350명 정도로 작은 편이나, 선구적인 교육 철학과 방식으로 미국에서 가장 주목받고 있는, 그리고 가장 빠르게 성장하고 있는 대학이다. 아래는 올린의 사명 선언문(Mission Statement)이다.

Olin College prepares students to become …


내가 생각하는 멘토의 역할은 가르치는데 초점을 두는 것이 아닌, 학습자가 각자에게 맞는 경험으로 자신이 원하는 것을 원하는 형태로 배울 수 있도록 돕는 것이다. mentor 라는 단어 보다는 helper, facilitator 라는 단어가 더욱 와닿는다.

위코드는 코딩 부트캠프이다. 부트캠프(bootcamp)는 군대의 신병 훈련소를 의미한다. 코딩 부트캠프란 짧은 기간 안에 실무에 필요한 역량을 길러 개발자로 커리어를 시작할 수 있도록 돕는 곳이다. 2020년 한 해 동안 위코드를 통해 개발자로 커리어를 시작한 수강생은 300명이 넘는다.

어느 유튜브 영상을 보니 많은 숫자의 개발자를 배출하는 부트캠프와 부트캠프 출신 …


Wecode 코딩 부트캠프에 참여한지 벌써 한달이 지났다. 과제는 도전의 연속이고 매번 적지 않은 시간과 에너지를 필요로 한다. 그렇다 해서 개발 공부에 매진하는 일상이 싫지는 않다. 오히려 너무 만족하며 지내고 있다. 좋은 멘토, 동기 분들과 함께 할 수 있다는 점, 좋은 개발자 커뮤니티가 생긴 점, 좋은 환경에서 시간에 구애받지 않고 원하는 만큼 개발에 매진할 수 있다는 점 등의 일상에서 누리는 여러가지 것들에 매우 감사한 10월이었다.

좋은 개발자란?

기계적으로 코드를 짜고 대충 공부해서 어떻게든 구현만 시키는 개발자가 아닌, 정말 좋은 소프트웨어 엔지니어가 되고 싶다는 생각을 자주 한다. 나를 포함한 부트캠프에 참여하는 대부분 …


임용을 포기했다. ‘임용고시’란 시험을 제대로 준비한 기간은 2년 정도, ‘선생님’이 되고 싶었던 기간은 고등학교 졸업 후 삼수를 한 것 까지 포함하면 10년 정도 되는 것 같다. 누군가에겐 무책임하고 대책 없이 보이는 포기의 순간, 누군가에겐 용기있어 보이는 도전의 순간. 고민이 많았다. 고민이라고 해서 무조건 우울한 건 아니다. 오히려 담담했다. 이 글은 내가 왜 담담할 수 있었는지, 포기하기까지 어떤 고민의 과정이 있었는지, 어떠한 생각의 흐름으로 교육에서 IT분야로 전향하게 되었는지에 대한 이야기이다.

간극의 시간

<퇴사준비생의 런던> 이라는 책을 읽었다. 제목만 보고는 퇴사를 앞둔 사람의 런던 여행 에세이 정도로 생각했다. …

Joon Sik Yang

Frontend Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store