Coding Category Archives - General Assembly Blog

5 Steps to Getting Your First Job as a Web Developer

By

The truth is, no one is born with the coding skills a potential employer is seeking for tech job openings, and your resume doesn’t need to include a computer science degree. The good news is every web developer acquires the technical skills along the way that leads to their first job, and the path is not the same for everyone. With this dream tech job becoming a desired career path for many, you’ll want to have a proper outline. Below are my 5 steps to getting your first job as a web developer. 

1. Research and Visualize

If you came across this article because you were researching how to get a job as a web developer, guess what? You’re already immersed in the first step! Congratulations.

In one of my favorite business books, The 7 Habits of Highly Effective People, Stephen Covey outlines an easy-to-understand approach to attaining your goals — through conscious changes to your behavior and character. While all of his 7 habits are important, I want to point out habit 2 to you with regards to landing a web job: Begin with the end in mind.

In the book, Covey says that habit 2 is “based on imagination — the ability to envision in your mind what you cannot at present see with your eyes.” The idea is “based on the principle that all things are created twice,” he continues. “There is a mental (first) creation, and a physical (second) creation. The physical creation follows the mental, just as a building follows a blueprint.”

In essence, he says that everything that we bring into reality in the future has its start somewhere before, in the mind. It could be an idea, a goal, or even a Google search; suddenly “it” becomes an outline, a map or a schedule, and slowly the first mental birth gives a subsequent existence to something physical.

When it comes to your career as a web developer, this means researching the steps you can take today in order for you to be confident and capable to start a new developer job in the future. That’s how I’d like you to approach this goal.

Do your research: The better you know the blueprint for what you want to build for your web career, the more motivated you’ll remain along the way. You’ll be able to track your progress toward a goal. And then visualize: See yourself follow the plan as you grow your skills and confidence and ultimately land your dream job.

Key Takeaways:

  • Read 3–5 different takes on how to become a web developer from tech and career blogs, YouTube, Quora, LinkedIn, etc.
  • From the different perspectives you’ve gained, what is common among them? What do they say you should learn for a web developer job? How do you acquire the skills that are suggested?
  • Make a step by step plan on how you can achieve the goal. Base it on your personal skills profile, schedule, timeline, resources, etc.
  • Visualize yourself 1, 3, or 5 years in the future while focusing on what’s doable today.

2. Learn the Skills

The bottom line is that a web developer job comes down to skills and execution. Employers — your future hiring managers and colleagues — will expect you to have certain technical skills and to execute them as required by the role, especially if you want to keep the job. While soft skills are important in any organization, in this job you’ll ultimately find yourself being put to the test through your tech experience and knowledge, and your goal is to let this fuel your productivity and success. 

When I started to learn web development, I realized I had a lot of new things to learn. Coming from an arts background in college but having a life-long fascination and familiarity with computers, I knew that my English writing would not directly translate to writing code. So what did I need to do? Thankfully I was in familiar territory; I had to learn to write and to learn new languages. That meant learning new writing syntax, structure, rules, etc. From the start, I learned HTML and CSS were the backbone of the web. HTML gives structure to every webpage’s content, and CSS provides the styling. Without those two, what would the web be? Would it be?

While I was working a full-time job that was not tech-related at the time, I made a schedule for myself: at least 3 times a week I would go to a learning space or coffee shop after work to learn HTML and CSS. Yes, I visited many spaces, libraries, and coffee shops. I drank a lot of needless coffee. I researched many topics. I stumbled and learned. One night, it could take me three hours to learn a simple concept which only became a rabbit hole to other related concepts. It never seemed to end and I only had so much time in one day.

In the long run, every hurdle mattered. Once I learned something a couple of times, I started to retain knowledge, and through practice, I put it to work.

Bonus Tip: One thing I always tell my web development students is this: find a project. It can be anything — start a website about your dog, your kids, your most recent vacation, Auntie Betsy, the weather — whatever. It doesn’t matter. It doesn’t even have to be public. Just create something.

Having a pet project, even simple ones as those mentioned above, will give you a needed end-goal. You’ll start to come across hurdles as you envision what content is needed, how the website should look, how to host it, and what design you want, such as fonts, colors, assets, user experience, template layout, etc. Guess what? Each of these web hurdles and design choices may become your three hour session at a learning space, but each obstacle will reward you with practice and knowledge.

Key Takeaways:

  • Learn HTML and CSS. Interactive online platforms provide an excellent start, and they can be reinforced by coding bootcamps. If by chance you come from a graphic design background, you’ll enjoy CSS! You might soon see yourself as a web designer.
  • Learn how to write a simple HTML document from memory. The syntax will become engrained more thoroughly this way. Yes, type out the <html>, <head>, <title>, <body> and other common HTML content tags so that they become second nature. Learn how to integrate CSS into the document in-line, and through a linked stylesheet. Speaking confidently about the technical structure of an HTML + CSS page alone can help you score big in a job interview.
  • Explore JavaScript and front end web design, which will start molding you into a front end developer. What are the limits of HTML and CSS, and how does JavaScript help compliment them on the web? How can it improve your projects?
  • Explore dynamic websites to understand how a web application interacts with a database, and research different programming languages you can learn: JavaScript, Java, Python, PHP, Ruby, etc. What popular frameworks or content management systems can you explore to get started? Ultimately, this can lead to a full stack developer role.
  • Lastly, how do you get to be online given the framework or CMS? How does web hosting work? How do you deploy a web application?

3. Add to your Portfolio and Gain Experience

Once you’ve created one or two simple projects for yourself — as long as they provide a good dose of learning and experience — create something that you want to share publicly. Can’t think of anything? A personal blog or a professional resume website is a good start.

When you’ve created a website that you can share with others, get the word out. Add it to your social media profiles, including LinkedIn. Don’t be afraid to market it, and of course, improve it as new ideas and content start to flow.

My first public web project was a short story fiction website. Because I came from an arts background, it was actually my interest in creative writing that brought me to tech. I had owned a web domain for a couple of years (the “idea”), but it wasn’t until I was determined to create my own website that I took the steps to build it.

While I enjoyed writing and publishing short stories, through the project, I continued learning about web publishing, platforms and upkeep. I was public about my project and in time I had guest writers’ content on my site, and family and friends reading it. Before I knew it, I had family and friends asking me if I knew how to make a website. “Oh, you’re opening a business and want to know if I can help with the website? I’d love to”, I’d say.

At first, I built websites for family and friends, and then used that experience to get the attention of third-degree references. Ultimately, I started to freelance and gained contract work. I created professional business websites for small businesses and individuals. In the span of two years, I had decent freelancing experience, a nice group of samples from my creations, professional references, and the confidence to apply to full-time opportunities.

Key Takeaways:

  • Put to practice what you’ve learned. If you haven’t already, purchase your first domain. Choose a CMS or framework to get started.
  • Host and publish content, improve it, maintain it, and share it.
  • Add the site to your social media profiles, in the links or projects section.
  • Be open to freelance work with friends and family. Help someone improve their website. Provide web advice and guidance. Work on making someone else’s dreams come true through your new web skills.
  • Let one project breed the next. You’ll be amazed how many people and businesses need help online. After a handful of contract projects, you can start considering yourself a freelance junior web developer.

4. Be Part of a Community

Depending on the languages, frameworks, or CMS you choose to work with, be part of that community. Your presence can be digital and physical. Subscribe to pertinent tech blogs and tutorial websites on the subject to stay fresh; join online communities of tech professionals where you can learn and give help (e.g. Stack Overflow, WordPress.org); join an offline meet-up; attend a conference, coding bootcamp, and hackathon. This community experience will improve your coding skills, allow you to network, increase your chances of more freelance projects, and make you look more experienced to a potential employer.

