Four Types of IT Jobs

By

Featuring Insights From Rachel Denton, Pedro Martin, & Matt Studdert

IT jobs have a secret: They’re some of the most collaborative and social jobs you can have. Developers work with designers. Product managers team up with data scientists. Data scientists advise marketers and vice versa. In the fast-moving tech industry, no one can afford to be in a silo or work strictly solo.

But which IT role is best suited to your strengths? Which jobs are poised for the most growth? Should you go for a high-paying and demanding position? Or one in which you set your own hours and can take time to explore your creativity? The tech world is expansive enough to include all of these things and more. According to employers, communication and problem-solving skills are the most important qualities to make you successful in an IT career.

More good news: Employers aren’t looking for candidates with a templated background. Computer science degrees are actually becoming very rare in the industry. Successful job seekers come from a broad range of backgrounds, including medicine, education, archaeology, construction, and more. The tech industry needs people at all levels, and in some cases, may not require a bachelor’s degree. It’s all about the skill set, and plenty of companies hire people directly from a bootcamp.

At present, the demand to fill jobs in these fields outpaces the supply of candidates worldwide. It’s a very good time to be looking.

1. Developer

The role of a front-end web developer is to build accessible, responsive, and performing interfaces based on a design and a specification, using web technologies like HTML, CSS, and JavaScript. But the image of the coder working alone all day couldn’t be further from the truth. Delivering software based on the web is a team effort. The developer’s role is integral to building the product, but they work alongside colleagues in other disciplines and will do well to embrace their input.

“Good companies understand that the software delivery process is a team effort,” says Pedro Martin, software engineer and GA instructor. “Developers work with user experience designers, user interface designers, content designers, data analysts, quality assurance developers, delivery leads, and product owners. Each one influences the other’s work, thereby expanding the experience of delivering features.”

Communication is key. “Being able to communicate your ideas and your work to other team members is a key skill that often flies under the radar,” says Matt Studdert, founder of Frontend Mentor.

Front-end web developers can choose from a broad range of places to work, pretty much at any company with a presence on the internet. This is just one of the perks of the job. “If you like music, you could work at Spotify or another music service,” says Studdert. “If you’re passionate about plants, you could work at Patch Plants. Your skills will follow you from industry to industry.”

Unsure where to start? Taking our coding course can get you fluent enough in HTML or CSS so that you can begin using them to create your own projects and see where that leads. You can quickly find a passion to develop into a career. In our 2-hour Understanding the Stack workshop, “people come in with absolutely no understanding and learn so much within such a short timeframe.” Another option is to go all-in with a full-time bootcamp. Coding Immersive graduates leave prepared to jump right into their new developer job.

2. Data Scientist

Data science is having an increasing influence on every company’s marketing plan. There has been a hiring boom in recent years as corporate leaders are eager to harness the power of data for their bottom line. They are fast becoming key partners on every digital marketing team. For that reason, data science is one of the fastest-growing fields.

A data scientist utilizes processes and algorithms to yield insights from large data sets. In Rachel Denton’s Data Analytics course here at GA, the goal is for students to learn how to use data to solve complex business problems. “Data is so important in the world of digital marketing,“ she says. “I am seeing more and more data used alongside digital marketing as technology gets increasingly sophisticated.”

3. Digital Marketer

Digital marketing is a fast-growing field where you can use your skills to excel, whether they are focused on design, data, or strategy. More diverse roles get pulled into digital marketing by the day as the potential value of their contributions is recognized. Practically every tech professional has a place in this burgeoning field.

4. Product Manager

A product manager is integral to helping teams prioritize. They will typically be in charge of what’s getting done next and why. Organization is key in this role. Product managers must be a manager of people. They communicate with developers, designers, and marketers to determine how much time and effort goes into every project. Digital product teams are often quite small, encompassing 8 to 12 people of different disciplines.

All of these jobs have the advantage of being able to work from practically anywhere. Tech workers are essential and can transition seamlessly to an all-remote world. Their work is making our global economy thrive, now more than ever.

Want to learn more about Rachel?

https://www.linkedin.com/in/rachelmdenton/
https://generalassemb.ly/instructors/rachel-d

Want to learn more about Pedro?

https://github.com/pataruco
https://www.linkedin.com/in/pataruco/
https://mobile.twitter.com/pataruco

Want to learn more about Matt?

https://www.frontendmentor.io/
https://twitter.com/_mattstuddert

What can you do with coding?

By and

What do the most in-demand 2021 jobs and promising careers of the future have in common? Coding skills. At the same time, new applications of coding are making their way into existing roles, expanding job requirements in traditional fields like banking and marketing. Even for non-tech roles, coding skills are seen as a valuable bonus that can give job candidates an edge.

Our digital world buzzes with software code we use every day, from products and services in the form of websites to mobile applications to games and on and on. 

Computer programmer, developer, engineer, analyst  — these are just some of the titles rapidly populating the job boards of Fortune 500 companies, and coding skills are essential requirements in all of them. Arwa Lokhandwala, who teaches our popular Full-Stack Web Development course, breaks down the various titles and what they really mean.

