На информационном ресурсе применяются cookie-файлы. Оставаясь на сайте, вы подтверждаете свое согласие на их использование.
Стать программистом: обучиться, переквалифицироваться
92264
280
С какого языка начинать изучения - это тема холивара) При этом не менее важно не то, что учить, но и КАК учить. Поэтому, не умаляя сказанного Вами, просто добавлю свое видение.
Паскаль позиционируется как язык для обучения, но если честно, я не вижу в нем каких-то преимуществ для этого. В нем довольно неудобная реализация ООП, и мне бы было жаль времени, потраченного на изучение языка, на котором я потом не буду писать (Delphi не очень востребован, мягко говоря).
Отсюда, я вижу два варианта:
1) Начать с Си (именно чистый Си, без классов, только алгоритмы). Но придется потерпеть, клепать всякие сортировки и поиски, это как лабы на первом курсе: да, важная база, но сами по себе программы бесполезные - чисто для обучения. Чтобы сделать что-то простое но полезное (типа той же записной книжки) придется потерпеть. Идеально, конечно, найти интересный и востребованный С-проект: например, на С+OpenGL написать визуализатор молекулярных реакций)
Потом перейти к С++, чтобы пропитаться духом ООП, постигнуть тонкости работы с памятью, библиотеками и пр. А потом, уже на таком мощном фундаменте можно быстро освоить C#. Я сам прошел этот путь - но это ГОДЫ.
2) Начать с C#, поскольку это язык с низким порогом вхождения. Через день вы уже сможете клепать окошки с красивым интерфейсом, еще неделька - работать с файлами, базами, еще неделька - сетью, графикой и пр. Да, это поверхностно (в C# многое уже "готовое"). Зато вы сразу будете видеть результаты, можно писать интересные программы, а тонкости алгоритмов и архитектуры - придут со временем. Для углубления знаний потом рекомендуется поизучать С++.
Я за второй вариант. Те, кто хочет знать программирование - они не остановятся на начальном этапе поверхностных знаний, и не превратятся в "быдлокодеров". Просто это путь "сверху", когда сначала понимаешь общие вещи, основы ООП, а потом детали (где и как что с памятью, хитрые алгоритмы и пр.). А те, кто знать ничего этого не хочет - зачем их заставлять идти первым путем?
Кроме того, если нужно решить две задачи, одна простая (С#), вторая сложная (C++), то начать лучше с простой - так есть шанс, что вы сделаете хоть что-то, а начав со сложной, можно в итоге не решить ничего.
Паскаль позиционируется как язык для обучения, но если честно, я не вижу в нем каких-то преимуществ для этого. В нем довольно неудобная реализация ООП, и мне бы было жаль времени, потраченного на изучение языка, на котором я потом не буду писать (Delphi не очень востребован, мягко говоря).
Отсюда, я вижу два варианта:
1) Начать с Си (именно чистый Си, без классов, только алгоритмы). Но придется потерпеть, клепать всякие сортировки и поиски, это как лабы на первом курсе: да, важная база, но сами по себе программы бесполезные - чисто для обучения. Чтобы сделать что-то простое но полезное (типа той же записной книжки) придется потерпеть. Идеально, конечно, найти интересный и востребованный С-проект: например, на С+OpenGL написать визуализатор молекулярных реакций)
Потом перейти к С++, чтобы пропитаться духом ООП, постигнуть тонкости работы с памятью, библиотеками и пр. А потом, уже на таком мощном фундаменте можно быстро освоить C#. Я сам прошел этот путь - но это ГОДЫ.
2) Начать с C#, поскольку это язык с низким порогом вхождения. Через день вы уже сможете клепать окошки с красивым интерфейсом, еще неделька - работать с файлами, базами, еще неделька - сетью, графикой и пр. Да, это поверхностно (в C# многое уже "готовое"). Зато вы сразу будете видеть результаты, можно писать интересные программы, а тонкости алгоритмов и архитектуры - придут со временем. Для углубления знаний потом рекомендуется поизучать С++.
Я за второй вариант. Те, кто хочет знать программирование - они не остановятся на начальном этапе поверхностных знаний, и не превратятся в "быдлокодеров". Просто это путь "сверху", когда сначала понимаешь общие вещи, основы ООП, а потом детали (где и как что с памятью, хитрые алгоритмы и пр.). А те, кто знать ничего этого не хочет - зачем их заставлять идти первым путем?
Кроме того, если нужно решить две задачи, одна простая (С#), вторая сложная (C++), то начать лучше с простой - так есть шанс, что вы сделаете хоть что-то, а начав со сложной, можно в итоге не решить ничего.
ассемблер давно на фиг никому не нужен.Вы это раскажите тем, кто reverse engineering'ом занимается ,)
Сам начинал с асма под z80, потом x86 и однокристалки. Ниразу нежелею ибо языки высокого уровня давались потом как родные.
Молодец, держи морковку.
Не нужен 99,99% начинающим программистом, так пойдет.
Сколько вакансий на нгсе по риверс инжинерингу и вообще вакансий с требованиями по асме?
Не нужен 99,99% начинающим программистом, так пойдет.
Сколько вакансий на нгсе по риверс инжинерингу и вообще вакансий с требованиями по асме?
То есть, может быть я непонятно выразился, суть моей мысли в том, что в современном потоке информации для человека, собирающегося стать хорошим программистом (зарабатывать хорошие деньги написанием программ для различных проектов) изучение асмы имеет очень низкое соотношение результат/трудозатраты на пути к этой цели. Ну а то что в мире полно людей, знающих асм, я в курсе
Я и послаще морковки ел, такчто спасибо, ненадо.
Нужен или ненужен каждый решает сам. Иногда категоричность заявлений просто убивает.
На нгсе таких спецов точно искать небудут, тут ищут работников за идею, или в лучшем случае, за еду.
Нужен или ненужен каждый решает сам. Иногда категоричность заявлений просто убивает.
На нгсе таких спецов точно искать небудут, тут ищут работников за идею, или в лучшем случае, за еду.
Возможно и я немного кривовато мысль выразил. Изучение асма дает в первую очередь понимание архитектуры, того как оно изнутри устроено. Никтож незаставляет писать нанем.
Вы же согласитесь с тем, что существуют разные уровни абстракции? Программисту сайтов не надо ничего знать про указатели (условно говоря), программисту на С++ в 99% современных задач не нужно знать про регистры и процессорные кэши. Зачем программисту БД знать архитектуру железа? Это замечательно, когда человек - разносторонне развитый специалист. Но всего не изучишь, почему бы не концентрироваться в первую очередь на актуальных сферах?
Я когда учил асм, мне все говорили, что вот когда-нибудь будет ситуация, что узкое место программы нужно будет реализовать на асме, пусть 10 строчек - но это ускорит всю программу. Ничуть не сомневаюсь, что такие случаи реальны, но за 5 лет работы (3D, игры, искусственный интеллект, физические симуляции, бизнес-логика, сеть, многопоточность) - мне ни в одой ситуации не потребовались асм-вставки. Уровень абстрагирования растет, потому что растет сложность программ. Тенденция к кросс-платформенности, интеграция гетерогенных технологий делает уровень железа все более скрытым от разработчика. Если уже даже прошивки пишут на Си - для чего асм может быть в принципе нужен лет через 10? Уже лет через 5, уверен, грань между Desktop и Web-приложениями значительно сотрется (это уже происходит) - подумайте, какие знания будут актуальны.
Я когда учил асм, мне все говорили, что вот когда-нибудь будет ситуация, что узкое место программы нужно будет реализовать на асме, пусть 10 строчек - но это ускорит всю программу. Ничуть не сомневаюсь, что такие случаи реальны, но за 5 лет работы (3D, игры, искусственный интеллект, физические симуляции, бизнес-логика, сеть, многопоточность) - мне ни в одой ситуации не потребовались асм-вставки. Уровень абстрагирования растет, потому что растет сложность программ. Тенденция к кросс-платформенности, интеграция гетерогенных технологий делает уровень железа все более скрытым от разработчика. Если уже даже прошивки пишут на Си - для чего асм может быть в принципе нужен лет через 10? Уже лет через 5, уверен, грань между Desktop и Web-приложениями значительно сотрется (это уже происходит) - подумайте, какие знания будут актуальны.
Сейчас читают
Красота и беременность (часть 23)
195942
1000
Игра - Киноцитатница
96532
1000
В 2023—2025 наша губерния отюбилеет вот такую дату:
83542
275
Собственно для этого понимания и упомянул... надо или не надо - как сказать... года 2 назад купил фотик... и обнаружил что к нему есть шикарная весчь chdk... тока с дырами... закачал из репы и слегка покопался... "мелочь, а приятна", потому как работает уже 2 года "без проблем". Даже не обновляю... нафига?
прогер, знающий хотя бы один asm - знает всё. Потому что остальное - "надстройка".
прогер, знающий хотя бы один asm - знает всё. Потому что остальное - "надстройка".
О. Давно подозревал... а хде ищут? Надо пару толковых прогеров ... тока чтобы не доучивать. Есть задачи на пару миллиардов баксов.
прогер, знающий хотя бы один asm - знает всё. Потому что остальное - "надстройка".Надстройка?
ASM - это знание архитектуры (конкретной!) + процедурный подход
Java, C++, C# - это абстрагирование от архитектуры (дабы кросплатформенность) + ООП подход (гораздо более мощный)
Каким образом знание ASM (который нужен в 1% задач) поможет лучше знать ООП (99% современных задач)?
Так рассуждая, можно сказать: тот, кто в идеале знает физику атомов, будет прекрасным плотником, ведь дерево в конечном итоге состоит из них ("надстройка"). Но реально ли, Вы станете штудировать курс физики при изучении столярного мастерства?
Я когда учил асм, мне все говорили, что вот когда-нибудь будет ситуация, что узкое место программы нужно будет реализовать на асме, пусть 10 строчек - но это ускорит всю программу. Ничуть не сомневаюсь, что такие случаи реальны, но за 5 лет работы (3D, игры, искусственный интеллект, физические симуляции, бизнес-логика, сеть, многопоточность) - мне ни в одой ситуации не потребовались асм-вставки. Уровень абстрагирования растет, потому что растет сложность программ. Тенденция к кросс-платформенности, интеграция гетерогенных технологий делает уровень железа все более скрытым от разработчика. Если уже даже прошивки пишут на Си - для чего асм может быть в принципе нужен лет через 10? Уже лет через 5, уверен, грань между Desktop и Web-приложениями значительно сотрется (это уже происходит) - подумайте, какие знания будут актуальны.Помимо того, что веб шагает по планете семимильными шагами, уже совсем не на горизонте но вот прямо здесь и сейчас бурно расцветают системы виртуализации всего и вся. Я понимаю, что для того, чтобы практически использовать скажем vmware или openvz или xen каких-то глубоких познаний в архитектуре используемой вычислительной платформы не нужно. Благо, продукты доведены до вполне вменяемого состояния и тупо следуя мануалу на раз-два поднимаются типовые решения. А большего в подавляющем количестве случаев и не нужно. Равно как и если вдруг понадобится написать какие-то специфичные для той или иной системы виртуализации дополнения/приложения/etc - у каждой есть свое публичное API для доступа к ручкам управления.
Однако, чтобы *понимать* как вообще работает та или иная модель виртуализации, на основании чего с точки зрения программно-аппаратной платформы это вообще возможно, какие естественные преимущества и ограничения есть у системы - для этого уже нужно достаточно хорошо разбираться в железе. Причем не на уровне статей на cnews или оверклокере но на уровне внимательного прочтения соотв. мануалов по архитектуре платформы что для x86/64 что для ARM что для MIPS не важно. И ассемблер тут - это всего лишь алфавит, которым принято записывать те или иные слова. Это как зазубрить 26ть букв vs выучить английский язык - две большие разницы.
Собственно это всего лишь один маленький пример коих на самом деле если не полениться можно составить более чем достаточно. Использовать готовое решение - это одно. Понимать же, как оно в действительности работает и в случае чего быть в состоянии самому реализовать аналогичное - совсем другое. Первое - это скорее системный администратор. Второе - системный программист. Программисты рожают геморрой. Админы его потом разгребают

Так "знание архитектуры" - и есть та основа, которую дает asm...
вторую строку подробно комментировать не буду - можно та-а-кой холивар развести... Скажу только, что знание asm как раз помогает в этом "абстрагировании" весьма и весьма нехило... иначе такого воротят - "мама - не горюй!". Особенно с ООП, которое тоже ещё "надо уметь готовить"... да и не везде оно нужно, в общем-то. Даже можно жестче сказать - оно нужно к определенного вида проектах и только.
По аналогии: тот, кто знает физику атомов - просто хороший физик. А тот, кто хороший столяр - очень хорошо знает "физиологию" древесины... а ещё и растить еённую умеет правильно... знал одного такого в детстве, ежели вчё. Хотя, казалось бы - "нафига"?
вторую строку подробно комментировать не буду - можно та-а-кой холивар развести... Скажу только, что знание asm как раз помогает в этом "абстрагировании" весьма и весьма нехило... иначе такого воротят - "мама - не горюй!". Особенно с ООП, которое тоже ещё "надо уметь готовить"... да и не везде оно нужно, в общем-то. Даже можно жестче сказать - оно нужно к определенного вида проектах и только.
По аналогии: тот, кто знает физику атомов - просто хороший физик. А тот, кто хороший столяр - очень хорошо знает "физиологию" древесины... а ещё и растить еённую умеет правильно... знал одного такого в детстве, ежели вчё. Хотя, казалось бы - "нафига"?

PS: Да, кстати. В дружественном стартапе
есть пара вакансий на позицию системного программиста. Направление - (очень) высоконагруженые сетевые приложения. Работа в Академе. Оплата достойная. Перспективы вполне адекватные. Опыт - я не ХРщик и сто лет уже никого не набирал/собеседовал, поэтому скажем так проще - если у вас 10+ лет активного позитивного
опыта в разработке системных сетевых приложений - есть о чем поговорить. Если кому интересно - писать в личку. Ессно рабочий английский язык must be.
PPS: Коллектив дружный веселый квалифицированный и все такое - работать одно удовольствие


PPS: Коллектив дружный веселый квалифицированный и все такое - работать одно удовольствие

Что про деньги умолчали, я так понимаю там от 100кр в белую?
Что про деньги умолчали, я так понимаю там от 100кр в белую?Для 10 лет опыта маловато сотки будет.

ВечноБегущий
experienced
Дружный коллектив квалифицированных разработчиком ищет в свои ряды маленького динозаврика.

junior developer - в точку! Именно об этом и был собственно вопрос, а не об уровнях: senior developer, team leader, куда меня уже успешно приписали, хотя, куда меня уже только не приписывали.
Это, случаем не тот самый "коллективчик", который себя "случайно" поименовал другим известным новосибирским брендом?

Это, случаем не тот самый "коллективчик", который себя "случайно" поименовал другим известным новосибирским брендом?Не знаю если честно кто себя поименовал другим брендом -> нет, это по всей видимости не они![]()

Каким образом знание ASM (который нужен в 1% задач) поможет лучше знать ООП (99% современных задач)?Стало интересно откуда взяты эти цифры - здравому смыслу они явно не соответствуют (даже порядок). Поиск подтвердил что ваши цифры "левые" и никакая организация подобных результатов статистического анализа не публиковала. То что ассемблер реже используется чем языки с ООП - это факт. Но вот то что в более 99% задач нужно использовать ООП - это сильно спорно. И ещё непонятно следующее - как знание одного может навредить другому и почему из них надо выбирать. Также не является каким-либо преимуществом "абстрагирование от архитектуры" без наличия какого-то конкретного круга задач.
Ещё удивило что ТС создал такую тему - хочет быть программистом, а не умеет юзать поиск.
Не переживайте. Ничего он уже не хочет... нормальный юношеский выбор профессии... я в детстве тоже кем только не хотел быть! А не хотел: (далее по списку)...
"Абстрагирование от архитектуры", без соответствующего круга задач, правильно, часто приводит к писанию "сферического коня в вакууме"... могу привести для примеру код на ООП ПХП вывода абстрактным списком "всего и вся"... пользоваться - крайне не желательно... потому что затраты на абстрагирование в ... ага, 8-12 раз превышают собственно вывод в подавляющем большинстве случаев реального использования...

"Абстрагирование от архитектуры", без соответствующего круга задач, правильно, часто приводит к писанию "сферического коня в вакууме"... могу привести для примеру код на ООП ПХП вывода абстрактным списком "всего и вся"... пользоваться - крайне не желательно... потому что затраты на абстрагирование в ... ага, 8-12 раз превышают собственно вывод в подавляющем большинстве случаев реального использования...
Городской Кот
veteran
И конечно это была специальность 2202, то бишь АСУ? :-D Меня всегда интересовало - а что же заставляет идти и учиться (ну правда на заочке - "учиться" - очень громко сказано :-D ) всякой технической лабуде, чтобы потом "сбежать"?
klalafuda
activist
И конечно это была специальность 2202, то бишь АСУ? :-D Меня всегда интересовало - а что же заставляет идти и учиться (ну правда на заочке - "учиться" - очень громко сказано :-D ) всякой технической лабуде, чтобы потом "сбежать"?По всей видимости ровно то же, что заставляет идти учиться и всякой нетехнической лабуде. Чтобы потом точно так же сбежать

Можно подумать, что все или хотя бы большая часть абитуриентов целостно себе представляют все за и против выбранного ими направления при подаче документов на 1й курс. Щас... Люди пришли, попробовали, поучились. Те немногие кому действительно понравилось и зацепило, продолжили выбранное направление и после ВУЗа. Остальные же - обратно, на исходную позицию.
и никакая организация подобных результатов статистического анализа не публиковала.Уважаемый GrishaDm,
в природе не встречаются такие "круглые" цифры, если бы Вы увидели нечто вроде 1,28 / 98,72 - это было бы поводом искать ссылки в статистике, а "1 и 99" - это обычный языковой оборот. В том смысле, что "намного больше". Естественно, я не поднимал статистику перед написанием поста - зачем? Важны не точные цифры (которые никто не знает наверняка), а суть.
То что ассемблер реже используется чем языки с ООП - это факт.НАМНОГО реже. Особенно если смотреть не по всем направлениям разработки (включая программирование каких-нибудь спутников, или промышленных конвейеров и т.п.), а по тем, которые составляют основную массу индустрии, подавляющее большинство вакансий на том же нгс: бизнес-приложения, сайты и пр.
Но вот то что в более 99% задач нужно использовать ООП - это сильно спорно.Согласен, перефразирую мысль:
1. В большинстве (порядок как раз такой - в десятки раз) современных типовых задач ASM не требуется, или требует весьма ограниченно.
2. Наиболее распространенная ныне парадигма разработки: ООП. Но сказать, что так "нужно" - не совсем корректно. Например, функциональный подход в ряде задач показывает лучшие результаты. Но таких областей задач меньше. И это явно не выбор начинающих (см. тему, ведь мы рассуждаем в ее контексте).
И ещё непонятно следующее - как знание одного может навредить другому и почему из них надо выбирать.Знание, которое не используется - груз. Логично изучать не то, что "не повредит", а то, что явно поможет - у всех нас не бесконечное время и силы.
Также не является каким-либо преимуществом "абстрагирование от архитектуры" без наличия какого-то конкретного круга задач.Абстрагирование от железа - это то, ради чего тысячи программистов "положили свои жизни", это кросплатформенность и возможность стирать технологические границы, чтобы в итоге весь компьютерный мир "говорил на одном языке". Сейчас есть один пример подобного: Web. Мы можем зайти из любого браузера на любой сайт (плюс-минус, понятно дело, уникумы типа IE пока еще портят картину). Подобное в будущем будет и с desktop-софтом. Разработчики смогут концентрировать свои ментальные усилия на том уровне абстракции, на котором работают, не испытывая нужды копаться в деталях.
Абстрагирование от железа - это то, ради чего тысячи программистов "положили свои жизни", это кросплатформенность и возможность стирать технологические границы, чтобы в итоге весь компьютерный мир "говорил на одном языке". Сейчас есть один пример подобного: Web. Мы можем зайти из любого браузера на любой сайт (плюс-минус, понятно дело, уникумы типа IE пока еще портят картину). Подобное в будущем будет и с desktop-софтом. Разработчики смогут концентрировать свои ментальные усилия на том уровне абстракции, на котором работают, не испытывая нужды копаться в деталях.Главное, чтобы очередная поросль девелуперов на C++ в конец не абстрагировалась от окружающей среды и не забыла разницы скажем между передачей аргументов по ссылке и по значению

Систему нужно видеть от и до, сверху донизу. И в случае необходимости быть в состоянии вникнуть в проблемы на любом уровне. Это не означает, что человек постоянно скажем просматривает дизассемблированные дампы программы после креша или же собирает по кусочкам трейсы общения клиента с сервером в wireshark-е выискивая в них Тот Самый Баг. Но владеть соответствующим инструментарием и знаниями всех уровней квалифицированному программисту IMHO если не необходимо то по крайней мере чрезвычайно желательно. В противном случае, это не программист но сугубо узкоспециализированный кодер с жестко заданными навыками. Скажем, 'разработчик сайтов на джумле' или в этом духе. Такие наверное тоже нужны. Но это уже из совсем другой оперы.
Так о том и речь, что использование каждого инструмента подразумевает определенную сферу необходимых знаний!
В С/С++ есть указатели и ссылки, поэтому логично, что разработчик должен знать как они работают (адреса, стек, куча, ...).
В C# уже нет указателей (кроме unsafe-блоков) - о чем это говорит?
Программисту С++ и программисту С# нужно пройти ОДИНАКОВЫЙ курс молодого бойца(память, архитектура...)? Разве у них одинаковый шанс "накосячить" с памятью?
Речь не о крайности, что, мол, за шарписта все сделает GC и ему не надо знать чем куча отличается от стека. Нет, основы знать нужно (проблема наверно в том, что все по-разному понимают, где основы переростают в тонкости). Но все-таки, сам язык, ввиду своих понятий уже примерно очерчивает, что человеку надо знать, а что нет.
Программист SQL работает на еще более высоком уровне. Да, ему может потребоваться некоторое знание железа, чтоб понимать как работает кэширование и пр. - но это вполне определенные вопросы, про регистры процессора ему знать совершенно не обязательно. Что человеку потребуется изучить - он изучит, зачем пытаться охватить все "железные" темы?
В С/С++ есть указатели и ссылки, поэтому логично, что разработчик должен знать как они работают (адреса, стек, куча, ...).
В C# уже нет указателей (кроме unsafe-блоков) - о чем это говорит?
Программисту С++ и программисту С# нужно пройти ОДИНАКОВЫЙ курс молодого бойца(память, архитектура...)? Разве у них одинаковый шанс "накосячить" с памятью?
Речь не о крайности, что, мол, за шарписта все сделает GC и ему не надо знать чем куча отличается от стека. Нет, основы знать нужно (проблема наверно в том, что все по-разному понимают, где основы переростают в тонкости). Но все-таки, сам язык, ввиду своих понятий уже примерно очерчивает, что человеку надо знать, а что нет.
Программист SQL работает на еще более высоком уровне. Да, ему может потребоваться некоторое знание железа, чтоб понимать как работает кэширование и пр. - но это вполне определенные вопросы, про регистры процессора ему знать совершенно не обязательно. Что человеку потребуется изучить - он изучит, зачем пытаться охватить все "железные" темы?
Абстрагирование от железа - это то, ради чего тысячи программистов "положили свои жизни", это кросплатформенность и возможность стирать технологические границы, чтобы в итоге весь компьютерный мир "говорил на одном языке".Не совсем так, если не сказать "совсем не так". К чему приводит абстрагирование как самоцель - уже писал выше...
2) Начать с C#, поскольку это язык с низким порогом вхождения. Через день вы уже сможете клепать окошки с красивым интерфейсом, еще неделька - работать с файлами, базами, еще неделька - сетью, графикой и пр. Да, это поверхностно (в C# многое уже "готовое"). Зато вы сразу будете видеть результаты, можно писать интересные программы, а тонкости алгоритмов и архитектуры - придут со временем. Для углубления знаний потом рекомендуется поизучать С++.А через сколько можно будет устроится C# программистом? Кому и для чего нужны эти окошки с красивым интерфейсом, и что вообще путного можно создать на фрамеворке, который только под Windows?
А чего только стоят всевозможные сюрпризы от мелкосовкта, типа "Приложение сгенерировало исключение, которое не может быть удержано" и прочие, с последующим крэшем платного продукта у клинтов. Единственное для чего более менее годится C# - делать небольшие вэб проекты на ASP.Net C# , но и тут полно других альтернатив, которые не хуже, тот же Ruby on Rails например.
А все эти псевдоновшества псевдоплатформы .net, знание которых от от вас будут постоянно требовать работодатели: будете изучать всякую х. типа Silverlight, а мелкосовт потом откажется от всего этого г, которое сама придумала. Вообще выглядит всё это печально: умирающий от ожирения код генерируется умирающими от ожирения средствами разработки, а количество багов в результате просто астрономическое (преподносится этот бред как "средства, помогающие минимизировать людские ошибки" — быдломенеджеры по внедрению верят буклетам больше, чем визуально наблюдаемой картине). Скорость достижения результата тоже прямо противоположна заявам (на ассемблере и то было бы быстрее написать). Вопрос "зачем?" вызывает в ответ тонны словесной шизофазии про "прогрессивные методы и смелый взгляд в будущее". Запасаемся попкорном и ждём прорыва этого гнойника.
Уж лучше начинать учится программированию с изучения нового стандарта С++ 0x , математики и английского языка. Может обучение так и медленнее, но зато не будет мучительно больно за бесцельно прожитые годы.
Моё личное мнение
Учиться начинать надо с понимания алгоритмизации как процесса. А какой язык взять за основу - абсолютно "по-барабану". Кодировать алгоритм можно даже на русском. Это писанием инструкций называется, ежели вчё.
Нормальный программист, практически любой, язык осваивает за 1-3 месяца в объеме кодера 2-3 летнего опыта... а вот понимание алгоритмов, структур данных, ООП и во что это всё выливается (в какой набор инструкций процессору) - увы и ах, но кодером не осваивается даже за годы работы...
... хотя, можно конечно читать букеты и "смело смотреть в бажное будущее"... опять же, исправление собственного го..но кода - очень постоянный заработок даже на одном месте... крайне удобно. Это теперь "поддержкой и сопровождением" называется, ежели вчё. И денюг стоит...
P.S. Кстати, многие вещи на Ассемблере пишутся даже быстрее, чем кажется... гораздо быстрее...
Новые средства разработки, по собственному опыту замедляют процесс работы от 2 до 10 раз, требуют для своей работы от 2 до 10 раз более мощной техники разработчику, проверяются и отлаживаются от 2 до 10 раз хуже. Но! Зато практически НЕ требуют никакой квалификации разработчика.
Нормальный программист, практически любой, язык осваивает за 1-3 месяца в объеме кодера 2-3 летнего опыта... а вот понимание алгоритмов, структур данных, ООП и во что это всё выливается (в какой набор инструкций процессору) - увы и ах, но кодером не осваивается даже за годы работы...
... хотя, можно конечно читать букеты и "смело смотреть в бажное будущее"... опять же, исправление собственного го..но кода - очень постоянный заработок даже на одном месте... крайне удобно. Это теперь "поддержкой и сопровождением" называется, ежели вчё. И денюг стоит...
P.S. Кстати, многие вещи на Ассемблере пишутся даже быстрее, чем кажется... гораздо быстрее...

