Question Details

No question body available.

Tags

python java

Answers (19)

March 28, 2026 Score: 2 Rep: 83 Quality: Low Completeness: 70%

This might be a really esoteric modus operandi, but I think the best way to learn programming is "the hard way". First of all learn C, then OOP in Java (or C++) and ONLY then Python or Ruby. This is the way I've learned programming and, IMHO, it's the best one.

The reason is that Python and many other languages (like Ruby) abstract many uncomfortable concepts of programming, like how memory works, and helps you in many ways. Although Python is great when you need to prototype or when you manage complex things like Network sockets, if you learn how to manage memory, pointers, compiler errors like segmentation fault and structs, many other concepts will be clear. From a certain point of view, classes are nothing more than structs with functions (in a really raw way).

The goal of your C journey should be to create programs which print in a terminal a menu; when you choose an option, it prints something else, and when you select a specific operation it populates a basic data structure you've created with your own hands, for example an airport application or a restaurant with a menu and many kind of operations (add order, delete existing order, if you press add then "what do you want to add" and asks for an input...). I would say don't spend more than 3 months on learning C... but it clearly depends on how may hours you can spend on it. Just aim to learn what structs are and how to use them, maybe build linked lists to start.

The best way to learn is learn by doing, avoid watching passively or just read books without touching the keyboard; until you do not apply what you've learned, you won't clearly see the result and what you've effectively understood.

Once you feel comfortable with C, switch to Java or C++ and learn OOP. Same goal, but this time just use the OOP concepts like polymorphism and find out Pros and cons of OOP.

ONLY THEN, learn Python.

Another point is do not skip just because "it's boring". You will re-write two thousand times the same thing, visit the same documentation page twice the same day and read the same page of the book multiple times, but do it! Do not understimate your muscle memory. Code basic things, even when it feels too simple. If you build good foundamentals you will learn faster.

Coding world has many best practises, like the DRY principle, but do not worry about that while you are learning programming. Often rewriting the same, boring piece of code is more valuable than any other word.

You can learn the C programming language for free from the Richard Stallman book, which is a great starting point, or from Bro Code if you prefer videos. You should learn:

  1. Basic data types (int, char, lists...) and their syntax

  2. Basic algorithm and data structures

Java and Python are well documented and you can use the

Just a little disclaimer. I'm not saying starting from Python is bad. I've seen many people struggling going from Python to C, but it depends all on you. If you start from C you will lose your mind for the first two months, but then everything will be better and Python will seem like fresh water. I know many professors that teach Python to their students, and the reason is that it's much more simple polite than C.

March 28, 2026 Score: 2 Rep: 149,444 Quality: Low Completeness: 30%

Found on Stackoverflow (using Google):
python - Best ways to teach a beginner to program? - Stack Overflow
(it is 17 years old question)

March 28, 2026 Score: 1 Rep: 149,444 Quality: Low Completeness: 40%

I think there was many similar questions on Stackoverflow - so maybe first you have to learn how to search answers directly on Stackoverflow or using Google.

Besides you ask for many elements and answer could be very broad. And different persons may different opinion what is the best.

Other problem is that different directions may need different languages and tools: roadmap for Machine-Learning, Frontend, Data Engineer, Game Developer

March 28, 2026 Score: 1 Rep: 1,015 Quality: Low Completeness: 30%

As others have mentioned, Python is a good choice to start with. And you can learn by beginning at the very basics at The Python Tutorial.

March 28, 2026 Score: 1 Rep: 9,007 Quality: Low Completeness: 40%

Can't agree with other comments. Learn Python first. It's syntactically the easiest. Java is cumbersome by comparison and I am well versed in both. https://diveintopython3.net/ Also take a look at Hackerrank or Stack Overflow Challenges. You an use Co-Pilot to learn too. Regex SqlAlchemy/Sqlacodegen is great for dealing with databases too. You will learn functional programming and OOP quicker in Python too. Reach out to Joseph Balan - he did a Meetup with some useful PDFs

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 10%

