Preface - Hello JavaScript | Programming Fundamentals: Learn to program with JavaScript (2016)

Hello JavaScript | Programming Fundamentals: Learn to program with JavaScript (2016)

Preface

I want to take this time to say thank you and congratulate you for taking the first step to becoming a programmer.

Created specifically for new programmers, with no programming experience. This is a true Step by Step book where you will learn the programming fundamentals with JavaScript.

This is the book that will finally show you how you can start to program with JavaScript, not only will you learn the fundamentals of programming but you will obtain the skills necessary to be able to transfer those skills to any programming language.

This book is not just about JavaScript; it’s about the programming fundamentals that are required by every programming language. You will learn more than just programming with JavaScript. After you complete this book, you will have the skills and the confidence to start and complete real world software applications.

We will not focus on showing you code that you will copy and paste and then consider yourself a programmer. NO! We will look into the Programming Fundamentals, The Art and Science of Programming, The Programmers Mindset, Key Programming Concepts and over 35+ Unique Programming Challenges. Yes there will be practical steps for you to follow, but the book completely avoids the “type this and it’ll work” style that most programming books use.

The Programming Fundamentals covers the following topics:

· Mindset (Art of programming, Science of Programming, Programmers)

· Flow Charts

· Pseudo Code

· JavaScript Syntax

· Executing code with the Console

· Variables

· Data Types (Primitive, Composites)

· Basic Math Operators

· Logical Constructs and Expressions

· Control Structures

· Loops and Iteration

· Arrays

· 35+ Programming Challenges

This book is not for you to passively read; it’s specifically designed to make you think!

The last chapter of the book introduces advance topics such as:

· Introduction to Functions

· Function Composition

· Recursion

· Introduction to object Oriented Programming

· String Mutations

· Simple Data Structures

· Advance Number Properties

· Introduction to Date Objects

· Introduction to Regular Expressions

Once you get through the book you will have the mindset of a true programmer. You will be able to quickly navigate the world of frameworks, learn new programming languages, and get one step closer to creating the next great app.

Introduction

About the Author

Rick HRick H

Rick Hernandez works as a software developer with small to mid-size companies. He has been responsible for evaluating business requests to determine feasibility, identifying options, and recommend solutions for software development enhancements. He has assisted with interpreting customer requirements into conceptual design specifications, and has developed interfaces/prototypes and maintained software solutions. He also has written over 300+ technical publications published at Code With Intent. Rick has a deep passion and curiosity to help others succeed.

Say Hello

My intention with this book is to get you up and running with JavaScript and cover material that applies to all types of problems that you might encounter in your programming career. If for whatever reason you might have a question, comment, or suggestion about the book, I encourage you to take the time and write into Code With Intent.

Who Is This Book For?

The purpose of this book is to help you learn to program using JavaScript. While learning to program with JavaScript we will explore other questions such as:

“Do you really want to be a programmer?”

“How do you overcome frustrations when learning to program?”

“How do you solve any programming problem?”

“How do you easily learn any programming language?”

However, I assure you that if you have perseverance, creativity, and dedication to finishing this book, you will be off to starting your career as a programmer. It will not be easy, and at times you might feel like giving up, butDON’T! Stick with it and you will see your skills as a programmer increase, as well as your salary.

Programming is not for everyone, although the media might have you thinking that becoming a programmer is a 21st century skill. Don’t let this fool you, as programming is a skill that needs to be practiced and used, not just learned. You see programs are not just for the machine to use, but they are for other human beings to use in order to solve the problems that they have. If you decide to become a professional programmer, I suggest that you do it with the intention of making it a skill, which you will work on over time to progress and improve because it’s truly something that you enjoy, not just something you are doing to get a bigger salary.

I promise that after studying this material, you will never think about solving problems in the same way again.

Prerequisites

Before getting started with this book, you need to have a clear understanding of the following concepts to enable you to be successful with this book:

· UNIX Philosophy

· Basic command line experience

· High School Algebra

If for whatever reason you are not completely comfortable with the above requirements, I have provided some resources for you to get you going before getting started with this book.

· Bash Basics

· The UNIX Operating System

· Khan Academy

