Arwa Lokhandwala, Author at General Assembly Blog

What Is coding?

By , and

Coding is a language, simply put. But that doesn’t stop the mysteries and the global misconceptions that swirl around it. Too often, coding is presented as difficult to understand and needlessly complicated. Why does coding have such a mystique?

Shahzad Khan, one of our lead instructors, breaks it down:

“People think that coding is about sitting in a dark room writing thousands of lines of incomprehensible code. It’s not.” Khan has built a career on breaking down the complicated concepts of coding into easily understood concepts in our Introduction to Coding course, which allows students to dive right into learning programming language. “With the new high-level languages like Javascript and Python, coding is more intuitive and closer to the English language than it has ever been.”

Just like with other languages, once you learn a coding language and how to use the tools of computer science to communicate, a whole new world opens up.

Coders have been known to perpetuate the mythology, though. When they talk about coding, practitioners can sound like proselytizers. They tell passionate stories of how coding has changed their lives — and the world. Famous lines of code have become legendary. Look no further than the Facebook “like” button, an example of how the most consequential code changes people’s behaviors. That’s a lot of power, and it can be intoxicating.

Steve Jobs famously claimed that everyone should learn how to write code because learning how to code teaches you how to think. That may be true, but this definition of coding is still our favorite: Coding is solving real-world problems with existing technology.

And the barriers to entry are relatively low. “Coding is awesome because it allows you to build some amazing things as long as you have a working computer and the internet. No need to go invest in expensive equipment,” says Khan. 

“Software is eating the world, so coding is already extremely important and will be even more so as we progress into the future. The right people who know how to code will save the world.”

The fact is that software is only getting more ubiquitous, finding its way into government and public policy. One look at the United States’ patchwork response to COVID-19, and it’s not hard to imagine how the right software at the right time could have lifesaving implications.

For others, coding is a calling and a way to express creativity — not something you usually associate with computer science. “Creating something is so satisfying, and coding is the ultimate tool to do that,” says Arwa Lokhandwala, one of our lead instructors:  “I love getting my hands dirty trying to learn how to use a particular technology to solve a problem or just creating something for fun.”

Coding isn’t a solitary, head-down endeavor, contrary to those popular misconceptions. We can dispel the image of the glassy-eyed, hoodie-wearing loner right here. “There is a common myth that coders work alone,” Lokhandwala continues. “That’s not true! Coding is a very collaborative role. You have to interact with your team members, designers, product owners, and stakeholders, to name a few.”

“We are entering the Fourth Industrial Revolution where technology will dominate every domain. Currently, people are using coding for everything from detecting diseases to exploring outer space. This is just the beginning. Coding is completely going to revolutionize every industry and give birth to new ones.”

Ready to learn? Enrolling in a coding bootcamp is a great way to learn coding without investing years or thousands of dollars. At GA, a coding bootcamp can be 12 or 15 weeks long and is designed to be a fast-paced learning experience. Students learn and implement quicker than in more traditional courses, and the most successful learn to trust the process. Our Software Engineering Immersive course gives students all the coding skills they need to start job hunting and is Khan’s favorite course to teach. “I love that I get to make an immediate impact in the lives of people who come to learn and want to change their lives for the better.”

Want to learn more about Arwa?

https://www.linkedin.com/in/arwalokhandwala-b831b/

https://www.instagram.com/code.with.arwa/

Want to learn more about Shahzad?

https://www.linkedin.com/in/shahzadkhanaustin/

https://flawgical.medium.com

How To Learn Coding

By , and

Do you know how to use a computer? Do you have a curious mind? If you answered yes to both, you have everything you need to learn a programming language and become a coder. Coding is very accessible — it’s really that simple.

There are many ways to learn to code, from going it alone on a DIY coding website to scoring a coveted spot in a computer science doctoral program. Learning along with others and from an instructor who is passionate, knowledgeable, and has real-world experience creates our dynamic General Assembly environment. From a bootcamp Immersive to a classic Introduction to Coding, our coding courses are taught by professionals who are industry leaders. Essential is their own love of learning, and they thrive on sharing this with students, often in a collaborative discussion that covers a wide range of coding topics.

Lead Instructor at General Assembly Singapore, Arwa Lokhandwala, is a full-stack web developer and advocate for women in technology through groups like the Women Techmakers Community and Mumbai Women Coders. She describes herself as a coder at heart with a passion for sharing. We trust her guidance on all things coding.