Because I knew very little at first, I initially gravitated toward WordPress — an open source CMS. While I wasn’t programming at first, I learned the fundamentals of a front-end developer (HTML, CSS, JavaScript) and then back-end languages such as PHP and SQL. I subscribed to WordPress blogs, joined WordPress.org where I participated in forums, took tutorial after tutorial, listened to tech podcasts, and attended WordPress events. All of this helped me during the job search for not only freelance clients but also my first web development job. My first job ultimately included leading the development of event websites for a health industry corporation, and soon after, I also started to teach WordPress to others!

If you decide to start making simple websites with a CMS that is not open source, such as Shopify, Squarespace, or Wix, that’s fine too. As long as you can practice HTML and CSS at first, it will springboard you into other challenges. Eventually, I gravitated toward PHP, Python and related frameworks, and I became involved in those communities as well.

Key Takeaways:

  • Where are those who use your CMS or programming language hanging out? Developers tend to find each other online in forums, blogs and community websites. Join, say hello, and start to learn and contribute.
  • Be open to offline interaction. Look up events near you, or travel if you need to. While developers do enjoy their desks, events are very common. Programming does not have to be a solo experience.

5. Think Like a Recruiter

At this point, feel confident that you’re a junior or experienced web developer candidate for any potential employer, depending on the amount of freelancing you’ve done. Hiring managers will be interested because you have a solid working knowledge of how to make websites, you’ve built your own projects, you’ve helped create or improve others’ sites, and your community involvement shows you’re eager and motivated.

The next thing you’ll want to do is place yourself in the shoes of a recruiter. Whether it’s an in-house recruiter seeking talent for their tech company, or a staffing agency’s tech recruiter looking to find candidates for clients, your resume will not get to the hiring manager unless it first attracts a recruiter.

I landed my first web job through the help of a staffing agency’s tech recruiter who thought I’d be a good fit for a client. After a contract period, I was converted to a full-time employee. You’ll find that this is a common and realistic route.

In your resume, use keywords to be specific about the programming languages you’ve learned, including related frameworks, dependencies, tools, and software. When tech industry recruiters are looking at your resume, they want to make sure they won’t be wasting the hiring manager’s time with someone who doesn’t have specific experience in what’s required. Keywords are also how recruiters will find you.

Be open to templates. Recruiters are open to creative templates and designs as long as the content is strong. Use services such as Canva to find interesting layouts. Don’t forget to add the time you worked as a freelancer, your web links and projects, and any related education you’ve completed. Create different drafts of your resume, and get others’ opinions.

Maintain consistency across job boards and social profiles. Create a profile on 2-5 job boards. LinkedIn should go without saying — make sure the verbiage used on LinkedIn matches what you’ll send a recruiter or hiring manager on your resume. Keep thinking keywords. Consider joining other job boards such as Indeed, Glassdoor, or Monster, which are general job boards that recruiters frequent, or even tech-focused ones such as Hired, StackOverflow, or GitHub.

Be active online. Share others’ content and consider creating content of your own, such as videos, articles, and podcasts.

On the job boards, select that you’re open to being contacted by recruiters, but be subtle. Be open to a junior web developer job. Stay attentive and courteous even to opportunities that don’t align with your expectations: you never know which recruiter or employer may be the right match now or down the line.

The Opportunity is Yours

When you land a call or an in-person interview, be honest about what you know and don’t know, and be confident about what you can bring to the table. Always come prepared.

Once you have an interview, the opportunity is yours. There’s one thing left to do: ace the interview with the belief that you can walk through that door of what was once a visualization.

Learn Front-End Web Development Online

Are Coding Jobs Boring?

By

When you think about a new career in coding, what comes to mind? Do you imagine working behind the scenes at a movie studio or fashion house? The deep satisfaction of improving a life-saving medical device? The systems and engineering mindset needed to build the dashboard controls for a new smart car? 

Maybe you’re thinking of a workplace where projects are different every day, like an ad agency building websites for global brands. You may even have an app idea that could really change the landscape, if only you knew how to make it. Whatever you think a coding career might be, you’re probably right — unless you think it’s boring.

Of course, every job has its boring moments, as well as stressful ones. The good news is, once you become a proficient coder, you can begin to explore and decide on the types of coding projects that will help you thrive for years in your new career. The idea is to choose a career path that’s the right fit for your particular working style.

The variety of industries that hire programmers and developers is endless, from the energy industry to retail operations to manufacturing to social causes. The software your dentist uses to view your x-rays; the app that you use to order takeout; the computer in your car that lets you know your coolant is low; the playlist that syncs your phone to your home audio system — all of these cool innovations were made possible by teams of professional coders.

Remember, writing code is not the only programming skill out there. The individuals who built those solutions to everyday challenges have lots of different titles, from web developer to mobile developer to software engineer, or even data scientist. All of them work with code in their own ways and have their own career paths, with their own obstacles and rewards. With so many career options that stem from a shared set of programming skills, the last thing the coding field could be called is boring. The real question is, is coding the right fit for you?

Do you like learning new things?

Neuroscience reveals that our brains have something in common with technology: neither our brains nor tech are fixed, but are instead constantly changing and evolving.

Experienced senior developers are constantly studying to learn new coding skills, as new programming languages like Python become widely used, and new applications are found for existing fields like machine learning

Fortunately, you don’t need a computer science degree to start a new career programming career. Many coders and developers are self-taught, using free or low-cost resources available at their local libraries or online such as Stack Overflow. Some seek out learning opportunities at their current jobs, like volunteering to help maintain a business website or install a new database. Still others invest in themselves by signing up for a coding bootcamp with live instruction, real-time code critiques, and built-in networking opportunities.

In the end, the programmers who are most successful in this field are the ones who continuously upskill and stay current with new developments in tech. What does this mean for you? It means that a demonstrated commitment to lifelong learning and a growth mindset can be the key characteristic that sets you apart from other candidates for that first junior developer job!

Are you good at solving puzzles?

Can’t get enough of jigsaw puzzles, riddles, and crosswords? Your ability to quickly see patterns and solutions where others do not is a quality that could serve you very well in a software development or computer programming career. Successful engineers and developers have a great eye for detail, an essential skill in a field where a single misplaced bit of punctuation can stop an elite billion-user app dead in its tracks.

Is it stressful? Not for you, because you thrive on pursuing solutions when others have given up, and find it deeply rewarding to help a team resolve wicked issues that no one could fix alone. Every bug is an interesting coding challenge, and every update a chance to make something good into something even better.

Are you a musician?

If you think composing and arranging music is fun, you’re likely to find programming to be fun as well, and a good fit for your skills. Studies show that playing music can help people learn more quickly and create more elegant and creative solutions to complex problems. Trained musicians and successful coders tend to share certain core competencies: a good memory for details, the ability to sort and prioritize an incredible amount of information, and the skill to recognize and tweak patterns. A musician with programming skills can be a great team asset, proficient in both creativity and code. There are even coding courses and workshops designed especially for musicians. Who knew?

Every musician understands the importance of practicing scales before you play your first concerto. In a line of work like programming, a great way to learn is to practice writing bits of code over and over, then begin to string those bits together in sequence until you’ve composed something wonderful and new.


Consider what makes you thrive in a workplace. There will be stressful days and boring days in whatever field you choose, and to stand out in any field requires hard work. But if finding patterns, solving puzzles, or taking small perfect bits and then using them to craft something larger and much more complex sounds enjoyable to you, buckle up — a new programming career may be exactly the path that’s meant for you.

Learn Software Engineering Online

5 Steps to Getting Your First Job in Software Engineering

By

Unsure how to get a software engineering job or where to start? Landing your first job as a software engineer can seem like an intimidating milestone to reach. It feels even harder when you don’t have a computer science background and you’re transitioning from another field, especially one that you’ve worked years to develop a career in. Feelings of uncertainty come in many forms. Your inner dialog may sound like this:

“My resumé isn’t compelling enough to get a job in this new field.”
“I’m a beginner all over again, and I don’t know enough to do this well.”
“If I start over, I’m afraid I’ll fail.”
“I feel like an imposter trying to get a job in something I know so little about.”

If these are some of the thoughts you’ve had when considering a career change, you’re not alone. These are fears that most of my students have expressed in my 5 years teaching at General Assembly, and they are totally logical fears to have. Fortunately, there are clear steps you can take and definitive questions you can answer for yourself which will keep you on a path to landing a great first job in software engineering. They are:

  1. Figure out what kind of software engineering interests you.
  2. Learn the basics.
  3. Build projects.
  4. Begin applying for software engineering positions.
  5. Learn from your interviews.

1. Decide what kind of programmer you want to start out as.

You’ve decided to take the plunge into software engineering, but did you know there are many different kinds of software developers? Jobs in programming run everywhere from front-end engineering (on the design side), back-end engineering (on the server side), to security engineering, DevOps, and testing automation!

Those are some of the more common types that most companies will need to hire for, so the question isn’t, “What kind of engineer do you want to be?”, it’s “what kind of engineer do you want to start out as?” This distinction is important because you should try to work for a company that gets you going with a clear set of roles and responsibilities, but also fosters an environment that will allow you to try out other types of work too. Some of the best software developers I’ve worked with were at one point doing a completely different set of tasks at the start of their career.

So, what interests you the most?

2. Learn the basics of software development.

It goes without saying that you’ll want to acquire some knowledge in computer programming before sending out a bunch of job applications. But where to start? There are a ton of great resources out there, but I’ll outline what I think is a great approach for most people to get a good start in programming knowledge:

  1. Take some classes. Whether it’s through one of General Assembly’s coding courses, a highly rated video course on Udemy, or a coding bootcamp, it’s important to get some experience learning from an industry professional. It’s also good to be able to collaborate with other students doing a similar career change.
  2. Read a lot. The learning doesn’t stop after taking some short-form classes. After you’ve mastered the basics of programming, you’ll be able to effectively self-teach too. Get some good programming literature! Here’s a list of some great books for beginners.

You’ll want to focus your learning on the basics of programming and computer science. Key areas to educate yourself on should include:

  • Programming fundamentals: Variables, conditionals, loops, functions, etc.
  • Design patterns: How programs are structured to be maintainable and easy to reason about.
  • Popular frameworks (such as React, Angular, Express, Rails etc.) are a plus because they provide transferable skills while giving you a competitive edge by staying current. However, it’s still super important to base your education on the fundamentals of programming. A good drummer won’t learn how to play fancy fills without first learning the rudiments, and software development is no different!

3. Build, build, build!

Always have a project to work on. Apply the skills you’re learning by practicing on real-world projects. For example, if you’re reading a tutorial on how to build a user interface with React, try building your own portfolio website using React. You’ll be doing two great things for your career at the same time:

  1. Practicing and honing transferable skills.
  2. Building your software engineering portfolio with actual case studies and proofs of concept.

4. Start applying for jobs.

Software developer job openings are constantly being posted as new companies are founded, existing companies expand, and established companies evolve. When it comes to startups vs. established companies, there are some significant differences you’ll likely come across. For instance, a new startup might have more employee perks, such as flexible time off, but might also demand more weekend hours put in. On the other hand, an older established company might provide a more clearly defined set of roles and responsibilities and a better structure for employee growth.

It’s ultimately different from company to company, but the pattern I’ve seen lately is that startups provide more incentives to apply, with more initial flexibility for the employee. Keep in mind though that startups are by nature less likely to succeed long-term.

5. Use every interview as a learning experience.

You’ll start to land interviews comprised of multiple stages that will vary slightly by company but typically look something like this:

  1. Initial interview with a recruiter or hiring manager that’s usually less technical
  2. A more technical second interview with an engineer on the team, where they’ll get to know your current skill set
  3. Meeting with more members of the team which will usually include a code challenge of some sort
  4. Final interview with a company leader which hopefully includes an offer!

It’s important to remember a few things during the interview process. First of all, most modern tech companies want to hire you, not just your skills. They don’t want to just hear you rattle off a bunch of technical terms that make it sounds like you’re more experienced than you are. They want to know about you, your passions, your curiosity, your drive to learn, and your drive to grow with the company. None of those things are strictly reliant on 10+ years of experience like the job postings might say. While there is a base level of skill that is required, you’ll want the company to know that you are a good long-term fit; that you can become the software engineer that you want to be with them.

Every interview you take will be a culture fit test. Be a nice person, be curious, ask questions.

The technical part of the interview is often the scariest. During the technical interview or code challenge, sometimes you’ll have to write code by hand on a white board with people watching. It can be terrifying unless you really think about the actual purpose of the technical interview. What’s important to remember when prepping for the code challenge is that it’s designed to be hard. A well-crafted code challenge is not meant to be completed in short order. Rather, it’s meant to give the interviewer deeper insight on your current skill set as well as your ability to speak about how you navigate through a problem you’ve been tasked with solving. If you were able to finish the code challenge too easily, the company would have no idea where your skills max out at.

When engaging in a code challenge, the interviewer wants to understand your thought process for problem solving; how you might approach going from the prompt to the solution and the reasoning behind it. For a good code challenge, they want to see your journey through the problem. Of course, you do need to learn the basic fundamentals of programming to even begin a code challenge, but you’ll get to a point where you can at least show the interviewer how you’re framing the problem and coming up with a potential solution. Every interview is a learning experience.Keep these tips in mind. You’ll get better at the process, and you’ll eventually land that software engineering job where your new career will really begin!

Learn Software Engineering Online

4 Tips for Preparing for a Coding Interview

By

If you’re applying for a software engineering position of some kind, chances are you’ll encounter some sort of technical interview or coding challenge. For newer engineers applying for software programming roles, the coding interview is oftentimes the most terrifying part. However, with a few interview preparation tips and things to consider, the technical interview will seem a lot less scary, and will hopefully be a valuable learning opportunity during your job search. Let’s break down a few helpful tips:

1. Build the hard skills.

Get in the habit of regularly doing code challenges. It’s a much more effective way to prepare for the coding interview than trying to cram a bunch of studying in before the big day. It’s important to schedule time each day to attempt at least one code challenge. You’ll get better at solving them, and you’ll also get better at outlining your process and speaking to it. A few great websites to help you practice code challenges in varying degrees of difficulty include: LeetCode, Codewars, and AlgoExpert.

These code challenges help build the essential hard skills you need to technically perform well in a coding interview. If you’re applying for a mid-level position as a software engineer, you’ll want to feel pretty solid with these types of challenges in your interview preparation. If you’re gearing up for your first technical interview as a junior engineer, you’ll want at least some exposure and practice with these. 

2. Don’t forget the soft skills.

Mastery of coding challenges is only half the battle, so don’t forget the soft skills. Throughout the entire interview process, including the technical coding interview, there are a lot of things that interviewers are looking for besides your ability to code. These other skills have to do with how well you communicate, collaborate, talk about the problem at hand, your leadership skills, your drive to learn, and generally speaking, how nice you are. Soft skills are often overlooked by candidates and can be deal breakers for a lot of coding interviews.

A company that’s worth applying to will want candidates that have strong soft skills, sometimes moreso than hard skills, because they show how well a person can grow within the company and develop those hard skills over time. This is especially the case for junior software engineers.

When you practice your code challenges, see if you can buddy up with someone and take turns doing mock interviews. Practice talking through the problems as you work, asking questions, giving each other hints here and there, and revealing your ability to lead, collaborate, and persevere.

3. Acknowledge multiple solutions.

This is the “cherry on top” for an interviewer: a candidate that’s not only skilled enough to work through the problem and has a personality that fits the company culture, but can also defend their solution and mention alternative approaches. This shows that you’re not just going with what you were taught or what you read online, but that you also acknowledge that there are multiple solutions to the same problem and have considered which is most appropriate for a given context.

