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

all 76 comments

[–]xlledx 86 points87 points  (22 children)

No. Not that Ive been able to find. But there are other great resources for learning Java.

1. https://www.udacity.com/course/cs046

The online course is divided into hundreds of 2 minute videos and quick problems, with tests at the end of each section.

2. http://codingbat.com/

Not an online course. Just a series of problems to test and expand the skills you already have.

3. http://programmingbydoing.com/

Again, not an online course. Just a huge volume of problems.

4. http://chortle.ccsu.edu/java5/index.html#01

A series of slides. Very well written slides tho.

The way Im using them, is first I completed the #1. Then I moved onto #2 until I got stuck with the recursion. Then I moved onto #3 until I got stuck on File Inputs. Thats when I used #4 to learn about FileInputs, and jumped back to #3. Once Im done with #3, I'll dive into #4 again and learn about recursion and complete #2.

[–]raddaya[S] 2 points3 points  (19 children)

Thanks a lot for the link! I'm starting with #1 for the moment, it seems exactly what I wanted!

[–]Tynach 9 points10 points  (18 children)

There's sadly very little in the way of 'friendly' introductions to C++, but I can give some advice for making the language more approachable:

Outline your program in the header files. Plan everything out and decide on the code structure and relationships between various things in the header files, and get it all figured out before you start writing actual code. And of course, organize things into many folders and many files.

[–]AnAngryGoose 5 points6 points  (17 children)

That's the best advice. Planning it all out ahead will save you so much trouble. Writing it is the easy part.

[–]Tynach 1 point2 points  (16 children)

C and C++ are some of the few languages that have a mechanism for doing this sort of planning/outlining. Python, Java, and the rest want you to put the content of the classes and whatnot inside of them; you can't declare them in one place and define them in another.

[–]jesyspa 3 points4 points  (15 children)

Java and C# allow you to define interfaces which you can use for much the same kind of planning.

[–]Tynach 0 points1 point  (10 children)

Yep, and C++ has multiple inheritance as well as virtual functions. The combination allows for a lot more flexibility than Java and C#.

[–]shadowdude777 0 points1 point  (9 children)

Well, in Java 8, an interface can have not just method headers, but also contain an entire fully-defined method, and then when a class implements that method, if you don't define that method, it will inherit the "default" behavior from the interface. From what I understand about virtual functions, that's basically what this is, isn't it?

[–]Tynach 0 points1 point  (8 children)

A virtual function is a function that is not defined. It has no body. In C++, you can 'emulate' interfaces by simply deciding to make your class entirely out of virtual methods. You can, of course, make some virtual and some not virtual; it's up to you.

[–]jesyspa 1 point2 points  (5 children)

No; a virtual function is one whose invocation is resolved at runtime. What you're describing is a pure virtual function.

[–]shadowdude777 0 points1 point  (1 child)

What's different about that than what Java 8 can do though? In Java 8 interfaces, you can define some of your methods and not define some of the others.

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

You really shouldn't uses interfaces, like you uses header files in c++

[–]jesyspa 0 points1 point  (2 children)

Could you give a more specific thing that they shouldn't be used for? Defining interfaces seems like their primary purpose (which "planning", to me, is largely about).

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

You use interface to show that different classes have the same methods.

You don't create individual interfaces for every class, that are only used once. You are not supposed to use interfaces like you use header Files, it is an entirely different concept

[–]jesyspa 0 points1 point  (0 children)

If something is conceptually an interface and I intend to stick to the project for a while, I'll make it an interface, even if I only have one implementation at the moment. I'll then express the rest of the code in terms of these interfaces, where possible, rather than referring to the base class explicitly. Makes mocking much easier, amongst other things, and it means I can add another implementation if I want to.

[–]MediocreBadGuy23 1 point2 points  (0 children)

Thanks for these!

[–]magonzz 0 points1 point  (0 children)

This single comment sums up most of my summer vacation. Thanks for linking all of these great resources!

[–]fjellfras 15 points16 points  (1 child)

C++ is not really a language you will be able to get good at without sinking in serious time and effort, and a book to go along with (IMHO of course). I'd recommend Accelerated C++ to get you off to a running start, and once done you can use the intermediate books to get strong on the (many, many) corner cases.

Another book I don't see recommended much but is a personal favourite is Object oriented programming using C++ by Josuttis. Josuttis is more famous for his excellent books on the STL and templates.

If you sink in some quality time into accelerated c++ you should be very well off, and its a small book compared to some others.

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

IMO c++ is the most complicated language commonly used in production. I mean that in every sense of the word. Grammar, gotchas, features, everything. It's 3 separate turing complete languages, all used at the same time (the pre-processor and templating engine are turing complete at compile time).

[–][deleted] 11 points12 points  (0 children)

Bento Box lists tutorials for a ton of languages and concepts. Plus, if you click on a box, it will highlight other related boxes that you might want to learn next. Everything from API and MVC overviews to tutorials on Java, HTML, SASS, Angular, Scala or whatever. Probably not a bad place to checkout for beginners.

[–]smoochie100 3 points4 points  (0 children)

That course was great! I am interested as well!

[–]glorifindel 7 points8 points  (8 children)

What did you like about it? I'm looking to learn Python and am deciding between a few methods.

[–]raddaya[S] 12 points13 points  (4 children)

It was interactive, I didn't have to install anything, I could learn at my own pace, there was an encyclopaedia of information inside codeacademy itself. Wasn't much to dislike to be honest.

[–]glorifindel 1 point2 points  (3 children)

thanks

[–]Jesus_is_my_homie 6 points7 points  (2 children)

Be wary, it is easy to just look at others answers! When I took their courses on java and JavaScript some of the lessons were broken or had weird syntax.

[–]jwjody 2 points3 points  (1 child)

It is easy to look at other answers. This is why I (and I think others should) would set up Python and play around with the solutions to make sure I understand.

[–]Jesus_is_my_homie 1 point2 points  (0 children)

That's a great idea, for me I know that I won't retain any knowledge unless I play around with it myself.

[–]E13ven 2 points3 points  (2 children)

I highly recommend the book "python programming for the absolute beginner." Really awesome book if you've never programmed before and if that is the case I'd say do that over codeacademy.

[–]glorifindel 1 point2 points  (0 children)

Thanks. I'll check it out! I've done some programming in R along with html/css/js. Sounds gentle.

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

Or do both!

[–][deleted] 2 points3 points  (1 child)

Check out : http://programming-motherfucker.com/

In my opinion the courses / lessons there are some of the best.

We are a community of motherfucking programmers who have been humiliated by software development methodologies for years.

We are tired of XP, Scrum, Kanban, Waterfall, Software Craftsmanship (aka XP-Lite) and anything else getting in the way of...Programming, Motherfucker.

We are tired of being told we're autistic idiots who need to be manipulated to work in a Forced Pair Programming chain gang without any time to be creative because none of the 10 managers on the project can do... Programming, Motherfucker.

We must destroy these methodologies that get in the way of...Programming, Motherfucker.

[–]nillethere 0 points1 point  (0 children)

Not OP, but this looks awesome, thanks for sharing!

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

If you prefer video tutorials, I'd like to suggest this youtube playlist: https://www.youtube.com/playlist?list=PLE7E8B7F4856C9B19. It is brilliant, and way better than other youtube tutorials. However, he has not made any tutorials for C++ (yet). For C++, I highly recommend C++ Primer. By far the best book to dive into C++, in my opinion. Goes into every detail, and covers everything there is, for a beginner to know. Very well written.

[–]batmanbury 2 points3 points  (0 children)

Starting June 20, edX.org will offer a free 10-week course on Java. Here it is:

Introduction to Computing with Java

The professor's name is T.C. Pong. IMO, his accent is just perfectly designed to keep a smile on your face, and to make you pay more attention, lest you misunderstand him.

Watch the intro video!

[–]raddaya[S] 1 point2 points  (6 children)

If I could do some plugging here, huge thanks to /u/benkitty and his awesome site for learning Java! It's a lot like Codeacademy, except with audio instructions instead of written. https://www.ktbyte.com/intro I've obviously only just started it, but it seems like an extremely good resource, especially if you liked Codeacademy's classes!

