"C++" Ребят, поделитесь опытом.

Тут я согласен с Dimas и опять огорчу Вас, что отдельно взятый язык скорее всего Вас сильно не продвинет. Для того чтобы стать профессиональным программистом нужна достаточно большая теоретическая база в области информационных технологий: алгоритмы, архитектура компьютера, устройство операционных систем, и т.д. Словом, всё, что изучают на получение академической степени по Computer Science. Не зря Вы часто видите BCS (Bachelor Computer Science) одним из требований на получение работы программистом, кроме специфических знаний по разным языкам и системам.

Ну а начинать можно с самого простого, того что Вам ближе. Я, например, начинал с Basic под MS-DOS, потом был Pascal, C, C++ и т.д. Это не значит что Вам нужно начинать с того же, времена меняются. К примеру в моё время на первым курсе универа изучали Pascal, Prolog и Assembler для машины-“динозавра” VAX-11 и для 8086 (PC). Сегодня упор делается на Java и C++, и “машинных” языков изучается меньше (что считаю большой ошибкой)

Я не согласен… чтобы программировать на современных языках не нужно знать никакую архитектуру компьютера (программист не техник) и устройство операционных систем не обязательно! Это старая школа… это все училось в универе и это никому не надо сейчас, если конечно ты не программируешь контроллеры…
для веб программирования например вообще все упомянутое знать не надо, кроме конечно основных алгоритмов и логики программирования…

Вот этим в основном и отличаются программисты С++ от программистов языков более высокого уровня типа Java, C#
Если не учитывать архитектуру на С++ можно наваять такого что будет работать на 32 битном процессоре и не будет на 64 битном. Или будет работать на машинах с BigEndian и не будет на LittleEndian.

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

Постоянно.
Во первых в зависимости от алгоритма выбирается контейнер.
Во вторых вы наверное знаете что 80% времени программа проводит в 20% кода. И если вы пишете часть кода в не критичном для производительности месте (например лог сообщений в файл с анализом в дополнительном потоке с невысоким приоритетом) можно позволить себе менее эффективный но более понятный алгоритм.
Если же идет разборка байтов полученных из сетевого сокета - наоборот нужно пожертвовать простотой кода в угоду производительности.
Big O notation помогает оценивать сложность алгоритма и выбирать наиболее подходящий к месту.

Вот именно… речь то идет о человеке, который хочет начать с нуля… ему не надо знать никакие архитектуры процессоров, контроллеров, как работают шины в компе, скольки разрядный процессор, что такое драйвер и все такое… это будет слишком сложно для него… то, о чем вы пишите это скорее всего программы непосредственно использующие железо… если уж на то пошло то почему бы не предложить ему дополнительно выучить еще и Ассемблер? я не спорю, если конечно человеку по душе программировать железо, то тогда это другое дело, а если он просто хочет писать софтвейр или веб приложения, тогда ничего этого не надо!

по поводу же приложений реального времени, так они легко пишутся и на .Net - windows services, web services - при этом все нужные классы и методы уже придуманы…

Вот и я в начале ветки написал, или тяжелым путем или учите Java или .Net
А то - “почитаю книжку и буду С++ программировать” :-))

Я достаточно скептически отношусь к такой возможности. Там где есть garbage collection там нет realtime perfromance.
Если же говорить о том что GC не будет включаться для некоторых участков кода - то повылезают все проблемы которые в С++ решаются аккуратным программированием а в .Net подарком от Microsoft.
И опять таки проблема - чтобы писать real-time железо все таки знать надо даже для .Net в таком случае.

И вообще не все на Windows клином сошлось. Linux и Unix системы позволяют создавать очень эффективные системы распределенных приложений без зависимости от Microsoft.
На тему какая OS лучше говорить не хочу, ибо получиться флуд.

В общем-то я просто пытался понять, что вкладывалось в такое понятие как алгоритм и о каких собственно алгоритмах шла речь.

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

Энивэй, ничего личного, просто захотелось пообщаться с “торищем по оружию” и узнать чем еще тут люди занимаются.

Кто такой “торрент”? …Я не искушенный пользователь и-нэта…:slight_smile:
некоторых понятий я не понимаю:) …тока догадываюсь:)

Torrent - технология “перекачки” компьютерных файлов. Поищите в Гугле (www.google.com) выражение “what is torrent”.

Я думаю, что Вы подразумеваете языки типа Java и C#/VB под “современными языками”. К сожалению, а может, к счастью, технологии имеют свойство меняться. Ещё 5-6 лет назад на .NET практически ничего не писалось. Программисту с хорошей теоретической базой не составит никакого труда перейти на новое. Человеку же, владеющему только современными технологиями, придётся переучиваться.
Курсов по всему, ранее перечисленному мной, в универе пока никто не отменял, так что это не попадает под понятие “старая школа”. Кстати, Вы знаете, что подавляющее большинство программистов сегодня всё ещё работает на поддержку старых систем, которые написаны отнюдь не не “современных” языках? Хуже(лучше) всех приходится тем, кто вынужден “сидеть на двух стульях”, как у нас говорят.

да я же с этим не спорю… я говорю про человека, который хочет выучить что-то одно по быстрому (не 5 лет обучения в универе) и поэтому говорю , что ему не надо покрывать все эти знания, связанные с железом или архитектурой ОС… я тоже и на ассемблере программировал, вернее пытался когда-то и на бейсике и на паскале, даже в фокспро БД создавал, но это щас никому не надо, а тем более тем конторам, которые набирают программистов для написания софтвера или веб приложений (не считая конечно тех предприятий, где надо поддерживать какую-то старую систему, написанную 10 лет назад)…

Есть такой путь по-быстрому - курсы и потом сертификаты. Правда, в хорошей конторе хороших денег стоят.

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

Собираюсь начать учить HTML по тому сайту- Сибирский государственный университет геосистем и технологий , как думаете сайт хороший?

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

Это конечно мое личное мнение, но все же поделюсь.
Я думаю если человек собирается серьезно заняться программированием, то надо читать книжки по теме на английском языке. Переводные книги полны неточностями, так как переводчики обычно не специалисты в том что переводят.
К тому же примеры кода намного понятнее если знать английский, так как source code не переводят никогда.
Например:
class Rodent{};
class Hamster: public Rodent {};
Иерархия намного понятнее если знать что Rodent - грызун а Hamster - хомяк.

полностью согласен, а тем более если хочет жить в Америке и работать программером, так тем более на английском…

тот сайт для изучения HTML в принципе не плохой, но я бы посоветовал другой (тут не только HTML, но и DHTML, JS, ASP и все что надо знать веб программеру)… сайт супер - кратко и доступно…

Подтверждаю. Просто, доступно и самое главное: с работающими примерами.

Спасибо за ссылку. Надеюсь что разберемся. :slight_smile:

Спасибо, сайт действительно хороший:ok: . Правда аглийский я не полностью знаю, но думаю разберусь.