Как перейти от программиста мэйнфреймов к программисту клиент-сервер?

Я был программистом мэйнфреймов Adabas/Natural и Cobol в течение 16 лет, закончившихся в 2002 году. У меня огромный опыт в анализе, проектировании, разработке, тестировании, внедрении и документировании онлайновых и пакетных приложений. Я хотел бы вернуться к разработке программного обеспечения после 7-летнего перерыва в воспитании детей.

Мне сказали, что в наши дни языки .NET пользуются большим спросом. Может ли кто-нибудь дать мне совет, какие курсы я должен пройти, чтобы получить твердое знание языков .NET? Должен ли я начать с ASP.NET или VB.NET и с каких версий? Или какой-либо другой совет, который вы можете дать тем, кто хочет обновить свои навыки программирования со среды мейнфрейма на среду клиент-сервер?

Заранее спасибо за любой вклад!


person Angela Smith    schedule 24.01.2010    source источник
comment
В последний раз я проверял, что мэйнфрейм не умер, почему вы хотите программировать другой тип, а не придерживаться того, что знаете?   -  person Jared    schedule 25.01.2010
comment
@Джаред: Да. Программисты для мэйнфреймов, похоже, в наши дни зарабатывают чертову кучу денег, потому что их осталось очень мало. И, по крайней мере, IBM, кажется, выпускает довольно крутые захватывающие новинки каждые десять лет или около того. Современные zSeries — это не столько динозавры, сколько автомобили Формулы 1.   -  person Jörg W Mittag    schedule 25.01.2010


Ответы (7)


Я не могу давать советов, но есть как минимум 3 основных типа программистов:

  • "сделайте это, ребята", который будет кодировать в Rails, Grails или php
  • «парни из фреймворка», которые будут кодировать на Java и создавать шаблоны проектирования вокруг всего (с плюсами и минусами). Существует несколько фреймворков пользовательского интерфейса; Я предпочитаю калитки. Большинство людей используют спящий режим здесь как технику сохранения.
  • и да, «парни из Microsoft», которые будут кодировать в ASP.NET. Тогда я бы выбрал C#. Спрос высок, но я предпочитаю независимость от ОС и инструменты Java.

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

person Karussell    schedule 24.01.2010

Может быть, вы могли бы пройти несколько занятий по официальной учебной программе Microsoft; это не продвинуто, но очень хорошо охватывает основные понятия.

Я предлагаю заглянуть в Microsoft Learning и поискать какое-нибудь обучение в классе.

person Rubens Farias    schedule 24.01.2010

Не уверен, насколько вы знакомы с объектной ориентацией, но я бы начал с изучения этих основ.

Я бы избегал VB.NET и вместо этого стремился к C #, это более ценный навык.

Я бы также посмотрел на любые современные методы разработки, которых вам не хватает в вашем наборе навыков, например:

  • Контроль версий, например subversion или git
  • Модульное тестирование и разработка через тестирование
  • Методы гибкой разработки
person Paolo    schedule 24.01.2010

Использование «клиент/сервер» вас больше всего утомляет ;) В наши дни все связано с Интернетом (то есть с n-уровневой архитектурой). Конечно, это своего рода клиент-серверная архитектура, просто вряд ли кто-нибудь когда-либо использует этот термин.

person APC    schedule 24.01.2010

Звучит как отличная вещь. Удачи.

Я думаю, что C# гораздо более популярен, чем VB.NET, поэтому я думаю, что с него можно было бы начать. ASP.NET также более популярен, чем настольная разработка, так что это тоже может быть лучше. Если вы выбираете ASP.NET, изучите последние выпущенные версии; .Net 3.5, С# 3.0, ASP.NET 3.5. Следующая версия не за горами, но ни в одном из обучающих материалов она не упоминается, так что используйте версию 3.5.

Навскидку, я бы предложил что-то вроде этого. Другие люди тоже присоединятся;

  1. Приобретите себе программное обеспечение для разработки; Microsoft предлагает ряд бесплатных инструментов, которые вы можете использовать для обучения на http://www.microsoft.com/express/Windows/, так что пока у вас есть ПК с Windows, вам не нужно ничего тратить.
  2. Microsoft также предлагает много документации — и я имею в виду многое. Если вы предпочитаете видео, есть видео. Если вы предпочитаете письменное, там написано. Это ошеломляет даже для меня, а я занимаюсь этим годами ;). Сначала перейдите сюда: http://www.asp.net/%28S%28ywiyuluxr3qb2dfva1z5lgeg%29%29/learn/videos/ и пошаговый видеокурс по созданию веб-сайтов с помощью ASP.NET. Их также много на msdn.microsoft.com.
  3. Не бойтесь писать сюда с очевидными вопросами.
