Является ли Java слишком сложным языком программирования для начинающей команды программистов? - PullRequest
1 голос
/ 01 апреля 2009

Я пытаюсь выучить Java, но кажется, что слишком много частей, чтобы собрать их вместе. У вас есть JSP, Java EE, Java SE, Java ME и т.д .... Я могу заставить NetBeans выполнять базовые функции, но просто взглянем на Spring Framework, мне кажется, нужно много работы, чтобы заставить его работать в ide из многочисленных конфигураций.

Я хочу заняться веб-программированием и, возможно, мобильным.

Любой совет?

Другой язык программирования?

Является ли Java сложным или легче?

Ответы [ 9 ]

18 голосов
/ 01 апреля 2009

Java как язык, конечно, не слишком сложен. J2EE в полном объеме практически возможен только для команды из одного человека, но вам редко нужен весь J2EE.

Для команды из одного человека вполне разумно реализовать веб-приложение среднего размера. Я не говорю, что один человек мог написать GMail самостоятельно, но вы не должны слишком бояться технологического стека - найдите биты, которые вам действительно нужны и сконцентрируйтесь на них. С другой стороны, это само по себе требует немалого опыта - я бы не хотел начинать самостоятельно с корпоративного приложения (даже небольшого) как новичок для Java.

Начните с малого. Изучите ядро ​​(язык, IO, коллекции), а затем начните с небольших проектов. Подумайте, хотите ли вы быть на мобильном, настольном компьютере, сервере или чем-то еще - не пробуйте их все одновременно. Постепенно вы будете наращивать свой опыт.

14 голосов
/ 01 апреля 2009

Дело не в том, что язык Java сложен, а в том, что существуют обширные библиотеки и платформы, которые могут помочь вам в вашей работе. Это верно для многих языков программирования. Посмотрите на CPAN для Perl, например. Какой язык использовать, во многом зависит от ваших целей.

Вы можете начать с простого и перейти к более крупным и крупным проектам.

Java ни в коем случае не слишком сложна для работы с одним человеком, но изучение любой формы полноценного веб-программирования - это много, чтобы узнать, когда все это ново. Если вы смотрели на .NET с той же целью, там тоже есть много чего.

Если вы не работаете с приложениями для крупных предприятий, игнорируйте все J2EE, за исключением JSP и JMS и очень немногих других компонентов. Львиная доля J2EE полезна только в контексте корпоративного приложения, которое необходимо масштабировать, и фактически может быть вредным при использовании в небольших приложениях.

Фреймворки, такие как Spring, Hibernate, Apache- *, Web Services и т. Д., Помогают вам выполнять свою работу, но еще больше нужно научиться выполнять свою работу. Есть чему поучиться.

Должны ли вы использовать Java? Ну, довольно много разработок сделано с LAMP (или WAMP): Linux (или Windows) + Apache-HTTPD + MySQL + PHP. При этом вам не нужно беспокоиться о Java, .NET или любой из этих платформ. LAMP / WAMP очень хорошо работает для широкого класса приложений.

Java и .NET на сервере (в некотором роде) больше подходят для более крупных сервисов, но как только вы ознакомитесь с ними, они прекрасно подойдут и для более мелких сервисов.

Вы должны решить, каковы ваши точные цели, а затем посмотреть, как люди реализовали то, на что вы рассчитываете. Это поможет вам определить, какие технологии являются наиболее необходимыми для тех ниш, в которые вы собираетесь вступить.

6 голосов
/ 01 апреля 2009

Java - язык - один из самых простых строго типизированных языков из существующих. Я бы сказал, что он намного проще, чем C ++ или даже его близкий родственник C #.

Стандартные API / библиотеки действительно огромны, но никто не изучает все это. Вы страдаете от запугивания, которое испытывают все новички, когда они смотрят на что-то большое и новое, но это пройдет, когда вы просто делаете вещи. Во-первых, вам нужно изучить стандартные утилиты - в основном коллекции в java.util - а затем, для базового веб-разработчика, возможно, следующую за библиотекой JDBC и сервлетами Java и JSP. И это все.