“Most of these terms are used synonymously, but there is some slight difference between them. A computer programmer, for instance, includes anyone who uses a programming language to produce some digital output — this technically includes everyone who codes. A developer uses a wide array of technical abilities, from writing code and creating technical documentation to testing and debugging. An engineer, on the other hand, is a person who has a strong educational background in software engineering, computer science, and mathematics and can apply these concepts to solve or create digital solutions. Finally, the analyst’s main job is to analyze different metrics, understand data captured by these digital solutions, and derive useful insights from them that are beneficial for the business.”

Additional jobs for coding professionals include web designer, software engineer, and chief technology officer (CTO); myriad roles in the fields of web development, technical project management, and quality assurance; plus, almost every founder of a successful startup has a background in coding.

So, what does a typical career path look like? “You can either start out as a software engineer, software developer, or quality analyst. As you progress, you can become lead developer then either go towards becoming an engineering manager, solution architect or product manager,” Lokhandwala advises.

You don’t always have to make a big move to flex your coding muscles. Often newfound coding skills can help you to advance in your existing job. If you’re curious about how this may pertain to you, Lokhandwala suggests offering to solve a particular problem at your company that you think can be automated with coding and see how that affects your role. The next step would be to take a course in a programming language like Python or fast-track your career with a coding bootcamp like our Software Engineering Immersive. Whether you stay at your job or accept a better offer elsewhere, you’ll gain a distinct advantage in the job market and increase your earning potential.

The practical applications for coding language are vast and growing every day. From medical coding to building websites, freelance to full-time, the jobs that use hard coding skills are varied enough to fit every personality and lifestyle.

Lokhandwala sees many exciting new uses of coding on the horizon, all on the cutting edge of computer science. “Some of the most interesting are in the realms of augmented reality and virtual reality. Using artificial intelligence and machine learning to identify the early onset of diseases has huge implications.”

Want to learn more about Arwa?

https://www.linkedin.com/in/arwalokhandwala-b831b/
https://www.instagram.com/code.with.arwa/

Meet Our Student Resource Groups

By

Meet Our Student Resource Groups

One of the great benefits of a GA student is being able to take advantage of our Student Resource Groups (SRGs). Created in the wake of the COVID-19 pandemic, these groups are designed to unite and engage students with similar interests, cultural backgrounds, and life experiences. No matter where you’re learning from, here are the groups you could be a part of as a GA student:

  • LGBTQQIA+: A space to unite members of the LGBTQQIA+ community and Allies.
  • EPIC (Empowered People and Inclusive Cultures): Celebrating dimensions of race, ethnicity, gender, sexual orientation, socio-economic status, age, physical abilities, religious beliefs, political beliefs, & ideologies.
  • Women in Tech: An inclusive culture that values the intersectionality, perspectives, and talents of women and their allies.
  • Parents/Guardians: A space for guardians, such as experienced, new, or expecting parents, or those caring for elderly, sick, or disabled relatives.
  • Neurodiversity in Tech: Championing neurodiversity at GA and creating an inclusive community for minds of all kinds.
  • Black in Tech: A group to unite and support Black members of the GA student community.
  • Immigrants Plus: For anyone who identifies as an immigrant, international student, refugee, newcomer, or an ally who is interested in supporting these groups. 
  • Pets: A student resource group uniting all pet lovers, whether furry, feathered, scaled, or imaginary — all are welcome.
  • Gaming: A gathering space for fans of console, table top, RPG, MMORPG, classic, mobile, and all other types of games.

Check Out Upcoming Coursess

Designing Learning for In-Demand Skills: Cybersecurity

By

What does it take to create good learning content? This is a question we, as instructional designers, are asked in one form or another pretty often. When I first started in the field, I would develop an outline, do some light validation, and then build the program — then off to the races! 

Since then, a few things have changed: learning design has evolved as a discipline, and competition for high-quality learning content and experiences has skyrocketed. 

This has coincided with an ongoing multipart effort by our Instructional Design team. Every day, we’re engaged in developing deep learning design processes and rigor around our learning and content design. We’re also striving for a deeper understanding of the jobs market and what skills and bootcamps employers and learners are scouring the internet for. This comes into play when considering backward design, where we start with “why” and focus on establishing the overarching learning outcomes and skills needed before designing the content to support that experience.

So, what does that look like in practice?

Moving from theory, let’s get into a real-life example of a learning solution GA just released this quarter: Cybersecurity for Developers Accelerator. We’ll take a look at three parts: (1) the background research and validation, (2) the skills needed, and (3) the product itself.

Step 1: Research & Validation

When building a program, our Instructional Design team partners closely with a product manager to help us ensure we are building best-fit learning solutions for our clients. This process includes deep market and industry research, performing a skills growth analysis for our target learners, and interviewing our best customers and partners. 

All of these inputs helped us to confirm that businesses, now more than ever, need cybersecurity skills to prevent breaches and that all developers can benefit from upskilling on more secure coding practices. 