I totally get it. I was in your shoes not too long ago, so I know exactly how overwhelming all this can feel.

For a start, pick Python or JavaScript—there are tons of free courses on YouTube, like freeCodeCamp. The golden rule here is to actually type the code yourself instead of just watching videos. Don't panic when things break and throw errors; fixing that mess is how you actually learn.

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 30%

I would recommend

  1. Learn and practice algorithms on Leetcode as it helps build strong fundamentals and is critical for interviews

  2. Pick up a small project that is fun and useful, leverage AI tools like Copilot to build it, to gain familiarity with tooling and real-world intuition

  3. Read popular books like Effective Java by Joshua Block or Clean Coder by Robert Martin to strengthen theoretical knowledge

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 30%

I would recommend:

  1. Learn and practice algorithms on Leetcode as it helps build strong fundamentals and is critical for interviews

  2. Pick up a small project that is fun and useful, leverage AI tools like Copilot to build it, to gain familiarity with tooling and real-world intuition

  3. Read popular books like Effective Java by Joshua Block or Clean Coder by Robert Martin to strengthen theoretical knowledge

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 30%

I would recommend:

  1. Learn and practice algorithms on Leetcode as it helps build strong fundamentals and is critical for interviews

  2. Pick up a small project that is fun and useful, leverage AI tools like Copilot to build it, to gain familiarity with tooling and real-world intuition

  3. Read popular books like Effective Java by Joshua Block or Clean Coder by Robert Martin to strengthen theoretical knowledge

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 10%

Thanks so much for taking the time to reply. My real world problem is understanding the complexity of integrating energy systems: Generation, Distribution and Consumption. Communications and data exchange protocols etc. for smart grids. At the moment I only have one or two hours a day to commit - but I find this all really fascinating.

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 10%

That is such a useful and comprehensive view - thanks so much for taking the time to reply. I’m quite old to start coding at 52… but I remember coding on a BBC Micro 32 K when I was a kid. I didn’t warm to coding in those days (1985) as I played a lot of sport. But these days I get a strange hit from it. I will take your advice and look at C. GG

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 0%

Thanks so much - I will take that advice 👍

March 29, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 0%

Thanks for taking the time to reply - I will look at those links 👌

March 29, 2026 Score: 0 Rep: 43,562 Quality: Low Completeness: 10%

In my opinion it doesn't matter with which language you start first. The more important part is using an IDE that directly highlights errors and provides solutions for compile problems. As a beginner you will spend a lot of time understanding why your code doesn't compile or throws errors at run-time. Reducing that time will speed-up your learning rate and reduce your "frustration level".

March 29, 2026 Score: 0 Rep: 63 Quality: Low Completeness: 0%

If you wanna truly grind hard into computer architecture or CS you could learn CS + assembly x86 before C, or learn C alongside assembly x86

March 28, 2026 Score: 0 Rep: 1 Quality: Low Completeness: 0%

There are nice courses on Udemy for a cheap price tho

March 28, 2026 Score: 0 Rep: 536 Quality: Low Completeness: 20%

Welcome to coding world!. I think something has pushed you to start coding can you identify so as we should give you specific information about your question but if not sure you can start learning python and first journey focus more on understanding concepts like variables, conditions, loops, functions, ..... don't worry much about syntax after many practices you will get familiar with syntax (we also have AI now). on way you will find a path to focus. Important is being able to use coding skills to solve real world problems.

March 28, 2026 Score: 0 Rep: 149,444 Quality: Low Completeness: 40%

Maybe find some problem on your computer and try to resolve it with Python, Java, or any other language. You will see which one is the best for you. And maybe you will have better motivation to learn it if you will have to resolve own problem.

March 28, 2026 Score: 0 Rep: 187 Quality: Low Completeness: 40%

"what language(s) to start with" so why you included the java tag?

In my opinion, the easiest language to start with is Python. There is a excellent documentation at [https://Python.org]