Новые средства разработки, по собственному опыту замедляют процесс работы от 2 до 10 раз, требуют для своей работы от 2 до 10 раз более мощной техники разработчику, проверяются и отлаживаются от 2 до 10 раз хуже. Но! Зато практически НЕ требуют никакой квалификации разработчика.
А через сколько можно будет устроится C# программистом? Кому и для чего нужны эти окошки с красивым интерфейсом, и что вообще путного можно создать на фрамеворке, который только под Windows?Сразу отмечу, что я не ношу футболку I LOVE MICROSOFT. Мне не нравится политика этой компании, с их монополизмом, то, как они перекупают или просто целенаправленно топят конкурентов и т.д. Но на данный вопрос я стараюсь смотреть беспристрастно. Оцениваю техническую проработанность платформ, их востребованность у работодателей.
Итак. Платформа .net - одна из самых (если не самая) масштабная библиотека программных решений. "Окошки с красивым интерфейсом" - может быть этим ограничено Ваше знакомство с .net, но сам .net этим не ограничен. Сеть, базы, файловая система, графика, UI - все там есть, причем пишется в одну-две строчки. Скажите, чего там по-вашему нет? Пока Ваши высказывание остается голословным. И кстати, мир программирования под windows и не-под windows - это разные миры, не смешивайте их. Редко кто живет в обоих.
А чего только стоят всевозможные сюрпризы от мелкосовкта, типа "Приложение сгенерировало исключение, которое не может быть удержано" и прочие, с последующим крэшем платного продукта у клинтов.При чем тут .net? На любом языке необработанная ошибка приведет к крешу. В .net система исключений на порядок мощнее С++: можно в релизе получить полный call stack и пр.
Единственное для чего более менее годится C# - делать небольшие вэб проекты на ASP.Net C# , но и тут полно других альтернатив, которые не хуже, тот же Ruby on Rails например.Это Ваше, ничем необоснованное мнение. Когда мне нужно написать какое-то десктопное приложение (окна, элементы управления, работа с файлами, базами, сеть, звук) - я беру C#. На С++ будет в 2 раза дольше.
Уж лучше начинать учится программированию с изучения нового стандарта С++ 0x , математики и английского языка. Может обучение так и медленнее, но зато не будет мучительно больно за бесцельно прожитые годы.Если человек будет работать в стеке ms-технологий, ему не нужен С++.
Резюме: есть прекрасный мир свободного ПО, где сайты делают на Ruby, Python и Java. Десктоп пишут на Qt, и вместо винды царствует *nix. Это действительно здорово! И чтобы жить в этом мире, человеку нужно глубокое знание английского, ему действительно важно учить С++ 11, и книжка Кармака лежит под подушкой.
Я бы сам рад идти таким путем. Но пока я в другом мире: проприетарное ПО, стек Microsoft, винда. Это 90% вакансий. Пока наше общество не вышло в тот первый мир. К этому мы идем. Но когда человек спрашивает "как стать программистом" в плане вакансий - я отвечаю в соответствии с текущей ситуаций.
ВечноБегущий
experienced
А через сколько можно будет устроится C# программистом? Кому и для чего нужны эти окошки с красивым интерфейсом, и что вообще путного можно создать на фрамеворке, который только под Windows?Вообще, по поводу того что C# кодеров сейчас нереально много - это вы совершенно справедливо отметили. Однако своим отношением к фреймворку вы мне просто на больную мозоль наступили.

