How long does it actually take to learn coding? To create a diverse portfolio that wows clients, you’ll want to showcase your talents on varying platforms. But first, you’ll need to assemble your coding toolkit. The most efficient approach for beginners is to pick one programming language and try to master it. So, what can you expect next?
Shahzad Khan, lead instructor and owner of software development and consulting firm Frame of Mind considers coding to be a life-long learning process. “Coding is a way of thinking rather than a thing you learn and implement. Once you understand that, it’s just a matter of practice. Some students will arrive at that “a-ha” moment faster than others.“
For those who can invest more time upfront, Khan recommends the intense learning environment of a bootcamp like our Software Engineering Immersive (SEI), which gives all the coding skills for full-stack web development.
“SEI will teach you everything from how to ideate and think about the user to how to implement design patterns and deploy the application to the cloud,” he says. “All that, in a nutshell, is full-stack development. You will learn at least two languages and their respective frameworks. There is also time dedicated to computer science fundamentals, so graduates have a robust exposure to concepts as they interview for their first role as software developers.”
When Python instructor, Diego Rodriguez, was working as a data analyst, he used coding to get his job done faster. “I was doing many repetitive data analysis tasks, and I knew that if I could code, I could not only get through them quicker, but I could teach others to do the same. I read “The 4-Hour Workweek” by Tim Ferriss, and that shaped my perspective on how to work. I realized that coding would allow me to do more in less time.”
He encourages beginners to start with the fundamentals and apply learning code to a personal project for the most successful — and efficient — approach.
“In as little as two weeks, you can learn enough to take on small projects like creating data visualizations using structured data. If you’re learning with a specific goal in mind, you can focus on accomplishing each step of the workflow using code.”
Rodriguez breaks down just how long it takes to learn the programming language Python here.
That’s why we’ve turned to an expert. Diego Rodriguez, data scientist and Python instructor, is here to help answer our most pressing questions.
What do beginners need to know about learning a coding language?
DR: Learning programming languages can be intimidating, so it helps to know a little bit about them to make the process of learning approachable. It is no different than learning a natural language. You start by learning syntax and basic vocabulary. You apply those concepts effectively, and then you learn new ones.
Which language did you learn first and why?
DR: I took a Java class in high school. I learned the vocabulary and syntax, but I never used it professionally or in academia, so I forgot most of it. In my data science program at General Assembly, I learned Python, and I use it almost every day, so I’d say Python is my first programming language. Python is known as a general-purpose programming language. It’s an instrumental tool for my work in data engineering, data analysis, and data science.
What is the easiest programming language to learn?
How have programming languages evolved? What makes one better than another?
DR: Programming languages were created to either suit a specific purpose or as a more general and legible language. For example, Python was inspired by Java and C, and ABC. Every new language builds on its predecessors in some ways. There may be improvements in usability, or speed, or readability. Python, for example, is more readable than other OOPs, but it’s slower to process. On the other hand, Go is similar to Python syntactically and also built on C, but executes much faster.
What is the most challenging aspect of learning to code?
DR: I think new coders can have a hard time figuring out an optimal approach to a coding problem or with debugging their code. You can do a lot with a little bit of coding knowledge, but it’s important to watch out for coding inefficiencies — writing 30 lines of code for something that could’ve been done in two lines. And in regards to debugging, it’s one of the most frustrating things about coding. But over time, you learn to not repeat mistakes and to troubleshoot your code more efficiently. The important thing to keep in mind is that both challenges are part of the learning process. Everyone experiences them!
Is it possible to teach yourself coding?
DR: Sure! I know many coders who are self-taught. But I know more who have had some formal instruction. For those new to coding, it helps a lot to have a curriculum to follow, and it’s even better if you have an instructor to guide you. As you gain coding experience, you will take on new challenges, some of which will require you to learn new techniques, libraries, or even entire programming languages. So having a self-taught mindset is an important part of being a coder. There are no prerequisites to coding, just being curious, patient, and open-minded.
Will coding save the world?
DR: Such an interesting question! I think coding has made life more enjoyable and fruitful. Those who code for a living have made tremendous contributions in fields like STEM, entertainment, transportation, and everything in-between. It’s safe to say that coding has made parts of the world smarter, healthier, and safer. If we as a society ever need saving, code may be the way to go about doing that. Things that are created to allow the survival of mankind will often be technological in nature, and therefore based on code.
So, the TL;DR?
DR: If you take anything away from this conversation, it’s that you should learn to code! I recommend Python!
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:
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:
Artificial intelligence and machine learning
Data analysis and data visualization
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.
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.
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.
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.
It’s possible to learn Pythonfast. 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:
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.
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:
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:
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 fall into two sub-categories: books and websites.
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.
Python Crash Course, 2nd Edition: This book provides a foundation in general programming concepts, Python fundamentals, and problem solving through real-world projects.
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.
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.
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.
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.
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.
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!
I also teach data science in Python. My students learn Python to build machine learning models but I’m always excited to hear of the other ways they’ve leveraged the programming language. One of my students told me they used it to web-scrape online basketball statistics just so they could analyze the data to win an argument with friends. Another student decided to expand on her knowledge of Python by learning Django, a popular framework, which she uses to build web apps for small businesses.
Before taking the plunge into data science, we all had fundamental questions (and concerns) about learning Python. If this sounds like you, don’t worry. Before I started learning Python, I spent several months convincing myself to start. Now that I’ve learned, my only regret was not starting sooner.
If you’re interested in learning Python, I want to share my biggest reasons for why you should. Two of these reasons are inherent to Python; one of them is a benefit of Python that I experienced first-hand, and some of the examples I discuss come from things I have researched. My goal is to give you enough information to help make an educated decision about learning Python, and I really hope that you choose to learn.
1. Python is easy to learn.
Long before I learned Python, I struggled to learn another object-oriented programming language in high school: Java. From that experience, I realized that there’s a difference between learning to program, and learning a programming language. I felt like I was learning to program, but what made Java difficult to learn was how verbose it was: the syntax was difficult for me to memorize, and it requires a lot of code to be able to do anything.
Comparatively, Python was much easier to learn and is much simpler to code. Python is known as a readable programming language; its syntax was designed to be interpretable and concise, and has inspired many other coding languages. This bodes well for first-timers and those who are new to programming. And, since it typically requires fewer lines of code to perform the same operation in Python than in other languages, it’s much faster to write and complete scripts. In the long run, this saves developers time, which can then be used to further improve their Python.
One observation I’ve made of Python is that it’s always improving. There have been noticeably more updates to the language in the last 5-10 years than in prior decades, and the updates have often been significant. For example, later versions of Python 3 typically benchmark faster completion times on common tasks than when carried out in Python 2. Every release in Python 3 has come with more built-in functions, meaning “base” Python is becoming more and more capable and versatile.
Learning is not an individual process; often you will end up learning a lot from “peers.” According to various sources, Python has one of the largest and most active online communities of learners and practitioners. It’s the most popular programming language to learn; it’s one of the most popular programming languages for current developers; and among data scientists, it’s the second most common language known and used. All of this translates into thousands of online posts, articles (like this one!), and resources to help you learn.
Speaking of online learning, Python is also tremendously convenient to learn. To learn the fundamentals of Python, there are a lot of learning tools out there — books, online tutorials, videos, bootcamps — I’ve tried them all. They each have their merits but ultimately having options makes it easier to learn. Once you start learning, the resources don’t stop. There are dozens of really good tutorials, code visualizers, infographics, podcasts, and even apps. With all of these resources at your disposal, there’s really no reason why you can’t learn!
To get into any of these use cases would require another post. Regardless, you might be wondering what allows Python to be such a versatile programming language? A lot of it has to do with the various frameworks and libraries that have been built for Python.
Libraries are collections of functions and methods (reusable and executable code) with specific intents; and frameworks more or less are collections of libraries. If you ask any Python developer, they can name at least a half-dozen libraries they use. For example, I often use NumPy, Pandas, and Scikit-learn — the holy trinity for data scientists — to perform math and scientific operations, manipulate and analyze data, and build and train models, respectively. Many Python-based web developers will name Django as one of their preferred frameworks for building web applications.
While it’s true that libraries are written for most programming languages and not just Python, Python’s usability, readability, and popularity encourage the development of more libraries, which in turn makes Python even more popular and user-friendly for existing developers and newcomers. When you learn Python, you won’t just be learning base Python, you’ll be learning to use at least a library or two.
3. Python developers are in demand.
Many people learn to program to enhance their current capability; others to change their careers. I started off as one of the former but became the latter. Before data science, I built digital ad campaigns and a lot of my work was automatable. My only problem was that I didn’t know how to code. Although I eventually learned how, in the process of learning Python for my work, I was presented with different job opportunities where I could use Python, and learned about different companies who were looking for people experienced in Python. And so I made a switch.
There are a lot of Python-related roles in prominent industries. According to ActiveState, the industries with the most need for Python are insurance, retail banking, aerospace, finance, business services, hardware, healthcare, consulting services, info-tech (think: Google), and software development. From my own experience, I would add media, marketing, and advertising to that list.
Why so many? As these industries modernized, companies within them have been collecting and using data at an increasing rate. Their data needs have become more varied and sophisticated, and in turn, their need for people capable of managing, analyzing, and operationalizing data has increased. In the future, there will be very few roles that won’t be engaged in data, which is why learning Python now is more important than ever — it’s one way to bullet-proof your career and your job prospects.
A lot of top tech companies value Python programmers. For instance, to say that Google “uses” Python is an understatement. Among Google engineers, It’s a commonly used language for development and research, and Google’s even released their own Python style guide. Google engineers have developed several libraries for the benefit of the Python community including Tensorflow, a popular open-source machine learning library. YouTube uses Python to administer video, access data, and in various other ways. Python’s creator Guido van Rossum, a Dutch programmer, was hired by Google to improve their QA protocols. And most importantly, the organization continues to recruit and hire more people skilled in Python. Other notable tech companies who frequently hire for Python talent include Dropbox, Quora, Mozilla, Hewlett-Packard, Qualcomm, IBM, and Cisco.
Lastly, with demand often comes reward. Companies looking to hire people skilled in Python often pay top dollar or the promise of increased salary potential.