person Steve Cooper    schedule 24.01.2010

Другой путь — отправиться в страну UNIX. Получите Mac или установите Linux на ПК и начните учиться делать некоторые вещи с некоторыми из распространенных фреймворков веб-приложений; Django, Tomcat, Rails и другие. Это означает изучение одного или нескольких Python, Ruby, Java или Scala.

В любом случае узнайте обо всей концепции NOSQL. Узнайте, что означает REST и как его применять.

person Andrew McGregor    schedule 24.01.2010
comment
Нет необходимости приобретать Mac или Linux для использования этих языков и инструментов — все они прекрасно работают в Windows. Но все технологии, которые вы упомянули, относятся к эпохе Web 1.0 и не очень хорошо переносятся в RIA или облачные вычисления, если вообще будут. Если Анджела пытается отойти от технологии мейнфреймов, зачем идти только наполовину? - person Ray Burns; 25.01.2010
comment
Я хочу уточнить свой комментарий выше: я сосредоточился на том факте, что способ работы Django/Tomcat/Rails устарел, а не на том, что сами языки нельзя использовать с новыми технологиями RIA. На самом деле три из перечисленных языков (Scala, Ruby и Python) имеют расширенные функции, такие как каррирование, которые могут сделать их разумными кандидатами на вторые или третьи языки. Однако поддержка сообществом пользователей расширенной разработки пользовательского интерфейса и RIA (например, WPF, Silverlight) на этих языках практически отсутствует, поэтому для новичков в этом году C# определенно лучше. - person Ray Burns; 25.01.2010
comment
Ну, может и так. Но тогда RIA на основе плагинов обречено, и я думаю, что полностью отказаться от этих методов — хорошая идея. И я думаю, что хотел сказать, что, возможно, хорошим планом может быть взгляд на системное программирование, а не на особенности веб-технологий месяца ... это, вероятно, был неправильный способ сказать это. - person Andrew McGregor; 25.01.2010

В настоящее время C#, несомненно, является отправной точкой.

  • VB.NET — не такой уж плохой язык, но синтаксис настолько отличается от всех других популярных языков, что навыки не очень хорошо переносятся.
  • Java невероятно ограничен как в своих возможностях, так и в способности общаться с другими языками. Это также требует от вас использования многих «анти-шаблонов» при программировании, потому что в нем отсутствуют фундаментальные функции, такие как свойства, делегаты и настоящие дженерики.
  • Динамические языки, такие как Ruby, Python или PHP, не так плохи, как Java, но не помогут вам изучить многие фундаментальные концепции программирования, как с C#, к тому же их сложнее использовать новичку, потому что они не имеют Intellisense и т. д.
  • Функциональные языки, такие как ML, F# и Haskell, действительно сводят с ума. Это хорошие языки для изучения, но они не для слабонервных.

Я бы начал с изучения C# в местном колледже, затем взял несколько книг по нему и какое-то время читал. Это познакомит вас как с языком, так и с NET Framework.

Как только вы освоите сам язык и поймете, как использовать некоторые части NET Framework, я скачаю исходный код некоторых простых приложений WPF (или Silverlight) и изучу их, чтобы увидеть, как они работают. WPF был бы лучшим выбором для начала, чем ASP.NET, потому что ASP.NET представляет массу дополнительных сложностей при работе с обратными передачами, HTML и JavaScript, которых вообще нет в WPF. Кроме того, похоже, что браузерные приложения будущего будут полнофункциональными интернет-приложениями (RIA), все из которых используют механизм, гораздо более близкий к WPF/Silverlight, чем к ASP.NET. Я бы начал с WPF до Silverlight просто потому, что когда вы не в песочнице, вы можете изучить технологию пользовательского интерфейса самостоятельно, без необходимости изучать все сложности, связанные с песочницей, и необходимость доступа к базам данных на сервере.

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

person Ray Burns    schedule 25.01.2010