На .net-е создается очень много очень интересного софта. Ограничить сферу применения этой платформы какой-то определенной нишей довольно сложно, поскольку на нем чего только не делают. Это и веб и не веб, и Н-таер и синглтон, и клиенты и сервера, и платформенно-инфраструктурные решения и высокоуровневую бизнес логику. Мне однажды даже посчастливилось свой язык программирования на шарпе программировать.

Например, у меня есть публичный веб-сервер на котором один из бекендов написан на C#. Бекенд отдает потоковые данные. Работает на линюксовом сервере через моно. И неплохо так работает, по крайней мере на jvm я бы такого ничтожного потребления памяти не добился бы.
А вы говорите "формочки". Да, и формочки тоже.

А на счет того, что Мелкософт загнется - я с вами полностью согласен. Все мы там будем. Но. Лет на 5-10 его еще хватит, а потом с ним произойдет тоже, что произошло с саном и явой. Т.ч. без паники.
-1500
Даже комментировать не хочется, чувствуется что вы "в стеке ms-технологий". Расскажите лучше кем вы работаете в IT индустрии с таким багажом знаний, или ещё пока только учитесь на программиста?
Даже комментировать не хочется, чувствуется что вы "в стеке ms-технологий". Расскажите лучше кем вы работаете в IT индустрии с таким багажом знаний, или ещё пока только учитесь на программиста?
Да уж... какие-то розовые очки и юношеский максимализм.
Но пока я в другом миреВот именно, с текущей реальностью ничего общего неимеющим.
Эх..
А теперь можно по существу, без язвительных заявлений? Какие слова моего поста показали мой "уровень знаний", "розовый очки", "максимализм" и т.д.? В индустрии я работаю 7 лет, пройдя путь от кодера до руководителя отдела, реализовав несколько известных проектов. Правда это все С++. А C# для своих небольших разработок.
А теперь можно по существу, без язвительных заявлений? Какие слова моего поста показали мой "уровень знаний", "розовый очки", "максимализм" и т.д.? В индустрии я работаю 7 лет, пройдя путь от кодера до руководителя отдела, реализовав несколько известных проектов. Правда это все С++. А C# для своих небольших разработок.
ВечноБегущий
experienced
Были бы аргументы - вам бы их озвучили.