As an interviewer administering a coding problem, I would prefer to see the simpler solution over the best solution, as it will give me more time to talk with the candidate. Now, if that candidate can also suggest alternative approaches and defend why they selected theirs, that’s an instant win. Bravo!

An example of this might be a challenge where you’re asked to design a search function for a video streaming app. You might use an inefficient algorithm for the sake of quick implementation during the job interview, but then mention a more appropriate algorithm that would otherwise be used in real life. Speaking of algorithms…

4. Study your algorithms and data structures.

This goes hand-in-hand with the hard skills, but deserves its own section. You don’t need to be a master of computer science to ace a coding interview, but there are some standard algorithms and data structures that you should feel good about referencing, or at least mentioning and talking about. For instance:

  • How does a bubble sort work vs. a merge sort?
  • What’s the difference between a stack and a queue?
  • What’s a linked list? What about a hash table?

It’s likely that you’ll be asked any of these interview questions, so becoming familiar with and being able to speak about them to a degree is a good thing. Cracking The Code Interview by Gayle Laakmann McDowell is a great book that covers all of the essential algorithms, data structures, and how to implement and use them in sample code challenges.

The coding interview is an opportunity for you to not only show off your skills as an engineer, but also to demonstrate how well you work with others. It’s designed to simulate what it’s like to work with you on a team. So be yourself, study and practice, take a deep breath, and go crush that coding interview!


Learn Software Engineering Online

How to Run a Python Script

By

As a blooming Python developer who has just written some Python code, you’re immediately faced with the important question, “how do I run it?” Before answering that question, let’s back up a little to cover one of the fundamental elements of Python.

An Interpreted Language

Python is an interpreted programming language, meaning Python code must be run using the Python interpreter.

Traditional programming languages like C/C++ are compiled, meaning that before it can be run, the human-readable code is passed into a compiler (special program) to generate machine code – a series of bytes providing specific instructions to specific types of processors. However, Python is different. Since it’s an interpreted programming language, each line of human-readable code is passed to an interpreter that converts it to machine code at run time.

So to run Python code, all you have to do is point the interpreter at your code.

Different Versions of the Python Interpreter

It’s critical to point out that there are different versions of the Python interpreter. The major versions you’ll likely see are Python 2 and Python 3, but there are sub-versions (i.e. Python 2.7, Python 3.5, Python 3.7, etc.). Sometimes these differences are subtle. Sometimes they’re dramatically different. It’s important to always know which version is compatible with your Python code.

Run a script using the Python interpreter

To run a script, we have to point the Python interpreter at our Python code…but how do we do that? There are a few different ways, and there are some differences between how Windows and Linux/Mac do things. For these examples, we’re assuming that both Python 2.7 and Python 3.5 are installed.

Our Test Script

For our examples, we’re going to start by using this simple script called test.py.

test.py
print(“Aw yeah!”)'

How to Run a Python Script on Windows

The py Command

The default Python interpreter is referenced on Windows using the command py. Using the Command Prompt, you can use the -V option to print out the version.

Command Prompt
> py -V
Python 3.5

You can also specify the version of Python you’d like to run. For Windows, you can just provide an option like -2.7 to run version 2.7.

Command Prompt
> py -2.7 -V
Python 2.7

On Windows, the .py extension is registered to run a file with that extension using the Python interpreter. However, the version of the default Python interpreter isn’t always consistent, so it’s best to always run your scripts as explicitly as possible.

To run a script, use the py command to specify the Python interpreter followed by the name of the script you want to run with the interpreter. To avoid using the full path to your script (i.e. X:\General Assembly\test.py), make sure your Command Prompt is in the same directory as your script. For example, to run our script test.py, run the following command:

Command Prompt
> py -3.5 test.py
Aw yeah!

Using a Batch File

If you don’t want to have to remember which version to use every time you run your Python program, you can also create a batch file to specify the command. For instance, create a batch file called test.bat with the contents:

test.bat
@echo off
py -3.5 test.py

This file simply runs your py command with the desired options. It includes an optional line “@echo off” that prevents the py command from being echoed to the screen when it’s run. If you find the echo helpful, just remove that line.

Now, if you want to run your Python program test.py, all you have to do is run this batch file.

Command Prompt
> test.bat
Aw yeah!

How to Run a Python Script on Linux/Mac

The py Command

Linux/Mac references the Python interpreter using the command python. Similar to the Windows py command, you can print out the version using the -V option.

Terminal
$ python -V
Python 2.7

For Linux/Mac, specifying the version of Python is a bit more complicated than Windows because the python commands are typically a bunch of symbolic links (symlinks) or shortcuts to other commands. Typically, python is a symlink to the command python2, python2 is a symlink to a command like python2.7, and python3 is a symlink to a command like python3.5. One way to view the different python commands available to you is using the following command:

Terminal
$ ls -1 $(which python)* | egrep ‘python($|[0-9])’ | egrep -v config
/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/bin/python3
/usr/bin/python3.5

To run our script, you can use the Python interpreter command and point it to the script.

Terminal
$ python3.5 test.py
Aw yeah!

However, there’s a better way of doing this.

Using a shebang

First, we’re going to modify the script so it has an additional line at the top starting with ‘#!’ and known as a shebang (shebangs, shebangs…).

test.py
#!/usr/bin/env python3.5
print(“Aw yeah!”)

This special shebang line tells the computer how to interpret the contents of the file. If you executed the file test.py without that line, it would look for special instruction bytes and be confused when all it finds is text. With that line, the computer knows that it should run the contents of the file as Python code using the Python interpreter.

You could also replace that line with the full path to the interpreter:

#!/usr/bin/python3.5

However, different versions of Linux might install the Python interpreter in different locations, so this method can cause problems. For maximum portability, I always use the line with /usr/bin/env that looks for the python3.5 command by searching the PATH environment variable, but the choice is up to you.

Next, we’re going to set the permissions of this file to be executable with this command:

Terminal
$ chmod +x test.py

Now we can run the program using the command ./test.py!

Terminal
$ ./test.py
Aw yeah!

Pretty sweet, eh?

Run the Python Interpreter Interactively

One of the awesome things about Python is that you can run the interpreter in an interactive mode. Instead of using your py or python command pointing to a file, run it by itself, and you’ll get something that looks like this:

Command Prompt
> py
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 21:26:53) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Now you get an interactive command prompt where you can type in individual lines of Python!

Command Prompt (Python Interpreter)
>>> print(“Aw yeah!”)
Aw yeah!

What’s great about using the interpreter in interactive mode is that you can test out individual lines of Python code without writing an entire program. It also remembers what you’ve done, just like in a script, so things like functions and variables work the exact same way.

Command Prompt (Python Interpreter)
>>> x = "Still got it."
>>> print(x)
Still got it.

How to Run a Python Script from a Text Editor

Depending on your workflow, you may prefer to run your Python program directly from your text editor. Different text editors provide fancy ways of doing the same thing we’ve already done — pointing the Python interpreter at your Python code. To help you along, I’ve provided instructions on how to do this in four popular text editors.

  1. Notepad++
  2. VSCode
  3. Sublime Text
  4. Vim

1. Notepad++

Notepad++ is my favorite general purpose text editor to use on Windows. It’s also super easy to run a Python program from it.

Step 1: Press F5 to open up the Run… dialogue

Step 2: Enter the py command like you would on the command line, but instead of entering the name of your script, use the variable FULL_CURRENT_PATH like so:

py -3.5 -i "$(FULL_CURRENT_PATH)"

You’ll notice that I’ve also included a -i option to our py command to “inspect interactively after running the script”. All that means is it leaves the command prompt open after it’s finished, so instead of printing “Aw yeah!” and then immediately quitting, you get to see the Python program’s output.