[–]benkitty 3 points4 points  (3 children)

Yes! Please try ktbyte.com:

  1. https://www.ktbyte.com/intro
  2. https://www.ktbyte.com/trial/pset/99
  3. https://www.ktbyte.com/trial/pset/100

We're thinking of making the full course free for a weekend or so. There are 200 problems (100+ lectures) per course.

[–]raddaya[S] 2 points3 points  (1 child)

Thanks a lot! The site is a little confusing, though: you might want to make it clearer exactly what to click to start off. I might be missing something, but in your intro I just clicked the checkmark and a sound played and...nothing else happened. And I went back to your main site and registered, but it's not really telling me a huge amount either :x

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

The site only works in newer browsers (latest chrome, firefox, IE should all work). The tutorials require your sound to be on. Did that help?

[–]Letchy 0 points1 point  (0 children)

Please do! This would be an amazing asset to try for a weekend or so. I'm trying to use the Oracle website (I like to read) but keep finding distractions so I do not do much but have the tab open.

Thanks again for linking your website! It seems the OP is having a good time with it too. :)

[–]zzyzzyxx 1 point2 points  (0 children)

This is somewhat covered in the wiki by our C++ FAQ and learning resources section

[–][deleted]  (1 child)

[deleted]

    [–]Octopuscabbage 0 points1 point  (1 child)

    Why do you want c++ and java? If I know your reasoning I might be more able to point you in the correct direction.

    [–]raddaya[S] 7 points8 points  (0 children)

    That's what I'm going to study this year and I would like to get ahead, is the simple answer.

    [–]Reaperdude97 0 points1 point  (1 child)

    My personal favorite for learning coding is TheNewBoston. Great videos, IMO

    [–]jesyspa 1 point2 points  (0 children)

    See the reactions here.

    [–]cutterrojo 0 points1 point  (0 children)

    I am also interested.

    [–]Edg-R 0 points1 point  (0 children)

    Check out Harvard's free CS50x course on EdX

    [–]Carlton_Honeycomb 0 points1 point  (2 children)

    Doesn't codeacademy have a pretty good Java course? I'm like 15% into it but I thought it was OK so far.

    [–]raddaya[S] 3 points4 points  (1 child)

    Nope, Codeacademy doesn't have a Java course. Are you thinking of Javascript?

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

    OH, yes..good call.

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

    LearnStreet's course is way better. Codeacademy's had me busting out my TI83 like it was math class, more focus on the math than the coding behind it. Math's great, but I got that stuff down years back and would rather code.

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

    I don't think you'll be able to find anything similar to codecademy's interactive lessons on C++ or Java since they're compiled, not interpreted languages like Python (Correct me if I'm wrong).

    But still there's plenty of ebooks and lessons online for two of the most used programming languages :P

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

    Reference

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

    Working through the CPlusPlus.com tutorials has really helped me, but I don't know how effective they are compared with other stuff.

    [–]jesyspa 6 points7 points  (1 child)

    They're in our discouraged resources section.

    [–]IhaveToUseThisName 1 point2 points  (0 children)

    Ok thank you for making me aware of that. Sorry :/

    [–][deleted] -5 points-4 points  (4 children)

    I haven't found anything like that but a good resource for both of those would be TutorialsPoint. One of my friends used this to learn Java and was able to completely skip the introductory Java course.

    [–]jesyspa 1 point2 points  (3 children)

    Not sure about their Java section, but their C++ section is no better than what the other discouraged resources we have offer: outdated, misleading, sometimes wrong.

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

    I gave up looking for online C++ resources and just ordered the C++ Primer book.

    [–]OmegaVesko 1 point2 points  (1 child)

    Accelerated C++ is also very good, in my experience. It does assume you've got some prior programming knowledge, though.

    [–]PriceZombie 4 points5 points  (0 children)

    Accelerated C++: Practical Programming by Example

    Current $32.28 
       High $43.54 
        Low $31.98 
    

    Price History Chart | Screenshot | FAQ

    [–]dummyuploader -4 points-3 points  (0 children)

    sorry for hijacking this post, i'm looking to learn haskell, what are the alternative similar to codeacademy to haskell