Мне не интересно читать насколько ассемблер полезен для развития личности программиста и понимания сути вещей. Пусть лучше те, кто считает, что ассемблер им сильно помог, подскажут мне, где найти работу, потому что вакансий нет. Всем нужен С++, ООП, и STL, к чему у меня душа не лежит, знаю только х86 ассемблер и чистый Си.
10+ лет занимался обратной разработкой и писал на ассемблере с WinAPI (мне кажется, что большинство реверсеров не пишут на асме, только читают), хорошо знаком с алгоритмами шифрования и сжатия данных. Последним проектом были инструменты для перевода компьютерных игр. За полтора года написал около мегабайта ассемблерных исходников, это не куски из чужих программ, а полностью переписанный код, который не упадёт ни на какой последовательности данных. На пожертвованиях заработал лишь ~200$.
Работу в Академгородке, в город ездить долго и тяжело.
Уже знаю, что мне ответят - "это никому не нужно, учи высокоуровневую пакость", но мне так порекомендовали, написать на форуме.
10+ лет занимался обратной разработкой и писал на ассемблере с WinAPI (мне кажется, что большинство реверсеров не пишут на асме, только читают), хорошо знаком с алгоритмами шифрования и сжатия данных. Последним проектом были инструменты для перевода компьютерных игр. За полтора года написал около мегабайта ассемблерных исходников, это не куски из чужих программ, а полностью переписанный код, который не упадёт ни на какой последовательности данных. На пожертвованиях заработал лишь ~200$.
Работу в Академгородке, в город ездить долго и тяжело.
Уже знаю, что мне ответят - "это никому не нужно, учи высокоуровневую пакость", но мне так порекомендовали, написать на форуме.
знаю только х86 ассемблер и чистый Си.Ваш бэкграунд - круто!
Чистый C со вставками ASM - это ядро и драйверы Linux (начинают с чтения LDD)
Не сказал бы, что невостребовано
ps и кто Вам сказал, что ООП невозможно на чистом С... это нужно для развития полюбому
Чистый C со вставками ASM - это ядро и драйверы Linux (начинают с чтения LDD)Спрос на таких программистов невелик. Видел вакансии на системное программирование на ARM ассемблере, с которым я еле знаком.
Обычно пишу всё на ассемблере или всё на Си. Если делать кроссплатформенную библиотеку, то придётся написать асм код в двух вариантах (синтаксис вставок у linux и windows разный) и еще один на Си (для другой архитектуры или если возникнут проблемы с компиляцией/работоспособностью).
Есть мультик Смешарики - серия "танцор Диско", рекомендую посмотреть. Вкраце - там мишка научился круто танцевать диско, но к тому времени как научился этот танец уже никто не танцевал, а другие он не умел.
Сейчас программирование на ассемблере это настолько узкая ниши, что прям плохо для вас, особенно, учитывая, что мы живем на задворках ИТ - цивилизации. Просто невыгодно вымучивать ассемблерное что -то - гораздо дешевле сделать масштабируемое решение, ибо железо дешево, а программисты дороги.
Да даже спрос на С++ достаточно низок в Нске, значительно больше java и .net (молчу про всякие php и прочее). У вас выхода ровно два - уехать за интересной работой (Москва, Германия, США), либо научится делать другую работу здесь.
В любом случае продвинутый си-шнег обычно прикручивает всякие виртуальности аналогично с++ себе, так что подучится должно быть легко.
Сейчас программирование на ассемблере это настолько узкая ниши, что прям плохо для вас, особенно, учитывая, что мы живем на задворках ИТ - цивилизации. Просто невыгодно вымучивать ассемблерное что -то - гораздо дешевле сделать масштабируемое решение, ибо железо дешево, а программисты дороги.
Да даже спрос на С++ достаточно низок в Нске, значительно больше java и .net (молчу про всякие php и прочее). У вас выхода ровно два - уехать за интересной работой (Москва, Германия, США), либо научится делать другую работу здесь.
В любом случае продвинутый си-шнег обычно прикручивает всякие виртуальности аналогично с++ себе, так что подучится должно быть легко.
Есть мультик Смешарики - серия "танцор Диско", рекомендую посмотреть. Вкраце - там мишка научился круто танцевать диско, но к тому времени как научился этот танец уже никто не танцевал, а другие он не умел.Видел.
В любом случае продвинутый си-шнег обычно прикручивает всякие виртуальности аналогично с++ себе, так что подучится должно быть легко.Верно, так и делаю. Но при приёме на работу не смогу пройти тест на знание STL и кошмарных наследований классов, чего бы никогда использовать в своём коде не стал. Если программисты какой-то компании этим упарываются, то работать вместе с ними не смогу.
P.S.: Адекватный ответ, но всё это я и сам понимаю.
Infinity_nsu
guru
Что кошмарного в наследовании? Освоить синтаксис при владении теорией - это 1-2 дня, если нет теории, то неделя максимум. На STL тоже где-то неделя уйдет. Не понимаю, в чем проблема, если честно
.