Here are some fast facts from our market research:

  • Cybersecurity skills remain one of the top 10 most in-demand tech skills to-date.
  • Preparing developers for security risks has never been more pressing for enterprise businesses, i.e., 2020 was reported as the “worst year on record” for security breaches. 
  • Burning Glass has predicted 164% growth in application development security over the next five years, among other skill areas associated with building secure digital infrastructures from the ground up. This underscores businesses’ shift from retroactive security strategies to proactive security strategies.

Step 2: The Skills Needed

What skills do our developers need to be able to walk away from our course in order to prevent these breaches? We looked at job descriptions for the role itself and worked with a subject matter expert (SME) who is a real-world practitioner and expert in the field to validate our research. Here are some of the skills we identified: 

  • Input Validation
  • End to End Encryption
  • Prevent Injection Attacks
  • Develop and Implement Security Policies + Headers
  • Logging
  • Threat Modeling
  • Hashing
  • Evaluating 3rd-Party Libraries

Step 3: The Finished Product 

Using the instructional design concept of backward design, we sequenced the material for the skills needed and researched into these five units, which can be delivered in a 1-week accelerator course or a 10-week part-time course:

  • Cybersecurity for Web Applications
  • Front- and Back-End Security
  • Threat Modeling and Logging
  • Additional Security Features
  • Applied Practice

As students progress through the course, we have embedded guided demos and walkthroughs of key concepts followed by labs where students can try them independently. This is a key instructional design concept:  “I do, we do, you do,” meaning that first, an instructor walks the class through a concept via a demo, and then the class tries it together. After that, students try things on their own in carefully developed labs.

Lastly, we work to simulate the real world as much as possible, especially for something as specific and high-stakes as cybersecurity. To this end, we developed a project that students work on throughout the course as they learn new concepts. In the case of the Cybersecurity Accelerator, we developed a purposely buggy fictional application where students need to spot the vulnerabilities and use the skills they learn in the course to patch and fix those vulnerabilities to prevent a security breach. 

Now that I’m on the other side of this project, what’s most exciting to me as an instructional designer is that we can get really robust courses for in-demand skills — for both employees and employers — out into the world.  As things inevitably change and the world shifts, we’ll continue to build solutions that bring integral skills to your organization.

Want to learn more about our Cybersecurity Accelerator? Reach out here

Two Refreshed Skilling Solutions To Access In-Demand Engineering Skills

By

It’s no secret that technology has forever changed the way we approach and do work. However, while budgets and headcount on technology teams continue to rise, technology leaders still have a hard time finding engineering talent with the right balance of skills.

Prior to COVID-19, businesses were already thinking about transformation initiatives that would help them transition from legacy systems to allow technical teams to work in more flexible, efficient, and secure environments. Post COVID-19, these attributes are more important than ever. However, just like with any transformation initiative, these transitions require hard skills, which are in high demand but short supply.

In fact, leaders report that Cyber Security is the number one skill shortage and top investment priority, made increasingly urgent due to moving to a fully remote workforce, which has increased the likelihood of malware and phishing attacks.

From becoming cloud-native to defending against cybersecurity attacks and breaches — organizations need a wider range of engineering skills on their teams than ever before. In order to solve skill gaps and talent shortages, businesses need to consider upskilling their existing engineers on must-have skills, such as cybersecurity and rethink engineering talent acquisition and onboarding strategies to ensure they get the right balance of skills and knowledge on their teams.

Two Refreshed Programs Help to Upskill Your Engineers

Over the last ten years, we’ve been helping organizations, such as Disney and Humana, acquire and build the engineering talent they need to compete in today’s digital economy. Through deep customer, industry, and market research, we’ve updated two programs to help more organizations meet their engineering talent goals.

Get a sneak peek of what those programs entail below:

  • Java Developer Immersive: Expand your Java development workforce with experiential training in the most in-demand skills. Participants will build core skills in Java, Spring Boot, test-driven development, troubleshooting dev ops, cloud, and agile development. Use this program to reskill junior engineers or onboard fresh computer science graduates to your teams. 
  • Cybersecurity Accelerator: Bulk up your cybersecurity practices by training existing developers on best practices. Participants will learn how to add security features to their web applications to minimize the chances of an attack. Use this program to upskill existing engineers to increase cybersecurity skills and knowledge within your engineering team. 

These refreshed programs allow you and your team to:

  • Access Transformative Tech Skills: Level up your engineering team by embedding must-have cybersecurity and java development skills.
  • Learn From Real Industry Experts: Give your people practical, hands-on training created and taught by leading subject matter experts.
  • Build and Develop Engineering Talent: Invest in existing and new talent by offering them learning opportunities that move your business forward.

As Always, More to Come

We’re working on more exciting things that we’ll be releasing over the next few months, such as useful workforce insights and updated skilling solutions. Keep your eyes on the GA blog or get in touch with us to hear the latest.

Want to learn more about how we can help your organization build essential engineering skills? Download the full catalog of GA’s tech skilling solutions here.

Top 5 JavaScript Interview Questions

By

JavaScript is one of the most popular programming languages. Even though there are many JavaScript-based frameworks like React.js and Node.js, the ability to answer some core JavaScript questions will always give you an upper hand during a coding interview.

