Para empezar a pensar en Arrays, bucles, condicionales y todo eso... para mi de lo mejor es el lenguaje Pascal, que se acerca más que otros al pseudocódigo y es un lenguaje bastante bueno para aprender con programación imperativa.
Después, ya pasarte de un lenguaje a otro es trivial, en programación imperativa digo. Cuando pases a programación orientada a objetos, pues ya deberás coger C++ o Java, por ejemplo.
En fin, mi recomendación es que empieces con Pascal, con un libro (yo siempre apuesto por los libros), y ayudándote de foros e internet. Que el libro te proponga ejercicios y vayas haciéndolos.
Importante: Yo no me metería a empezar usando un entorno como Eclipse, si es que quiere empezar con Java, porque el eclipse te lleva muy de la mano, como hasta que no se te pase poner el ";" al final de la sentencia o te sugiere muchas cosas y te hace el trabajo. Eso está bien cuando ya sabes programar, pero yo me inclinaría por no tener eso si quieres aprender. Parece una tontería, pero es mejor así, al menos creo yo.
Por eso, repito, te recomiendo PASCAL y que uses para ello la herramienta (que incluye compilador y todo lo necesario) http://www.freepascal.org/ . Verás que es la típica de pantalla de fondo azulada y letras blancas, tipo MS-DOS, de toda la vida, pero te obligará a escribirlo tú todo desde 0.
Aquí una guía para instalar y usar el Free Pascal ese: http://www.nachocabanes.com/videojuegos/ipj/ipj01d.php (pasa de eso de "probando el modo gráfico")
Toma, ejercicios de 1º de Carrera: http://recursos.paraninfo.es/materiales/8497321855/programasPascal.pdf
Son del libro, que eso no es completo:
Una introducción a la programación: un enfoque algorítmico
Páginas : 602
Editorial : International Thomson Publishing
Idioma : Español
Fecha de Publicación : 01/09/2005
ISBN: 978-84-9732-185-3
Encuadernación : Rústica
País de Publicación : ESPAÑA
Lugar de Publicación : Madrid