Code Samples

The book contains a variety of code samples and snippets that are used to illustrate a specific part of the book. Although each of the code sample concepts do play a role in the programming “challenge”, they are not used directly on those challenges. This means that the book does not rely on those specific parts of the code.

This will allow you to quickly reuse some of the snippets without having them tied to a single specific project.

All of the snippets used throughout the book are released under the MIT License. You are free to fork any part of the code and use it for your own applications.

The complete list of the snippets can be found on Github.

Code Conventions

Throughout this book, I will be using a derivative of the Felix coding style.

Tips Conventions

Pro Tip

Pro Tips contain information that is well established within the professional development group of programmers.

Suggestion

A suggestion is an opinionated or suggestive comment toward a specific topic.

Warning

Warnings are well established problems or common errors.

Programming The Easy Way

This book is not just about JavaScript; it’s about the programming fundamentals that are required by every programming language. You will learn more than just programming with JavaScript. After you complete this book, you will have the skills to solve useful real world problems with JavaScript. In order to achieve this, we will not be focusing on using the web browser (HTML/CSS). Instead we will be focusing on the problems at hand and use JavaScript to solve those problems.

“More than just copying and pasting code” - Rick Hernandez.

This book will not focus on showing you code that you will copy and paste and then consider yourself a programmer. NO! we will look into the programming fundamentals, the art and science of programming the programmers mindset, and so much more. Yes there will be practical steps for you to follow, but we will completely avoid the “type this and it’ll work” style that most programming books use.

This book is not for you to passively read; it’s specifically designed to make you think! I don’t just want you to follow my instructions; I want you to challenge those instructions.

Once you get through the book you will have the mindset of a true programmer. You will be able to quickly navigate the world of frameworks, learn new programming languages, and get one step closer to creating the next great app.

JSecademy.com 30 Day Free Subscription

Deciding to take advantage of the 30 day subscription period of JSecademy is a great decision. Not only will you get step by step videos walking you through the entire book, you will also receive help from a community of people wanting to learn more about JavaScript and software development. To get started, follow the simple steps below.

1. Sign up for JSecademy

2. Redeem Your Promotion

3. Enjoy a 30 Day Subscription

What is a Transaction ID? Depending on where you purchased this copy of the book, e.g., Amazon, Leanpub, etc., you should have received an order number. This is the Transaction ID. Transaction ID’s typically take 24-48 hours to validate. Get started with this right away

Happy Learning

Programming Workflow

For the sake of keeping the examples short, I will not be using the browser to run any of the code. Instead, I will be focusing on the actual problem and running the solution with Node.js. This will allow us to quickly test code and verify that it is working accordingly so that we can avoid HTML and CSS completely. The work flow for this is a simple and easy one to follow.

WorkflowWorkflow

1. Write the code in a file with an extension of .js, e.g., app.js.

2. Let Node.js know about your file by executing it.

Code Example

1 node app.js

1. Node.js will terminate after your script has completed executing.

Development Environment

Setting Up Your Development Environment

The development environment that you decide to work on will dictate a large portion of your overall happiness as a programmer. Choosing the right platform and the right text editor could be one of the reasons why you choose to keep working as a programmer or decide to move on to the next great thing. The right choice will vary with everyone’s circumstances as it is based on your current needs and budget.

Before getting started with this book please complete the following series.

“Hello” Environments | Learn Modern Development Environments

Throughout this series, you will learn the in’s and out’s of multiple development environments, text editors (Vi, Vim, Atom, Sublime, Brackets), understand how to work with local, virtual and private clouds (VirtualBox, Vagrant, Cloud9), you will also learn how to automate the most common task using the command line. But most importantly you will have a good understanding of what to look for when you are creating your “ideal” development environment.

If it’s not clear by this point, the following are also required in order to run the software that will allow us to program using JavaScript.

· Operating System: Windows, Linux, or OSX

· Hardware: a minimum of 2GB of free memory and 4GB of free Hard Drive space

· Internet Connection

· Modern Web Browser: (Chrome, Firefox, or Internet Explorer)

That’s all! Power up your laptop, desktop, tablet, or phone and let’s get started learning to program with JavaScript.