So, let’s start with the top 5 JavaScript interview questions!

1. What is hoisting?

Hoisting is a default process wherein JavaScript moves all the declarations to the top of the current scope.

Example:

a=20;
console.log(a) // 20
var a;

Even though the JavaScript variable a is initialized and accessed before it’s declared, JavaScript doesn’t throw an error.

What is the Purpose Of Closures in JavaScript?

As per MDN Web Docs,

“Closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment).” 

In simple terms, Closure is under functional programming, and it allows an inner function to access an outer function’s scope, even when the outer function has already returned.

Example:

const cartMode = function() {
    let items=[] // acts like a private variable
    function addItem(item) {
       items.push(item)
       return "Item added to Cart"
    }

    function totalItems() {
      return items.length
    }

    return {
       addItem,
       totalItems
    }

}

const cart=cartMode()
cart.addItem("Bag") // returns Item added to Cart
console.log(cart.items) // returns undefined
cart.totatItems() // returns 1

In the above example, the items variable is accessible to all the inner functions, but it’s not directly accessible from outside. This happens because of closures

3. What is the difference between let, const, and var?

Before ES6, JS had no way to support block-level scope variables. Now, we have:

  • var for creating function-level scope variables.
  • let for creating dynamic block-level scope variables.
  • const for creating constant block-level scope variables.

Example:

var a = 20

if(a > 10) {
  let b = 1
  const a = 2

  console.log(b,a, 'Inner Scope')   // 1 2 Inner Scope
}

console.log(a, 'Outer Scope')   // 20 Outer Scope

4. What is the output of the following code?

console.log("1")
setTimeout(function(){
  console.log("2")
},0)
console.log("3")

Output:

"1"
"3"
"2"

Even though we specified the delay as 0ms, it still prints “2” after “3.” This is because of the Event Loop in JavaScript. 

In this case, first, console.log(“1”) is executed, then setTimeout() is executed; after the specified delay (in this case, 0ms), the callback function is added to Message Queue. Now the main thread only picks up items from the message queue once the current execution is done. So, the main thread first evaluates the console.log(“3”) statement post. Then, it picks up the callback() from the Queue and executes the console.log(“2”) statement. Hence, the above output.

5. The Difference between arrow functions and regular functions?

Arrow functions are new ES6 syntax for defining functions. It looks like this:

const add = (a,b) => a+b
add(2,3) // 5 

The main difference between the arrow function and the regular function is the value of this keyword.

In the case of arrow functions, the keyword assigns a value lexically. What this means is unlike regular functions, arrow functions never create their own execution context. They, by default, take the execution context of the enclosing function, aka, parent. 

Here is another great article explaining this in-depth. 

Conclusion

Preparing for JavaScript Interviews can feel overwhelming, but you now know the JavaScript code, the programming language, and the scripting language; the only way to really answer an advanced JavaScript interview question is to examine things one concept at a time

Data Literacy for Leaders

By

For years, the importance of data has been echoed in boardroom discussions and listed on company roadmaps. Now, with 99% of businesses reporting active investment in big data and AI, it’s clear that all businesses are beginning to recognize the power of data to transform our world of work.

While all leaders recognize the needs and benefits of becoming data-driven, only 24% have successfully created a data-driven organization. That is because transformation is not considered holistically and instead leaders focus on business, tools and technology and talent in silos. Usually leaving skill acquisition amongst leaders and the broader organization for last. It’s no wonder that 67% of leaders say they are not comfortable accessing or using data.

We’ve worked with businesses, such as Bloomberg, to help them gain the skills they need to successfully leverage data within their organizations & we haven’t left leaders out of the conversation. In fact, we know that leaders are crucial to the success of data transformation efforts & just like their teams, they need to be equipped with the skills to understand and communicate with data.

Why Should I Train My Leaders on Data?

When embarking on a data transformation, we always recommend that leaders be trained as the first step in company-wide skill acquisition. We recommend this approach for a few reasons:

  • Leaders Need to Understand Their Role in Data Transformation:  Analytics can’t be something data team members do in a silo. They need to be fully incorporated into the business, rather than an afterthought. However, businesses will struggle to make that change if every leader does not understand his or her responsibility in data transformation.
  • Leadership Training Shows a Commitment to Change: According to New Vantage Partners, 92% of data transformation failures are attributed to the inability of leaders to form a data-driven culture. In order for your employees to truly become data-driven, they have to be able to see a real commitment from leaders to organizational goals and operational change. Training your leaders first sends that message that data is here to stay. 
  • Leaders Need to Be Prepared to Work With Data-Driven Teams: Increasingly, leaders are expected to make data-driven decisions that impact the success of the organization. Without literacy, leaders will continue to feel uncomfortable communicating with and using data to make decisions. This discomfort will trickle down to employees and real change will never be felt. 

Just like your broader organization, leaders cannot be expected to understand the role they play or the importance of data transformation without proper training. 

What Does Data Literacy For Leaders Look Like? 

Leaders need to be able to readily identify opportunities to use data effectively. In order to get there leaders need to:

Build a Data-Driven Mindset:

While every leader brings a wealth of experience to your org, many leaders are not data natives, and it can be a big leap to make this shift in thinking. Training leaders all at once gives you the opportunity to get your leaders on the same page and build a shared understanding and vocabulary.

So what does building a data-driven mindset look like in practice? To truly have a data-driven mindset leaders must be aware of the data landscape, as well as the opportunity of data, be mindful of biases inherent in data with an eye towards overcoming that bias, as well as being curious about how data can influence our decisions.

Leaders should walk away from training with a baseline understanding of key data concepts, a shared vocabulary, knowing how data flows through an organization and be able to pinpoint where data can have an impact in the org.

Understand the Data Life Cycle

Leaders are responsible for having oversight of every phase of the data life cycle and must be able to help teams weed out bias at any point. Without this foundation, leaders will have a hard time knowing where to invest in a data transformation and how to lead projects and teams.

All leaders should be equipped to think about and ask questions about each phase of the life cycle. For example:

  • Data Identification: What data do we have, and what form is it in? 
  • Data Generation: Where will the data come from and how reliable is the source? 
  • Data Acquisition: How will the data get from the source to us? 

It is not the role of the leader to know where all the data comes from or what gaps exist, but being able to understand what questions to ask, is important to acquire the necessary insights to inform a sound business strategy.

Get to Know the Role of Data Within the Org

In an organization that’s undergoing a data transformation, there’s no shortage of projects that could command a leader’s attention and investment. Leaders must be equipped to understand where to invest to put their plans into action.

Based on existing structure, leaders need to understand the key data roles, such as data analysts or machine learning engineers, why they are important and how they differ. Once a leader has the knowledge of the data teams, they will be able to identify the opportunity of data within their team and role.

Make Better Data-Driven Decisions

Leaders who rely on intuition alone run the huge risk of being left behind by competitors that use data-driven insights. With more and more companies adjusting to this new world order, it’s imperative that leaders become more data literate in order to make important business-sustaining decisions moving forward. 

Leaders should walk away from training with a baseline understanding of key data concepts, a shared vocabulary, knowing how data flows through an organization and be able to pinpoint where data can have an impact in the org.

Getting Started With Leadership Training 

Including data training specifically for your leaders in your data transformation efforts is crucial. While leaders are busy tackling other important business initiatives, they, just like the rest of your organization must be set up with the right skills to successfully meet the future of work. Investment in data skills for leaders will help you to forge a truly data-driven culture and business.

To learn more about how GA equips leaders and organizations to take on data transformation get in touch with us here.

How to Easily Run JavaScript in Terminal

By

TL;DR

You can run JavaScript  console in terminal or any command-line interface using Node.js, an open-source, platform-agnostic runtime that executes JavaScript outside a web browser.

Before we take a deep dive into how to run JavaScript in browser, we need to understand few basic terminologies like:

  1. Client-Side JavaScript 
  2. Server-Side JavaScript
  3. Command Line Interface

Client-Side JavaScript

  • JavaScript code executed in the web browser is known as client-side JavaScript. 
  • Client-side JS was originally used to add some interactivity on websites; for example, the Click on Submit button in a form sends form details to the server.
  • The <script> tag within your HTML page is used to write client-side JavScript, which is later executed by the browser.
<script>
  console.log("Client-side JavaScript");
</script>

Server-Side JavaScript

  • When you run JS code outside the browser-like on a web server, it becomes server-side JavaScript.
  • Server-side JS is generally used to write the back-end logic of your web application; for instance, you can check to see if a user password matches the stored DB password.
  • You can run Server-side JavaScript using any command-line interface.

But, what is Command Line Interface, a.k.a.,Terminal?

  • CLI is a text-based interface that allows users to perform some operation in a computer by typing commands.
  • The most common CLI for popular OS’s are:
    • Windows: Command Prompt, PowerShell
    • Mac: Terminal, iTerm

Let’s see how to run JavaScript in these popular CLI’s:

Running JavaScript in Terminal 

Executing JavaScript in Terminal has two steps:

  1. Installing Node.js.
  2. Accessing Node.js in Terminal/Command Prompt.
  3. Running your JS file using node.

Installing Node.js

  1. Go to https://nodejs.org/en/download/; you should see a web page like below:
Screenshot of the node.js website. Node is a key tool to run JavaScript in your terminal.
  1. If you are using Windows OS, click on Windows Installer or else click on Mac Installer for macOS.
  2. Once downloaded, double-click on the installer to install Node.js.

Checking Node.js in Your Terminal/Command Prompt

To open your terminal in macOS:

  1. Open the Spotlight Search Bar (Cmd+Space bar).
  2. Type Terminal: it has an icon like below — open it.
  3. Once opened, type the following command:
node -v

If you see an output like this, v14.15.3 Node.js is installed successfully.

Writing Your JS Code

  1. Create a new file called index.js in your Desktop/folder
  2. Let’s write some code!
const greet = (name=”Everyone”) => {    console.log(`Hello ${name}`);}
greet();

Now, let’s run it!

