Должен ли начинающий программист тратить время на изучение "настольных" приложений в эти дни или в Интернете, где он?

Как новичок, я потратил время на изучение слабости C и честного PHP. Я смотрел на создание настольных приложений для Windows, но, похоже, существует хороший барьер для входа из-за сложности API. Стоит ли это изучать, или будут ли распространяться на родные приложения в будущем?

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

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

Ответ 1

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

Другими словами, не выбирайте платформу, ОС, язык программирования и т.д., а затем игнорируйте остальные. Лучше быть хорошо округленным в своем наборе навыков.

Ответ 2

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

Однако, действительно, очень сложно дать вам действительно полезный совет, кроме придерживаться того, что вам нравится. Если вы используете исключительно веб-материал, было бы глупо идти и становиться программистом для Windows GUI:)

Ответ 3

Это может измениться, но я все равно скажу.

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

Я занимался веб-сервисами, они хотели, чтобы кто-то занимался другими вещами... В конце концов, все сводилось к этому - если вы знаете, как кодировать, вы знаете, как кодировать. Если вы пишете настольные приложения прямо сейчас и говорите через 6-8 месяцев, вы хотите перейти на какой-то ASP.NET MVC, все будет в порядке.

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

Ответ 4

Не-веб-приложения будут очень полезны для будущего (как я вижу сейчас). Мы не сможем сделать что-либо с эффективностью, как хорошо написанное настольное приложение онлайн, используя интерпретируемый язык сценариев, который должен использовать сетевой протокол для связи с клиентом. Однако, если вы заинтересованы в создании сетей, возможно, вы можете попробовать немного обоим. Сделайте rss-ридер, простой веб-браузер или IRC-клиент. Все их прекрасные проекты.

Ответ 5

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

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

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

Ответ 6

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

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

Ответ 7

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

В этот момент, если вас интересует платформа Windows, я бы посоветовал посмотреть на С# и WPF. Эти технологии используются как в локальной, так и в веб-среде.

Ответ 8

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

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

Как я вижу, это, кажется, один распространенный язык, который может касаться всех этих уровней, а не .NET Framework. Заметьте, я не уточняю о С#, vb и т.д. Я считаю, что это вопрос вкуса. Однако я не могу вспомнить, что на веб-сайте n-level bank, использующем php, используется слой данных. Кроме того, веб-сайт онлайн-заказа, который будет использовать рубин, чтобы поговорить с его сервером edd edwards.

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

Ответ 9

Я считаю, что будущая модель развития приложений "Web" будет больше похожа на текущую модель разработки настольных приложений. Под этим я подразумеваю, что завтра Web-приложения не будут работать с HTML/AJAX, которые сложно и дорого поддерживать, отлаживать и тестировать, вместо этого они будут разработаны с использованием компилированных языков, предназначенных для платформы, уже доступной в браузере. Flash, Silverlight и (в меньшей степени, он появляется) Chrome - это текущие парагоны этой идеи.

Так что, может быть, не так тратить время на изучение этих "сложных" API. Моя группа создает приложения WPF, и я лично не считаю их более сложными, чем текущая культура проектов HTML/AJAX.

Ответ 10

Освойте одну дисциплину, затем переходите к следующей.

Я также занимаюсь разработкой бизнес-приложений. Самый первый шаг, который я предпринял, - изучить базу данных. Большинство приложений в реальном мире ориентировано на данные. Хорошо начинать с настольного приложения. Сделайте некоторое перетаскивание, затем изучите код позади. Я делаю то же самое с ASP.NET. Я загрузил множество стартовых наборов. Все зависит от вашего стиля обучения. Для меня я могу легче узнать "учиться", чем переваривать кусок после куска заданных теорий. Вот почему для меня отлично работают книги поваренной книги и headfirst.

Ответ 11

Из вашего фона на языках я заметил, что вы только упоминаете PHP и C. Ни один язык не является строго говоря объектно-ориентированным/OO-языком. Вы действительно должны изучить традиционный язык OO, такой как Java или С#, поскольку большинство рабочих мест ищут эти навыки. BTW, прочитайте Yegge советы о том, на каких языках должен учиться профессиональный разработчик, и подумайте о том, что вы должны делать.

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

Ответ 12

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

Но также, если вы изучаете разработку окон для Windows, вам обязательно нужно посмотреть на С# и/или VB.NET..NET Framework - самый простой способ разработки настольного приложения для Windows; гораздо легче, чем С++, из того, что я понимаю (я на самом деле не потратил много времени на С++).

Ответ 13

@Рич Брэдшоу,

Я думаю, вы можете получить ответ на свой вопрос, посмотрев на любой поисковый сайт.

что я должен узнать?

Что бы вы ни хотели и могли принести вам достаточно денег.

Ответ 14

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

Ответ 15

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

Ответ 16

Профессиональный .NET-программист должен обрабатывать как webform, так и winform. Даже вы начинаете с webform, но, наконец, у вас будет шанс на touch winform. Точно так же, как тема "VB vs С#", вы не увидите об этом эксперту .net, потому что, наконец, вы должны знать оба из них.

Ответ 17

Будут случаи, когда можно использовать вещи за пределами Интернета:

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

  • Службы Windows (WCF). Они также полезны для мониторинга вещей и отправки их: "Сервер не работает!" сообщения для кого-то, чтобы пойти и выяснить, что пошло не так.

Существует также кое-что, что можно сказать о промежуточном программном обеспечении и разработке back-end, где можно было бы писать веб-службы или обрабатывать запросы к базе данных или вставлять данные в БД, которые могут не совпадать с интерфейсом веб-интерфейса интерфейса, дайте еще пару других примеров разработки программного обеспечения, кроме встроенных систем и мобильных устройств, которые в некотором смысле также не являются веб-и неработоспособными.