How I would learn to code (if I could start over)
Want to learn how to code but don’t know where to start? I recommend learning to think like a coder first.
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 career.
Over the years, we have learned a lot about how to teach coding skills. And as we grew, we kept hearing the same question from our users: when are you going to create courses for complete beginners?
We took this suggestion to heart, and set out to find the best way to teach people coding fundamentals — in a way that was engaging, hands-on, and supports long-term growth.
That’s why I am so excited to introduce Learn to Code with Educative.
These courses are for beginners with no programming experience. They are designed to get you hands-on with the foundational logic, problem solving, and computer science skills that you would learn in a bootcamp 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. 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 out.
So before we dive in, here is a quick overview of what I want to talk about today:
Learn to Code with Educative: Exploring the courses
What language should I start with?
My biggest piece of advice for new learners
I am really excited about these courses. First, I want to share my personal thoughts on what makes them such a great starting point for aspiring coders. Then I will share my personal recommendations for getting the most out of them.
Now let’s check out the courses.
1) Learn to Code with Educative: Explore the courses
We started by launching six courses (more coming soon). Each course uses a popular programming language to teach fundamental coding concepts.
Learn to Code with Educative
To create these courses, we partnered with university instructors who have decades of experience teaching undergraduate students to code. Our approach was to distill the core elements of a computer science 101 course or bootcamp down 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 simple 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 on.
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.
So, do you want to learn how to code but don’t know where to begin? Let’s talk about which language you should start with.
2) What language should I start with?
A lot of people ask me what language they should start with. Here is how I would think about it:
If you don’t already have a favorite language, I recommend starting with Python or JavaScript.
Those are the easiest two languages to learn, so that’s usually where I tell beginners to begin. Next easiest would probably be Ruby, followed by C#, then Java, then C++. (My personal preferred programming language is actually C++, but I would recommend that beginners choose a simpler language if they are starting from scratch.)
All of these languages are very popular and are used in major sites and real-world scenarios. Don’t 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 to help you learn the problem solving and logic skills that underpin software development as a discipline. Learning 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.
3) 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. I believe that 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 I think these courses are so helpful).
One last thought: anyone can learn how to code, but do you 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 how 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 coming soon. Coming soon are new courses to help programmers understand classic computer science concepts (e.g. data structures and algorithms), as well as learn how to get 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 reach out to me with any feedback you have.
I will share more thoughts about learning to code (including more of my tips and recommendations) in the coming weeks.
In the meantime, happy learning!