1 Introduction

The world is changing fast as we know that we enter a digital world in a quick pace. For someone who wants to purse a career in digital world as a programmer or software developer in web application understanding about the mechanism of how the web is running is crucial.

All web application is building on the three languages: HTML, CSS, and JavaScript. Only JavaScript is the programming language. The two remaining are markup language.

According to 2024 Developer Survey by Stack Overflow, JavaScript is the most used programming language among the surveyed participants 1.

But there is a catch. There are many contender that has better capabilities than Javascript, one of the example is TypeScript. This programming language is a superset of JavaScript. It has many intersting features like type annoations to make our code more consistent without worrying automatic type conversion when writing a program. In the far future when JavaScript will be replaced by TypeScript, we will update this book. For now, we stick to learn JavaScript. It is complicated and full of unexpected results, but when we understand that nitty-grity, we are ready to be an advanced JavaScript developer.

1.1 Structured programming

Classification of structured programming compare to other paradigms is a bit rusty. This term is first coined by the famous Dutch computer scientist Edsger Wybe Dijkstra in his technical report Notes on Structured Programming2 in 1970. We found two credible books that mentioning structured programming in (Sebesta 2019) and (Gabbrielli and Martini 2023). According them, structured programming is a new emergent paradigm from imperative language that used extensively GOTO statement, is changed into the use of control structures, subroutine and block statement. We will learn about these in the later chapter.

And also structured programming paradigm is a precusor to the object-oriented programming language. In informal speaking they are are interchangeable, but actually if we look at Wikipedia, there is a clear distinction between them as it is shown in Fig. 1.1

Structured and object-oriented programming paradigm are different families. Note: we could not find the source of this grouping, but we will try harder next time to find out

Figure 1.1: Structured and object-oriented programming paradigm are different families. Note: we could not find the source of this grouping, but we will try harder next time to find out

In this book, we will not explain all of the member of "Structured programming" from Fig. 1.1.

1.2 The goal of this book

To fill the missing gap between web programming and basic of programming. This book is written with the perspective of usage for the students in Information Systems in Indonesia. Most of them are too afraid to learn programming language. This book will build a brigge between that fear and confusion to the enjoyment of learning programming.

We also published this book free of charge. Anyone can read, modify, and give suggestion or review to this book. Any comments are welcome.

We are going to add some interactive widgets to this web version in the future. Stay tune.

1.3 How to learn

Learning to code for someone who never to code before is hard. In my short suggestion, you need to immersive yourself such that your brain will try to find a pattern how to learn. [Provide with fact about brain plasticity]

You can use ChatGPT but there is a caveat. If you do not know the correct things, you will be dragged into oblivion of not knowing anything. But you can try the small things first and built on the top of it. Try to stick to the plan. If your plan does not work, try another plan. Learning programming is similar to learning arts, but you heavily used logic than your muscle.

1.4 Short tips

I think this short tips are not for everyone, but this is from my experience when dealing with my students who always complain that learn programming language is difficult, boring, and not rewarding.

  • It is never to be late to learn programming. JavaScript is not a best programming language, but pick one master it and after that you can pick another programming language with ease. (except C or the family of low-level programming language, 😀)

  • Mastering programming language takes a lot of time. Be patient and enjoy the process. Eventually at the end you will acquire the skill. No skill happens in a single night of learning.

  • Do not believe in genius or smart way. Believe in hard work and discipline in learning. Every genius or smart way is happened after a lot of exposure or the immersion to the materials. Do not feel so down if in the beginning you feel stuck and not knowing anything.

  • The last suggestion, please do not compare yourself to others, just compare yourself with your past time. I know it is easy to say than to do, but it is worth to try. Make a note, logbook, or any summary of your work or study. This will be enhance your writing skills and sharpen your mind to write something missing from the tutorial, books or any resources. Your personal notes is your spell book. By doing that you can evaluate your progress and see your past history easily compare if you do not have any recorded activities.