не смогу пройти тест на знание STL и кошмарных наследований классов, чего бы никогда использовать в своём коде не сталПоверьте, это придумали не просто так. Категоричное "не стал" говорит лишь о том, что не приходилось писать/видеть тонны кода, когда начинаешь задумываться не о велосипеде, а о тележке с двигателем и диваном (а сейчас и о вертолёте)

Вот гр-н tolstopuz верно писал выше, что язык не столь важен. Если обстоятельства требуют кричать матом и это эффективно, то надо быстро учиться кричать матом. Эффективность не всегда оценивается супер быстрым кодом, а в основном сделанной в срок работой приемлимого качества
В этом плане тупой кодер с STL/boost/не-важно-чем-ещё сделает намного больше, пока Вы будете перегружать регистры
Потому я указал Вам на ядро Linux. Там С++ скороходы невозможны исторически.
ЛЮбите железо - любИте embedded programming
Developer
guru
Ну так на собседовании обычно зададут не просто A: public B, а какое-нить хитрое, которое соискатели знают по другим собеседованиям, а собеседующий выучил по своим собеседованиям :).
ЛЮбите железо - любИте embedded programmingЭто будет мазохисткая любовь - в основном там платят мало.
Infinity_nsu
guru
Ну дыкть я и написала не час-два, а пару дней при владении теорией
. Соответствующую главу Страуструпа за это время уж можно освоить, а дальше выезжать на логике и программерском опыте.