“Anyone with a passion for learning new things can learn how to code, “ says Lokhandwala. “You don’t need a 4-year degree. Familiarity with computer science is good to have, but it’s not necessary; you can learn that as you go along. A lot of companies hire people directly from a coding bootcamp.”

“Bootcamps are inherently intense because there is a limited time period to train, which has its own advantages. The initial days are challenging, but as you progress with the projects you build, the people you interact with, and the things you learn, you will become confident with interviewing and getting the job. If you are just starting out with coding, I would highly recommend a GA Immersive because it gives you a community. Talking to other people who are in the same situation as you can help you get motivated.”

There is no one-size-fits-all, ideal coding student. Students at GA have come from all walks of life, from service industries to liberal arts backgrounds to working on an oil rig. Lokhandwala describes what makes a student successful. “Never giving up. Coding is hard, and nobody gets it on their first attempt. So don’t let your imposter syndrome get the better of you. Keep practicing, and you will get it. Your intrinsic motivation to code has to be stronger than the external motivation in order to create a fulfilling career.” 

Shahzad Khan, one of our lead instructors and owner of software development and consulting firm Frame of Mind, appreciates the experience that students from non-traditional backgrounds bring to his Introduction to Coding course at our Austin, Texas campus. Khan got a degree in philosophy and began studying programming languages as a way to gain acumen after graduate school. “I saw coding as something I needed to learn in a world where we are surrounded by software.” 

His passion for teaching makes his courses popular among returning students.

“I love teaching programming because it forces me to learn every single day and to think about different ways to explain complex concepts. Plus, I get to make some genuine connections with students and inspire them to awesome things.”

Want to learn more about Arwa?

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

Want to learn more about Shahzad?

https://www.linkedin.com/in/shahzadkhanaustin/
https://flawgical.medium.com

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/

Ways to make money coding

By , and

If computer scientists agree on anything these days, it’s that software is everywhere in our ultra-connected world. Since someone has to write all that software code, there are more ways than ever to make money coding.

And computer science prevails in our ever-shifting world. COVID-19 has revealed our global interdependence on computer science, and there’s no going back. From Roombas to mRNA, the applications of coding have come to define daily life in new ways. One enterprising coder recently made the news using the programming language Python to snag an elusive vaccine appointment in their city.

It’s easy to understand why coding skills are some of the most sought-after in today’s tech job market. So how do you actually make money with coding and start saving the world one line of code at a time? We have the answers.

Once you’ve got a few coding courses or a coding bootcamp under your belt, you’ll have a working coding toolkit that showcases your talent. Now it’s time to think about where you can put your coding skills to work. Job postings for computer programmers and calls for coding skills can be found at almost every company across the globe. Good to know: Some entry-level jobs offer on-the-job training, and you can essentially get paid to learn to code.

The healthcare tech sector has taken off, and this is a trend that beginner coders should watch. Certainly, the pandemic has made it easier to work from home, and coding naturally lends itself to remote work, opening up more job markets in far-flung locations. Even pre-pandemic, medical billing and medical coding were among the 20 fastest-growing tech occupations in the U.S. Now, with the boom in telemedicine and a growing need for data management, health tech remains a promising field for computer science. Vaccine passports and patient privacy concerns present perfect case scenarios for the problem-solving skills inherent in coding and are poised to create opportunities in both public and private sectors. From health data technicians to mobile app developers, the ways to make money coding in health tech are only set to grow. We see the potential for even more innovation because programmers have only begun to push the boundaries at the intersection of medicine and computer science.

Even though a lot of companies have suffered from the pandemic, our data show that the jobs for coding have not been affected nearly as much as other fields. Businesses previously without an online presence are now migrating towards it, giving programmers and coders plenty of new work.

One of our lead instructors, Arwa Lokhandwala, takes stock of the Singapore job market and notes that coding roles can pay very well, adding that, “There are both salaried and hourly options available, and you can also freelance your skills over several freelancing sites.” About half of her students in our Introduction to Coding course are looking for a career change and want to know how hard it is to break into coding. “I think the most difficult thing is the change in mindset when you move from other fields into coding. Keep practicing and keep learning. As long as you are skilled in what you do, the job market will be good to you.”

