Это зависит от сферы деятельности программиста. Для программиста самое главное в совершенстве владеть алгоритмизацией. Т.е. уметь составлять алгоритм наиболее оптимальным образом решающий поставленные задачи. При этом, желательно, чтобы была учтена возможность расширения функционала и облегченная модифицируемость в принципе. Иначе говоря, алгоритм должен быть гибким. На втором месте - знание языков программирования. Для составления алгоритма бывает необходимо очень хорошо, если не в совершенстве знать предметную область. Для алгоритмизации у вас в принципе должно быть математическое мышление. Хорошо его оттачивать на краевых задачах, задачах на поиск оптимальных решений. Полезным будет образное мышление. Есть смысл освоить графические методы решения уравнений, теорию графов и т.п.. Но без напрягу, что понравится. Очень полезным является освоение чисельных и индукционных методов математики. Мне это не раз помогало в составлении адекватной математической модели, которая позволяла составлять более оптимальный алгоритм. Например, лучше составить уравнение, в котором будут задаваться параметры, чем созадавать массу ситуативных запросов к базе данных и циклов, которые будут "съедать" ресурсы системы, в которой работает программа.
Ну а насчет предметной области думаю все понятно. Она налагает свои особые требования и тут что-то посоветовать сложно. В любом случае знания математики редко бывают лишними. Если хотите быть настоящим программистом, а не просто тем кто знает какие-нибудь языки программирования и считает, что этого достаточно, чтобы именовать себя "программист", то ни не отказывайте себе в математическом любопытстве.
Желаю удачи и надеюсь, что благодаря вам качественного, красивого кода и таких же алгоритмов станет больше!
Java 7 SE (есть еще и EE и ME) - последняя, на данный момент версия Java. Как спецификации интерфейсов классов, так и байт-кода (т.е. по идее, байт код скомпилированный под Java 6 может пойти на Java 7, однако, скомпилированный под Java 7 никогда не пойдет на Java 6).
Добавлена новая функциональность, переработан менеджер памяти... На самом деле, много чего нового. Тут описано более подробно (формат ответа не представляет возможным описать все в деталях).
Есть такая информация, что программисты создали игру "Java Rush ", это такая онлайн- игра, с помощью которой возможно учиться программированию на Java, и в то же время играть. Сам не пробовал, просто обратил внимание на эту новость в одном из сообществ в "контакте", посмотрите по ссылке, может это как раз то, что надо: https://vk.com/javarush
На самом деле есть масса преимуществ, так что кратко просто перечислим 6 наиболее известных преимуществ -
- Символ @ для строк
- Перегрузка операторов
- Индексаторы
- Условная компиляция
- Разделенные классы
- Внешние псевдонимы.
До недавнего времени программы для андроида писали на языке Java, а для IOS - на Objective-C. Однако технологии не стоят на месте и вместе с развитием собственно железа для мобильных телефонов появилась возможность писать программы на многих других языках программирования. Для андроида и IOS сейчас наиболее популярны следующие языки - Javascript, Python и Ruby.