UPSB v4

Off-topic / Computer Programming

  1. Furloy
    Date: Fri, May 18 2012 20:41:20

    So the other day I decided I want to make Minecraft mods and learn computer programming with Java. After doing research, I have concluded it might be easier to learn another language such as Python, C++, or BASIC first. So what would be a good language to learn first that still is useful (like C) that would make switching/learning Java easier. I have been messing around with BASIC (since it's so basic and easy) for a few days. I would like to know Java and C++ (and maybe C) at some point. My friend just started with Java as a first language but I would like someone here who knows programming well (I know there are lots of you) to give me some advice. My dad think this is a good idea and said he will buy me a tutorial book or two (such as the "For Dummies" series). Keep in mind I am on a Mac and and using BASIC with Crossover (the trial only lasts 14 days) and have a Dell that cannot connect to the internet and is old as fuck. I have Eclipse Indigo but am not sure if that is a good version of Eclipse for my uses. My friend has the IDE version of Eclipse. If I learned another language before Java, I would need a free application that I can write that program in, and the actual program to be free.

  2. Tentcell
    Date: Fri, May 18 2012 21:01:34

    This is exactly how I started programming. I, unlike you, got over my crybabyitis and just learned java first. It's not too hard to to learn, I knew nothing before I learned java, and I learned from this guy: http://www.youtube.com/user/thenewboston?ob=4&feature=results_main This man that is linked above is really good at teaching the language (at least for me). Good luck my friend, need any advice feel free to message me.

  3. ChainBreak
    Date: Fri, May 18 2012 21:14:37

    I learned Python first. The language is easy to learn, easy to use and most DEs are free. Also there's a DE for almost every usual kind of project.

  4. Zombo
    Date: Fri, May 18 2012 21:15:49

    java is easy to learn dude... can start in it right away

  5. strat1227
    Date: Fri, May 18 2012 21:17:50

    my gf is computer-retarded and got a 5 on AP comp sci (which is java) without even taking the class, just self-studied for a few months you should be fine if you're legitimately interested

  6. webspider
    Date: Fri, May 18 2012 21:18:11

    Declaring C to be easy just because it is limited, isn't a good idea. Same as thinking C++ can't be that much harder because it is supposed to extend C. The first is mainly used for hardware, the second was used for everything else, but people found out later that the amount of programmers who were able to master C++ is incredibly small. Which is why languages like Java, C#, Python and all that started being developed. The other thing is that all programming languages worth mentioning, were built with a certain mindset. There is no language made for everything, so as a good programmer you just choose what would be the best tool for the job. Of course you could bash nails with rocks in a wall, but nobody does that. If you approach learning programming with the idea of learning the languages first you need for a job, you will probably either fail or suck. So if you want to learn the basics, Scheme (a Lisp dialect) together with the book HTDP (which you can read online) would be an option. Alternatively Python together with the official tutorial or one of the many free tutorials (LPTHW, A Byte of Python, Dive Into Python, ...) if you want something more multi-purpose. Later-on you could learn web development stuff (Javascript, Frameworks, HTML+CSS), other scripting languages (Ruby, Perl) or other functional languages (Haskell, Lisp) and start off with the stuff businesses ask for once you feel good enough for that. I'm just afraid that at the time you reach that point you might start hating these languages for being so cumbersome to use. In case you're wondering: I went the other way around, was frustrated by C, C++ and Java, discovered Python and decided to work with it for everything + some other web development technologies (including Javascript) because I'm neither programming games nor anything else incredibly number crunching. I hope this post helped you.

  7. Zombo
    Date: Fri, May 18 2012 21:20:55

    learning C is harder than Java. You'll pull your hair trying to debug C with all the memory management and pointer chasin you'll have to do. imo the difference between java and python is not so much, functionality-wise. Python is nicer to read, but Java has more support (libraries)

  8. webspider
    Date: Fri, May 18 2012 21:26:32

    Zombo, are you fucking serious about Python and Java?

  9. XYZaki
    Date: Fri, May 18 2012 21:31:23

    strat1227 wrote: my gf is computer-retarded and got a 5 on AP comp sci (which is java) without even taking the class, just self-studied for a few months
    Dude the APCS test is basically "Do you know what Java is?" and if you answer yes, instant 5. You can know fuck all about programming and get a 5.

  10. nateiskewl
    Date: Fri, May 18 2012 22:16:37

    Screw C++. It's a jumbled mess of fuck. It was a terrible decision to learn the language as my first.

  11. neoknux_009
    Date: Sat, May 19 2012 00:15:14

    i stated with vb. In uni however they taught me python first. I think as an initial language python is pretty easy to learn and get hang of the concepts. After that C# and Java I learned concurrently..and c++ and c were the logical next step. I can see the fruit in learning the languages in that direction...It was a bit frustrating at first going to c++ especially after java and c#. I think in an overall sense, c++ is the most rewarding and probably the most useful.

  12. Zombo
    Date: Sat, May 19 2012 13:58:52

    webspider wrote: Zombo, are you fucking serious about Python and Java?
    two oop languages one is interpreted, other is compiled python has more syntactic sugar ive used both, but java has more support

  13. webspider
    Date: Sat, May 19 2012 14:35:44

    - Python is truly multi-paradigmatic, Java is not - Java forces you to class-based OOP, Python does not (you can go the structured or object-oriented way and additionally use functional features while you're at it) - because of Java's approach, functional programming is a pain in the ass there (after all, there are no functions, just methods belonging to their classes) - FYI all implementations of Python compile to bytecode which gets executed by a virtual machine (so much about it being interpreted) - Python uses duck typing, Java is statically typed (one of the reasons why IDEs don't provide much of an use to Python programmers) - debugging in Java is a pain in the ass compared to Python (just look at the interactive mode) - Python does not require getters, setters and has no real support for private methods (except for its name mangling by using underscores) - try writing Java without an IDE and compare with Python - try doing EAFP in Java (yes, exceptions in Python are that cheap that they're preferably used instead of checking beforehand) - Java's APIs are incredibly cumbersome to use (compare with the standard library of Python) - boilerplate code everywhere - where are iterators, generators, list comprehensions, lambda functions, closures and all that in Java? - where is multiple inheritance and why does a language so well-known for its approach to OOP not support anything else besides interfaces to compose classes? - so Java is supposed to be statically typed, but why does it fail at run time when you pass an ArrayList of Integers instead of an ArrayList of Strings? - doesn't the previous point make the type system pointless, especially if loads of Java programmers just cast everything until the compiler doesn't complain? - why is Integer an object, but int a type in Java? - why isn't it possible to overload operators? - can you bind a method to a name in Java? - ever tried scripting or web development in Java? - do you still believe the differences between Python and Java are minimal? Oh, and to clarify: The point of Python is not writing Python code that looks like Java. Rather the focus of this language is set on rapid programming of almost everything in contrary to organizing big (business) projects with a comparatively limited language like Java. The difference between these two approaches is similiar to the difference between dictature and anarchy, playing them down makes you look like an idiot (or politician, haha).

  14. Zombo
    Date: Sat, May 19 2012 17:13:23

    this guy's goal is learn to java i dont see the reason for him to have to go through python. so yes it is exactly about "writing python code that looks like java" how else are you gonna learn java through python?

  15. webspider
    Date: Sat, May 19 2012 17:50:16

    He asked for an easier language. I find it easier expressing concepts in Python than in Java, simply because it's more expressive and doesn't have Java's stupid limitations. Switching to another Syntax isn't that much of a problem in comparision to understanding basic concepts and that's what I'm about.

  16. Zombo
    Date: Sat, May 19 2012 20:16:39

    webspider wrote: He asked for an easier language. I find it easier expressing concepts in Python than in Java, simply because it's more expressive and doesn't have Java's stupid limitations. Switching to another Syntax isn't that much of a problem in comparision to understanding basic concepts and that's what I'm about.
    no he asked specifically about learning java. you NEED java to program mods for minecraft. he asked for an easier language to learn in order to achieve his final goal, which is java. when it comes to learning java, most beginners struggle with the concept of Object-Oriented programming. But amongst the OOP languages, Java is already relatively simple so I see no reason why you would go through another language to master the OOP paradigm. and if you want to make any sort of decent projects, which is what he's aiming at with minecraft mods, you need to learn also how to use a good IDE for Java, such as Eclipse. Once you learn how to use Eclipse, a lot of the syntax readability/debugging problems of Java disappear. The main limitation imo is multiple inheritance, but doubt he's gonna need it. Can get by with multiple interfaces and abstract classes. Don't think he's be gonna be making clean code anyway Realistically, the fastest way to learn Java is to simply learn Java here. No intermediate language needed.

  17. webspider
    Date: Sat, May 19 2012 20:57:49

    Thank you for pointing out that OP might not need to learn any intermediate language. But wait a second. [QUOTE="Zombo"]no he asked specifically about learning java. you NEED java to program mods for minecraft. he asked for an easier language to learn in order to achieve his final goal, which is java.[/QUOTE] Did you just state that an easier language to learn Java would be Java? What the flying fuck. How am I supposed to understand this ಠ_ಠ

  18. strat1227
    Date: Sat, May 19 2012 21:17:25

    webspider wrote: Did you just state that an easier language to learn Java would be Java?
    No you misinterpreted. "his final goal, which is java" He's saying java is his final goal, not that it's an easier language than java.

  19. Zombo
    Date: Sat, May 19 2012 21:21:34

    webspider wrote: Thank you for pointing out that OP might not need to learn any intermediate language. But wait a second. Did you just state that an easier language to learn Java would be Java? What the flying fuck. How am I supposed to understand this ಠ_ಠ
    op thinks there's a shortcut to learning java by learning an intermediate language. my advice: there are none really, fastest way is to just learn java directly. its easy enough to be used a "gateway language" imo the #1 mistake students make when they learn java is they use a crappy editor when programming their course project. Although there are benefits to start out with just a simple text editor just to understand the language (making snippets). Once you're up to speed, use a real IDE like Eclipse to avoid all the tediousness of writing Java, it negates a lot of the syntactic sugar advantages of Python IMO. The on-the-fly compile and error checking by Eclipse especially is immensely useful, catches stupid errors imemdiately. My plan to learning java would be: 1- learn java with just text editor, learn how compile works, etc 2- learn how to use eclipse 3- start programming your minecraft mods using eclipse+java 4- (optional) learn how to use cvs/svn/git if working in team. also java strong library support means you don't need to program a lot of the stuff if you find the right libraries.

  20. Furloy
    Date: Mon, May 21 2012 20:18:14

    Sorry I haven't replied sooner, I was out of town and Internet was limited. Anyways, I have learned BASIC fairly well and started learning Java the other day. @Tentcell2 I wouldn't say crybabyitis I was just wondering if there is a better language to learn that would make Java easier. My final goal is Java but I would like to learn HTML and C++ to for fun. I know someone who said if I learned HTML they would pay me to code their website. Good money too. So yes, I will be learning Java first.

  21. webspider
    Date: Mon, May 21 2012 20:49:22

    I find it funny how you compare programs with space ships. Some day you will notice that there are errors even Eclipse won't notice at first, so go and test everything. HTML and C++? For fun? And getting paid for coding HTML? Sure it's only HTML and not HTML+CSS+Javascript+PHP? edit: Oh, look what I've found: Conjcraft: A Minecraft Mod implemented in Clojure.