5 голосов
/ 01 апреля 2009

Как альтернативный такт здесь ...

Другая проблема, с которой вы столкнетесь в Java - это Choice. У вас есть много с точки зрения рамок и технологий и т. Д.

Мой лучший совет - поискать около дня, если вы так хотите найти, какие технологии вас привлекают или чьи аргументы вас побуждают. Затем выберите один. Кто-нибудь. На самом деле, это не имеет значения, особенно для первого проекта. У них у всех есть навыки обучения, у всех есть свои сильные и слабые стороны, у всех есть свои поклонники и враги.

Ключ, как только вы выбрали, придерживайтесь его. Вы неизбежно натолкнетесь на какую-то проблему, вы поставите эту проблему перед кем-то, где-то еще, и они скажут: «О, вы должны были использовать QED вместо KnifeForkSpoon». И ты сам догадаешься, пойдешь и послушаешь о чудесах КЭД, обо всех котятах, рожденных под ним, и о голодных детях, которых он кормит. Если вы уступите этой песне «Зеленая трава», ваш проект сорвется. (Не провал, цепляйся.)

Не обманывайся, не поддавайся на это. Просто исправьте свою проблему и двигайтесь дальше. В конце, и вы находитесь на новом проекте, ТОГДА иди и найди самую лучшую серебряную пулю величия.

Как бы то ни было, если бы я только начал заниматься веб-программированием на Java, я бы смиренно предложил этот простой рецепт:

  • JSP 2.0 с JSTL для разметки и презентации
  • Полосы или Struts 2 для логики (обратите внимание на Struts 2 (TWO), Struts 1 - просто зло)
  • «сырой» JDBC с пулом базы данных для персистентности
  • Tomcat или Glassfish для контейнера (более популярный кот, GF проще в использовании из коробки)
  • Netbeans или Eclipse (NB легче использовать из коробки)

В нем используются самые фундаментальные и в то же время функциональные средства для веб-приложений на Java, множество приложений и решаются основные проблемы веб-приложений, не покрывая их толстыми непроницаемыми слоями.

Вы многому научитесь, используя эти "грубые" инструменты.

4 голосов
/ 01 апреля 2009

Вам нужно научиться выбирать свои сражения. Охват всего J2EE - это сложная задача, и для большинства она не нужна. Я думаю, что распространенной ошибкой для начинающих программистов является то, что они думают, что им нужно учиться всему. Вы найдете свое время гораздо более продуктивным, если сосредоточитесь на базовых языковых конструкциях и сосредоточитесь на веб-программировании или мобильном программировании.

Вы будете чрезвычайно удивлены (и довольны) тем, сколько вы можете перенести из одной области в другую. Когда вы знаете язык, различные библиотеки для разных платформ становятся просто инструментами ... Придерживайтесь Java. Это хороший язык для изучения.

2 голосов
/ 06 апреля 2009

Могу ли я считать "войти в веб-программирование" означающим, что вы просто изучаете веб-программирование в целом? Если это правда, если у вас есть время, вы можете временно отложить в сторону Java и поближе познакомиться с LAMP / WAMP, как предложил Эдди. (Хотя я бы лично использовал Perl вместо PHP. PHP более сексуален и позволяет вам делать очень классные вещи на внешнем интерфейсе, но по моему опыту, когда речь идет о написании кода на стороне сервера, Perl просто открывает двери PHP И я слышал, что расширение HTML :: Mason ставит Perl в довольно ровное положение с энтузиазмом PHP, но я сам этим не пользовался.)

Я зарабатывал на жизнь написанием веб-приложений на Java и веб-приложений на Perl. Мне нравятся оба языка, но в качестве инструмента обучения я бы поставил Perl намного впереди Java. Как вы выяснили, Java - громоздкий бастич. Частично это, как уже упоминали другие, является функцией Java, являющегося зрелым языком с множеством расширений, которые вряд ли будут соответствовать вашим непосредственным потребностям. Но даже если урезать, вам все равно придется столкнуться с некоторыми накладными расходами, прежде чем вы сможете запустить свое первое веб-приложение "Hello World". Для сравнения, с Perl вы будете кататься намного быстрее.