Это будет мазохисткая любовь - в основном там платят мало.1. где там? мы глядим в одну и ту же точку?
2. кому мало? насколько я понял, перед нами претендент junior, вырастет - не будет спрашивать
w8m
junior
Что кошмарного в наследовании? Освоить синтаксис при владении теорией - это 1-2 дня, если нет теории, то неделя максимум. На STL тоже где-то неделя уйдет. Не понимаю, в чем проблема, если честноНе хочу это учить, потом что не хочу это использовать. Я по коду себе в уме представляю, как это будет выглядеть в ассемблере. Использование STL или MFC и черезмерное обилие мелких классов даёт ужасный код..
В этом плане тупой кодер с STL/boost/не-важно-чем-ещё сделает намного больше, пока Вы будете перегружать регистрыНапишет быстрее, качество ниже, багов больше. Но это, конечно, тенденция в современных IT, быстро клепать низкокачественную продукцию и выпускать неотлаженный код с кучей ошибок.
Потому я указал Вам на ядро Linux. Там С++ скороходы невозможны исторически
Не хочу это учить, потом что не хочу это использовать. Я по коду себе в уме представляю, как это будет выглядеть в ассемблере. Использование STL или MFC и черезмерное обилие мелких классов даёт ужасный код.Если бы Вы видели кто, из чего и как делает колбасу, пельмени, печёт хлеб, делает автомобили,...

Модераторы простите за офф.
Вопрос, наверняка, глупый.
Можно ли стать программистом за год, т.е. после посещения 10-мес. курсов в НГТУ. Реально ли потом утроиться на работу? Если первое высшее уже есть.
Вопрос, наверняка, глупый.

Можно ли стать программистом за год, т.е. после посещения 10-мес. курсов в НГТУ. Реально ли потом утроиться на работу? Если первое высшее уже есть.
ТОП 5
2
3