Running JavaScript in Your Terminal/Command Prompt

  1. Go to “Desktop path” within your Terminal/Command-Prompt:
cd /Users/arwalokhandwala/Desktop/
  1. To run your JavaScript file using Node.js, type:
node index.js
  1. If you see an output like below, then Congratulations! You are successfully running your JavaScript file in your Terminal/Command-Prompt:
Hello Everyone

Passing Runtime Arguments in Node.js

Like in the browser, we use forms to pass custom values to our JavaScript. If you wish to pass runtime values, then you can use process.argv[2]

const greet = (name = "Everyone") => {
   console.log(`Hello ${name}`);
}
greet(process.argv[2]);

In your Terminal/Command-prompt, type:

node index.js ArwaHello Arwa

Conclusion

Node.js makes it very simple to run JavaScript code in your Terminal/Command-prompt and opens a door of opportunities for a web developer.

How to Go From Zero to Hero in JavaScript Fast

By

JavaScript (often shortened to JS) is a lightweight, interpreted, object-oriented language with first-class functions — it is best known as the scripting language for webpages. It is a prototype-based, multi-paradigm scripting language that is dynamic, and it supports object-oriented, imperative, and functional programming styles.

Now, what does all that mean?

Well, it could be a bit overkill to try to explain those topics if you are just starting out in coding or learning JavaScript. In short, JavaScript most often correlates with client-side scripting on webpages. When you use a website, anything you interact with usually involves JavaScript — a search bar on Google or a dropdown menu on Facebook is all JavaScript.

While JavaScript was originally intended for websites, its uses have far surpassed front-end interactive website usage. JavaScript can be used as a server side-language with NodeJS to create desktop and mobile apps or program different electronics (popular YouTuber, Michael Reeves, uses JavaScript on a lot of his quirky inventions). JavaScript has expanded immensely since its inception with tons of different use cases and massive community support.

The Best Places to Learn JavaScript

There are many ways to learn JavaScript — here are some of the best and the most cost-effective ways.

1. freeCodeCamp

With freeCodeCamp, everything runs in your browser. It has a code editor, console, and example browser window all within site. freeCodeCamp can seem daunting at first due to the sheer amount of content it has, but do not worry. If you are looking to learn JavaScript fast, it has a section called “JavaScript Algorithms and Data Structures Certification” specifically for JavaScript. It will take you through learning the basics of JavaScript and even some in-depth topics such as Data Structures and Algorithms.

Everything else freeCodeCamp has to offer is related to website programming. It even has sections on job hunting. If that is something you are interested in, I would recommend the entire site as it has a lot of great content. FCC also has a Youtube channel: youtube.com/c/freeCodeCamp, where it explains a lot of site topics in a video format.

2. Udemy/Youtube

I put these two in the same category since there is a lot of overlap, and you will see that a lot of people on Udemy use Youtube almost like a marketing tool for their full course. Nonetheless, a lot of Udemy courses range from $10–15 with a lot of good material. Really, one or two courses should be enough to learn JavaScript, so there is no need to spend a fortune. A few instructors I liked were Colt Steele and Brad Traversy.

Alternatively, both Colt Steele and Brad Traversy have Youtube channels that are free and have great content for learning JavaScript. Once you get the hang of the basics, I also recommend The Coding Train, which is run by Daniel Shiffman. I enjoyed all of these instructors’ teaching styles — they have great explanations for different concepts. That said, choose someone who best fits your needs and makes things clearest for you

How to Learn JavaScript Fast

As with any language, learning JavaScript requires time, studying, and practice. I recommend you learn the basics, which include:

  • Variables
  • Types of Data:  Strings, Integers, Objects, Arrays, Boolean, null, and undefined
  • Object Prototypes
  • Loops
  • If Statements/Conditionals
  • Functions

After you have those basics down, hop into some code challenges to get some practice. One site I would recommend is codewars.com. It has tons of challenges with varying levels of difficulty. Start at a basic level. Practice until you are comfortable with the above topics.

Another good practice exercise is making a game like tic-tac-toe or a basic calculator. With these exercises, you will be able to tackle different obstacles and exercise the syntax of JavaScript.

JavaScript Quick Tutorial

Variable Declaration

If the above materials are not enough, here is my quick JavaScript tutorial: 

First, we have variables. In JavaScript, there are three ways you can declare a variable:

  • var: function-scoped.
  • let: block-scoped.
  • const: block-scoped, but cannot be reassigned; it also is initialized with an “a” value, unlike “var” and “let.”

Data Types

There are different data types, as mentioned above, but the most important is Objects. Objects are used for various data structures in JavaScript such as Array, Map, Set, WeakMap, WeakSet, Date, and almost everything made with a new keyword.

A small note about null: If you were to check the data type of null through JavaScript, it would evaluate to an Object. This is a loophole that has been utilized by programmers for years. This might not be very common for you early on…

Comments

Comments in JavaScript are signified with “//” for single-line comments or “/* ….. */” for longer blocks of comments. I bring this up now since the examples below have comments.

Loops