Step 3: Click Run

2. VSCode

VSCode is a Windows text editor designed specifically to work with code, and I’ve recently become a big fan of it. Running a Python program from VSCode is a bit complicated to set it up, but once you’ve done that, it works quite nicely.

Step 1: Go to the Extensions section by clicking this symbol or pressing CTRL+SHIFT+X.

Step 2: Search and install the extensions named Python and Code Runner, then restart VSCode.

Step 3: Right click in the text area and click the Run Code option or press CTRL+ALT+N to run the code.

Note: Depending on how you installed Python, you might run into an error here that says ‘python’ is not recognized as an internal or external command. By default, Python only installs the py command, but VSCode is quite intent on using the python command which is not currently in your PATH. Don’t worry, we can easily fix that.

Step 3.1: Locate your Python installation binary or download another copy from www.python.org/downloads. Run it, then select Modify.

Step 3.2: Click next without modifying anything until you get to the Advanced Options, then check the box next to Add Python to environment variables. Then click Install, and let it do its thing.

Step 3.3: Go back to VSCode and try again. Hopefully, it should now look a bit more like this:

3. Sublime Text

Sublime Text is a popular text editor to use on Mac, and setting it up to run a Python program is super simple.

Step 1: In the menu, go to Tools → Build System and select Python.

Step 2: Press command +b or in the menu, go to Tools → Build.

4. Vim

Vim is my text editor of choice when it comes to developing on Linux/Mac, and it can also be used to easily run a Python program.

Step 1: Enter the command :w !python3 and hit enter.

Step 2: Profit.

Now that you can successfully run your Python code, you’re well on your way to speaking parseltongue!

– – – – –

Explore Our Upcoming Coding Programs

3 Major Uses for Python Programming

By

Python is a popular and versatile programming language. But what is Python used for? If you’re interested in learning Python or are in the process of learning how to code in Python, your efforts will be greatly rewarded as there’s so much you can do with it. In this article, we’ll explore the top three major uses for Python.

Before we dive into the uses, let’s briefly discuss why Python has so many uses in the first place. What characteristics does Python have that allow it to be so useful? Python is:

  • General-purpose: The language was designed to be “general purpose”, meaning it doesn’t have language constructs to force it into a specific application domain. Other programming languages that are general-purpose include (but are not limited to): C++, Go, Java, JavaScript, and Ruby. 
  • Readable: Python is a high-level programming language, meaning it has a higher level of abstraction from machine language and has a simple syntax and semantics (e.g., indentation instead of curly brackets to indicate blocks), which lends to its readability. 
  • Versatile: Python has a large standard library, meaning it comes equipped with a lot of specialized code to handle different tasks. For example, instead of writing your own Python code to read and write CSV files, you can use the csv module’s reader and writer objects. In addition, there are many open-source libraries and frameworks that provide additional value for Python programmers — especially those in machine learning, deep learning, application development, and game development — and scientific computing will find an ample supply of libraries and modules.

What is Python used for? There are so many different tasks that Python can accomplish. You can use it to build recommender systems, create cool charts and graphs, build restful APIs, program robots, conduct scientific computing, manipulate text data or extract text from images; the list goes on and on. 

The best way to think about uses for Python is through the most active and popular disciplines that rely on Python programming:

  1. Artificial intelligence and machine learning
  2. Data analysis and data visualization
  3. Web development

1. Artificial Intelligence and Machine Learning

What it is: Artificial Intelligence is a concept that’s more or less the idea of machines or computers that mimic human cognitive functions such as “learning” and “problem-solving.” Activities like driving a car, playing chess, and answering a question are all structured, logic-based things that humans can do that are being implemented by computers today. At the heart of this activity is machine learning, which is the process that a computer takes to learn the relationships between variables in data so well that it can predict future outcomes (usually on unseen data). If data is the input (“knowledge”), the machines understand the relationships between variables (“learning”) and it can predict what the next step is (“outcome”) — then you have machine learning. 

How Python is used: Artificial intelligence requires a lot of data, which in turn requires appropriate storage, pre-processing, and data modeling techniques to be implemented. Deep learning is the intermediary component; it’s the use of specialized models (neural networks) that can handle “big data” at scale. Python is a programming language of choice for the machine learning, deep learning, and artificial intelligence community due to it being a minimalistic and intuitive language with a significant number of libraries dedicated to machine learning activities, which reduces the time required to implement and get results. R is another popular language used by machine learning enthusiasts and practitioners, but Python tends to be more popular because of the number of machine learning and AI-related efforts coming from the tech community, which uses Python. For example, TensorFlow is Google’s AI platform and open-source software library used for machine learning and the creation of neural networks for AI purposes.

Helpful links: Machine Learning, Python Libraries for Machine Learning

2. Data Analysis and Data Visualization

What it is: Data analysis is the specialized practice of analyzing data, both big and small, for information and insights. Results of data analyses are often visualized, for the benefit of the recipient, and the tools and techniques used to communicate results visually requires the specialization that is known as data visualization. Data analysis and data visualization are not unique to any industry. It’s better to think of them as process-focused roles than industry-specific roles. After all, every company and industry has its own data to work with. What data analysis is not is the management of data from servers and storage, although some data analysts specialize in data management.  

How Python is used: Data analysis and data visualization are specialized roles that can implement Python in ways that are integral to the mission of each role. A data analyst will use Python for data wrangling and data transformation, which is converting data from its raw format to a usable, analyzable format. Then, using open-sourced libraries like Pandas, NumPy, and SciPy, data analysts can manipulate and analyze both numerical and categorical data. In order to visualize data locally, additional libraries such as Seaborn, matplotlib, ggplot, and bokeh, can be used. Some data visualization professionals prefer using Python over business intelligence platforms like PowerBI and Tableau because it’s free, easy to learn, and reduces the need to have to use additional software to create visualizations. 

Helpful links: Data Analysis in Python, Python Libraries for Data Visualization

3. Web Development 

What it is: Web development is a catch-all term for creating web applications and application programming interfaces (APIs) for the web. Web development is a highly specialized role that can be explained by the design pattern known as model, view, and controller (MVC). These terms represent the specialized layers of code of a web application or API. The model involves the code for an application’s dynamic data structure, the view involves the code that directly interacts with the user, and the controller is the code that handles user interactions and works to facilitate input going from the view to the model.

How Python is used: Python has several MVC frameworks that can be used for web application development straight out of the box, and this includes Django, turbogears, and web2py. While a web framework is not required for web development, it’s beneficial to use them as they greatly speed up the development progress. For beginners, learning Python’s syntax and the libraries needed for building a web application or API is a high level of effort, but the alternative would involve a much greater effort, as it would require the knowledge and correct use of multiple programming languages instead of Python.

Helpful links: Full Stack Python: Web Development, Web Frameworks for Python

Conclusion

We’ve explored the major uses for Python, which include machine learning and artificial intelligence, data analysis and data visualization, and web development. If you’re currently learning Python programming, then you’re off to a good start, especially if you’re considering pursuing work in any of the aforementioned areas. For those unsure how to start learning Python, I encourage you to read some of our other posts, which provide more details and tips on how to get started.

Explore Our Upcoming Coding Programs

Beginner’s Python Cheat Sheet

By

Data Science is rapidly becoming a vital discipline for all types of businesses. An ability to extract insight and meaning from a large pile of data is a skill set worth its weight in gold. Due to its versatility and ease of use, Python has become the programming language of choice for data scientists.

In this Python cheat sheet, we will walk you through a couple of examples using two of the most used data types: the list and the Pandas DataFrame. The list is self-explanatory; it’s a collection of values set in a one-dimensional array. A Pandas DataFrame is just like a tabular spreadsheet, it has data laid out in columns and rows.

Let’s take a look at a few neat things we can do with lists and DataFrames in Python!
Get the pdf here.

Python Cheat Sheet

