Программирование. Реактивный старт — помощь начинающему

Доброго времени суток, Хабр!

Небольшое введение в текущее положение дел:
До сегодняшнего дня, с программированием меня связывал только олимпиадный аспект. А значит, и запас того, что я могу реализовать на этот момент на плюсах ограничивается всего-навсего проектом из одного-единственного исполняемого файла, в котором используется исключительно STL, а единственный метод взаимодействия этой чудо-программы с окружающей её средой — чтение из файла и запись туда же.

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

Думаю, что многим есть, что посоветовать начинающим — что использовать (библиотеки, на чём писать, etc.), как научить приложение работать с БД, как самим организовать БД, различные карты расположения распространённых грабель, книжечка для начала — в общем всё, что действительно стоит знать программисту в первый год своего Существования.

Языки, на которые ориентируемся — С++, Objective-C, возможно, Python — но, как сказано в комментариях ниже, если существуют намного более подходящие для этого альтернативы — не стесняйтесь предлагать, всегда рады новому.

P.s. Если чуть подробнее о проекте (что бы знать, в каком направлении отправлять) — некий апп, состоящий из трёх частей: серверная, клиентская и БД. Да, вероятно этого многовато для «Hello, world, we will conquer you!», но это как нельзя лучше представляет то, чем мы планируем заниматься в будущем, и, по крупинкам собирая знания, успешно заниматься. Клиентская часть должна уметь отправлять запросы на сервер в вебе и получать оттуда ответы. Сервер, соответственно — обрабатывать эти запросы и отвечать на них используя данные БД. Крайне интересуют советы по реализации Каждого из компонентов.
P.p.s. Думаю, не мы одни будем вам признательны, так что заранее: СПАСИБО!
  • Вопрос задан
  • 2927 просмотров
Пригласить эксперта
Ответы на вопрос 5
avesus
@avesus
Советов много, а комплексного подхода никто не предложил…

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

Ответьте себе на следующие вопросы:
— Насколько «быстрым» должно быть клиентское приложение?
— Какая нагрузка планируется на сервер?
— Какие данные и способы их отображения будут в клиентском приложении? Как с ним будет взаимодействовать пользователь?
— Какие требования предъявляются к каналу передачи данных между клиентом и сервером (задержки, real-time-требования)?
— Какие предельные сроки?
— Сколько времени планируется поддерживать проект (ставка на качество или на скорость разработки)?
— Планируется ли продавать исходники или поддерживать проект самостоятельно?

Выбор инструментов сильно зависит от ответов на эти вопросы.

Мой хороший друг рекомендует использовать те инструменты, которыми я владею. Не забывайте, серебрянную пулю до сих пор так и не изобрели, и для одной и той же логики на любом языке так или иначе придётся написать примерно одинаковое число строк кода.
Ответ написан
Комментировать
SharkyFLY
@SharkyFLY
для турбо старта смтрите в сторону c#
или как более извращенный вариант perl + win32 gui с последующей сборкой и компиляцией в exe через perlapp (этот способ для вас наверн будет самым быстрым, посольку перл очень легок в изучении)
Ответ написан
TERMIK
@TERMIK
Вы с какими языками знакомы? (включая разметку)
Ответ написан
sainnr
@sainnr
Исходя из прочитанного, я бы вам порекомендовал смотреть в сторону платформы .NET, и вот почему.
1) Возможность реализовать то, что вы планируете, какими угодно способами: в виде веб-приложения (ASP.NET, ADO.NET), в виде десктоп-клиента (WPF + WCF), как Silverlight-приложение (типа Flash, можно запустить и в браузере, можно сохранить локально на десктоп).
2) Для всех таких вариаций вам нужно будет знать, по большей части, только C#, синтаксис которого будет очень знаком и его будет несложно изучить. Для всего остального (в основном, это разметка HTML или XAML) существует визуальный редактор в Visual Studio.
3) Различные компоненты .NET фреймворка упростят и ускорят разработку: проще работать с БД, проще организовывать веб-сервисы (если мы говорим о десктоп-клиенте), проще обрабатывать события и т.п.
4) По всему этому написаны тонны документации, как на английском, так и на русском. Это и книги, и MSDN, и куча форумов по каждой из технологий, подкасты, видеокасты, тысячи их.
5) В процессе разработки вы также можете изучить/закрепить/научиться применять основные паттерны программирования, которые вам в дальнейшем сильно пригодятся.
6) Если вам не будет хватать возможностей .NET-фреймворка, то есть разработки, расширяющие его возможности (тот же NHibernate).
7) Разочаруетесь в .NET — будет проще потом перейти на платформу Java, у них немало общего.

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

Ложка дегтя: это все ориентированно на win-платформу. Хотя, многие вещи заработают и на других платформах.
Ответ написан
TERMIK
@TERMIK
Вы с сетью работать собираетесь или с веб?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы