Java SE / Java EE - Free Online Courses

The journey of a thousand miles begins with a single step.
- Lao Tzu
Stanford Engineering Everywhere - CS106A - Programming Methodology

This course is the largest of the introductory programming courses and is one of the largest courses at Stanford. Topics focus on the introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing.

Programming Methodology teaches the widely-used Java programming language along with good software engineering principles. Emphasis is on good programming style and the built-in facilities of the Java language. The course is explicitly designed to appeal to humanists and social scientists as well as hard-core techies. In fact, most Programming Methodology graduates end up majoring outside of the School of Engineering.

Prerequisites: The course requires no previous background in programming, but does require considerable dedication and hard work.

https://see.stanford.edu/Course/CS106A

Coursera | Princeton University | Algorithms using Java Part 1

https://www.coursera.org/course/algs4partI

Coursera | Princeton University | Algorithms using Java Part 2

https://www.coursera.org/course/algs4partII

Oracle Java tutorial (Updated to Java SE 8)

http://docs.oracle.com/javase/tutorial/

Introduction to Programming in Java | Princeton University

http://introcs.cs.princeton.edu/java/home/

Best Online Bachelor's in Computer Science Programs

http://www.bestcolleges.com/features/top-online-computer-science-programs/

Sort through all the different scholarship platforms that are available to students. This resource is focused on what students should know before they apply, how each of these platforms works and how to find as many scholarship opportunities as possible.

http://www.reviews.com/best- scholarship-search-platforms/