Lists

Creating Lists

Create an empty list and use a for loop to append new values.

#add two to each value
my_list = []
for x in range(1,11):
my_list.append(x+2)

We can also do this in one step using list comprehensions:

my_list = [x + 2 for x in range(1,11)]

Creating Lists with Conditionals

As above, we will create a list, but now we will only add 2 to the value if it is even.

#add two, but only if x is even
my_list = []
for x in range(1,11):
if x % 2 == 0:
my_list.append(x+2)
else:
my_list.append(x)

Using a list comp:

my_list = [x+2 if x % 2 == 0 else x \
for x in range(1,11)]

Selecting Elements and Basic Stats

Select elements by index.

#get the first/last element
first_ele = my_list[0]
last_ele = my_list[-1]

Some basic stats on lists:

#get max/min/mean value
biggest_val = max(my_list)
smallest_val = min(my_list)avg_val = sum(my_list) / len(my_list)

DataFrames

Reading in Data to a DataFrame

We first need to import the pandas module.

import pandas as pd

Then we can read in data from csv or xlsx files:

df_from_csv = pd.read_csv(‘path/to/my_file.csv’,
sep=’,’,
nrows=10)
xlsx = pd.ExcelFile(‘path/to/excel_file.xlsx’)
df_from_xlsx = pd.read_excel(xlsx, ‘Sheet1’)

Slicing DataFrames

We can slice our DataFrame using conditionals.

df_filter = df[df[‘population’] > 1000000]
df_france = df[df[‘country’] == ‘France’]

Sorting values by a column:

df.sort_values(by=’population’,
ascending=False)

Filling Missing Values

Let’s fill in any missing values with that column’s average value.

df[‘population’] = df[‘population’].fillna(
value=df[‘population’].mean()
)

Applying Functions to Columns

Apply a custom function to every value in one of the DataFrame’s columns.

def fix_zipcode(x):
”’
make sure that zipcodes all have leading zeros
”’
return str(x).zfill(5)
df[‘clean_zip’] = df[‘zip code’].apply(fix_zipcode)

Explore Our Python Course

What is Python: A Beginner’s Guide

By

WHAT IS PYTHON?: AN INTRODUCTION

Python is one of the most popular and user-friendly programming languages out there. As a developer who’s learned a number of programming languages, Python is one of my favorites due to its simplicity and power. Whether I’m rapidly prototyping a new idea or developing a robust piece of software to run in production, Python is usually my language of choice.

The Python programming language is ideal for folks first learning to program. It abstracts away many of the more complicated elements of computer programming that can trip up beginners, and this simplicity gets you up and running much more quickly!

For instance, the classic “Hello world” program (it just prints out the words “Hello World!”) looks like this in C:

However, to understand everything that’s going on, you need to understand what #include means (am I excluding anyone?), how to declare a function, why there’s an “f” appended to the word “print,” etc., etc.

In Python, the same program looks like this:

Not only is this an easier starting point, but as the complexity of your Python programming grows, this simplicity will make sure you’re spending more time writing awesome code and less time tracking down bugs! 

Since Python is popular and open source, there’s a thriving community of Python developers online with extensive forums and documentation for whenever you need help. No matter what your issue is, the answer is usually only a quick Google search away.

If you’re new to programming or just looking to add another language to your arsenal, I would highly encourage you to join our community.

What is Python?

Named after the classic British comedy troupe Monty Python, Python is a general-purpose, interpreted, object-oriented, high-level programming language with dynamic semantics. That’s a bit of a mouthful, so let’s break it down.

General-Purpose

Python is a general-purpose language which means it can be used for a wide variety of development tasks. Unlike a domain-specific language that can only be used for specific types of applications (think JavaScript and HTML/CSS for web development), a general-purpose language like Python can be used for:

Web applications – Popular frameworks like Django and Flask are written in Python.

Desktop applications – The Dropbox client is written in Python.

Scientific and numeric computing – Python is the top choice for data science and machine learning.

Cybersecurity – Python is excellent for data analysis, writing system scripts that interact with an operating system, and communicating over network sockets.

Interpreted

Python is an interpreted language, meaning Python code must be run using the Python interpreter.

Traditional programming languages like C/C++ are compiled, meaning that before it can be run, the human-readable code is passed into a compiler (special program) to generate machine code — a series of bytes providing specific instructions to specific types of processors. However, Python is different. Since it’s an interpreted programming language, each line of human-readable code is passed to an interpreter that converts it to machine code at run time.

In other words, instead of having to go through the sometimes complicated and lengthy process of compiling your code before running it, you just point the Python interpreter at your code, and you’re off!

Part of what makes an interpreted language great is how portable it is. Compiled languages must be compiled for the specific type of computer they’re run on (i.e. think your phone vs. your laptop). For Python, as long as you’ve installed the interpreter for your computer, the exact same code will run almost anywhere!

Object-Oriented

Python is an Object-Oriented Programming (OOP) language which means that all of its elements are broken down into things called objects. Objects are very useful for software architecture and often make it simpler to write large, complicated applications. 

High-Level

Python is a high-level language which really just means that it’s simpler and more intuitive for a human to use. Low-level languages such as C/C++ require a much more detailed understanding of how a computer works. With a high-level language, many of these details are abstracted away to make your life easier.

For instance, say you have a list of three numbers — 1, 2, and 3 — and you want to append the number 4 to that list. In C, you have to worry about how the computer uses memory, understands different types of variables (i.e. an integer vs. a string), and keeps track of what you’re doing.

Implementing this in C code is rather complicated:

However, implementing this in Python code is much simpler:

Since a list in Python is an object, you don’t need to specifically define what the data structure looks like or explain to the computer what it means to append the number 4. You just say “list.append(4)”, and you’re good.

Under the hood, the computer is still doing all of those complicated things, but as a developer, you don’t have to worry about them! Not only does that make your code easier to read, understand, and debug, but it means you can develop more complicated programs much faster.

Dynamic Semantics

Python uses dynamic semantics, meaning that its variables are dynamic objects. Essentially, it’s just another aspect of Python being a high-level programming language.

In the list example above, a low-level language like C requires you to statically define the type of a variable. So if you define an integer x, set x = 3, and then set x = “pants”, the computer will get very confused. However, if you use Python to set x = 3, Python knows x is an integer. If you then set x = “pants”, Python knows that x is now a string.

In other words, Python lets you assign variables in a way that makes more sense to you than it does to the computer. It’s just another way that Python programming is intuitive.

It also gives you the ability to do something like create a list where different elements have different types like the list [1, 2, “three”, “four”]. Defining that in a language like C would be a nightmare, but in Python, that’s all there is to it.

It’s Popular. Like, Super Popular.

Being so powerful, flexible, and user-friendly, the Python language has become incredibly popular. This popularity is important for a few reasons.

Python Programming is in Demand

If you’re looking for a new skill to help you land your next job, learning Python is a great move. Because of its versatility, Python is used by many top tech companies. Netflix, Uber, Pinterest, Instagram, and Spotify all build their applications using Python. It’s also a favorite programming language of folks in data science and machine learning, so if you’re interested in going into those fields, learning Python is a good first step. With all of the folks using Python, it’s a programming language that will still be just as relevant years from now.

Dedicated Community

Python developers have tons of support online. It’s open source with extensive documentation, and there are tons of articles and forum posts dedicated to it. As a professional developer, I rely on this community everyday to get my code up and running as quickly and easily as possible.

There are also numerous Python libraries readily available online! If you ever need more functionality, someone on the internet has likely already written a library to do just that. All you have to do is download it, write the line “import <library>”, and off you go. Part of Python’s popularity in data science and machine learning is the widespread use of its libraries such as NumPy, Pandas, SciPy, and TensorFlow.

Conclusion