Most beginner coders know that building websites and web development are avenues now open to them, with even more demand for building mobile applications. Coding opportunities in gaming and game development show no signs of slowing down either. Traditional sectors like finance and banking are ramping up their software development and have a growing need for coders, as more of our day-to-day happens on the go and on our phones. Education has long been a sector ripe for disruption, with the pandemic sending everyone from school administrators to test providers scrambling to adopt technology in new ways.

Data visualization, machine learning, and artificial intelligence are some of the most exciting spaces for coding professionals right now. These fields are breaking new ground, and often, that’s where many thrill-seeking coders want to be.

The high demand for jobs with well-paying salaries is just one of the attractions for coders. Coding draws on problem-solving skills and attracts the intellectually curious. When computer programming is done right, it never gets boring because you are always learning new things. 

“I was attracted to coding because there is a lot of demand for programming,” says Shahzad Khan, who leads our Software Engineering Immersive in Austin, Texas. “But I also wanted to find a job that satiated my problem-solving skills and forced me to keep learning every day.”

Real-world applications of coding are everywhere, but that doesn’t always make them easy to spot. There are ways to make money coding that may not be on your radar yet. Khan names a few less-obvious career opportunities like working with electrical grid systems, charting airplane trajectories, and exploring space. “These days, anything that requires the internet is an application of coding.”

Want to learn more about Arwa?

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

Want to learn more about Shahzad?

https://www.linkedin.com/in/shahzadkhanaustin/
https://flawgical.medium.com

How to get better at coding

By and

You’ve got the coding basics, so what’s the next step? 

Arwa Lokhandwala is a lead instructor at our Singapore campus and also a full-stack web developer deploying scalable web applications that handle an average daily request load of up to a million queries. We asked her about the challenges of learning a programming language — what separates the amateur from the master?

“The mindset. Coding is hard, and it takes multiple attempts in the beginning to understand concepts,” she says. “That’s completely normal. Keep practicing every day, and don’t compare yourself with anybody else.”

One surefire way to get better at coding is by enrolling in a coding bootcamp. These totally Immersive courses are proven to jumpstart your coding skills, and you’ll come away with huge strides in proficiency. The Software Engineering Immersive (SEI) is our most popular 12-week coding bootcamp. All-day, every day, it’s a clear-your-schedule kind of course with commensurate benefits.  

Learning to code is often compared to learning a new language. In the same way that living in a foreign country is the fastest way to learn that country’s language, the immersion of a bootcamp is the fastest way to learning a new programming language and honing your coding skills.

Often getting better at coding means taking on a coding challenge and making lots of mistakes. The learning process at GA involves breaking problems down into small, solvable chunks. “People often are not used to that,” says Shahzad Khan, SEI bootcamp instructor. “You have to be okay with failing and being wrong. Learn to be patient with yourself. You learn by speaking it and by writing in it. Initially, you will sound terrible and use incorrect grammar, but as you speak and write it more, talk to more people, get feedback, and continue to improve, you will eventually feel comfortable with it.” 

The best indicator of success in all coding courses is a willingness to practice. “You can sit and think about a particular coding concept for hours and understand why it works the way it does, but it won’t do you any good until you actually build something using that concept. So, implement what you learn as soon as possible.”

Computer programming can inspire philosophical thinking at its best. If this sounds like coding and its practice can become something of a life philosophy for coders, it is. “To learn coding, you have to open yourself up to feeling like a child again. You have to unlearn some things. It can be an uncomfortable process. Usually, people find it too difficult because it makes them feel too uncomfortable. If you face that discomfort, you can learn anything.”

To get better at coding, coding courses and coding bootcamps can give you the time and focus to chart your path to success. They also provide the environment and community to foster that learning. There is very real work to be done, practice, and lots of iteration. But there is also the metaphysical aspect that famous programmers talk about. You can become a better coder by understanding their insights, too. Like this one by Martin Fowler, software developer and author of nine books, ”Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” And this one from John Johnson, “First, solve the problem. Then, write the code.”

So whether you’re ready to take the plunge with one of our Immersive coding bootcamps or you’re trying to solve a thorny work problem with code, remember to heed Khan’s advice and be patient with yourself. “Coding takes time and practice. You have to believe in yourself. You also need to be comfortable with being vulnerable. If you don’t open yourself up, you will resist change, and that will infiltrate your learning process.“

Want to learn more about Arwa?

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

Want to learn more about Shahzad?

https://www.linkedin.com/in/shahzadkhanaustin/
https://flawgical.medium.com

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.

2. What is the purpose of closures?

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

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:
  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.