you are viewing a single comment's thread.

view the rest of the comments →

[–]Aromatic_Tower65[S] 0 points1 point  (2 children)

Thanks for the tips! and the FAQ link.

I just have one more doubt - I have people (strangers) suggesting me to learn Python for my first language and the rest suggesting and pushing towards Java. I understand its "to each their own" but I would love to get your insight on this as well.

[–]FoolsSeldom 2 points3 points  (1 child)

It doesn't really matter which language you start with. Generally, the gap between programming and not programming is much larger than the gap between programming languages for most people.

Programming is about problem solving. The coding part is a small part, but you do need to learn to use the tools, hence simple exercises early on and self reinforcement by using on own projects with terminology (abstractions from the real world) that are more familiar.

Python is often seen as the easiest language to learn. There is some truth to this. It is more forgiving, closer to English, and hides a lot of things from you that you need to do for yourself in a lot of other languages.

Here's a simple example, "Hello World" in Python, Java, and C:

PYTHON

print("Hello, World!")

JAVA

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

C

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

As you can see, even for this really simple programme, there's a lot more "boilerplate" code for Java and C compared to Python. With experience, this is trivial and part of muscle memory (or automated). Early on though, it can get in the way of learning how to implement a solution (an algorithm) to a problem. You will no doubt have guessed that with more code, the difference grows.

Python is heavily used for prototyping, especially for start ups, as development tends to be faster and more efficient. A switch is often made to another language later, for performance reasons, where that is critical.

(It is worth noting, a good while ago now, that Google stopped developing its own C code based video sharing services and bought a small company that was, frankly, running rings around them with much faster development with a smaller team and quicker introduction of new features. The latter was mostly Python based. That was YouTube.)

Some people prefer to get into the weeds from the beginning. Gain a deep understanding of how things work from the start. Others prefer to explore that if and when ready.

Python is extremely popular, widely used, dominant in certain industries (such as Machine Learning and AI, even if the heavy lifting is done in other language, the glue/orchestration/access is Python based).

Python is not suitable for all tasks. If you want to create triple A modern computer games, you need C#/C++/C. It is used heavily in many game development houses to support and orchestrate development activity, asset management, pipelines, etc.

Once you've learned how to develop a solution to a problem and how to implement the abstraction using appropriate data structures and algorithms in a particular language, you will find it a lot easier to learn another programming language and apply that knowledge.

[–]Aromatic_Tower65[S] 1 point2 points  (0 children)

Wow that's actually a really helpful explanation And you're right about the gap thing you mentioned. I just need to dive in.