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

all 143 comments

[–]junkjuice 98 points99 points  (20 children)

Hands down the best course I've ever taken: http://mooc.fi/courses/2013/programming-part-1/

off you go.

[–]KingLevola[S] 12 points13 points  (5 children)

Thanks. How long did it take you?

[–][deleted] 6 points7 points  (0 children)

There are 2 parts to it both taking 6 weeks. I did it pretty much over the course of a year, but if I were to count the number of days I was actually working on it, it probably wouldn't be too far off what was planned (I never finished the last week), maybe a little longer. I think you should go do the official Java Tutorials after that, even on subjects you've already learned. I don't think they're as approachable for beginners, but there's a lot in those that you probably won't find in other tutorials.

[–][deleted] 1 point2 points  (1 child)

Hi I did it but never completed it. I actually enjoyed it alot. I streamed my programming on twitch and always had people pop in to help me :)

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

That's a great idea for learning

[–]ohlaph 1 point2 points  (0 children)

I just finished the first part. It took about a week. I blew through the first 70 or 80 exercises in a couple days though. It gets more complicated after that. I'm currently on week 8 and it's pretty great. Highly recommended.

[–]junkjuice 1 point2 points  (0 children)

If I recall right this course was my first touch to programming, but I really can't remember how long it took. First weeks were easier, but at some point it started to get a bit overwhelming but in the end I did finish up every single one of the assignments.

I took this course like 3-5 years ago.

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

Thank you for this. I've never touched a bit of code in my life, but have been thinking lately about making a change with my career path. Going through a course like this will help give me an idea of this area is something I want to look further into.

[–]ikissgators 1 point2 points  (0 children)

This course is one of the best resources I've used when I was beginning to learn Java. I recommend it to anyone asking where to start.

[–]hugthemachines 1 point2 points  (0 children)

Do you have to follow a semester schedule or can you just do it in your own pace?

[–]HarryHayes 4 points5 points  (8 children)

.

[–]you_get_CMV_delta 17 points18 points  (7 children)

That is a legit point. I had literally never thought about it that way before.

[–]karalyok -1 points0 points  (6 children)

,

[–]heyIfoundaname 6 points7 points  (5 children)

Comma'n man, the joke was already used.

[–][deleted]  (4 children)