(На самом деле, Java, как правило, довольно многословен по сравнению с другими языками. Это не обязательно плохо; моя большая претензия к Perl - это то, что вы часто сталкиваетесь с кодом, который использует различные ярлыки и побочные эффекты, чтобы сделать нечестивую тонну работы всего в несколько строк. Этот код часто блестящий, элегантный, компактный и совершенно чертовски непонятный для неэксперта. Краткость не добродетель для бедного идиота, который должен изменить код через шесть месяцев после того, как он был написан - особенно когда ты становишься бедным идиотом, о котором идет речь.)

И как способ изучения веб-программирования, сложность Java может фактически работать против этого. Как профессионал, я рад, что веб-инструменты Java автоматически выполняют для меня большую часть тяжелой работы, например, управление сессиями. Но я не полностью понимал , что он делал, пока меня не бросили в среду только для Perl и мне пришлось самому разбираться со всем этим.

Я полагаю, это зависит от того, почему вы делаете это и сколько времени вы можете посвятить этому. Если время ограничено, и вы ищете что-то, что понравится потенциальным работодателям, то да, Java - отличный выбор, и вы получили в этой ветке несколько твердых советов о том, как начать его использовать.

Но если у вас есть время, я настоятельно рекомендую немного подумать о программировании на Perl / CGI старой школы. Это уже не особо востребованный набор навыков, но вы изучите вещи, которые стоит знать.

1 голос
/ 01 апреля 2009

Если ваши базовые концепции программирования ясны, нет язык должен быть трудным для вас. Я перешел с vb 6 на java на c # на цель c сейчас. Что действительно облегчает жизнь программистам, так это IDE, инструменты отладки, документация и множество постов в блогах, по которым Google может искать :-) в отношении одного человека. Моя личная точка зрения заключается в том, что я в лучшем виде, когда мне остается только программировать и исследовать самостоятельно Google и переполнение стека конечно :-), так что я думаю, что в программировании большие команды часто приводят к большему количеству ошибок, чем результатов

1 голос
/ 01 апреля 2009

Вам не нужно изучать всю Java и ее библиотеки. Просто узнайте, что вам нужно для работы под рукой. Вы найдете множество вариантов, но вам не нужно каждый раз выбирать лучший вариант.

0 голосов
/ 07 апреля 2009

Java не сложный язык, хотя поначалу он выглядит пугающе.

Я начал изучать Java дома, а не в школе, в 15 лет (да, да, я знаю, что этим не стоит хвастаться) через книгу. Это норвежская книга, поэтому я не буду ссылаться на amazon;)

Прочитав / взломав половину книги, я обнаружил, что мне лучше бросить книгу и искать больше вещей в Интернете. Google действительно потрясающий!

Я часто читал обо всех необычных функциях JVM, фреймворках, сторонних библиотеках, JSR и т. Д. И о том, насколько лучше будет моя жизнь с ними всеми, но я просто игнорировал их все. Да, я пытался, но нашел слишком запутанным изучение Java и фреймворка, который в действительности не был необходим, в то же время.

Некоторые люди дали мне ад за то, что я не использовал insertRandomLibraryName () или insertFancyFrameworkName (), и рассказали мне о том, сколько времени и усилий я бы сэкономил, но я рад, что не слушал.

Теперь времена изменились, и я все еще изучаю новые вещи или более простые способы делать старые вещи каждый день. И я рад, что нашел время, чтобы выучить язык сам, прежде чем заняться всякими модными вещами.

Кроме того, не используйте блокнот для написания кода, используйте IDE с самого начала. Единственное, что я действительно когда-либо использовал, - это NetBeans, так что это единственное, что я могу порекомендовать, но я действительно доволен этим!

Что касается Java SE, ME и EE, начните с SE, и вы, вероятно, обнаружите, что этого пока достаточно. Вам не нужно использовать EE для написания веб-страниц, SE полностью поддерживает webbernet; D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...