От компьютерного ученого до инженера-программиста

Я закончил в декабре в области компьютерных наук и приобрел позицию Software Engineering. Я бил головой о стену в течение 2 месяцев, пытаясь узнать Hibernate, Spring и все остальное, что было брошено на меня в моем первом проекте. До принятия этой работы у меня был опыт только в программировании. Архитектуру приложения и инженерные инструменты очень трудно понять. Я надеялся, что кто-то сможет сказать мне хорошее место, чтобы начать понимать, как работают веб-приложения на основе Java. Есть так много компонентов, и я не могу понять, как все идет вместе. Итак, мои вопросы.

  • Как вы учитесь новой технологии?
  • Какой подход лучше всего подходит для одновременного изучения нескольких технологий?

Ответ 1

Начните с основ.

Под этим я подразумеваю только сервлеты и веб-контейнер, возможно, Tomcat. Вы должны понимать жизненный цикл сервлета, вне зависимости от того, какие структуры вы потом на него набрасываете.

Затем, если хотите, бросьте JSP в микс. JSP - это просто прославленные сервлеты (они скомпилированы в сервлет-код, а затем в байт-код).

После этого добавьте структуру MVC. Несколько лет назад это был Struts (1). В настоящее время это немного сложнее. Мне нравится Spring MVC, но это тоже связано с Spring. И я думаю, вам будет лучше (на данный момент) в обход большего количества фреймворков типа Ajaxy (например, Tapestry или Wicket) или более комплексных решений (таких как Seam), как переквалификация проблемы. То, что вы пытаетесь понять здесь, - это то, что представляет собой концепция MVC, как она работает и почему вы это делаете.

После этого добавьте Spring. Здесь нужно изучить принцип инжекции/инверсии управления (IoC). Это чрезвычайно важная концепция в современной разработке Java и разработке программного обеспечения в целом.

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

Не слушайте никого, кто говорит вам, что вам не нужно понимать концепции и технологии низкого уровня, такие как API чистого сервлета. Это вздор.

Ответ 2

Я думаю, что книга Майка Гундерлой Coder to Developer может стоить внимания.

Что касается изучения новой технологии, то нет лучшего способа, чем просто использовать ее и практиковать с ней насколько это возможно.

Ответ 3

Мой способ обучения - построить что-то самостоятельно. Я обычно выбираю что-то тривиальное, которое можно быстро реализовать, а затем использовать корпоративную технологию XYZ в данный момент, чтобы я мог сориентироваться и узнать подробности. На самом деле, я делаю это, потому что я пытаюсь изучить ASP.NET MVC.

Ответ 4

К тому времени, когда вы будете экспертом в ваших инструментах и ​​языках/технологиях, которые вы используете, новый урожай детей будет использовать более новые инструменты и языки/технологии. Затем вы должны научиться тем, чтобы получить работу. Поэтому привыкнуть к этому процессу

Ответ 5

Все хорошие ответы, и пока вы боретесь с ним, возможно, вы могли бы отправить немного отзывов своим профессорам:

  • Настоящий мир действительно оценил бы это, если бы они уделяли немного больше внимания тому, что нужно реальному миру.

Ответ 6

Это должно помочь с обучением:

https://stackoverflow.com/questions/19551/how-to-plan-your-learning-process-efficiently

https://stackoverflow.com/questions/506501/should-you-always-read-a-book-when-picking-up-a-new-technology

https://stackoverflow.com/questions/58989/whats-your-way-to-stay-up-to-date-and-learn-new-technologies

https://stackoverflow.com/questions/771771/how-to-learn-new-techniques

https://stackoverflow.com/questions/109557/what-is-your-approach-to-learning-a-new-language-or-framework

Ответ 7

теория и практика

  • read (т.е. Spring в Action is awesome, блоги и т.д.)
  • (т.е. написать код, получить обратную связь)
  • goto 1

Ответ 8

Мне очень понравилась эта книга при переходе с asp.net на jsp Head First Servlets и JSP, Second Edition.

Отличный праймер для тех, кто знает программирование и Интернет, но не так много о том, как работают jsp, servlets и mvc.

Ответ 9

Просто продолжай. Это не редкость провести 2 месяца на новой должности программиста и по-прежнему чувствовать, что вы погружаетесь в зыбучие пески. У меня были случаи, когда мне потребовалось до 6 месяцев на новой работе, чтобы выйти на сцену, где я чувствую, что я, наконец, поворачиваю за угол, и это после 10 лет опыта работы в качестве программиста. Хотя в этом случае получить доступ к базе кода было похоже на попытку расшифровать египетские иероглифы.

Ответ 10

Мне пришлось пройти примерно так примерно год назад, когда я начал свою работу. Мое решение состояло в том, чтобы прочитать каждый бит нашего кода, который я мог бы получить. Если у вас есть проблемы с spring, это особенно полезно. Проследите все файлы конфигурации, что происходит, и где это связано с кодом, где меняется материал и почему. Что касается спящего режима, поиграйте с ним и прочитайте документацию по аннотации (это было самой сложной для меня).

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