Python is a great way to start programming and a great tool for experienced developers. It’s powerful, user-friendly, and enables you to spend more time writing badass code and less time debugging it. With all of the libraries available, it will do almost anything you want it to.

Final answer to the question “What is Python”? Awesome. Python is awesome.

8 Tips for Learning Python Fast

By

It’s possible to learn Python fast. How fast depends on what you’d like to accomplish with it, and how much time you can allocate to study and practice Python on a regular basis. Before we dive in further, I’d like to establish some assumptions I’ve made about you and your reasons for reading this article:

  • You have little to no prior experience learning Python. 
  • You want to know how long it’s going to take to learn Python.
  • You’re interested in resources and strategies for learning Python.

First, I’ll address how quickly you should be able to learn Python. If you’re interested in learning the fundamentals of Python programming, it could take you as little as two weeks to learn, with routine practice. If you’re interested in mastering Python in order to complete complex tasks or projects, or to spur a career change, it’s going to take much longer. In this article, I’ll provide tips and resources geared toward helping you gain Python programming knowledge in a short timeframe.

If you’re wondering how much it’s going to cost to learn Python, the answer there is also, “it depends”. There is a large selection of free resources available online, not to mention the various books, courses, and platforms that have been published for beginners. More on that in a moment.

Another question you might have is, “how hard is it going to be to learn Python?” That also depends. If you have any experience programming in another language such as R, Java, or C++, it’ll probably be easier to learn Python fast than someone who hasn’t programmed before. But learning a programming language like Python is similar to learning a natural language, and everyone’s done that before. You’ll start by memorizing basic vocabulary and learning the rules of the language. Over time, you’ll add new words to your repertoire and test out new ways to use them. Learning Python is no different.

By now you’re thinking, “OK, this is great. I can learn Python fast, cheap, and easily. Just tell me what to read and point me on my way.” Not so fast. There’s a fourth thing you need to consider, and that’s how to learn Python. Research on learning has identified that not all people learn the same way. Some learn best by reading, while others learn best by seeing and hearing. Some people enjoy learning through games rather than courses or lectures. As you review the curated list of resources below, consider your own learning preferences as you evaluate options.

Now let’s dig in. Below are my eight tips to help you learn Python fast.

1. Cover the following Python fundamentals.

At a bare minimum, you (and your resource) must cover the fundamentals. Without understanding them, you’ll have a hard time working through complex problems, projects or use cases. Examples of Python fundamentals include:

  • Variables and Types
  • Lists, Dictionaries, and Sets
  • Basic Operators
  • String Formatting
  • Basic String Operations
  • Conditions
  • Loops
  • Functions
  • List Comprehensions
  • Classes and Objects

If you’re really pressed for time, all of these fundamentals can be quickly explored on a number of different websites: docs.python.org, RealPython.org, stavros.io, developers.google.com, pythonforbeginners.org. See the section below on “Websites” for more details.

2. Establish a goal for your study.

Before you start learning Python, establish a goal for your study. The challenges you face as you start learning will be easier to overcome when you keep your goal in mind. Additionally, you’ll know what learning material to focus on or skim through as it pertains to your goals. For example, if you’re interested in learning Python for data analysis, you’re going to want to complete exercises, write functions, and learn Python libraries that facilitate data analysis. The following are typical examples of goals for Python that might pertain to you:

  • Data analysis
  • Data science and machine learning
  • Mobile apps
  • Website development
  • Work automation

3. Select a resource (or resources) for learning Python fast.

Python resources can be grouped into three main categories: interactive resources, non-interactive resources, and video resources. In-person courses are also an option, but won’t be covered in this post.

Interactive resources have become common in recent years through the popularization of interactive online courses that provide practical coding challenges and explanations. If it feels like you’re coding, that’s because you actually are. Interactive resources are typically available for free or a nominal fee, or you can sign up for a free trial before you buy. 

Non-interactive resources are your most traditional and time-tested; they’re books (digital and paperback) and websites (“online tutorials”). Many first-time Python learners prefer them due to the familiar and convenient nature of these mediums. As you’ll see, there are many non-interactive resources for you to choose from, and most are free.

Video resources were popularized over the past 10 years by MOOCs (massive online open courses) and resembled university lectures captured on video. In fact, they were often supported or promoted by leading universities. Now, there’s an abundance of video resources for various subjects, including programming in Python. Some of these video resources are pre-recorded courses hosted on learning platforms, and others are live-streamed courses provided by online education providers. General Assembly produces a live course in Python that covers Python fundamentals in one week

Below I’ve compiled a list of resources to help you get a jumpstart on learning Python fast. They fall into the categories laid out above, and at a bare minimum they cover Python basics. Throughout the list, I’ve indicated with an asterisk (*) which resources are free, to the best of my knowledge.

Interactive Resources: Tools and Lessons

  • CodeAcademy: One the more popular online interactive platforms for learning Python fast. I know many Python programmers, myself included, who have taken CodeAcademy’s Python fundamentals course. It’s great for beginners, and you can knock it out in a week. It will get you excited about programming in Python. 
  • DataCamp: Short expert videos with immediate hands-on-keyboard exercises. It’s on-par with the CodeAcademy courses. 
  • *PythonTutor.com: A tool that helps you write and visualize code step by step. I recommend pairing this tool with another learning resource. This tool makes learning Python fundamentals a lot easier because you can visualize what your code is doing. 

Non-Interactive Resources

Non-interactive resources fall into two sub-categories: books and websites.

Books

In researching books, I noticed a majority of them were actually catered to existing programmers interested in learning Python, or experienced Python programmers looking for reliable reference material (“cookbooks”) or specialized literature. Below, I’ve listed only the books I think are helpful for beginners.

  • Introducing Python, 2nd Edition: This book mixes tutorials with cookbook-style code recipes to explain fundamental concepts in Python 3.
  • Learn Python 3 The Hard Way: 52 well-developed exercises for beginners to learn Python. 
  • Python Basics: A Practical Introduction to Python 3: The website says it all — this book is designed to take you from “beginner to intermediate.” 
  • Python Crash Course, 2nd Edition: This book provides a foundation in general programming concepts, Python fundamentals, and problem solving through real-world projects.

Websites

At first, my list started off with over 20 examples of websites covering Python fundamentals. Instead of sharing them all, I decided to only include ones that had a clear advantage in terms of convenience or curriculum. All of these resources are free.

  • *Google’s Python Class: Tutorials, videos, and programming exercises in Python for beginners, from a Python-friendly company. 
  • *Hitchhiker’s Guide to Python: This guide helps you learn and improve your Python code and also teaches you how to set up your coding environment. The site search is incredibly effective at helping you find what you need. I can’t recommend this site enough. 
  • *Python for Everybody: An online book that provides Python learning instruction for those interested in solving data analysis problems. Available in PDF format in Spanish, Italian, Portuguese, and Chinese. 
  • *Python For You and Me: An online book that covers beginner and advanced topics in Python, in addition to introducing a popular Python framework for web applications.
  • *Python.org: The official Python documentation. The site also provides a beginner’s guide, a Python glossary, setup guides, and how-tos.
  • *Programiz in Python: Programiz has a lengthy tutorial on Python fundamentals that’s really well done. It shouldn’t be free, but it is.
  • *RealPython.com: A large collection of specialized Python tutorials, most come with video demonstrations. 
  • *Sololearn: 92 chapters and 275 related quizzes and several projects covering Python fundamentals that can also be accessed through a mobile app.
  • *Tutorialspoint.com: A no-frills tutorial covering Python basics. 
  • *W3Schools for Python: Another no-nonsense tutorial from a respected web-developer resource. 

Video Resources

Video resources have become increasingly popular, and with good reason: they’re convenient. Why read a textbook or tutorial when you can cover the same material in video format on your computer or mobile device? They fall into two sub-categories, pre-recorded video-courses, and live video courses.

