С++ как база для изучения других языков? При том, что С++ учит всяким специфическим хакам, нафиг не нужным в других языках? Не говоря уже о тяжелом наследстве С, ручном управлении памятью, указателях, ссылках, кривом ООП'е, кривой системе типов, шаблонах и прочем, что в других языках только мешать будет. Гораздо проще выучить другой язык, чем переучиваться с С++.
раскрыть ветку (80)
Хех, кто то не осилил плюсы.
А так на заметку, в 11 и 14 плюсах очень много вкусного добавилось.
А так на заметку, в 11 и 14 плюсах очень много вкусного добавилось.
раскрыть ветку (30)
Я как раз осилил плюсы слишком хорошо. Много лет работал в крупных проектах на С/С++, был ментором по ним, тестировал кандидатов. Ушел на python больше 5 лет назад и ни разу не жалею.
Пруф с oDesk'а:
Пруф с oDesk'а:
раскрыть ветку (23)
раскрыть ветку (21)
А если осилил Haskell, все остальные языки кажутся неконтролируемым нагромождением side-effect'ов :)
раскрыть ветку (20)
раскрыть ветку (17)
раскрыть ветку (16)
Ну учитывая что Haskell программист по уровню гораздо круче среднего, и сам язык очень мощный то небольшой проект проще в одиночку потянуть, а крупных проектов можно по пальцам пересчитать.
Ну чтоб писать код на Хаскеле, нужны программисты хотя бы один, чтоб обучить джуниоров и показать best practice.
раскрыть ветку (14)
А зачем вообще писать на Хаскелле? Где его можно применять, в чем другие языки его не переплюнут?
раскрыть ветку (13)
Зачем вообще писать на высокоуровневых языках?
Хаскель позволяет работать на высоком уровне абстракции, используя мощные инструменты, которых нет в других языках. Делает множество высокоуровневых оптимизаций, выявляет многие семантические ошибки, позволяет писать в декларативном комбинаторном стиле, близко к самой задаче. Еще позволяет контролировать побочные эффекты и дает гарантии функциональной чистоты, что позволяет рассуждать о коде. Имеет мощную систему типизации с выводом типов, при этом она не навязчивая. Позволяет легко работать с параметрическим и специальным полиморфизмом. Имеет множество удобного синтаксического сахара типа list comprehensions и pattern matching. Ленивые вычисления тоже крутая штука.
Это все лишь маленькая часть возможностей.
Есть области, где Хаскель действительно превосходит другие языки, это например лингвистика, парсеры, реализации всяческих DSL. Вообще Хаскель имеет смысл применять для сложных задач, для простых достаточно и python'а.
Хаскель позволяет работать на высоком уровне абстракции, используя мощные инструменты, которых нет в других языках. Делает множество высокоуровневых оптимизаций, выявляет многие семантические ошибки, позволяет писать в декларативном комбинаторном стиле, близко к самой задаче. Еще позволяет контролировать побочные эффекты и дает гарантии функциональной чистоты, что позволяет рассуждать о коде. Имеет мощную систему типизации с выводом типов, при этом она не навязчивая. Позволяет легко работать с параметрическим и специальным полиморфизмом. Имеет множество удобного синтаксического сахара типа list comprehensions и pattern matching. Ленивые вычисления тоже крутая штука.
Это все лишь маленькая часть возможностей.
Есть области, где Хаскель действительно превосходит другие языки, это например лингвистика, парсеры, реализации всяческих DSL. Вообще Хаскель имеет смысл применять для сложных задач, для простых достаточно и python'а.
раскрыть ветку (9)
Его плюсы никто не отрицает, но код на нем выглядит, как набор грязных хаков. Даже лисп и то более читабельный.
раскрыть ветку (1)
Очень крутой язык особенно в сочетании с гринлетами и прочими плюшками позволяет например сетевой код делать очень красивым.
раскрыть ветку (2)
пишете сортировки вручную? тогда мы идем к ВАМ!
нативный сорт по предоставляемому ключу есть пожалуй в любом современном ЯП
а уж он там внутри в зависимости от размера сортируемого массива сам решит какую реализацию сортировки использовать
нативный сорт по предоставляемому ключу есть пожалуй в любом современном ЯП
а уж он там внутри в зависимости от размера сортируемого массива сам решит какую реализацию сортировки использовать
раскрыть ветку (1)
раскрыть ветку (5)
раскрыть ветку (3)
раскрыть ветку (2)
да, но это best-way: c++ -> %langName%
дело за малым: синтаксис и идеология\философия языка
дело за малым: синтаксис и идеология\философия языка
раскрыть ветку (1)
Это можно сказать worst way, так как C++ учит плохим практикам и вещам не нужным в других языках, от которых потом приходится отучаться. И сам язык для обучения не особо подходит. А то полезное, что ты мог вынести изучая С++, ты можешь изучить напрямую изучая python.
Хм, я вот начинающий программист (мне 14 лет) Начал я еще лет в 8 с html, потом начал php (знаюзнаю, но у меня не было никакого наставника чтобы показал мне что то хорошее), сейчас я прочитал одну толстенную книгу по консольному c++ и немного попрактиковался. Пока что цель - писать что то оконное, ибо на плюсах я умею писать только консоль. Для винды, на остальные ос пофигу. Вот в данный момент начал читать литературу по directx 11, так как я понял это лучший способ работы с графикой под виндой. А вообще, какие советы дадите?
раскрыть ветку (38)
Тебе денег зарабатывать или игры писать? Если игры писать то возьми лучше готовый движок и пиши скрипты (скорее всего там будет lua). А если зарабатывать то геймдев не особо прибыльная сфера.
Если просто оконные приложения, то тут куча вариантов начиная с WinAPI и MFC, и заканчивая Windows Forms под .NET, или чего-то кросcплатформенного типа Qt. Самый простой способ забахать оконное приложение это RAD типа Delphi или C++ Builder.
Если просто оконные приложения, то тут куча вариантов начиная с WinAPI и MFC, и заканчивая Windows Forms под .NET, или чего-то кросcплатформенного типа Qt. Самый простой способ забахать оконное приложение это RAD типа Delphi или C++ Builder.
раскрыть ветку (27)
И хотелось бы вообще побольше узнать о работе в программировании. Ибо насколько я знаю, это сейчас очень востребовано, но что и где (например про геймдев я не знал), в какие области идти, что учить и т.д. для работы в n лет (после универа ясеньпень) я не знаю =(
раскрыть ветку (20)
Учись думать. Когда закончишь универ, большая часть сегодняшних технологий будет гнить на помойке.
раскрыть ветку (4)
раскрыть ветку (3)
раскрыть ветку (2)
В универе больше всего, если хороший, учат понимать как все работает, к примеру, я на первом курсе сейчас у нас была основа математики, программирование, а так же Логика(гейты, их работа, булеан и тд и тп)+Ассемблер. Так что ты прав, но не полностью.
Да вот не скажите. Мне на ум то и не приходит популярных ЯП, которые появились в последние лет 10.
Зайди на любой фрилансерский сайт и посмотри каких больше заказов. Это даст тебе представление на что есть спрос. Сейчас это наверно веб и мобильные платформы.
раскрыть ветку (7)
А насчет компаний? Ибо хотелось бы работать где то где есть зарплата и т.д. Или это вообще "не тема" и лучше действительно фрилансить?
раскрыть ветку (6)
В компании надо поработать я считаю, хотя бы 2-3 года. Потом тебе будет видно оставаться в компании или уходить во фриланс. Я про фриланс сказал как индикатор спроса.
А после универа без опыта скорее всего возьмут только в аутсорсинговый body shop, другие компании не рискуют брать людей без опыта.
А после универа без опыта скорее всего возьмут только в аутсорсинговый body shop, другие компании не рискуют брать людей без опыта.
раскрыть ветку (5)
на фрилансе индикатор спроса непрофильных компаний и кучи нищебродов неспособных содержать свой IT отдел в полной комплектации.
нахрена на них смотреть?
вот цены за голову на hh каком-нибудь - вполне себе индикатор.
нахрена на них смотреть?
вот цены за голову на hh каком-нибудь - вполне себе индикатор.
раскрыть ветку (3)
Вот я например работал на Metaweb через фриланс, его потом купил Google. И они совсем не нищеброды и штат свой большой, но для некоторых задач нанимали еще и фрилансеров.
"On March 14, 2006, Metaweb received $15 million in funding. Investors included: Benchmark Capital, Millennium Technology Ventures, and Omidyar Network. Kevin Harvey of Benchmark Capital is a member of Metaweb's board of directors. On January 15, 2008, Metaweb announced a $42.5 million Series B round led by Goldman Sachs and Benchmark Capital."
И это не единственный пример. Прошлый проект например несколько лет длился и тоже там было все нормально с финансированием (крупные корпоративные клиенты уровня General Electric) и это чисто IT проект. Если вы думаете, что фрилансеров нанимают от бедности, то это не так.
"On March 14, 2006, Metaweb received $15 million in funding. Investors included: Benchmark Capital, Millennium Technology Ventures, and Omidyar Network. Kevin Harvey of Benchmark Capital is a member of Metaweb's board of directors. On January 15, 2008, Metaweb announced a $42.5 million Series B round led by Goldman Sachs and Benchmark Capital."
И это не единственный пример. Прошлый проект например несколько лет длился и тоже там было все нормально с финансированием (крупные корпоративные клиенты уровня General Electric) и это чисто IT проект. Если вы думаете, что фрилансеров нанимают от бедности, то это не так.
раскрыть ветку (2)
Океей, спасибо вам большое. А из языков что посоветуете? Что сейчас из них востребовано? Насколько я знаю, js сейчас очень популярен, хотя я так и не понял почему >.<
раскрыть ветку (6)
раскрыть ветку (5)
OpenGL кроссплатформенный, более универсальный. А DirectX используется только под Windows платформе. Но это если вообще хочешь заняться GameDev.
раскрыть ветку (4)
Ну линукс у меня только на ноуте (убунта, ничего сложного), мака вообще нет... Так что под винду, собсна, мне и сойдет писать. Геймдевом не хочу заниматься серьезно, хочу просто посмотреть пока что насколько это сложно (directx), что он может и т.д.
И насчет универсальности, в чем она заключается?
И насчет универсальности, в чем она заключается?
раскрыть ветку (3)
В том то и дело, что игры писать, но не с помощью гейм мейкера, а так, как делают нормальные игры =)
раскрыть ветку (5)
раскрыть ветку (4)
Да знаю я все это. Я ж не супер пупер убийцу гта сделать хочу, а простую 2d игру, а это намного легче как мне кажется
раскрыть ветку (3)
Для 2d игр тоже есть готовые движки, попробуй сначала на готовом, а потом, когда поймешь, чего тебе не хватает можешь попробовать это добавить туда. Всяко лучше, чем городить велосипед.
раскрыть ветку (1)
А смысл? У меня цель не создать игру, а разобраться в dx, соответственно и в winapi, попрактиковать навыки и т.д. и т.п.
Довольно хороший старт. Я бы даже сказал очень хороший, завидую тебе. Попробуй Qt - это IDE для С++, в которой можно писать оконные приложения. Придется почитать некоторые вещи, но я думаю ты справишься. Да и полезная это вещь.
С DirectX мне кажется ты немного не туда ушел. Если хочешь делать игры - https://en.wikipedia.org/wiki/List_of_game_engines вот список игровых движков. Нарочно кинул английскую вики, потому что там все лучше расписано. Посмотрите в сторону Cocos2D - говорят довольно хороший движок.
С DirectX мне кажется ты немного не туда ушел. Если хочешь делать игры - https://en.wikipedia.org/wiki/List_of_game_engines вот список игровых движков. Нарочно кинул английскую вики, потому что там все лучше расписано. Посмотрите в сторону Cocos2D - говорят довольно хороший движок.
раскрыть ветку (7)
Спасибо тебе добрый человек =) Буду изучать qt вместо directx, и движки тоже посмотрю =) Вот еще один вопрос, тут холивары всякие, какой язык лучше и т.д. Какой сейчас язык вообще имеет смысл учить для получения денег, так сказать?
раскрыть ветку (6)
Я бы наверное Python изучал, либо продолжал С++. Python довольно легкий в изучении, востребованный на рынке и функциональный.
Еще чисто под Windows хорош C#. И даже не знаю, что вам лучше посоветовать.
Еще чисто под Windows хорош C#. И даже не знаю, что вам лучше посоветовать.
раскрыть ветку (3)
Хм, а что на питоне пишется? Просто c++ я знаю только базу, писал только консольные приложения, начинал java, но забил потом... С++ же еще под андроид вроде как. Так что я сам даже не знаю, пхах =)
раскрыть ветку (2)
https://ru.wikipedia.org/wiki/Проект:Информационные_технолог...
Вот вам некоторый список. А вообще что хотите, то и пишите, думаю проблем у вас вряд ли возникнет с недостатком каких-то технологий.
Про мультиплатформенность это отдельная тема, в которой язык играет не всегда главную роль. Например C# - это в основном язык под Windows, однако Xamarin и Unity3D дают ему хорошую мультиплатформенность. Но в целом у Python с этим все замечательно.
Вот вам некоторый список. А вообще что хотите, то и пишите, думаю проблем у вас вряд ли возникнет с недостатком каких-то технологий.
Про мультиплатформенность это отдельная тема, в которой язык играет не всегда главную роль. Например C# - это в основном язык под Windows, однако Xamarin и Unity3D дают ему хорошую мультиплатформенность. Но в целом у Python с этим все замечательно.
раскрыть ветку (1)
раскрыть ветку (1)
Москва. Я не думаю, что тут есть какой то определенный язык. Да и вообще, мне без разницы где жить. Могу хоть в другую страну уехать >.<
http://dou.ua/lenta/articles/1st-job-2014/?from=doufp
вот можешь посмотреть тут востребованность языков
учу джаву и питон, чем очень доволен. освоить достаточно легко и быстро, главное - практики по-больше)
вот можешь посмотреть тут востребованность языков
учу джаву и питон, чем очень доволен. освоить достаточно легко и быстро, главное - практики по-больше)
Как же с таким богатым опытом ты не слышал об умных указателях? Что за "специфические хаки", без которых плюсы - не плюсы? А кривой ООП это потому что С++ не чистый ООП язык? Ну как то не очень тянет на аргумент.
раскрыть ветку (2)
Если бы умные указатели все проблемы с памятью решали, то и разговора бы не было. Но умные указатели не замена gc, но даже если gc прикрутить к С++ (либы есть соответствующие), это тоже не решит всех проблем. Слишком много возможностей выстрелить себе в ногу дает язык.
Всякие таблицы виртуальных функций, арифметика указателей, mangling в С++ стиле, размеры типов, зависящие от платформы, несколько видов кастов, всякие штуки оставленные для совместимости с С, отсутствие нормальной системы модулей, инстанцирование шаблонов, недружественные ошибки компилятора. Куча всего, что программистам на других языках может только в страшном сне присниться.
Про ООП там тоже много всего можно сказать. И дело совсем не в чистом ООП. ООП сама по себе парадигма проблемная. А такой ООП как в С++, можно и на С сделать (и делают, тот же COM). Потом чтобы самые вопиющие проблемы порешать прикрутили шаблоны со своим инородным синтаксисом, которые еще проблем добавили. Опять же проблемы с множественным наследованием, ромбовидным наследованием, чисто виртуальные деструкторы, которые при этом должны иметь тело и прочие неочевидные вещи. Вообщем граблей там хватает и для опытных программистов.
Всякие таблицы виртуальных функций, арифметика указателей, mangling в С++ стиле, размеры типов, зависящие от платформы, несколько видов кастов, всякие штуки оставленные для совместимости с С, отсутствие нормальной системы модулей, инстанцирование шаблонов, недружественные ошибки компилятора. Куча всего, что программистам на других языках может только в страшном сне присниться.
Про ООП там тоже много всего можно сказать. И дело совсем не в чистом ООП. ООП сама по себе парадигма проблемная. А такой ООП как в С++, можно и на С сделать (и делают, тот же COM). Потом чтобы самые вопиющие проблемы порешать прикрутили шаблоны со своим инородным синтаксисом, которые еще проблем добавили. Опять же проблемы с множественным наследованием, ромбовидным наследованием, чисто виртуальные деструкторы, которые при этом должны иметь тело и прочие неочевидные вещи. Вообщем граблей там хватает и для опытных программистов.
раскрыть ветку (1)
Да... Вот вам, счастливчикам, начавшим с С++, хорошо говорить. А кто-то с паскаля начинал, а потом Делфи) Сейчас устаканился на С# и Java, мне норм. По крайней мере для решения тех задач, что мне требуются.
раскрыть ветку (1)
Что не так с паскалем по сравнению с C++? Там тоже памятью рулишь только вручную, так что я не понимаю, чему вы сокрушаетесь.
Потому что после C++ ты будешь понимать как работают другие языки, а не тупо использовать что-то, что работает хз как
Потому что после C++ реализация ООП в других языках кажется куцой и немощной
Потому что ручное управление памятью - это надёжно, а для остального есть прямые руки и smart pointers
Потому что шаблоны на два порядка мощнее любого другого механизма обобщения кода и те же generic рядом не стояли
Потому что после C++ реализация ООП в других языках кажется куцой и немощной
Потому что ручное управление памятью - это надёжно, а для остального есть прямые руки и smart pointers
Потому что шаблоны на два порядка мощнее любого другого механизма обобщения кода и те же generic рядом не стояли
раскрыть ветку (1)
Привет, что посоветуете в качестве первого языка, чтобы в дальнейшем найти хорошую работу? Python или JavaScript? Ещё, не могли бы сказать, как относятся к самоучкам при трудоустройстве на данный момент?
Писать надо не на языке, а с использованием языка
Просто поняв как программировать, легко переключаться с языка на язык
Что за стереотип - "выучишь один язык, который мне почему-то не нравится, тебе будет трудно перейти на другие языки, которые мне почему-то нравятся"
Просто поняв как программировать, легко переключаться с языка на язык
Что за стереотип - "выучишь один язык, который мне почему-то не нравится, тебе будет трудно перейти на другие языки, которые мне почему-то нравятся"