Удачи.

Ответ 11

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

Мой совет будет заключаться в том, чтобы вы свободно разговаривали с XHTML/CSS/Javascript/SQL, прежде чем переходить к учебным фреймворкам и фантастическим script библиотекам, таким как hibernate, jQuery и т.д. Возможно, вы уже из-за своего фона, но если нет, то эти основные основы позволят вам понять, что на самом деле происходит, когда ваши фантастические рамки автоматически генерируют код повсюду и т.д.

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

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

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

Ответ 12

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

Ответ 13

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

Чтобы быстро решить ваши вопросы:

Как вы узнаете о новой технологии?

Читайте, практикуйте, делайте ошибки, повторяйте. Самым ценным продуктом этого процесса будут конкретные вопросы, которые вы можете задать своим новым сотрудникам (и на переполнение стека). Помните, что задавать хорошие вопросы на самом деле заставляет вас выглядеть более умными. Задавая общие вопросы или "Я не понимаю", вы просто раздражаете....

Какой подход лучше всего подходит для изучения нескольких технологий на в то же время?

Сделайте список приоритетов, который вам нужно изучить, а затем выполните список. Вы не можете узнать все веб-коммерции за один уик-энд. Тем не менее, вы можете узнать об отдельных аспектах Hibernate во второй половине дня. Прочтите новую базу кода с помощью IDE в руке и начните исследовать используемые API. Если вы можете сосредоточиться только на соответствующих точках всех этих новых инструментов, вы можете действительно добиться прогресса быстрее, чем вы ожидали.

Ответ 14

Я был в том же положении 2 года назад. Вы действительно не можете ожидать, что узнаете популярные рамки и архитектуру, пока находитесь в школе, - вы там, чтобы изучать теории компьютерной науки и как программировать. Надеемся, что во время работы вы можете потратить время на изучение Spring, Hibernate и т.д., Но если нет, вам придется потратить некоторое время самостоятельно.

Если эти рамки новы для вас, я предлагаю получить книгу для методического и учебного обучения, а не для случайного поиска в Google или для чтения справочной документации. Я определенно сделаю это для Hibernate. Вот как я сначала узнал популярный стек J2EE, но теперь я могу просто прочитать документацию, которая поставляется с фреймворками.

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

Ответ 15

Первое, что нужно сделать, - это спецификация сервлета, так как она описывает все основные функции, к которым, по существу, привязаны веб-приложения Java. Это не легкое чтение, но просто общее понимание доставит вам QUITE далеко.

Ответ 16

Не используйте Hibernate, пока вы не узнаете JDBC полностью.

Вы не говорите, есть ли у вас фон в реляционных базах данных или SQL. Оба важны.

Мне нравится Spring, но вы должны понимать, что вам не нужно глотать все, чтобы извлечь из этого пользу. Например, вы можете получить много пробега из веб-интерфейса Spring с помощью JSP и модуля JDBC. Оставьте Hibernate на данный момент, пока вы не почувствуете себя комфортно с Spring.

Решение проблем, особенно в области информатики, - это разложение больших проблем на более мелкие. Уменьшите размер вашей проблемы и сосредоточьтесь на одном. Веб-приложения с JDBC, затем Spring, тогда Hibernate будет моей рекомендуемой прогрессией.

Ответ 17

Я получил степень "Компьютерная наука и инженерия" до разработки программного обеспечения. У меня есть техника, которую я использую, пытаясь изучить новые технологии. Обычно это происходит.

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

Я не могу гарантировать, что он будет работать для вас, но мне это очень помогает.

Ответ 18

Найдите наставника, которого вы уважаете, и делайте то же самое, что и они.

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

Ответ 19

Одна вещь, которую я делаю при изучении новых технологий или методов, - написать небольшое примерное приложение. Существует ряд хороших руководств для Hibernate, Spring MVC и Maven. Ключ состоит в том, чтобы ограничить количество вещей, которые вы пытаетесь за один раз, - будет легче определить Maven, например, если вы сосредоточитесь на Maven, не бросая в микс Spring и Hibernate. Как только вам станет комфортно, вы можете начать еще один микропроект.

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

Ответ 20

RTFM!! Серьезно, ЧИТАЙТЕ, ЧИТАЙТЕ И ПРОЧИТАЙТЕ. Затем примените READ, сделайте ошибки, READ, backtrack, чтобы выяснить, что вы сделали неправильно, ПРОЧИТАТЬ, исправить, ПРОЧИТАТЬ, применять снова и снова и снова.

Я сказал ЧИТАТЬ?:-) Я серьезно. Прочтите все, что вы можете получить. Google - ваш друг. StackOverflow - ваш друг. Там есть отличные книги и сообщения, такие как этот, описывают их и многое другое! Удачи!