How I would learn Python from scratch today
Educative's co-founder and CEO shares his top advice for beginners
Hello, Grokking Python readers. My name is Fahim, and I'm a software engineer of 15+ years and the co-founder and CEO of Educative, the hands-on developer learning platform behind this newsletter. Our team has been curating key Python information and resources for you over the past several months, but I haven't had a chance to join the conversation.
So today, I wanted to tell you a little more about Educative and address a question we often hear: how should I learn to code as a complete beginner?
If you're reading this, my answer will probably strike a chord: I believe Python is a terrific programming language for beginners looking to break into programming. No matter what language you use, however, I recommend learning certain foundational skills before working on your first line of code.
In this newsletter, I'll talk about an exciting new resource that will help you build that strong programming foundation while learning Python, along with my top advice for absolute beginners.
But first, let's go back a few years to when we were just beginning as a learning platform.
Why we founded Educative
When I left Facebook in 2015 to found Educative with my brother Naeem, we had one goal: to create world-class tech skills courses for developers like us.
At the time, we were disappointed by the quality of learning resources available for developers:
We were tired of scrubbing videos where there was minimal structure to the content and the learning was passive.
We didn’t enjoy learning from books, which we found dense and quickly became outdated.
We felt that the quality of courses on major learning platforms was subpar, because those websites weren’t specially built to support developer learning.
All of these learning options typically required additional setup and configuration.
We created Educative with developers in mind: a hands-on platform designed to help people efficiently learn valuable programming skills and level up their careers.
This fact might interest you: We built Educative in Python in 2015. Coming from my background in C++, it was a good compromise between the functionality we needed and ease of learning. Also, Google Cloud and the Google App Engine supported Python, which was crucial.
Several years and over 500 courses later, our mission is the same, and Educative aims to empower learners at all levels, even those aspiring developers who haven't started learning to code. With that group in mind, we recently introduced a new course for complete beginners that I think will interest you: Learn to Code: Python for Absolute Beginners.
This course is for beginners with no programming experience. It is designed to get you hands-on with the foundational logic, problem-solving, and computer science skills you would learn in a boot camp or university program. Best of all, you can learn online at your own pace.
The content was designed by educators with decades of experience teaching people to code. Their objective is to make it easy, intuitive, and rewarding to get started.
Essentially, we want to get you thinking like a coder before you even type your first lines of code. You will do this by practicing the logic and problem-solving skills you already have, and learning to apply them in a coding context.
These basics are core to every developer’s toolkit but often get overlooked by new learners. Internalizing foundational problem-solving skills as the first thing you do will pay dividends down the road, and it’s a basis that will enable you to learn any programming language.
In fact, it’s exactly how I would learn to code if I were just starting.
I am really excited about this course. First, I want to share my personal thoughts on what makes it such a great starting point for aspiring coders. Then I will share my personal recommendations for getting the most out of it.
Learn to Code with Educative: Python for Absolute Beginners
We started by launching six courses (more coming soon) in popular programming languages to teach fundamental coding concepts. But you're probably most interested in Learn to Code: Python for Absolute Beginners. (The course is also available in JavaScript, Java, Ruby, C#, and C++.)
To create these courses, we partnered with university instructors with decades of experience teaching undergraduate students to code. Our approach was to distill the core elements of a computer science 101 course or boot camp into a core set of problems that will get you confidently practicing your skills. (Everything is hosted on Educative’s interactive, setup-free learning platform for ease and accessibility).
You will start simply by practicing your logic and problem-solving skills. Then we will introduce a few essential computer science concepts to help you put these skills into context. Finally, you will learn how to translate your solutions into instructions that a computer can understand and execute.
This is actually the most important skill that every developer needs to learn: to see a problem, identify a possible solution, and present that solution in a way that is comprehensible by a computer. Developers use different programming languages, paradigms, and tech stacks to translate their solutions into a format that computers understand — but everything is grounded in problem-solving and logic skills.
A note about choosing a language
You may be committed to Python. If not, I advise you not to think too hard about which language to start with. The truth is that once you master your first language, it will be much easier to jump into a new one down the road. This is because the fundamentals are essentially the same in any language. Programming languages essentially allow you to translate your solutions into a format that computers understand.
We created these Learn to Code courses to help you learn the problem-solving and logic skills that underpin software development as a discipline. Knowing the specific syntax of each language is a secondary skill, one that you will pick up as you go.
In short, you will learn the essential differences between each language in these courses. However, at this level, they have a lot more in common than you might think.
My biggest piece of advice for new learners
Here is my biggest piece of advice to learners just starting out:
Take it slow in the beginning.
For many new learners, there is often a desire to try to race through new material in the first 24 hours or first week. It is worth taking the time to really internalize the fundamentals.
You will be able to accelerate faster once you build that strong foundation. Trust me, you don’t want gaps in your foundation, which would require you to relearn concepts down the road. It will take you more time in the long run — something I can speak to from personal experience! (This focus on building the right foundation is a big reason why these courses are so helpful).
One last thought: anyone can learn how to code, but you do have to be motivated to put in the work. It also helps to have great learning resources that are tailored to your needs, which also provide structure and guidance.
That’s exactly why we created these new courses. We really hope you enjoy them.
What’s next from Educative?
At the end of the day, we believe that learning to code is a lot like learning to swim: you have to jump in the pool and just start doing it. We designed these courses as a great way to get your feet wet.
Don’t worry — we won’t throw you into the deep end just yet. You will receive the structure and support you need to develop the fundamentals at a pace that works for you. These courses are easy to follow, intuitive to grasp, and will set you up for success as you embark upon your learning journey.
In addition, we have a lot more exciting Learn to Code content on the docket. Coming soon are new courses to help programmers understand classic computer science concepts (e.g., data structures and algorithms), and learn how to reach maximum efficiency and performance.
Last thing: we are always looking for feedback! Feedback helps us get better, which helps us support learners better. I love hearing directly from the learners, so please share any feedback you have in the comments.
Happy learning!
THANKS THIS IS ENGOUTHG TO GIVE ME A HEADSTART