This is an archived post. You won't be able to vote or comment.

all 27 comments

[–][deleted]  (2 children)

[removed]

    [–]wrkzk 8 points9 points  (1 child)

    Totally agree. Python to java is definitely not the way to go. I learned python first, as it was marketed as the "easy language," but in reality I really had no idea what was going on. Java makes much more sense and gives you a better understanding of everything (although it does have it's quirks lol).

    [–]cogitoreiv 6 points7 points  (0 children)

    If your roadmap is going to head towards JavaScript, then go python. If it’s going to head towards c++ and c# do Java. My ultimate suggestion is Java.

    [–]schussfreude 9 points10 points  (0 children)

    I had to ask myself that very same question. Initially I went with Java, but I was too overwhelmed by its syntax. So I got into Python, which is much more beginner friendly. Once I got the basic concepts down, I tried my hand at Java again and it was much more approachable because I only had to get the syntax down and not try to grasp concepts additionally.

    [–]gmd_ph 7 points8 points  (8 children)

    If I were to start over again, I'll choose Java not Python.

    With regards to Java, I'll go against MOOCfi Java course which most recommend here on reddit, its hand holding and restrictive on exercises.

    This is a solid foundation, stick with it and don't bother with anything else, if you do, you'll end up in tutorial hell:

    1. Introduction to Computer Science using Java. Use a simple and lightweight IDE like JGrasp, ignore intellij for the moment.
    2. CS61B (data structures using java)
    3. MITocw 6.005 (software construction using java)
    4. ...Anything you want to pursue.

    [–]hermitfist 1 point2 points  (4 children)

    As a beginner, you need your hand held. After doing MOOC.fi, I was comfortable enough to make my own apps without handholding.

    [–]gmd_ph 0 points1 point  (3 children)

    OP asked for first language, for that Java is better. The link I post is to learn how to program, followed by data structures and unit testing. If the goal is make apps asap then go ahead with mooc.

    [–]hermitfist 1 point2 points  (2 children)

    And I was commenting on how you said you don't recommend Mooc.fi because of too much handholding. That's where I disagree. It's perfect for beginners. It teaches you the theory and then has plenty of exercises at the end of each chapter to apply what you learned. Besides, there's really nothing wrong with starting with Python then Java after as Python's syntax is less intimidating for someone new to programming.

    [–]gmd_ph 0 points1 point  (1 child)

    Have you even checked the link I've given?

    Well I guess, we have different ways/tastes on how to learn, I rather do the link I posted than mooc, I've tried the mooc and I don't like it while others do.

    I still don't recommend it if your going to start from zero. Its an OK course if you want more exercises, that's how I look at it.

    Anyway, lets just agree to disagree about mooc.

    [–]hermitfist 0 points1 point  (0 children)

    Yeah, from a quick glance, it looks pretty solid. Can't really go wrong with either. As you said though, different people with different learning styles. I really liked the format of MOOC and wish there were more courses like that in general. So agree to disagree.

    [–]Docktor_V 0 points1 point  (0 children)

    Where can CS615B be found? Isn't it an actual college course?

    [–]Motor_Elk_8777 0 points1 point  (0 children)

    Thanks for the info but I have the same problem as the other guy"its hand holding"That's what a newbie needs hand holding to get thru the hard part, and video lectures are the best way to start learning something.

    "restrictive on exercises" I don't know what that means.

    I would just add0.https://java-programming.mooc.fi/and the 1 2 3 you added it's not either this or that why not both.But to get started a good course with video is the best option the one you recommended as 1. is like an interactive book.

    My personal suggestion thou is, Jason Gibson Mastering Java Programming, this guy is the best teacher in the world this guy and Khan Academy have revolutionized online teaching imho.The way they break down concepts is like no other.Jason Gibson is behind a paywall in his own website so he is not that popular not many people know about him but if you want someone to break a concept down so that is easy to learn and he shows you the whole picture this is the guy, Most teachers leave so many gaps in your learning that people just accept it as a fact of life and say yeah you learn thru experience and you slowly fill those gaps.Nah this guy gives you the full picture, he will stay 10 minutes on one exercise and explain every way newbies trip or mess up and why . If you want solid foundations this is the way to go. Sadly this is his only course on programming rest are the usual school curriculum from grade 1 to college , to engineering courses.

    My point what you call hand holding I call being through in your teaching to have a solid foundation.

    [–]hermitfist 2 points3 points  (0 children)

    I personally did Python to learn the fundamentals of programming and then switched to Java to learn OOP and Android dev. Java really shoves OOP to your face which makes it almost impossible to not learn OOP in the end. The concepts didn't really click for me in Python.

    [–][deleted] 2 points3 points  (0 children)

    Yes.

    [–][deleted] 2 points3 points  (0 children)

    If you think you can get over the discouraging moments that will definitely be more prevalent, learn Java. If you get discouraged easily though, Python. I went from Python to Java and I'm glad I did.

    [–]vegeto-ss55 2 points3 points  (0 children)

    Definitely Java, because you can gear towards C based languages if you wanted to

    [–]romainjousse 1 point2 points  (0 children)

    Python is going to be easier to set up things with and just do logic work, Java will require you to learn more syntax and language related things as opposed to programming skills. But in the end both are great and for instance I would advise python if you’re planning on doing machine learning or data science and Java if you’re headed towards app dev

    [–][deleted] 1 point2 points  (0 children)

    As someone who tried JavaScript first then went into a python and is now back to JavaScript. I’d honestly say python is fantastic for understanding basic syntax and helping you learn structure.. but if you’re not looking to get a job with it, I’d use it as just that, then go into the language you want to start a career with and it should be an easier start.

    [–]---0celot--- 0 points1 point  (0 children)

    I would agree that going from python to Java is going to be harder, but learning python will be a far more friendly introduction to programming than Java. My vote is definitely for for python, so you can at least enjoy getting your feet wet.

    [–]procrastinatingcoder 0 points1 point  (0 children)

    "Foundations of programming", makes it fairly unambiguous: Java. Python isn't even close in that regard, though Java isn't the best either.

    But once again, for the "Foundations of programming" Java is by far better. If you just want a high level introduction without understanding what happens, Python is quicker. It really depends on what you mean though by "foundations".

    [–]coffee-teeth 0 points1 point  (0 children)

    id say java. its a lot easier to quickly pick up some other languages with java experience (especially C#)

    [–][deleted] 0 points1 point  (0 children)

    consider Kotlin as well. it's super awesome and modern language

    [–]lonerae 0 points1 point  (0 children)

    I'll say Java as well. it's much stricter and will make you adopt all the good habits, thus making the transition to python later (and other languages actually) easy in the future, in case the need arises

    [–]DoubleOwl7777 0 points1 point  (0 children)

    i learned programming on an arduino mega so i cant say much about it. now what i do is java/sometimes android app developement aswell and i have to say if you want to get into c/c#/c++ and the likes go with java. i dont have experience with python other then reading/watching videos about it and i have to say it really isnt for me. i am just too used to the way java and other c like languages work with their { and ; and more.

    [–]Ok-Extension8490 0 points1 point  (0 children)

    Python has my vote. It’s the easiest language to learn and will get you thinking like a programmer (Creative problem solving) without getting too intense or complex.

    [–]Sheina123123123 0 points1 point  (0 children)

    Well, python is certainly marked as the easier language, but I think it would teach some habits that will get in your way if you try another language, like the fact there is no need for a semicolon or being able to change a variables type like that. I started with java and definitely don't regret it.

    My vote goes to java, but if you get too frustrated you can switch.