3. What programming language should I learn first?#
I get asked this question all the time. But here’s the truth: the first programming language you learn isn’t nearly as important as many people think it is. Here’s why.
A programming language is just a vehicle for translating your solution into a format that a computer can understand. Some languages are better for different use cases than others, but they all serve the same fundamental purpose.
That’s why if you invest the time to properly learn your computer science fundamentals, it will enable you to learn any programming language in the future. In this sense, it doesn’t matter that much which language you learn to program in first. The most important thing you can do when just starting out is to establish the right foundation.
In other words, the specifics of the language are negotiable; the fundamentals aren’t. Of course you still have to start somewhere. So I think the better question is: “which programming language is the right one for me to learn how to code?”
Some people say that Python is relatively easy to learn, while also being extremely versatile and powerful (think backend development, machine learning, and data science).
HTML, CSS, and JavaScript are also good options for beginners, and make a lot of sense for anyone who may be interested in web development.
Recently I have been keen on several newer languages (relatively speaking) like Go and Ruby. Kotlin may be a good choice if you’re especially interested in mobile development. I personally learned to code using C++ and am still a huge fan of its power and performance — but if I were just starting today, I would at least consider Rust as an alternative.
Anyway, this breakdown on our blog covers a handful of essential programming languages, and why they may (or may not) be a good fit for you.
P.S. I’d also recommend checking out StackOverflow’s annual developer survey. It’s a great place to look if you are curious about the most popular (or unpopular) and most in-demand languages and specializations!
4. What’s the hardest part about learning how to code?#
There’s no way around it: learning how to code isn’t easy. It can be very tedious and frustrating at times. However, the most surprising place where I see a lot of new learners struggle isn’t at the beginning — it’s in the last mile.
The first step is all about learning the fundamentals: problem-solving skills, logic and reasoning, foundational computer science concepts.
The second step is when you start applying those fundamentals to solve real-world problems. This part is about deploying your logic and reasoning to come up with a solution to a problem, and then translating that solution into a programming language so it can be understood by a computer.
But there’s one final step that people often miss: interview prep.
You can get a foot in the door and land an interview with a good portfolio of projects. But your success in tech interviews requires an entirely new toolbox. A lot of people don’t realize that interviewing is a skill that can be developed and practiced just like any other technical skill (I say this as someone who has interviewed hundreds of engineering candidates throughout my career).
The industry is definitely competitive. But with the right preparation and approach, any qualified candidate can be successful. Just remember — the learning doesn’t stop once you’ve mastered the basics!
5. Do I need a Computer Science degree to get a job?#
The short answer: no.
The slightly longer answer: no, but you do need to master computer science fundamentals in order to be successful in the long run.
There are many incredible courses and resources available online these days. With some structure and focus, you can simulate a formal computer science education using tools available to you on the internet.
I personally have a B.S. and M.S. in Computer Science, and I believe it has served me well in my career. But having been in the industry for a long time, and having worked with a variety of talented developers from many different backgrounds, I truly believe that you can be successful without a formal CS education.
Which brings us to another related question I get a lot:
Will self-taught programmers be at a disadvantage?#
First of all, I would actually argue that all programmers are “self-taught.” I identify as a lifelong learner, and I think most other developers would, too. In order to stay current on new technologies and stay competitive in a rapidly evolving landscape, there is no choice but to keep learning. That pursuit is what led me to create Educative — to help developers like myself efficiently learn the skills they need to continually level up in their career.
However, there is one caveat that I should note: you will likely have to work a bit harder to get in the door. You will have to be intentional about getting real-world experience through projects and open source contributions (GitHub is a great place for this). But with the right tools and hard work, you can absolutely build the resume, portfolio, and skill set you need to break into the industry.
6. How long will it take me to learn how to code?#
This depends on a number of factors — most notably the amount of time and effort you are able to invest. There is no substitute for putting in the work. (I have also found that consistent, daily practice is more effective than occasional bursts of learning).
But here are a couple other factors that typically affect the time it takes new programmers to learn.
Your Purpose & Goals#
Do you aim to become a professional software developer? Or are you just wanting to learn basic coding skills for a hobby or a specific small project? The depth of knowledge you’ll need varies significantly between these scenarios. There's also a big difference between understanding the basics and syntax of a language and mastering more advanced concepts like data structures, algorithms, and System Design. (For the latter, I can attest that it is a lifelong pursuit!)
Background & Interests#
People with a background in logic-heavy fields, such as mathematics, physics, or engineering, might find certain coding concepts more intuitive. On the other hand, those without such a background might need more time to grasp foundational concepts. That said, you don’t need to be a math whiz or have a STEM degree in order to learn how to code. All it takes is the right approach and a little work ethic.
Given these factors, here are some rough time estimates on how to become a software engineer:
Learn the basics of a programming language (e.g., Python or JavaScript): A few weeks to a few months
Become proficient enough to build simple projects: Several months to a year
Become job-ready for a junior developer position: Anywhere from 6 months with an intensive bootcamp to 4 years with a traditional university degree (I like to think that Educative offers a more accessible sweet spot between these two extremes)
Attain a level of mastery or specialization: Many years of practice, continuous learning, and real-world experience (take it from me — the journey never really ends!)
Ultimately, your Learn to Code journey is entirely your own. While some people might find certain concepts straightforward, others might have a harder time with them. The key is persistence, consistent practice, and a desire to keep learning and growing.
If you are a curious and growth-minded person, learning how to code can be a wonderful challenge and opportunity.
Here is one last analogy for today: I have always thought that learning how to code is a lot like learning how to swim.
You can’t really learn to swim or code just by watching someone else do it. This is a big reason why we don’t use videos on Educative. Instead, we place a heavy focus on coding sandboxes, playgrounds, and interactive quizzes where you can practice your skills in real-time. (You also don’t need to download any software or configure your machine — you can learn and code right there in your browser window).
Now here’s the rub: many platforms might give you the sense of swimming by handing you flotation devices. But that doesn’t mean you’re actually learning how to swim. Here’s what I mean.
It is a popular approach to get learners building projects right away. They do this with a formulaic, step-by-step process where you are given a list of commands that you are expected to implement, without much context into what you’re doing or why you’re doing it.
I believe this approach is so popular because it gives learners the instant gratification of having built something. Now I’m not saying that some gratification isn’t important (learning can never be so theoretical that you can’t see the real-world application). But what happens when the flotation devices are pulled away and you have to create something from scratch all by yourself?
Any CS professor will tell you that this “paint-by-numbers” approach is not a formula for success, nor is it a pathway to long-term retention of information. At Educative, we start in the shallow end, making sure you internalize the fundamental logic, math, and problem solving skills.
Remember: if your app is built for 3 people or 3 billion people, the underlying logic remains the same.
Why learn to code?#
The tech industry is booming, and there are many career opportunities that can help you grow. Coding is not just used in the tech industry but widely spread these days to different niches. Even if you want to sell a product or service (it could be anything), you need a responsive website to sell it online. And to create the website, you need to learn to code.
There are numerous benefits of learning to code, and we can go on and on about it, but we mention some below that might stick with you.
Career opportunities: Coding skills are in high demand across many industries, not just in technology. Fields like healthcare, finance, manufacturing, and entertainment seek professionals with coding expertise. Learning to code can open doors to roles like software developer, data analyst, machine learning engineer, and many others.
High earning potential: Many coding-related careers offer high salaries and strong job security due to the demand for skilled professionals. Additionally, the tech industry often provides flexible work arrangements, including remote work opportunities.
Global opportunities: The universal nature of coding languages means you can work with clients and companies around the world. The tech industry is global, so coding skills can open up international career opportunities.
Beginner steps for learning to code#
Now that you have your answers, it’s the perfect time to embark on your coding journey. As a beginner, consider these essential steps:
Determine the best path for your learning journey.
Begin with the basics, like HTML and CSS.
Select an appropriate language for beginners, such as Python or JavaScript.
Engage in online courses to start learning to code.
Apply your knowledge through practice.
Explore various stacks and tools to broaden your skill set.
Undertake coding projects to apply your skills in real-world scenarios (Educative projects are highly recommended at this stage).
Compile your work into a portfolio to showcase your abilities.
So if you are still wondering if coding is for you, I say take the plunge. Just make sure you’re in the right pool. Explore and choose a language to start learning to code. Check out our beginner C# course. I hope you give Educative a try.
Happy learning!