Pre-Recorded Courses

  • Coursera: A large catalog of popular courses in Python for all levels. Most courses can be taken free, and paid courses come with certifications. You can also view courses on their mobile app.
  • EdX: Hosts university courses that focus on specific use cases for Python (data science, game development, AI) but also cover programming basics. EdX also has a mobile app.
  • Pluralsight: A catalog of videos covering Python fundamentals, as well as specialized topics like machine learning in Python.
  • RealyPython.com: A collection of pre-recorded videos on Python fundamentals for beginners.
  • *TreeHouse: A library of videos of Python basics and intermediate material.
  • EvantoTutsPlus: 7.6 hours of pre-recorded videos on Python fundamentals, plus some intermediate content.  
  • *Udacity: Provides a 5-week course on Python basics. Also covers popular modules in the Python Standard Library and other third-party libraries. 
  • Udemy: A library of popular Python courses for learners of all levels. It’s hard to single out a specific course. I recommend previewing multiple beginner Python courses until you find the one you like most. You can also view courses on their mobile app.

Live Courses

  • General Assembly: This live online course from General Assembly takes all of the guesswork out of learning Python. With General Assembly, you have a curated and comprehensive Python curriculum, a live instructor and TA, and a network of peers and alumni you can connect with during and after the course.

4. Consider learning a Python library.

In addition to learning Python, it’s beneficial to learn one or two Python libraries. Libraries are collections of specialized functions that serve as “accelerators.” Without them, you’d have to write your own code to complete specialized tasks. For example, Pandas is a very popular library for manipulating tabular data. Numpy helps in performing mathematical and logical operations on arrays. Covering libraries would require another post — for now, review this Python.org page on standard Python libraries, and this GitHub page on additional libraries.

5. Speed up the Python installation process with Anaconda.

You can go through the trouble of downloading the Python installer from the Python Software Foundation website, and then sourcing and downloading additional libraries, or you can download the Anaconda installer, which already comes with many of the packages you’ll routinely use, especially if you plan on using Python for data analysis or data science

6. Select and install an IDE.

You’ll want to install an integrated development environment (IDE), which is an application that lets you script, test, and run code in Python. 

When it comes to IDEs, the right one is the one that you enjoy using the most. According to various sources, the most popular Python IDEs/text editors are PyCharm, Spyder, Jupyter Notebook, Visual Studio, Atom, and Sublime. First, the good news: they’re all free, so try out a couple before you settle on one. Next, the “bad” news: each IDE/text editor has a slightly different user interface and set of features, so it will take a bit of time to learn how to use each one.

For Python first-timers, I recommend coding in Jupyter Notebook. It has a simple design and a streamlined set of capabilities that won’t distract and will make it easy to practice and prototype in Python. It also comes with a dedicated display for dataframes and plots. If you download Anaconda, Jupyter Notebook comes pre-installed. Over time, I encourage you to try other IDEs that are better suited for development (Pycharm) or data science (Rodeo) and allow integrations (Sublime). 

Additionally, consider installing an error-handler or autocompleter to complement your IDE, especially if you end up working on lengthy projects. It will point out mistakes and help you write code quicker. Kite is a good option, plus it’s free and integrates with most IDEs.

7. When in doubt, use Google to troubleshoot code.

As you work on Python exercises, examples, and projects, one of the simplest ways to troubleshoot errors will be to learn from other Python developers. Just run a quick internet search and include keywords about your error. For example, “how to combine two lists in Python” or “Python how to convert to datetime” are perfectly acceptable searches to run, and will lead you to a few popular community-based forums such as StackOverFlow, Stack Exchange, Quora, Programiz, and GeeksforGeeks.

8. Schedule your Python learning and stick to it.

This is the part that most people skip, which results in setbacks or delays. Now, all you have left is to set up a schedule. I recommend that you establish a two-week schedule at a minimum to space out your studying and ensure you give yourself enough time to adequately review the Python fundamentals, practice coding in your IDE, and troubleshooting code. Part of the challenge (and fun) of learning Python or any programming language is troubleshooting errors. After your first two weeks, you’ll be amazed at how far you’ve come, and you’ll have enough practice under your belt to continue learning the more advanced material provided by your chosen resource. 

Concluding thoughts

By this point, we’ve established a minimum learning timeline, you know to select a goal for your study, you have a list of learning resources to choose from, and you know what other coding considerations you’ll need to make. We hope you make the most of these tips to accelerate your Python learning!

Explore Our Upcoming Coding Programs

3 Reasons Python Programming is So Popular

By

Since its introduction in the ’90s, Python has rapidly become one of the world’s most popular programming languages. Most recently, we have seen Python even surpass other languages like Java. How has a humble language like Python managed to gain so much attention? Why is Python so popular?

Some estimates claim there were over 8 million active users of Python by the end of 2018. What has created the demand for this programming language compared to Java with 7.6 million, C# with 6.7 million, and JavaScript with 11.7 million active users at the end of 2018? One way to think about using a programming language is to think about its primary use case. In the case of JavaScript, the primary function is building software for the web or the cloud. Cloud infrastructure and web development are still very common business needs. For C# and Java, these use cases are more driven to desktop application development, which has started to fall off with the rise of the mobile-first mentality of end-users.

1. The rise of analytics and Python.

With Python, the use cases are shifting to data analysis and machine learning. As Clive Humby stated back in 2006, “Data is the new oil.” The bottom line is that data science has a high value. Companies have made data analytics and data science a priority due to their abilities to maximize profits and gain better insights on business. Because of well-developed resources like the data science workhorses of Pandas and Scikit-learn, Python easily does the heavy-lifting of machine learning algorithms.

Along with ready-made tools to do the work, Python is also an incredibly readable programming language. Its syntax was explicitly designed to remove a lot of unnecessary code and emphasize making it human-readable. Python makes the development of complex programs easier to write and easier to manage, which translates directly to the bottom line of the company.

2. Why is Python so popular? One word of many: Free.

The facts that drive Python’s booming popularity: it is an open source and free to use. Developers all over the world are writing and distributing software packages in Python that small companies or individual developers can use in their projects for free. Who wouldn’t want to be able to plug into a sophisticated image segmentation library developed by Google? At no cost! Just a few years ago, similar image analysis software cost thousands of dollars and was not nearly as user-friendly.

3. It takes a village.

Python programming is easy to learn, easy to write, cheap to build with, and massive followings of programmers worldwide. It’s no wonder Python is rapidly gaining in popularity. One of the worst feelings for new developers is not understanding why their program isn’t working, but with Python, the programming and data science communities are very active. Blog posts, answer sites like StackOverflow, and groups on LinkedIn have made getting feedback and solutions to your issues easier than ever. Getting hands-on help with issues quickly, learning, and picking up better development practices are no longer a daunting task.

The best way to learn any new language is to immerse yourself. Popular programming languages like Python are no different. The more time you interact with solving real-world problems with a new language, the faster you can become fluent. There are tons of resources like YouTube videos and blog posts, but I find that there really isn’t a better-suited way to learn than hands-on teaching. You need to raise your hand and ask an instructor attuned to the Python language, programming languages, Python code, data science, python developers, artificial intelligence, programming, and machine learning, and more.

General Assembly: the bridge to machine learning.

The immense rise of use cases and companies hiring developers, allows an increase in places to learn these new skills. General Assembly has a multitude of ways to get you started on the path to learning Python and becoming a Python developer. Informal and free introduction sessions at General Assembly aim to get you running code in just a couple of hours. Part-time classes take things up a notch by giving you focused hands-on lessons twice a week, over 10 weeks — artificial intelligence will have nothing on you. For those future Python developers that are ready to take the plunge, and want a deep-dive into all things machine learning, General Assembly also offers full-time Data Science Immersive programs every quarter to learn Python code, programming, nuances of artificial intelligence — and more.

Why is Python so popular? These reasons are a very good place to start!

Learn More About Our Python Offerings