If you are not new to programming, I am sure you know what loops are. For those of you who are new to coding, loops are used to iterate or repeat a block of code a certain amount of times or until a condition is met. Loops are often used to go through items in an Array.

The most common loops are the traditional for loops and while loops. A lot of the following is from the developer.mozilla.org and MDN, which is similar to the documentation for JavaScript — here are some of the different loops JavaScript has to offer:

for loop:

for ([initialExpression]; [conditionExpression]; [incrementExpression]) {

  // statement

}

Provided by MDN:

When a for loop executes, the following occurs:

  1. The initializing expression, initialExpression, if any, is executed. This expression usually initializes one or more loop counters, but the syntax allows an expression of any degree of complexity. This expression can also declare variables.
  2. The conditionExpression expression is evaluated. If the value of conditionExpression is true, the loop statement executes. If the value of the condition is false, the for loop terminates. (If the condition expression is omitted entirely, the condition is assumed to be true.)
  3. The statement executes. To execute multiple statements, use a block statement ({ … }) to group those statements.
  4. If present, the update expression incrementExpression is executed.
  5. Control returns to Step 2.

An actual code example of a for loop:

for (let i = 0; i < array.length; i++) {

 // code here

}

For loops are extremely useful and used often. It is very important to understand and master how for loops work. 

do…while loop:

A do…while loop will run code until a condition is false

do {

  // statement

}

while (condition);

while loop:

A while loop is very similar to the do while loop, but the key difference lies when the conditional is checked. In a do…while loop, the code block runs, and the condition is checked after the while loop checks the condition and runs the block of code.

while (condition) {

  // statement

}

for…in loop:

For…in loop is used to loop over objects

for (variable in object) {

  // statement

}

for…of loop:

For…of loop is used typically for arrays or iterable objects. I must stress using the correct loops for arrays and objects to avoid confusion.

for (variable of array) {

  // statement

}

If Statements

If statements depend on whether a given condition is true and perform what is in the first set of the code block. Do not continue to evaluate the subsequent “else” portions. If there are subsequent conditions that need to be checked, the use of “if else” will be needed. If all conditions do not evaluate as true and there is an “else” provided, the “else” portion of the statement will be used. 

if (condition) {

   // statement1

} else if (condition2) {

   // statement2

} else {

   // statement3

}

Functions

There are two ways to write a function: a function declaration and a function expression. The “return” keyword is used in JavaScript to define what a function will return. All subsequent code below a return statement will not run inside a function.

Function Declaration:

function square(number) {

  return number * number;

}

Function Expression:

var square = function(number) {

  return number * number;

}

The key difference between the two is the function declarations load before any code is executed, while function expressions load only when the interpreter reaches that line of code.

Object Prototype/Classes

In order to provide inheritance, JavaScript utilizes things called prototypes.

Here is an example of what the syntax would look like:

function Person(first, last, age, gender, interests) {

  // property and method definitions

  this.name = {

    'first': first,

    'last' : last

  };

  this.age = age;

  this.gender = gender;

  //...see link in summary above for full definition

}

Creating a new instance of that prototype would look like this:

let person1 = new Person('Bob', 'Smith', 32, 'male', ['music', 'skiing']);

If you come from a different coding language, you may be more familiar with the term “classes.”

JavaScript also has something called classes — classes are built on prototypes:

class Person {

  constructor(first, last, age, gender, interests) {

    this.name = {

      first,

      last

    };

    this.age = age;

    this.gender = gender;

    this.interests = interests;

  }

}

How To Run JavaScript

Since JavaScript is one of the core technologies of the Internet, every modern web browser will have built-in JavaScript consoles. There are also many web-based JavaScript compilers and interpreters.

Browsers

All the big-name browsers such as Chrome, Firefox, Safari, Internet Explorer, and Opera will have JavaScript consoles. I will explain the process on Google Chrome, but all the other browsers can be found in a similar fashion.

In Chrome, right-click anywhere in your browser window and select “Inspect.” Then click on the console tab. From there, you can write “JavaScript” right into the console. Another keyboard shortcut can be found by pressing Command + Shift + J on Mac and Control + Shift + J on Windows.

Web-Based

There are a lot of different web-based JavaScript consoles. My personal favorite is Repl.it, but other options include JS Bin, JSFiddle, and CodePen. Of course, if you find one that you are more comfortable with, you are welcome to use it. 

Can I teach myself JavaScript?

The short answer is yes. I do truly believe you can learn JavaScript on your own, but as with anything, it will take time and discipline. There may be times when you want to quit, think you’ve had enough, or question if you are doing it correctly. My answer to those questions would be to follow the free options of Codecademy and freeCodeCamp (above) as they are very structured and give a good foundation for learning. Never get discouraged; you will be surprised at how much you actually know!

So… should I learn JavaScript or Python?

This is a loaded question and could be a whole article in itself, but it really comes down to use cases. Almost everything outside of the coding languages of JavaScript and Python is alike. This includes popularity, support, community, free and paid courses, and versatile uses.

I mention use cases because if you intend to do web-based programming, you will most likely need to know JavaScript; if you focus on web programming, I would recommend learning JavaScript.

