General Question

khajuria's avatar

Can you suggest a few websites that teach Java for free?

Asked by khajuria (255points) December 7th, 2013

I mean, full coding interface with discussion forums to help understand the concepts.

Observing members: 0 Composing members: 0

16 Answers

MadMadMax's avatar

Java Course, Stamford University, Course #CF106A

From my husbands:

This is an entire semester for Java delivered by one of the best professors I’ve ever seen (a STANFORD professor, no less). Totally free. Better than any Java classes I’ve ever attended—even traditional on campus courses at RIT.:

https://www.youtube.com/watch?v=KkMDCCdjyW8&list=PLBD5381FE500534C0&index=2

MadMadMax's avatar

Java is just one of the many tools one needs to be a viable candidate for programming/software engineering jobs.

For example, to be a web developer you simultaneously have to learn a front end languare, CSS, HTML, AJAX, jQuery, Javascript, and then a variety of tools for back end programming and database skills, unit testing, repositories – operating system commands (hundreds in Linux that you have to be proficient in). And you’re going to have to be good at all of them.

plus, plus, plus….

Python is becoming popular

It’s going to take time. It’s a long hard road.

MadMadMax's avatar

@gorillapaws Check out the job boards, then come back and tell him why Java is a “GOOD” idea.

gorillapaws's avatar

@MadMadMax Once you’ve grasped the concepts around programming, you can learn most languages in a weekend or so. If the OP is new to programming, then I would suggest either a lower level language like C (if the OP is a “bottom up” learner) or Python (if the OP is a “top down” learner). Either on would be a better first language than Java, which has already gone out of style. Most job recruiters are morons, so take their requirements with a grain of salt (there were many who were requiring 5 years of iPhone programming experience when it had only been out for a couple of years for example).

I would highly recommend Python as a first language. It’s an elegant language, with a clean syntax. You’re not going to develop performance-intensive apps with it, but it’s excellent for most tasks. It’s the language used by MIT in their courses (which says a lot imo). Here’s a link to a semester of intro to computer science at MIT.

MadMadMax's avatar

@gorillapaws – From MadMadMax’s husband:

Python and/or Ruby on Rails are a good start – they are very similar languages.

@gorillapaws wrote “Most job recruiters are morons, so take their requirements with a grain of salt.”

Many recruiters don’t have any understanding of the jobs they are trying to fill—they do not make up job requirements in their heads. They state what their clients want their applicants to have – sometimes the years of experience are silly but that’s what the client is requesting (like asking for X number of years of experience for a language that didn’t even exist until X- 6 year ago).

I was a very Senior Software Engineer and Technical Team Leader and Project Manager for a top 10 Fortune company so I think I know what I’m talking about.

Whenever I read “you can learn most languages in a weekend or so” I instantly know that the person writing that remark doesn’t really know jack about programming. Would you commit to delivering a project to your manager or client with just a week-end’s worth of exposure to a new programming language?

Typically, it takes 6 months to become reasonably proficient in a programming language, and 1 to 2 years of daily programming on genuine projects to truly know the ins and outs of a language.
Of course, some people learn faster than others but I’m talking about the average professional programmer/software engineer.

There is no one “right” language just as there are no “right screwdrivers”. I have quite a few dozen screwdrivers and each project can require several different screwdrivers. The same goes for programming languages.

On some projects, I choose Python. On others it might be ‘C’. Sometimes, just using Linux scripts is sufficient. In other situations, I might use (gasp) assembly language.

No one language fits all projects. No one tool in your shop will fix/build everything in your house & car.

MadMadMax's avatar

The OP might find this site helpful

Http://www.javacodegeeks.com/

gorillapaws's avatar

It can take a long time to “master” a language, true, but you can learn enough to be reasonably proficient in about a weekend (some languages would take longer of course e.g. Haskell). I just think most people who choose Java as a first language, are doing so because it used to be in fashion in the industry so it became popular to recommend for first timers. Python makes more sense for most beginners, there is plenty of work to be found coding Python, and the clean syntax allows a beginner to focus on the concepts of problem solving with loops, conditionals, etc. than banging their head against syntax errors.

Alternatively C is an excellent first language for people who want to understand EXACTLY what the machine is doing at each step. It’s unforgiving but something every programmer should learn at some point. Java has neither of these advantages.

MadMadMax's avatar

The OP never said that Java is their first language. That’s an assumption.

C may be an excellent first language but not many employers are seeking C programmers at all.

MadMax

MadMadMax's avatar

There are openings for C++ but not C. C++ is Object Oriented but it’s an older language now.

Assembly Language teaches “EXACTLY what the machine is doing at each step” not C. I taught both languages at the university level.

I was able to solve major problems by looking at the machine code generated from the compiler.

Python is easier to learn but you will not learn how a computer works , step by step.

All programming languages are unforgiving.

gorillapaws's avatar

@MadMadMax “The OP never said that Java is their first language. That’s an assumption.”
True, but if they are an experienced programmer, they probably wouldn’t be asking about free Java websites.

You’re of course correct that assembly is even “closer to the metal,” but I don’t think you’ll find many people out there who think any of them are good first languages. C is about as low level you would ever want to get when you’re first learning. C is used in many areas. It’s used in OSX and iOS development all the time (in combination with Objective-C which is a strict superset of C). It’s used in performance-intensive areas as well (e.g. high performance games, simulations/modeling, scientific research).

I’ve yet to hear an argument about why Java is the best choice for a first language.

meenasky's avatar

This guy’s YouTube channel can be helpful for you, I watched it myself when I needed help. Although the videos are pretty long so it’s not that convenient.

Response moderated (Spam)

Answer this question

Login

or

Join

to answer.

This question is in the General Section. Responses must be helpful and on-topic.

Your answer will be saved while you login or join.

Have a question? Ask Fluther!

What do you know more about?
or
Knowledge Networking @ Fluther