Загальний консенсус - "написати більше коду", з чим я згоден, але я додам до цієї поради, що вам слід написати багато різних видів коду. Java добре, що стосується мов, але ви обов'язково повинні писати код як вгору, так і вниз по спектру живлення. Окрім Java, я б запропонував зробити кілька невеликих проектів на мові нижчого рівня (C для цього хороший), мовою сценаріїв (я віддаю перевагу perl, але python - також хороший вибір), функціональній мові ( тут є загальна рекомендація, але OCaml і Haskell - це теж хороший вибір), і принаймні комфортно читати мову монтажу.
Виберіть також різноманітність у типах програм, які ви реалізуєте. Подивіться на реалізацію принаймні GUI настільного ПК, багату веб-програму, мережевий клієнт та сервер, драйвер, утиліту для обміну даними, трекер променів та фізичне моделювання.
Усі проекти повинні мати порівняно невеликий обсяг, мета - не мати повноцінної програми, а отримати широкий обсяг досвіду роботи в різних областях, в які ви можете зіткнутися, щоб вивчити різні типи мислення, необхідні для кожного, і дізнатися, де ваші інтереси.
Щойно ви зробите це, ви матимете гарне уявлення про те, який тип програмування вас найбільше цікавить, і ви зможете знайти або запустити проект з відкритим кодом, щоб отримати досвід роботи над великими базами коду, що стосуються довготривалих програм, строкові проекти та робота з іншими розробниками.