If you are more interested in data analytics, artificial intelligence, and machine learning, Python may be the route to go. This is not to say you can only learn one language. If you are up for it, learn both! Python and JavaScript have evolved a lot since they were created, and both can be used for websites, data analytics, artificial intelligence, and machine learning.

Why is JavaScript So Popular?

By

Our lives today are dependent on the interactivity that JavaScript provides. If you want to really see how much you depend on it, you can disable JavaScript in your browser for a day. Some pages will load quicker, they’ll be cleaner, you’ll have less ads, no pop-ups, and the battery life of your computer may last longer. But also parts of the webpages simply will not work. Neither will Netflix, YouTube, Google Docs, Google Maps, and much more. We are, to a good degree, dependent on JavaScript to function. Today, virtually every computing device including iPhones, Android phones, MacOS, Windows, Linux, smart TVs, etc.. in the world have JavaScript interpreters installed on them and in active use.

There are over 1.8 Billion websites in the world, and JavaScript is used on 95% of them

The popularity of JavaScript over the years.

JavaScript is by far the most used language according to Github’s 2020 Octoverse Report.

So how did JavaScript get this big? Why did it get so popular? 

The creation story of JavaScript is the foundation of its popularity. 

It begins in the year 1995 at the Netscape headquarters, where young Brendan Eich goes into a ten day sprint of coding and comes out on the other side with a new language. Wow!

As more people used browsers to use and experience the internet, there was a need for a programming language that would give life to the browser. Something that went beyond HTML and CSS. That’s where JavaScript came in to give life to the browser. It’s a language that is capable of doing what all other programming languages do but also has a special relationship with the browser. It changed the way we thought about the internet and ushered a new era of browser based applications. 

Easy setup 

Unlike many other languages, where you need to go download the language in your machine in order to access all of its features and create a development environment, with JavaScript anyone with a web browser suddenly has a development environment right in front of them. Every browser supports JavaScript!  


You can simply open your browser, like Chrome, and navigate to Developer Tools, and start coding away! To write a “Hello World” program is as simple as: 

console.log(“Hello World”); 

You can also use an Integrated development environment (IDE) or code editor like Visual Studio Code where you can create a file with the file extension .js to write JavaScript. Visual Studio Code (VS Code) is more widely used to write code but there are other editors like Atom and Sublime Text which are quite common amongst developers.  

Event-based programming
One of the most impressive features of JavaScript is that it includes event-based programming. It has built-in events like ‘onClick’ and ‘onHover’ that wait for user interaction on a website before executing a specific segment of code. For instance, when you click the night-mode toggle, that is an event which triggers a JavaScript code segment that changes the CSS across the whole website from light colors to dark colors. 

JavaScript can be used to generate dynamic contents on a website as well. Different HTML tags can be generated based on user input. For instance, if you are on Facebook and you click into a comment box to type your comment on someone’s post, in that moment your click was an event that executed a code block in JavaScript that led to the generation of an HTML tag to display your comment.

End-to-end programming with Node.JS 

While JavaScript has been given the title of The Language of the Browser, in 2009 with the release of Node.JS, a runtime environment that runs JavaScript code outside a web browser changed the fate of the language. Node.JS lets developers use JavaScript to write server-side scripting. Consequently, JavaScript’s popularity was dramatically increased because Node.JS represents the idea of “JavaScript everywhere” paradigm, unifying all of web application development around a single programming language, rather having a different language for server-side and client-side scripts. 

In other words, now developers can use one single programming language to talk to databases, make HTTP requests, generate dynamic content, and create interactive user experiences/interfaces. This led to the Rise of Web Applications that we are experiencing today. In addition to having a unified web-application development, JavaScript also became the go-to language for many companies because now the engineering teams only had to worry about a single programming language which made it easier to debug and save costs in the overall development process. 

In 2013 AirBnb launched their site and became the first to utilize the full-stack JavaScript solution. This approach allowed for code to be executed on the server-side and rendered in the browser with subsequent actions being handled by the exact same code on the client side. This inspired several other companies to do the same and today we have products and services like LinkedIn, Netflix, Uber, PayPal, eBay, Groupon, GoDaddy, CitiBank and many more using Node.JS. 

JavaScript Libraries and Frameworks

The popularity of JavaScript led to the creation of several libraries and frameworks that have made application development efficient and performant. Today, libraries like React JS, jQuery, D3.js, etc.. are used in most applications across the world. Frameworks such as Angular, Ember JS, and Vue JS provide optimal performance and organization to build large applications. 

Active Community 

Amongst the programming languages, JavaScript has one of the largest communities according to Stackoverflow. In addition to that community, Node.JS has over a billion downloads across the world and is one the most widely used technologies. 

These are just a few of the reasons why JavaScript is so popular. With the change in paradigm that led to the rise of web applications, unifying the web application development, cross browser support, and the plethora of libraries/frameworks available, the world of the internet has been fully invested in the growth of JavaScript. Furthermore, since JavaScript is a high-level interpreted language that is easy to understand, it is the one of the best languages to learn if you want to enter the world of programming and explore the amazing possibilities of web-application development.