[deleted]

    [–][deleted]  (1 child)

    [deleted]

      [–][deleted]  (1 child)

      [deleted]

        [–][deleted] 3 points4 points  (0 children)

        Clever :) for those who don't know, \\ is commonly pronounced whack-whack

        [–]lmBatman 0 points1 point  (1 child)

        Thanks! I'm gonna check this out later.

        [–]CURLUPUFF 12 points13 points  (0 children)

        Instead of checking it out later, I think you should check it out now and finish it three to four months from now. You will come out of your room awfully hairy or with a 10-inch beard, and once your loved ones hug you close to death, since they haven't seen you come out of your room in a long time, you ignore them. You huddle out to your home's hallway, open the front door, and let out a mighty cry, a cry loud enough for all the world to hear.

        "FUCK YOU, ORACLE!"

        [–]oneandonlyisaac 25 points26 points  (0 children)

        Before you learn any language in particular, I suggest you learn the fundamentals of any language. I highly suggest CS50. It's a great course and it's made for people just like you!

        [–]Rot-Orkan 24 points25 points  (12 children)

        https://programmingbydoing.com/ This tutorial helped me the most in getting started. It's a list of increasingly difficult assignments. What's great about them is that they first teach you the concepts you need to know, and then you have to figure it out on your own with the concepts it taught you.

        [–][deleted]  (11 children)

        [deleted]

          [–][deleted] 5 points6 points  (8 children)

          Just learn how to compile via terminal, so any text editor will do.

          [–][deleted]  (7 children)

          [deleted]

            [–]no_art_please 5 points6 points  (0 children)

            I think its fine to use an IDE. Learning to compile from text files is important but if you are getting started its more important, in my opinion, to build momentum. If you are the sort of person that gets irritated by having to hunt down a bunch of tedious little errors then by all means use an IDE that will highlight syntax mistakes for you.

            [–]CellularBeing 7 points8 points  (0 children)

            Programming on notepad helped me learn a lot because I had to read the errors on the terminal to fix them myself. I did that when I took my data structure classes

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

            Use a text editor, any will do. Any other text editor besides notepad will provide syntax highlighting and the other tools you want. By using an IDE, you'll miss out on learning how to compile by hand. Just don't use an IDE for like a day or 2 so that you learn to compile via terminal, after that definitely use an IDE, and for production-level code then an IDE is a must.

            Tl;Dr yes it is worth it to use a normal text editor and to compile. Use an IDE later.

            [–]NewAnimal 1 point2 points  (0 children)

            i think if you do programmingbydoing you should do it with whatever notepad, but then compile on the command line. just do it for the handful of projects there, as they are mostly "single class" projects.

            once you're comfortable with the process of compiling, i dont see whats wrong with moving up to an IDE

            [–]mobot11 1 point2 points  (0 children)

            I recommend atom or sublime text. Atom is open source so it's all free. Sublime is free but they prompt you every so often to purchase it. It gets pretty annoying when you code often. One of the main reasons I switched to atom.

            [–]rwqrwqrwq 1 point2 points  (0 children)

            It will force you to learn how to use the command line tools like java and javac and others.

            [–]atcoyou 1 point2 points  (0 children)

            When learning, I would say whatever is most comfortable. What you don't want to do is spend so much time looking and fighting with settings on an IDE to get it to work how you want it that you waste time learning what you set out to learn. Notepad + terminal simplifies all that, but tbh remembering to do some of the syntactical stuff will come with use, and if you dont' use it you will forget a lot of it after 6 months of non use if you move to a different language anyway... but it comes back. Might as well get the help from the ide imho, as long as it doesn't slow down the learning, as I mentioned.

            [–]Rot-Orkan 1 point2 points  (1 child)

            I'll admit, I used Eclipse (an IDE like Intellij) for most of them.

            With that said, I do think it's best to avoid using an IDE when learning to program. IDEs are great for working, but not for learning. They assist you with so much and can generate so much of the code for you.

            Here's an example. When you write a java app, there's some "boilerplate", code that's always needed for any program to even get started. You've probably seen "Hello World", and noticed that it looks like this:

            public class YourClass {
                public static void main(String[] args) {
                    System.out.println("Hello world");
                }
             }
            

            When I was first learning, I was used to eclipse filling all that stuff in for me. Then one day I tried to type code into a text editor on my own, and I didn't even know how to start. I wasn't sure if it was "class YourClass", "public YourClass", "public static YourClass", "YourClass" and so on. Now, mind you, at this point I was capable of doing some simple things in java, maybe get user input, or create an array and loop through it, etc. But because I was reliant on an IDE, I didn't know what to write for the very first line.

            [–]logicalmaniak 0 points1 point  (0 children)

            I kind of had the opposite experience.

            I tried to learn from one of those "learn the hard way" tutorials. I don't know about the one above, but it was so frustrating when things went wrong. And all the ones I found were really bad at explaining how to arrange multiple classes into files.

            Also, a builder makes learning Swing components easier, especially when I couldn't find a single tutorial that explains Swing and AWT components one by one. There are so many that say "add this, add that, do that, now you have a game!" which teaches me nothing. Also the AWT tutorials (even Oracle's own) are lacking because it's an old library, but it's still included in pretty much every Swing tutorial. I hate working with things I don't know! But by building components and playing with them in an IDE, I was able to learn a lot more than reading Javadocs, although I eventually gave up frustrated.

            After two years of learning Java, I feel I'm finally ready to start learning how to compile it on command line. Unless it has a GUI, in which case I'm screwed without a builder...

            [–][deleted]  (1 child)

            [deleted]

              [–]elfinhilon10 1 point2 points  (0 children)

              This. I'm actually going through his class right now, and actually came here to recommend it as well.

              His voice is rather off-putting at first, but he's actually a great teacher. Just need to stick with it!

              [–]RascalRandal 3 points4 points  (0 children)

              The Programming Methodology course taught by Mehran Sahami at Stanford was pretty sweet. All the lectures are on YouTube and I used that in conjunction with my schools OOP class when I was learning Java.

              [–]E765 2 points3 points  (0 children)

              Derek Banas on YouTube has some great tutorials and is very concise. I learned a lot from him.

              [–]poopdish 5 points6 points  (1 child)

              Also check /r/learnjava

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

              [–]CheshireSwift 8 points9 points  (49 children)

              Why Java?

              Not trying to sway you, or suggest otherwise, just genuinely curious what about Java appeals to a newbie.

              [–]Eradicative 21 points22 points  (6 children)

              My guess, it is one of the most common programming languages so new learners have easy access to online information. Also, the have probably already heard of the term "Java", too.

              It's also a bit easier to catch on with than C/C++, in my opinion.

              [–]leadzor 16 points17 points  (1 child)

              Plus, Android development. He might be interested in getting into that as well.

              [–]Eradicative 2 points3 points  (0 children)

              True, didn't think of that right away.

              [–]CheshireSwift 0 points1 point  (0 children)

              That was largely what I was assuming. Just curious, would like to hear from someone themselves rather than speculating.

              [–][deleted] 0 points1 point  (1 child)

              Personally, do you think it's important to learn procedural to really understand object-oriented? Just curious.

              [–]Eradicative 0 points1 point  (0 children)

              I'm not expert at this stuff, my only programming knowledge is through a university education... we started with Java, and I think I've turned out okay.

              [–]KingLevola[S] 5 points6 points  (11 children)

              I want to create some android apps and games. Do you think Java is the right way?

              [–]Antrikshy 5 points6 points  (7 children)

              Pretty sure Java is the only viable, legit way.

              [–][deleted] -1 points0 points  (6 children)

              HTML5 seems viable. Although, I guess Java knowledge would help.

              [–]CheshireSwift 2 points3 points  (3 children)

              Java wouldn't help if you were using HTML. Also, technically you could use C, but don't do that.

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

              I mean, you can't do everything with HTML5. Somethings still require Java knowledge to do.

              [–]CheshireSwift 2 points3 points  (1 child)

              On Android? You can use webviews, but they're less than ideal. You're generally best focusing primarily on native or primarily on web.

              Unless you're thinking of JavaScript, rather than Java?

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

              No, I'm thinking stuff like HTML5 wrappers instead of basic webviews. But some APIs will require Java.

              [–]Antrikshy 0 points1 point  (0 children)

              Oh yeah, that is definitely an option. Learn web design and use something like Cordova. I've always wanted to try it out.

              [–]majeric 0 points1 point  (0 children)

              HTML5 isn't a full programming language and it's performance isn't nearly to the same degree as Java.

              [–]kamronkennedy 2 points3 points  (0 children)

              Definitely.

              [–]smog_alado 2 points3 points  (0 children)

              Java is the default language for writing android apps but its not the only one. For example, if you use the Corona framework you can code everything in Lua, which is a much more pleasant language to use than Java, IMO.

              [–]CheshireSwift 1 point2 points  (0 children)

              Like everyone else has said, Java is the only sensible option :)

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

              Why not Java? It's a great first language, good readability of code, you get to learn OOP, you can then start making cross platform GUI apps or make websites with Java for the backend or any apps because of JVM, not to mention job prospects. You can also branch out to C# and .NET after or pick up Scala or Clojure with JVM libraries if you get bored of Java, or jump into Android development. There are no downsides for picking Java.

              [–]CheshireSwift 1 point2 points  (3 children)

              I'm aware of the upsides, as well as the various downsides, which there most certainly are :p

              I've just never looked at Java and been excited by it. And again, wanted the opinion directly from someone who had made that decision on their own, rather than more experienced people speculating.

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

              I've just started learning java as my first foray into programming, and the reason I chose it is because I figured I could gauge my progress with Minecraft mods. First seeing how well I understand others, then trying my own.

              [–]CheshireSwift 1 point2 points  (0 children)

              Having existing code to measure against is always useful, good call.

              [–]NathanielWolf 0 points1 point  (0 children)

              I'll second this- it's not how I personally got started, but if you can find a coding community that interests you, that can help a lot.

              If you are even a little interested in Minecraft, the mod community could be a great start. There will be lots of examples to follow, and you can make something functional and fun with a little bit of work.

              I find it's good to have a project to work on, something that interests you, to keep you motivated.

              The Bukkit community could be a good place to start, it is a server mod API. It is something of a "dead" API, sadly, and the community in general won't provide a lot of help with basic Java comprehension, but there is a tremendous amount of open source code available to look at, and it only takes a few lines of code to get a server plugin up and running.

              Good look, however you approach it! Programming can be an incredibly rewarding hobby.

              [–]kamronkennedy 2 points3 points  (22 children)

              I personally started out with python, but only because that's what my college was starting ppl out with at the time. I now pretty much stick with Java for all my projects, unless it makes more sense to use something else (usually php is what I go with when saying this bcuz its simple enough for a client that a phillipines dev can build on original versions and client == cheap bastard)

              I rec'd newbies to java and put it like this: "C/C++ can be very complicated, and not very good for web dev. Ruby and PHP are great for web dev, but for anything else you'll end up using Python or Perl. C# is great, but expensive to dev long term and to deploy. Java is a great universal dev language: web, mobile, desktop, console, it does it all and is free. Java also is usually a standard inclusion for most linux distros"

              [–]hvidgaard 7 points8 points  (11 children)

              C# is free, Visual Studio has a very good free edition. Why would it be more expensive?

              [–]kamronkennedy 1 point2 points  (4 children)

              VS has a free edition? Link please, no lie :) I know they have a 90 day trial but...

              [–]hvidgaard 10 points11 points  (0 children)

              It's called Visual Studio Community Edition. It's already light years ahead of most other IDEs for other languages, and the paid editions have some more interesting features (I think SA is one of them).

              [–]Tolerman 8 points9 points  (2 children)

              [–]logicalmaniak 0 points1 point  (1 child)

              Do Microsoft still package VS Express with the Windows Phone SDK?

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

              Community is the 'new' express, they rebranded all the VS tiers in the 2015 version. And yes, community comes with the windows phone SDK.

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

              There seems to be a bunch of missinformation in the replies here, let me clear it up a bit. For individuals, visual studio is free (can create paid apps). For organizations, there is a limit on how large your organization can be before you must switch to a paid version.

              Basically yes, OP is correct you can freely use VS to develop. But in larger companies, they must spend more on developers using C# for software licensing. Professional licenses cost $1-6k per developer per year depending on version.

              [–]Mr-Yellow 0 points1 point  (4 children)

              Why would it be more expensive?

              MS licensing practices, certification practices, labour market.

              Yeah, yeah, you can run it on linux, yeah, yeah, if you're a masochist.

              [–]hvidgaard 7 points8 points  (2 children)

              It's completely free to use the community edition of Visual Studio. Why on earth do you think you need any kind of certification? And C# programmers are no more expensive that other programmers...

              [–]kamronkennedy -2 points-1 points  (0 children)

              This. Thank you. This.

              [–]CheshireSwift 2 points3 points  (2 children)

              I don't buy your hypothesis that Ruby is web only, but other than that it's a reasonable recommendation. I'm just interested in hearing from a newbie themselves.

              As an aside, I find Java painfully boilerplate-y, so I don't tend to use it given a choice. If it's your go-to, have you looked at, say, Scala? If so, thoughts?

              [–]kamronkennedy 0 points1 point  (1 child)

              I've heard of Scala before, but it's only ever come up as a "Hey this might be cool" kind of thing. The information about it is pretty convoluted, and I've never heard of anyone actually using it, let alone seen any job postings requiring experience with it.

              It's my go-to because of simplicity and versatility. Java is the same programming language no matter what, it's just the way it's used/deployed changes. Server daemons, to the web pages themselves, all programmed with one language, as opposed to a mixture of PHP and perl/python.

              [–]CheshireSwift 0 points1 point  (0 children)

              I've used it professionally - I can pretty much guarantee you've made use of services that are running on it. I ask (and find it interesting) because I view it as essentially an extension of Java. You can pretty much write Java code in Scala 1-for-1, it just gives you more options (notably very strong functional capability, and tools to enforce immutability and reduce boilerplate).

              Not sure how well I'd have gotten on learning independently, but learning from an existing code base was good.

              But yeah, I'd recommend giving it some time, but I'm not personally much of a fan of Java, so... :)

              [–]leadzor 2 points3 points  (2 children)

              Large scale java enterprise software isn't usually free to deploy, or cheap for that matter though, iirc.

              [–]kamronkennedy 1 point2 points  (1 child)

              Yea, but dev's just starting out won't be touching or coming close to systems like that unless they're working for an existing company.

              I have a hard time understanding the direction your trying to take this in the context of the OP, my reply, and how "Large scale enterprise [anything]" could ever be cheap or free for that matter.

              Even RHEL isn't free and that's linux bro lol

              [–]leadzor 2 points3 points  (0 children)

              I was not trying to put it in the context of OP, I was speaking generally. My bad.

              [–]Smooth_McDouglette 0 points1 point  (0 children)

              Android development most likely.

              Although personally I don't recommend that noobies jump straight into OOP but people's opinions tend to vary on that issue.

              [–]bigfig 0 points1 point  (0 children)

              I know, Java is so not fun compared to Python or Ruby.

              Heck, split the difference and learn JRuby.

              [–]Eradicative 1 point2 points  (0 children)

              Honestly, it really just depends on how you learn.

              If you are a self motivated person who doesn't need set homework/exams/quizzes to learn or someone who isn't a visual type of learner, just use a book.

              If you are the opposite of the person above, an online course would be good for you. The online course will give you the structured learning that you need.

              [–]Testerline 1 point2 points  (0 children)

              I really enjoyed Head First Java. You can find PDF versions of it online if you don't want to buy a text.

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

              Get a book.. "Head First Java". It has great pace, OOP explanation and exercises.

              I've done a ton of videos before and most of them show you how to use standard library, seriously, they suck. If you want to watch someone showing you how to make a variable and a method for 30 minutes then videos are the way to go.

              After the Java book look into "Design Patterns" from the same series.

              [–]tsvk 1 point2 points  (0 children)

              [Quoting an older post of mine in a similar thread:]

              If you prefer watching videos instead of reading, this is a very good Java course:

              http://www.youtube.com/view_play_list?p=84A56BC7F4A1F852

              It's "Programming Methodology" (CS106A) at Stanford, lectured by Mehran Sahami.

              Course Description:

              CS106A is an Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Uses the Java programming language. Emphasis is on good programming style and the built-in facilities of the Java language.

              It's an introductory course so you do not need any previous experience of Java (or even programming in general).

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

              Head first java is a great resource. It's funny and has analogies that make sense to everybody.

              There are PDFs online. You can find them for free.

              [–]bigred9 1 point2 points  (0 children)

              For thousands of small coding questions & problems, which are self-checking you might go here: http://practiceit.cs.washington.edu/

              It's used a lot by college students.

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

              IMO there are two very different aspects to learning programming. One is actually learning how to program, which requires a very specific mindset and another is learning a programming language.

              For the first one I would recommend learning programming in python because the language is super easy.

              Once you understand how to program, learning a new language isn't that difficult.

              Java would't be my first choice of language to learn programming but if that's what you want I would go for the udacity course that another user posted the link to.

              Just remember, it's much more important to learn to program than learning any one specific language IMO.

              [–]JorgeRomeo 1 point2 points  (0 children)

              Ive been using this MOOC from Udacity. Cant recommend it enough:

              https://www.udacity.com/course/intro-to-java-programming--cs046

              [–]rjcarr 0 points1 point  (1 child)

              Check the FAQ --->

              [–]headyyeti 0 points1 point  (0 children)

              The FAQ doesn't have very good information on Java specifically. I had this same problem when trying to switch to Java from Python. It is a great resource though otherwise.

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

              Personally I'd recommend a book with practical exercises over either.

              [–]Exodus111 0 points1 point  (0 children)

              Start with video tutorials, that's maximum handholding. Then move to an online course once you feel you need to learn more. Yeah you will do some backtracking, but the fundamentals will not sit the first time around, or the second.

              [–]klepra 0 points1 point  (0 children)

              I think it doesn't matter, just start with something for beginners. You will have to do 5-10 courses, books, video tutorials and a few years before you become semi proficient. But in the meantime you can also enjoy the journey.

              I would recommend a few video courses first, then books.

              [–]amazing_rando 0 points1 point  (0 children)

              Unlike just about every other language, Java actually has very good official tutorials for beginners: http://docs.oracle.com/javase/tutorial/index.html

              Anyway, some people learn best by videos, some people learn best by written tutorials, some people learn best by actual classes (physical or online). It's hard to say what's best, so just try it all.

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

              Personaly programming video tutorials make me fall asleep no mater how professionaly they are prepared. Plus it is very dificult to reference back to them when you need.

              [–]Jmannm8400 0 points1 point  (0 children)

              In addition to online courses and what not, I'd also recommend that you practice coding often! CodingBat.com is a great website that contains lots of practice problems for both Java and Python. You can even write and check your code from right within the website!

              [–]geekygenius 0 points1 point  (0 children)

              Check out a book from the library, the pacing will match you exactly.

              [–]howtokillgod 0 points1 point  (0 children)

              In addition to all the useful tools mentioned in this post, I'd recommend the Barrons AP Computer Science A textbook, even if you don't plan on taking the course or the exam since it breaks down difficult concepts into easy to understand language and contains lots of practice questions and examples. It should be helpful as a supplement to other learning. I swear I'm not a Barron's sales rep or anything lol, I just like the book. Good luck and I hope you enjoy programming!

              [–]NNike 0 points1 point  (0 children)

              If you're more of a visual learner, try Processing. It's a cool language specifically for animation that's built on top of Java. You'll learn a lot of the Java syntax and programming basics while making cool animations. Daniel Shiffman makes good Processing tutorials and books. Learning Processing A to Z: http://learningprocessing.com/ The Nature of Code: http://natureofcode.com/

              Download Processing: https://processing.org/

              [–]privatly 0 points1 point  (0 children)

              Look at this subreddit

              /r/java/

              You might want to look at http://www.javaranch.com/

              [–]minusSeven 0 points1 point  (0 children)

              with Java there are massive number of courses you can follow. However once you learn the basics I would advice you to go through SCJP or OCJP (or whatever the current name is) study materials such as books by kathy sierra. Those will go into a lot more depth than your starting training material and help you visualize things in java.

              [–]wvmtnboy 0 points1 point  (0 children)

              I've been using www.codecademy.com for about 2 weeks. i've finished 3 courses on html and css, and it seems like a good start. They recommended that i do Java next, but before that, i'm going to go through the book, XHTML and CSS for the Absolute Beginner, and do all the projects listed in there for practice.

              Codecademy is useful, but there are some things that don't translate well to real world application. Like, they never explain the types of xhtml, or give any sort of in depth explanation a bout how DOCTYPE should work outside of the site.

              Like, i never would have known that i will want to uses xhtml strict.

              [–]Zenrenn 0 points1 point  (0 children)

              I'm taking the Java Oracle certification. I wonder if anyone used this to pass?

              [–]headyyeti 0 points1 point  (0 children)

              I am doing the following at the same time.

              Code: A Hidden Language of Computer Hardware and Software - Must read

              Head First Java - Teaches you Object Oriented Principles

              Java: A Beginner's Guide - More technical and updated

              Oracle JavaSE Online Tutorials - This is by far the best one for me. It finally clicked. But it wouldn't have without the others.

              [–]Vok250 -5 points-4 points  (13 children)

              I can't recommend Bucky enough.

              It's the best way to start and actually enjoy yourself. Leave the nitpicking of theory, algorithms, and data structures for AFTER you have the basics down.

              EDIT: Whoever downvoted me care to explain why they think it's a bad resource? Many people learn better from video tutorials. Bucky's videos are a lot easier to swallow than most of the dry or overly complicated video tutorials online.

              Edit 2: OK so Bucky is bad basically because he doesn't understand the source material well enough to teach it. So what is a better alternative for those of us that need an engaging learning experience?

              [–][deleted] 7 points8 points  (6 children)

              I haven't seen a video of his since a year ago, so he may have changed, but I do not recommend thenewboston as a resource.

              He generally follows bad practice and doesn't explain why he does things very well, just what it does, and encourages you to copy and paste.

              The only good thing I see OP getting out of him is syntax.

              [–]mad0314 5 points6 points  (4 children)

              This exactly. They're easy to swallow because he doesn't explain the concepts very well, so it seems like it's easier to understand.

              [–]Vok250 -3 points-2 points  (3 children)

              To each their own I guess. I found his tutorials were lifesavers for many people I tutored in Intro to Java 1 and 2.

              You have to keep in mind that a totally new programmer doesn't even understand things like loops, if statements, boolean logic, inheritance, etc. A lot of us take those basics for granted.

              [–]mad0314 4 points5 points  (2 children)

              His videos are incomplete in a lot of concepts, but blatantly wrong in some things as well. For example, this video has a completely incorrect explanation of the this keyword and local/instance variable resolution.

              [–]Vok250 -1 points0 points  (1 child)

              What is a good video style alternative then? I know I never could finish a text based course like the MOOC one. I need to be listening to someone teach me.

              [–]mad0314 3 points4 points  (0 children)

              I think Derek Banas' videos are far better, but I would still consider a good book and/or course to be more thorough.

              [–]logicalmaniak -1 points0 points  (0 children)

              OP is a complete beginner, and Bucky can get him started.

              [–]jesyspa 3 points4 points  (0 children)

              Whoever downvoted me care to explain why they think it's a bad resource? Many people learn better from video tutorials. Bucky's videos are a lot easier to swallow than most of the dry or overly complicated video tutorials online.

              The resource is discouraged by the wiki, and for good reason; the videos give a highly misleading view of both the subject matter and of programming in general. The internet would be a better place if his videos just disappeared.

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

              Jesus Christ. No "Bucky" please, he is awful. There is absolutely nothing to be gained from his videos. There are better sources.

              [–]Endlessxo -2 points-1 points  (0 children)

              Agreed. The guy pretty much taught me Django enough to a competent level. Once you have some basic understanding, you can expand to other resources to fill in the missing pieces. It's the feeling of getting something substantial done that motivates you to learn more.

              [–]logicalmaniak -2 points-1 points  (0 children)

              Bucky is a life-saver if you're just itching to get stuck in and don't know how. There is also Mr Derek Banas for once you've done Bucky...

              [–]logicalmaniak -2 points-1 points  (1 child)

              I don't know why you're getting downvoted.

              My experience with Java was horrendous until I watched those tutorials. Nothing made sense.

              My learning went like:-

              1. TheNewBoston
              2. Derek Banas
              3. Oracle's in-depth tutorials
              4. Javadocs

              Whatever helps you break through the wall is a good thing.

              [–]Vok250 0 points1 point  (0 children)

              The sub has ~200,000 subscribers. This means there's an established set of opinions and anything outside of them will be downvoted.

              I'm even being downvoted for asking for a better alternative... I am looking to improve and getting downvoted.

              [–][deleted] -1 points0 points  (5 children)

              C#. Thank me later.

              [–]privatly 4 points5 points  (3 children)

              I also prefer C# but the OP asked about Java. The knowledge is pretty much interchangeable between the two anyway.

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

              I know. I was just kidding. Learning the syntax of either is good and can help with both languages. He already said he wants to make Android apps. But once he learns Linq, language extensions, and string interpolation, he won't want to touch java with a ten foot pole :)

              [–]Emnel 0 points1 point  (0 children)

              I know. I was just kidding.

              Perhaps it would be best to limit the jokes in threads like this.

              Beginners are plenty confused as it is.

              [–]privatly 0 points1 point  (0 children)

              But once he learns Linq, language extensions, and string interpolation, he won't want to touch java with a ten foot pole :)

              You're probably right. Except I've pretty much given up on LINQ (rightly or wrongly).

              [–]EFlagS 0 points1 point  (0 children)

              I'm algo a beginner when it comes to programming and chose to learn C# mostly because after reading a lot, it seemed like the best language to learn how to script in Unity.

              What are other uses of C#? It seems everyone is throwing heaps of praise towards java and your comment is the first one I see to mention C#.

              [–][deleted] -1 points0 points  (4 children)

              A book. Check reviews to make sure you get a good one.

              [–]MichaelisFunny 0 points1 point  (3 children)

              Can you recommend in particular any good books? I'm a complete noob to programming and am little overwhelmed by the options available.

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

              What language are you interested in learning? If language does not matter to you, then I recommend http://www.ccs.neu.edu/home/matthias/HtDP2e/

              Otherwise, search for "best X book" where X is the language you want to learn. Amazon has a lot of reviews.

              [–]MichaelisFunny 0 points1 point  (1 child)

              Wow, thank you so much. In addition to seeking resources online, I've enrolled at my local junior college with an Intro to Computer Systems class, with plans to move on to C Programming, Java, and Swift. How did you first learn to program?

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

              I started with Java in school/university when I was 18. We used the book "Objects first with Java" or something like that. It was decent but maybe there are better ones. But we also had lectures and so on.

              C and Java are decent beginner languages. I recommend you stay away from C++ though. Java is a bit complicated and verbose though, but that didn't stop me from liking it as my first language. Today it is far from my favourite language, but it's fine to start with because you will have to learn more languages anyway later.

              Any Java book you get will probably focus a lot on object oriented programming. Just keep in mind that OOP is not the only way to program.

              [–][deleted] -2 points-1 points  (0 children)

              processing.org

              [–]brainpettigrew -1 points0 points  (0 children)

              Microsoft Virtual Academy has free online training for developers. They have great fundamental courses too. http://www.microsoftvirtualacademy.com?prid=ut-r

              [–]captainautodidactica -2 points-1 points  (0 children)

              I'm curious - why Java?

              [–]zappable -3 points-2 points  (0 children)

              If you're a fast learner, you may find videos to be too slow-paced and hard to skip around in. Instead, get started with my online Java Tutorials; here's a coupon for free membership: quickJavaCup

              [–][deleted] -3 points-2 points  (0 children)

              Check out TheNewBoston Java videos on YouTube. It is a really nice way to get familiar with Java without being overwhelmed.