Как я понимаю, уважаемые коллеги, здесь есть те, кто проводит собеседования.
Не могли бы вы пригласить меня к себе на собеседование? Я Вам расскажу про свой опыт, Вы мне зададите вопросов--и в результате выяснится, какие знания нужны и чего я стою как специалист.
Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
Здравствуйте, RussianFellow, Вы писали:
RF>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
RF>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
Я могу провести, лично или от имени компании: 4800р одна встреча, 6500р — с тестовым заданием.
Здравствуйте, mgu, Вы писали:
mgu>Любопытно узнать причины.
Overqualified же. Собеседователь с трудом осилил 1 язык (= боевой опыт по пальцам одной руки), а придет умник кто кодил, ещё когда тот под стол ходил, и причем не сидел в болоте 20лет, а выбирал из работодателей.
Здравствуйте, AlexGin, Вы писали:
AG>>>6) Чем статический метод класса отличается от обычного метода? RF>>Тем, что он выполняется для всех объектов этого класса при его вызове.
AG>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Здравствуйте, RussianFellow, Вы писали:
RF>В 20 лет--самое оно. Даже если нет высшего образования. RF>В 30 лет--сложнее. RF>В 40 лет--тем более.
Мне скоро 53 года.
По образованию я инженер электросвязи (высшее, но не профильное). Институт окончил ещё во времена СССР
Занимаюсь программированием примерно с конца 1990-х (когда полностью забросил связистскую тематику).
Постоянно стараюсь осваивать новые понятия по программированию.
Круг интересов — стараюсь сконцентрироваться именно на C++ (тем не менее, эпизодически занимаюсь на C#).
Постоянно ищу (и нахожу) интересные материалы в интернете, периодически покупаю литератутру по данной тематике
(вот недавняя покупка:
Не сочтите, пожалуйста, это сообщение за самопиар или саморекламу.
Это просто к тому, что так может каждый! В том числе и Вы, уважаемый RussianFellow!
Здесь — главное: желание профессионального совершенства. Задаться целью роста и мобилизовать на это все силы и средства!
Здравствуйте, elmal, Вы писали:
E>Да, ты там вроде крутой математик. По математике 2 вопроса, навскидку. Что таком монада и как это относится к программированию. Что такое синус гиперболический и зачем он нужен.
На счёт этого не соглашусь. Математики бывают разные, слово "монада" многие, даже программирующие, могут услышать впервые. Про гиперболический синус должны знать, но всё таки это далеко.
Обычно математики-программисты — это прикладные математики. Надо спрашивать методы оптимизации, дискретную математику, численные методы, статистику и теорию вероятностей, моделирование. Даже ЦОС многие могли в глаза не видеть. Основы линейной алгебры и анализа знать должны, но вряд ли глубже. По факту же, знать будут только то, что использовали или совсем базовые вещи.
Здравствуйте, sr_dev, Вы писали:
_>Хороший программист программирует на всём.
Ну, с таким уровнем, как вопросы в http://rsdn.org/forum/mfc/, программировать на всем много ума не нужно, это уровень школьника . Если что, вопросы в Java, C++ и т.д были подобного же рода . И что ужасно, вопросы подобного уровня наверно уже лет 10 идут . Если честно, уровня "круче" этого я еще не встречал на практике.
Здравствуйте, mgu, Вы писали:
AG>>Это просто ужасно... AG>>Когда при чтении такого кода, я вынужден скроллить вверх и искать: где эта переменная и какое значение у неё в тот момент (точнее — в том месте), AG>>когда она реально нужна (в том месте метода/функции, где она используется)!
mgu>Control-чпок в модных IDE обычно решает проблему.
А удачный стиль программирования её вообще исключает: пиши себе код — хоть в студии, хоть в блокноте
mgu>А за методы, превышающие по размеру 2 экрана, во времена моей программистской молодости били в коридоре ногами. И строк на экране тогда было мало.
Это очень хорошо, для студенческих разработок. В объемных же проектах, иногда бывает так, что дробление метода на несколько кусков-методов
(при этом — каждый из которых применяется только в одном месте) может существенно затруднить чтение кода.
mgu>Проблема же, на мой взгляд, в другом -- в начале функции инициализируются переменные,
Почему же это не делать именно там, где каждая из них реально требуется?
mgu>затем идут проверки, после которых наши переменные могут и не понадобиться.
Это только свидетельствует о непродуманном дизайне Вашего API, а возможно и всей архитектуры проекта
P.S. Все проверки — IMHO должны быть выделены в отдельный метод/методы (или даже класс).
Обычно — это делается на уровне GUI приложения — чтобы в случае чего, показать user-у где и в чем он ошибся.
Все расчеты, вычисления, обработка данных и т.д. — происходят в отдельном от GUI объекте,
специально разработанного для этой цели класса (класса реализации бизнесс-логики либо вычислительного ядра).
Класс бизнесс-логики/ядра иногда удобно наследовать от интерфейса (aka абстрактный базовый класс в терминологии C++).
Тогда можно применять указатель именно на базовый интерфейс Вашего класса, а не на объект класса. Это реализация паттерна "Стратегия".
Такой подход позволяет:
1) Отделить GUI от бизнес-логики — что значительно упростит чтение и понимание Вашего кода коллегами;
2) При необходимости — проще переходить на другие GUI-фреймворки (если такое потребуется);
3) Если потребуется менять алгоритмы бизнес-логики (вычислительного ядра) — то не нужно будет "сражаться" с переделкой GUI.
Здравствуйте, RussianFellow, Вы писали:
RF>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
Ну давай здесь пособеседуем, просто отсевочные вопросы, навскидку. Правильных ответов нет. Ответ "я не знаю что такое смарт поинтер, парадигма программирования, или просто полная ахинея автоматом означает что далее собеседовать смысла нет. Точнее это означает, что из списка баззвордов такой язык нужно вычеркивать точно.
1) Что такое смартпоинтеры, зачем они нужны, какие бывают, используете ли вы их в своих проектах;
2) Какие новые фичи Java 9 и 10 можете навскидку вспомнить. Как вы считаете, насколько они актуальны и насколько своевременно сделали. Что такое грааль .
3) Какие отличия C# от Java можете назвать. Какие достоинства и недостатки каждого языка можете назвать.
4) Перечислите что вам нравится и не нравится в Delphi
5) В какой парадигме программирования вы пишете на Python. Для каких проектов Python является оптимальным выбором. Какие у него достоинства и недостатки. Что такое for comprehension. Зачем он нужен. Приведите пример. И далее как тоже самое написать на Java, C++, C#, Delphi
Да, ты там вроде крутой математик. По математике 2 вопроса, навскидку. Что таком монада и как это относится к программированию. Что такое синус гиперболический и зачем он нужен.
Здравствуйте, RussianFellow, Вы писали:
AG>>6) Чем статический метод класса отличается от обычного метода?
RF>Тем, что он выполняется для всех объектов этого класса при его вызове.
Здравствуйте, RussianFellow, Вы писали:
RF>Так что все эти разговоры про то, что будто бы проблема найти программиста--ложь!
Проблема найти программиста нужной квалификации за минимальные деньги и срочно.
RF>Работодатели выбирают из соискателей тех, кто им больше нравится, больше подходит, а не предлагают работу первому человеку, положительно ответившему на вопросы на собеседовании.
Собеседования не для того существуют, чтоб экзамены соискателям устраивать. Они нужны для того, чтоб понять, подойдет человек конкретно этой организации и конкретно на эту вакансию, или нет. Если человеку не сделали оффер, а другому кандидату сделали — это не означает что тот, которому не сделали, дефектен. Это означает лишь то, что тот, которому оффер сделали, лучше подходит конкретной вакансии. А тот, которому не сделали — он крут в своей области, но конкретно эта крутость не нужна. А в той области, которая нужна, конкретно забракованный кандидат пользы может принести первые n лет весьма мало, его прошлый опыт идет лесом и даже вредит, а денег он хочет много.
RF>Так что я уже задумываюсь над тем, чтобы сменить род деятельности (уйти из программирования) на случай, если я уйду с того места, где я сейчас работаю.
Правильно задумываешься. Ибо программирование явно не твое, а на текущем твоем месте тебе платят сильно выше рынка. В данный момент польза, которую ты можешь принести нормальной конторе, не просто нулевая, а отрицательная, ты явно не на своем месте, ты не приносишь пользу обществу. Даже если ты согласишься год работать бесплатно за ноль рублей в месяц, работодателю невыгодно тебя брать. Ибо проблем будет больше, чем ты напрогаешь. Если ты будешь платить работодателю тысяч 50 в месяц за то, что у него работаешь и стажируешься — в этом случае тебя имеет смысл взять. Уровень твой раскрывается очень просто и быстро, даже до собеседования, даже по резюме. Хотя по резюме ожидания от тебя будут больше. Даже если ты вызубришь все ответы на все вопросы и как то ухитришься обмануть собеседующих, ты очень быстро вылетишь в нормальной конторе с испытательного срока (а я ни разу не встречал случаев когда кто то вылетал). Конторы, в которых работать не стоит, возможно как то и будут заинтересованы в твоих услугах. Но тут мало кто тебе посоветует, ибо обычно rsdnовцы в таких конторах не работают. В тех конторах, где работать не стоит, если ты не блатной, то зарплат нормальных нет, и я сомневаюсь что тебе будут платить больше, чем у тебя сейчас. Те конторы, где работать стоит, для тебя недоступны.
Теоретически, если ты вдруг возьмешься за ум, начнешь впахивать умственно черти как, занимаясь самообразованием, под руководством того, кто возьмется за твое образование, возможно года за 3 ты сможешь претендовать на минимальную позицию в нормальную компанию. Практически это малореально. Никто, во первых, не возьмется (женщинам определенной наружности проще, их обычно любовники или претенденты на любовников натаскивают, кто будет натаскивать взрослого дядю я не могу представить). А во вторых, впахивать придется на порядок больше, чем ты впахивал за всю жизнь что в школе, что в институте. Соответственно можешь перенапрячься и заработать нервный срыв или вообще с ума сойти окончательно. Стартовый уровень ОЧЕНЬ низкий, и это еще усугублено возрастом, когда уже по физиологическим причинам обучаемость ухудшается. Можешь попытаться конечно, если удастся, будешь наверно первым в мире кому это удалось. Причем стартовый уровень хреновый похоже вообще в любой области, не только в ИТ. Но вроде как стать нормальным сантехником проще, чем нормальным программистом. Но даже при переквалификации в сантехника, плиточника, штукатура, маляра, таксиста и т.д. придется повкалывать, причем вкалывать нужно больше, чем ты вкалывал за всю жизнь. Не будешь вкалывать, успехи будут не больше, чем у тебя сейчас в ИТ.
Здравствуйте, RussianFellow, Вы писали:
RF>Как я понимаю, уважаемые коллеги, здесь есть те, кто проводит собеседования. RF>Не могли бы вы пригласить меня к себе на собеседование? Я Вам расскажу про свой опыт, Вы мне зададите вопросов--и в результате выяснится, какие знания нужны и чего я стою как специалист.
RF>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
RF>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
а что мешает провести собеседование в режиме рсднбоксирования?
Aib>>Такие широкопрофильные сразу идут на юх при первоначальном отсеве резюме. mgu> Любопытно узнать причины.
Человек:
1) Не может отделить важное от неважного. Если он уже не пользуется Delphi, то скилл у него несравним со скиллом специалиста, для которого Delphi всё ещё остаётся основным рабочим окружением.
2) Не знает чего хочет (какую технологию).
Ты не прошёл собеседование, т.к. настаиваешь на очном визите. То есть не понимаешь и не умеешь пользоваться современными средствами связи (видеомостом, например).
Здравствуйте, sr_dev, Вы писали:
_>Здравствуйте, elmal, Вы писали:
E>>3) Какие отличия C# от Java можете назвать. Какие достоинства и недостатки каждого языка можете назвать.
_>Только мне кажется, что вопрос идиотский?
Возможно
Я бы тоже такое спросил, если человек заявил, что владеет обоими языками. Посмотреть как он рассуждает, на что обращает внимание, с чем реально сталкивался в жизни.
Я вот даже про один язык спрашиваю, что человеку нравится и чего не хватает. По моему показатель насколько глубоко разбирался. Если все нравится — это немного подозрительно. Или мало опыта, или ему не интересно. Также видно реально ли он с проблемами сталкивался или читал статью "why language Y is better than Z".
Здравствуйте, sr_dev, Вы писали:
_>Вопрос идиотский, и вечные срачи "java vs c#" на любом форуме как бы намекают. Хотя если вас не ответ интересует, а способность рассуждать, то возможно. Но имхо рассуждать лучше не на идиотские темы.
На деле. Мы имеем перед собой по резюме эксперта с 20 летним опытом. У которого в резюме стоит оба языка. Разве не хотелось бы узнать на собеседовании мнение эксперта, который работал и с тем и с тем? Вот я, например, не очень в курсе относительно того, какие там основные алгоритмы сборки мусора в .NET, что там нужно настраивать, какие рекомендуются настройки и т.д. Ибо с .NET работал последний раз лет 10 назад, когда там была только вторая версия. Соответственно у кандидата будет шанс продемонстрировать свои знания по всему своему опыту, а у меня появится шанс узнать новое. Просто экзамен устраивать — скучно и неинтересно как для интервьюера, так и для соискателя. А тут прекрасный ИМХО вопрос для начала диалога, можно много чего рассказать на остаточных знаниях без какой либо подготовки, рассказать об опыте, о граблях, которые были и там и там. Заодно и появится понимание с чем у человека реально больше опыта.
На практике в попытке ответить на этот вопрос топикстартер скорее всего продемонстрирует полное незнание как Java, так и C# . Вернее уровень знаний будет примерно как у прослушавшего курс Java за 5 часов для гопников через полгода после прослушивания, когда на практике последний раз что то писал лет 5 назад. Вот реально, мне что то подсказывает что я не получу ответа ни на один из моих вопросов от топикстартера. Хотя уверен, что для реально обладающих такими баззвордами нормально ответить и двигаться дальше не составило бы ни малейших затруднений.
Здравствуйте, RussianFellow, Вы писали:
AG>>При этом, следует понимать: AG>>Что если тебе за 40...50, то ты явно проиграешь студенту (который знает всё, но понемногу)
RF>Ну неправда!
Да нет, правда. У большинства с возрастом растет только губёшка на ожидаемую зарплату. Профессионально развивают себя не многие. А вот костность мышления после 40 увеличивается в разы. Так что студент всем лучше — и денег ему мало надо, и огонь в глазах и обучаемость выше.
Здравствуйте, RussianFellow, Вы писали:
RF>У студента нет нормального опыта работы.
И у 40-летних в основном нет. Потому что нормальных контор и нормальных команд крайне мало. Почти нет. А то что чел 30 лет просидел на одном месте в DOS-е писал — не значит что у него "опыт работы"
Здравствуйте, AlexRK, Вы писали:
AG>>>6) Чем статический метод класса отличается от обычного метода? RF>>>Тем, что он выполняется для всех объектов этого класса при его вызове.
AG>>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
ARK>На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Шутка и юмор заценены...
P.S. Статический метод — это метод не принадлежащий ни одному из объектов (экземпляров) класса.
Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса).
Будет выполняться одинаково, вне зависимости от того, сколько экземпляров данного класса существует (или вообще не существует ни одного).
Здравствуйте, elmal, Вы писали:
E>Не заточенные под программирование мозги могут помешать. Отсутствие базовых знаний и даже диплома о высшем образовании. Плюс проблемы со здоровьем. Общая заторможенность, хреновая обучаемость, учет у психиатра и постоянные пребывания на больничном. В таких условиях профессиональный рост — без шансов. Мозги нужно в молодости тренировать — если время упущено и возраст даже под 30, вообще без шансов. ИМХО даже в возрасте 20 лет шансов мало.
Вы сейчас о чем, какие шансы, какие 20 лет? Это говорят про математиков, претендующих на серьезные результы. Помимо Торвальдса не мало очень крутых прогаммистов, многие в программирование пришли поздно.
Все зависит от желания, отношения к работе и трудоспособности. Ничего сверхъестественного.
Здравствуйте, AlexGin, Вы писали:
AG>Мне скоро 53 года. AG>По образованию я инженер электросвязи (высшее, но не профильное). Институт окончил ещё во времена СССР AG>Занимаюсь программированием примерно с конца 1990-х (когда полностью забросил связистскую тематику). AG>Постоянно стараюсь осваивать новые понятия по программированию. AG>Круг интересов — стараюсь сконцентрироваться именно на C++ (тем не менее, эпизодически занимаюсь на C#). AG>Постоянно ищу (и нахожу) интересные материалы в интернете, периодически покупаю литератутру по данной тематике AG>(вот недавняя покупка:
— книга по C++17).
AG>Не сочтите, пожалуйста, это сообщение за самопиар или саморекламу. AG>Это просто к тому, что так может каждый! В том числе и Вы, уважаемый RussianFellow! AG>Здесь — главное: желание профессионального совершенства. AG>Задаться целью роста и мобилизовать на это все силы и средства!
Здравствуйте, RussianFellow, Вы писали:
RF>Не могли бы вы пригласить меня к себе на собеседование? Я Вам расскажу про свой опыт, Вы мне зададите вопросов--и в результате выяснится, какие знания нужны и чего я стою как специалист.
Здесь тебя все знают. Будет заранее предвзятое отношение. Для обозначенных задач, нужно, что бы с тобой беседовали люди, не знакомые с тобой никак — ни в оффлайне, ни в онлайне (годится вариант — знаком в онлайне, но на собеседовании не будет знать, что это ты).
Создай резюме на hh.ru и superjob.ru и посмотри на то, кто тебя будет звать на собеседование.
RF>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
А вот это уже наглость. Либо проводи собеседование по скайпу, либо договорись о том, что бы прийти рано утром или поздно вечером. Сдвинуть привычный рабочий график в будни на ±1,5 часа и ты сможешь и люди, проводящие собеседование в компании.
Либо возьми отпуск на 2 недели и потрать их на походы по собеседованиям.
Здравствуйте, snautSH, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
SH>Delphi это не язык программирования, это IDE, язык там Pascal
Нет, Delphi — это именно язык программирования, наряду с IDE. Никакого Pascal там нет.
Здравствуйте, Эйнсток Файр, Вы писали:
Aib>>>Такие широкопрофильные сразу идут на юх при первоначальном отсеве резюме. mgu>> Любопытно узнать причины.
ЭФ>Человек: ЭФ>1) Не может отделить важное от неважного. Если он уже не пользуется Delphi, то скилл у него несравним со скиллом специалиста, для которого Delphi всё ещё остаётся основным рабочим окружением.
Тогда сразу гоните в шею тех, кто владеет и русским, и английским. С такими скиллами ведь будут инсёртить английские ворды в русский спич.
А что касается важного, то синтаксис конкретного языка явно не самое главное в программировании. Серьёзные проекты (тм) и не очень часто используют несколько языков.
ЭФ>2) Не знает чего хочет (какую технологию).
Здравствуйте, RussianFellow, Вы писали:
N>>Я могу провести, лично или от имени компании: 4800р одна встреча, 6500р — с тестовым заданием.
RF>Но это Санкт-Петербург. Я правильно понял?
Здравствуйте, Amygdala, Вы писали:
A>Да нет, правда. У большинства с возрастом растет только губёшка на ожидаемую зарплату. Профессионально развивают себя не многие. А вот костность мышления после 40 увеличивается в разы. Так что студент всем лучше — и денег ему мало надо, и огонь в глазах и обучаемость выше.
А самое главное -- начальник на фоне такого студента смотрится просто великолепно.
Здравствуйте, sr_dev, Вы писали:
_>Зачем хотеть 10 именно последних лет именно в джаве, я не знаю, но ради бога. Сдаётся мне тут сам принимающий не копенгаген (а скорее осло).
Скорее, в программировании ещё Росток.
Объясняю: после прогонов по "новым фичам" (тм) в Джаве №12 на интервью, успешный кандидат получит выгребную яму на good ol' Java 4.
Здравствуйте, Блудов Павел, Вы писали:
БП>А вы на этих языках что-нибудь написали?
Да, где-то по 7 лет на каждом, точнее сказать склероз не позволяет.
БП>Я, в основном, на С++ пишу, но пару принципиальных отличий C# и Java могу сходу назвать:
БП>Генерики. В Java они существуют только во время компиляции. Во время исполнения List<String> и List<Object> одно и то же. БП>Написать функцию T createFoo<T>() в Java невозможно, а в C# запросто. Тип T, фактически, передаётся в метод. БП>Говоря простым языком, в C# у всякого метода есть два списка параметров. Один для типа, другой для экземпляра.
В моём представлении первый вариант (компиляция) относится к шаблонам С++, а в Джава-шарпе генерики определяются во время исполнения. Впрочем, не настаиваю, я под юбку капот не лезу.
БП>Boxing для примитивов. В C# магия превращения int в Object более высокого порядка, чем в Java.
Да он в любых языках, где есть примитивные и ссылочные типы. В Си-диезе для этого придумали термин.
БП>В C# можно создать Set<int> и это совсем не то, что Set<Integer> в Java. Память он будет кушать как int[], БП>но все нужные плюшки будут в наличии. В Java такое невозможно. БП>
БП>Все прочие различия, типа yeld return в C# или хитрые enum в Java — это синтетический сахарок от компилятора.
Обожаю сладкое. Автосвойства, ссылочные параметры, перегрузку операторов, расширения и прочее, что отличает Си-диез от кипящей тарелки Явы. А за оператор ?? я отдам все билдеры Джавы. Но всё это не отличия, а косметика. Суть та же. Зато джавистам доплачивают за вредность.
БП>В теории, всё это можно добавить при помощи внешних надстроек над компилятором, типа Lombok.
БП>P.S. Если кто знает ещё какие важные различия, пожалуйста поделитесь.
Здравствуйте, AleksandrN, Вы писали:
AN>Нет проверки корректности входных условий. Использован знаковый тип, поэтому на входе может быть -1.
AN>Я бы сделал чуть по другому. AN>
AN> unsigned long result = 2;
AN> // Сэкономим пару итераций.
AN> for ( unsigned long i = 3; i <= value; i++ )
AN> result *= i;
AN>
А зачем вообще там i? Почему бы просто не написать:
unsigned long result = 2;
// Сэкономим пару итераций. for (; value>2; --value )
result *= value;
AN>Но ещё лучше так: AN>
AN> unsigned long a = 1234567;
AN> // Что здесь происходит, можешь объяснить?
AN> const char *s = "Hello world!";
AN> printf( "Data: %lu %s; address: %p\n", a, s, s );
AN>
Здесь проблема теста. Не было понятно зачем там strcpy и можно ли её удалять. Может в тесте надо продемонстрировать знание этой функции. Про strdup тоже непонятно, а ещё она может вернуть ноль .
AG>P.S. Статический метод — это метод не принадлежащий ни одному из объектов (экземпляров) класса. AG>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса). AG>Будет выполняться одинаково, вне зависимости от того, сколько экземпляров данного класса существует (или вообще не существует ни одного).
и, как следствие не имеет контекста(ака ссылки на экземпляр класса), ну а далее всякие фабричные методы и фабрики
mgu>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
а вот это тебе аукается нелюбовь к фреймворкам и желание делать все самому. бери готовые
Здравствуйте, mgu, Вы писали:
mgu>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
Здравствуйте, AlexRK, Вы писали:
RF>>>Тем, что он выполняется для всех объектов этого класса при его вызове.
AG>>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
ARK>На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Будет на всех и очень быстро. Когда много объектов этого класса, тогда медленно.
Здравствуйте, mgu, Вы писали:
mgu>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
Ну вот что-то типа того — на си краше. Получился какой-то кусок говна, но вроде работает:
Здравствуйте, Тёмчик, Вы писали:
Тё>Здравствуйте, AlexGin, Вы писали:
AG>>P.S. Статический метод — это метод не принадлежащий ни одному из объектов (экземпляров) класса. Тё>Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса.
Что за дичь! К каким полям класса? Разве что к статическим полям...
У кого какие мнения — строка с OMG:
— скомпилируется/ не скомпилируется
— выполниться/ не выполниться
AG>>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса). Тё>Одинаковая реализация не говорит, что это идеалогически одно и то же. И кроме того, в чистых OO языках нет глобальных функций.
Я в курсе, что в новых ЯП нет понятия глобальная функция, тем не менее — не будешь спорить, что статические — аналоги глобальных.
НАПОМНЮ — речь шла об C++
Здравствуйте, AlexGin, Вы писали:
Тё>>Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса. AG>Что за дичь! К каким полям класса? Разве что к статическим полям...
Статик это и есть поле класса. А ещё, копий класса может быть несколько- по одной на ClassLoader
AG>>>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса).
Нет. См ниже мой коммент.
Тё>>Одинаковая реализация не говорит, что это идеалогически одно и то же. И кроме того, в чистых OO языках нет глобальных функций. AG>Я в курсе, что в новых ЯП нет понятия глобальная функция, тем не менее — не будешь спорить, что статические — аналоги глобальных.
Нет
AG>НАПОМНЮ — речь шла об C++
Где? C++ это гибрид ежа с ужом, потому приводить в пример его для подтверждения OOP концепций неправильно.
Здравствуйте, ned, Вы писали:
AG>>У кого какие мнения — строка с OMG: AG>>- скомпилируется/ не скомпилируется
ned>Если нет объектов этого класса, то скомпилируется. Но медленно!
Строго говоря, это не совсем верно: если у вас большой проект, то компилятору придется искать, нет ли объектов этого класса, по всем модулям, а это медленно. Но если проект хэлло ворлд- тогда быстро.
Здравствуйте, Sharov, Вы писали:
S>Вы сейчас о чем, какие шансы, какие 20 лет? Это говорят про математиков, претендующих на серьезные результы. Помимо Торвальдса не мало очень крутых прогаммистов, многие в программирование пришли поздно.
Одно дело прийти в программирование из любой области, но со сформировавшейся привычкой думать. И другое, когда в школе бухать начинать с пятого класса, когда нет даже среднего образования, когда последние лет 7 читал только желтую прессу и т.д. Без шансов даже в 20 лет измениться, если до этого никогда в жизни не напрягался. Плюс неоднократно пытался, но никак не осиливаются даже простейшие вещи, в результате забил.
Здравствуйте, elmal, Вы писали:
mgu>>Интересно, а какие объективные причины могут мешать профессионально расти? E>Не заточенные под программирование мозги могут помешать.
Мне кажется, что это встречается так же редко, как и люди, не спускающие за собой воду.
Здравствуйте, bnk, Вы писали:
bnk>Интересно, какая мотивация всем этим заниматься. Деньги, или?
Это все-таки некоторый личностный/профессиональный рост.
И желание быть как-то востребованным. Чтобы не затеряться среди современных молодых и энергичных...
Что же касается денег, то здесь скорее уместна формулировка: не остаться без средств, на содержание семьи
bnk>Не надоела вся эта галиматья за 30 лет?
В разное время — разные приоритеты.
Так, например, был период (середина 2000-х, начало 2010-х) — когда C++ не развивался так динамично, как теперь.
Тогда я больший упор делал на аспекты по проектированию, чем по конкретным технологиям и средствам разработки.
P.S. Личностный рост — ИМХО это когда ты видишь свой личный прогресс.
Это когда ты смотришь код и тебе хочется "набить морду тому г-но-кодеру", а потом вдруг спохватываешься, что это твой собственный код, написанный тобой же лет 5...6 назад
Здравствуйте, AlexGin, Вы писали:
mgu>>Control-чпок в модных IDE обычно решает проблему. AG>А удачный стиль программирования её вообще исключает: пиши себе код — хоть в студии, хоть в блокноте
Да, со смартфона. Только хардкор.
mgu>>А за методы, превышающие по размеру 2 экрана, во времена моей программистской молодости били в коридоре ногами. И строк на экране тогда было мало. AG>Это очень хорошо, для студенческих разработок. В объемных же проектах, иногда бывает так, что дробление метода на несколько кусков-методов AG>(при этом — каждый из которых применяется только в одном месте) может существенно затруднить чтение кода.
Ну да, выбор размера метода -- это тоже искусство. В противоположность обезьянничанию по лекалам.
mgu>>Проблема же, на мой взгляд, в другом -- в начале функции инициализируются переменные, AG>Почему же это не делать именно там, где каждая из них реально требуется?
Я только "за".
mgu>>затем идут проверки, после которых наши переменные могут и не понадобиться. AG>Это только свидетельствует о непродуманном дизайне Вашего API, а возможно и всей архитектуры проекта
AG>P.S. Все проверки — IMHO должны быть выделены в отдельный метод/методы (или даже класс). AG>Обычно — это делается на уровне GUI приложения — чтобы в случае чего, показать user-у где и в чем он ошибся. AG>Все расчеты, вычисления, обработка данных и т.д. — происходят в отдельном от GUI объекте, AG>специально разработанного для этой цели класса (класса реализации бизнесс-логики либо вычислительного ядра).
Ох, не били вас в молодости ногами... Проверки должны быть и в гуях, и на принимающей стороне. Тем более, что данные могут приходить не только от морды. Да даже в частной функции -- открываем файл, а его уже умыкнули...
AG>Класс бизнесс-логики/ядра иногда удобно наследовать от интерфейса (aka абстрактный базовый класс в терминологии C++). AG>Тогда можно применять указатель именно на базовый интерфейс Вашего класса, а не на объект класса. Это реализация паттерна "Стратегия".
Спасибо, мне уже доложили. (с) Брежнев.
AG>Такой подход позволяет: AG>1) Отделить GUI от бизнес-логики — что значительно упростит чтение и понимание Вашего кода коллегами; AG>2) При необходимости — проще переходить на другие GUI-фреймворки (если такое потребуется); AG>3) Если потребуется менять алгоритмы бизнес-логики (вычислительного ядра) — то не нужно будет "сражаться" с переделкой GUI.
В моей вселенной обычно гуисты и разработчики промежности даже не догадываются о существовании друг друга.
Здравствуйте, AlexGin, Вы писали:
AG>P.S. Следует понимать, что: "программирует на всём" != "профессионально разрабатывает на всем"
По-разному бывает. Я вот на текущем месте работы с чем только не сталкивался, и о некоторых из языков ты наверняка даже и не слышал (SFC? Ladder? FBD?). Просто с определённого момента разница между языками становится несущественной, и фокус смещается на их инфраструктуру (библиотеки, возможности среды исполнения, всякий middleware и т.п.), т.к. чисто языковые возможности везде ±одинаковы.
Здравствуйте, RussianFellow, Вы писали:
RF>Как я понимаю, уважаемые коллеги, здесь есть те, кто проводит собеседования. RF>Не могли бы вы пригласить меня к себе на собеседование? Я Вам расскажу про свой опыт, Вы мне зададите вопросов--и в результате выяснится, какие знания нужны и чего я стою как специалист.
RF>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
RF>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
Всем очень хорошо и очень давно понятно, чего ты стоишь как специалист, и твое "знание С++ тоже как на ладони": https://www.rsdn.org/forum/cpp/7152403.1
Стоишь ты даже не ноль.
Твоя стоимость отрицательна.
Ты сначала стань специалистом, а потом уже приходи с разговорами про собеседование.
Здравствуйте, RussianFellow, Вы писали:
RF>Как я понимаю, уважаемые коллеги, здесь есть те, кто проводит собеседования. RF>Не могли бы вы пригласить меня к себе на собеседование? Я Вам расскажу про свой опыт, Вы мне зададите вопросов--и в результате выяснится, какие знания нужны и чего я стою как специалист.
RF>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
RF>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
Здравствуйте, Zhendos, Вы писали:
Z>Может вот это подойдет: https://www.interviewbit.com/mock_interview/ и никуда ехать не надо. Z>По нынешним временам нужно прокси чтобы открыть.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Zhendos, Вы писали:
Z>>Может вот это подойдет: https://www.interviewbit.com/mock_interview/ и никуда ехать не надо. Z>>По нынешним временам нужно прокси чтобы открыть.
Pzz>А это за что заблокировали?
RF>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
Раньше работодатель заставлял работников выходить в выходные. Но при этом оплачивал переработки. А теперь соискатель, и за свой (работодателя) счёт?
Здравствуйте, Aib, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python. Aib>Такие широкопрофильные сразу идут на юх при первоначальном отсеве резюме.
Ну про RussianFellow мы-то все здесь знаем, а если человек и вправду писал сперва на Delphi, затем на C++ и Pyhton, затем на Java, и наконец — на Scala и C#? И при этом свою контору в ЕС открыл, работает вот. Что, тоже отсеете?
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Ты не прошёл собеседование, т.к. настаиваешь на очном визите. То есть не понимаешь и не умеешь пользоваться современными средствами связи (видеомостом, например).
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, Aib, Вы писали:
Aib>>Такие широкопрофильные сразу идут на юх при первоначальном отсеве резюме.
mgu>Любопытно узнать причины.
Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Ты не прошёл собеседование, т.к. настаиваешь на очном визите. То есть не понимаешь и не умеешь пользоваться современными средствами связи (видеомостом, например).
А работать тоже через "видеомост"? А если работник хочет работать именно в офисе, то он по-твоему уже априори "не прошел собеседование"?
Здравствуйте, sr_dev, Вы писали:
_>Здравствуйте, Aib, Вы писали:
Aib>>Такие широкопрофильные сразу идут на юх при первоначальном отсеве резюме.
_>Хороший программист программирует на всём.
Здравствуйте, Nikе, Вы писали:
N>Здравствуйте, RussianFellow, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
RF>>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
N>Я могу провести, лично или от имени компании: 4800р одна встреча, 6500р — с тестовым заданием.
Здравствуйте, msorc, Вы писали:
M>Здравствуйте, sr_dev, Вы писали:
_>>Здравствуйте, elmal, Вы писали:
E>>>3) Какие отличия C# от Java можете назвать. Какие достоинства и недостатки каждого языка можете назвать.
_>>Только мне кажется, что вопрос идиотский?
M>Возможно
M>Я бы тоже такое спросил, если человек заявил, что владеет обоими языками. Посмотреть как он рассуждает, на что обращает внимание, с чем реально сталкивался в жизни. M>Я вот даже про один язык спрашиваю, что человеку нравится и чего не хватает. По моему показатель насколько глубоко разбирался. Если все нравится — это немного подозрительно. Или мало опыта, или ему не интересно. Также видно реально ли он с проблемами сталкивался или читал статью "why language Y is better than Z".
Вопрос идиотский, и вечные срачи "java vs c#" на любом форуме как бы намекают. Хотя если вас не ответ интересует, а способность рассуждать, то возможно. Но имхо рассуждать лучше не на идиотские темы.
Что касается железобетонных фактов и практики, которая критерий истины, то в любой теме полно одинаковых успешных проектов на обоих языках.
опа опа мы воюем с нато
любит хавать этот кал
путинская вата
Здравствуйте, sr_dev, Вы писали:
M>>Я бы тоже такое спросил, если человек заявил, что владеет обоими языками. Посмотреть как он рассуждает, на что обращает внимание, с чем реально сталкивался в жизни. M>>Я вот даже про один язык спрашиваю, что человеку нравится и чего не хватает. По моему показатель насколько глубоко разбирался. Если все нравится — это немного подозрительно. Или мало опыта, или ему не интересно. Также видно реально ли он с проблемами сталкивался или читал статью "why language Y is better than Z".
_>Вопрос идиотский, и вечные срачи "java vs c#" на любом форуме как бы намекают. Хотя если вас не ответ интересует, а способность рассуждать, то возможно. Но имхо рассуждать лучше не на идиотские темы.
Чтобы уметь грамотно в срач "java vs c#" надо хорошо представлять обе платформы. Я вот умел когда-то но мои знания о c# закончились на 1.1.
Здравствуйте, sr_dev, Вы писали:
_>Вопрос идиотский, и вечные срачи "java vs c#" на любом форуме как бы намекают. Хотя если вас не ответ интересует, а способность рассуждать, то возможно. Но имхо рассуждать лучше не на идиотские темы.
Способностью кандидата рассуждать на идиотские темы можно проверить как он будет себя ввести в стрессовых ситуациях. Ну, например, когда коллеги на его проекте идиоты и предлагают идиотские решения
_>Что касается железобетонных фактов и практики, которая критерий истины, то в любой теме полно одинаковых успешных проектов на обоих языках.
Ну с этим я и не спорю, что полно успешных и ужасных проектов на разных языках. Это же беседа, а не формальное анкетирование. Такой вопрос "Java vs C#" может неплохо раскрыть кандидата и дать предмет для дальнейшего обсуждения.
Здравствуйте, Submitter, Вы писали:
S>А работать тоже через "видеомост"? А если работник хочет работать именно в офисе, то он по-твоему уже априори "не прошел собеседование"?
Работника в офис вполне себе можно отсобеседовать через скайп. Ему не нужно ехать в офис и собеседующие также могут быть из разных мест.
Здравствуйте, sr_dev, Вы писали:
_>Вопрос идиотский, и вечные срачи "java vs c#" на любом форуме как бы намекают. Хотя если вас не ответ интересует, а способность рассуждать, то возможно. Но имхо рассуждать лучше не на идиотские темы.
У любого языка у любой технологии есть границы применимости, сильные и слабые стороны. И соответственно очень интересно услышать мнение эксперта с 20 летним опытом, который работал и с тем и с тем, его взгляды на сильные и слабые стороны и того и другого. Интервьюер в результате удовлетворит свое любопытство, если у соискателя реальный опыт, а кандидат сможет на остаточных знаниях продемонстрировать опыт и знания. Всем хорошо, главное слишком долго на эту тему не холиварить, 5 минут более чем достаточно, нормального кандидата придется прерывать, сказав что хватит холиваров .
Но на практике топикстартера вопрос скорее всего поставит в ступор и он начнет нести ахинею сразу же. Скажет что в Джаве нет делегатов в лучшем случае, а про слова лямбда, LINQ и т.д он не слышал вообще .
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, elmal, Вы писали:
E>>Да, ты там вроде крутой математик. По математике 2 вопроса, навскидку. Что таком монада и как это относится к программированию. Что такое синус гиперболический и зачем он нужен.
N>На счёт этого не соглашусь. Математики бывают разные, слово "монада" многие, даже программирующие, могут услышать впервые. Про гиперболический синус должны знать, но всё таки это далеко. N>Обычно математики-программисты — это прикладные математики. Надо спрашивать методы оптимизации, дискретную математику, численные методы, статистику и теорию вероятностей, моделирование. Даже ЦОС многие могли в глаза не видеть. Основы линейной алгебры и анализа знать должны, но вряд ли глубже. По факту же, знать будут только то, что использовали или совсем базовые вещи.
Nuzhny, я полностью согласен с Вами!
Прикладной программист-математик знает только то, чему его учили в вузе (базовые вещи) и то, что ему приходилось применять на практике.
Остальное он может не знать.
Здравствуйте, RussianFellow, Вы писали:
N>>Я могу провести, лично или от имени компании: 4800р одна встреча, 6500р — с тестовым заданием.
RF>Но это Санкт-Петербург. Я правильно понял?
Здравствуйте, AleksandrN, Вы писали:
AN>Здесь тебя все знают. Будет заранее предвзятое отношение.
Пусть даже будет "предвзятое" отношение, но я зато пойму, что я представляю собой как программист. Мне (на первых порах) хочется, чтобы меня прособеседовали люди, знающие меня по этому программистскому форуму, чем люди, которые вообще меня не знают.
Здравствуйте, sr_dev, Вы писали:
_>Здравствуйте, Aib, Вы писали:
Aib>>Такие широкопрофильные сразу идут на юх при первоначальном отсеве резюме.
_>Хороший программист программирует на всём.
Только, требуется уточнение глубины владения тем или иным инструментом/технологией.
При этом, следует понимать:
Что если тебе за 40...50, то ты явно проиграешь студенту (который знает всё, но понемногу), значит: ты должен владеть чтм-либо одним, но на отлично!
P.S. Следует понимать, что: "программирует на всём" != "профессионально разрабатывает на всем"
Здравствуйте, AlexGin, Вы писали:
AG>При этом, следует понимать: AG>Что если тебе за 40...50, то ты явно проиграешь студенту (который знает всё, но понемногу)
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, AleksandrN, Вы писали:
AN>>Здесь тебя все знают. Будет заранее предвзятое отношение.
RF>Пусть даже будет "предвзятое" отношение, но я зато пойму, что я представляю собой как программист. Мне (на первых порах) хочется, чтобы меня прособеседовали люди, знающие меня по этому программистскому форуму, чем люди, которые вообще меня не знают.
Непредвзятое мнение объективнее. Но если тебе так хочется, можно прямо на форуме собеседование провести.
Вопросы по С.
1. Написать функцию, принимающую на вход строку и переворачивающую её.
Кодировка однобайтная.
2. Написать функцию, вычисляющую факториал.
3. Найти потенциальные проблемы в коде и исправить.
unsigned long a = 1234567;
char *s;
strcpy( s, "Hello world!" );
printf( "Data: %d %s; address: 0x%x\n", a, s, s );
Ещё elmal тебе вопросов по Java накидал. На них ответь.
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, alzt, Вы писали:
A>>Напиши код, который перевернёт Си строку.
RF>Вариант с использованием библиотечной функции strlen:
RF>
Здравствуйте, snautSH, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
SH>Delphi это не язык программирования, это IDE, язык там Pascal
Когда говорят про знание Delphi, думаю, имеют в виду знание библиотеки VCL.
Здравствуйте, snautSH, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
SH>Delphi это не язык программирования, это IDE, язык там Pascal
Ну да, строго говоря, это так. Я уже просто для простоты написал Delphi, а не Pascal.
Здравствуйте, Amygdala, Вы писали:
RF>>Ну неправда!
A>Да нет, правда. У большинства с возрастом растет только губёшка на ожидаемую зарплату. Профессионально развивают себя не многие. А вот костность мышления после 40 увеличивается в разы. Так что студент всем лучше — и денег ему мало надо, и огонь в глазах и обучаемость выше.
Здравствуйте, AleksandrN, Вы писали:
AN>Непредвзятое мнение объективнее. Но если тебе так хочется, можно прямо на форуме собеседование провести.
AN>Вопросы по С.
AN>1. Написать функцию, принимающую на вход строку и переворачивающую её. AN>Кодировка однобайтная.
int factorial(int n)
{
int res;
if (n==0)
res = 1;
else
{
res = 1;
for (i=1; i<=n; i++) res *= i;
}
return res;
}
AN>3. Найти потенциальные проблемы в коде и исправить.
unsigned long a = 1234567;
char *s;
strcpy( s, "Hello world!" );
printf( "Data: %d %s; address: 0x%x\n", a, s, s );
Я бы так написал:
unsigned long a = 1234567;
char *s;
s = new char[80]; // выделяю память для строки s, вместо 80 можно поставить любое другое разумное число
strcpy( s, "Hello world!" );
printf( "Data: %ld %s; address: 0x%x\n", a, s, (unsigned int)s ); // %ld--для числа типа long, указатели в C++ имеют тип беззнакового целого числа
AN>Ещё elmal тебе вопросов по Java накидал. На них ответь.
Здравствуйте, AlexRK, Вы писали:
SH>>Delphi это не язык программирования, это IDE, язык там Pascal
ARK>Нет, Delphi — это именно язык программирования, наряду с IDE. Никакого Pascal там нет.
А что такое Object Pascal? И чем он отличается от Delphi?
Здравствуйте, Amygdala, Вы писали:
A>Здравствуйте, RussianFellow, Вы писали:
RF>>У студента нет нормального опыта работы.
A>И у 40-летних в основном нет.
Че-го?!
A>Потому что нормальных контор и нормальных команд крайне мало. Почти нет.
Я бы так не сказал. Нормальных организаций много.
A>А то что чел 30 лет просидел на одном месте в DOS-е писал — не значит что у него "опыт работы"
Здравствуйте, AleksandrN, Вы писали:
SH>>>Delphi это не язык программирования, это IDE, язык там Pascal
ARK>>Нет, Delphi — это именно язык программирования, наряду с IDE. Никакого Pascal там нет.
AN>А что такое Object Pascal? И чем он отличается от Delphi?
Object Pascal — это обобщенное название семейства разных (даже очень) языков.
Borland used the name Object Pascal for the programming language in the first versions of Delphi, but later renamed it to the Delphi programming language.
Здравствуйте, RussianFellow, Вы писали:
RF>Как я понимаю, уважаемые коллеги, здесь есть те, кто проводит собеседования.
Никто не будет решать за тебя твои проблемы. Повзрослей уже.
RF>int factorial(int n)
RF>{
RF> int res;
RF> if (n==0)
RF> res = 1;
RF> else
RF> {
RF> res = 1;
RF> for (i=1; i<=n; i++) res *= i;
RF> }
RF> return res;
RF>}
RF>
Нет проверки корректности входных условий. Использован знаковый тип, поэтому на входе может быть -1.
Я бы сделал чуть по другому.
// long лучше, чем int для данного случая, т.к. число может быть очень большим.unsigned long fact( unsigned long value )
{
if ( value < 2 )
return 1;
unsigned long result = 2;
// Сэкономим пару итераций. for ( unsigned long i = 3; i <= value; i++ )
result *= i;
return result;
}
Можешь решить рекурсией и сравнить решения с помощью рекурсии и итерации?
AN>>3. Найти потенциальные проблемы в коде и исправить. RF>
RF>unsigned long a = 1234567;
RF>char *s;
RF>strcpy( s, "Hello world!" );
RF>printf( "Data: %d %s; address: 0x%x\n", a, s, s );
RF>
RF>Я бы так написал:
RF>
RF>unsigned long a = 1234567;
RF>char *s;
RF>s = new char[80]; // выделяю память для строки s, вместо 80 можно поставить любое другое разумное число
RF>strcpy( s, "Hello world!" );
RF>printf( "Data: %ld %s; address: 0x%x\n", a, s, (unsigned int)s ); // %ld--для числа типа long, указатели в C++ имеют тип беззнакового целого числа
RF>
Памяти выделено избыточно и она не освобождена. Немножко внимательнее — тест по C, а не C++. Размер указателя и размер int не на всех архитектурах совпадают. Для указателя есть модификатор %p. Знаешь, как производится работа с параметрами в функции с переменным числом аргументов? Чем опасно использование модификатора для типа, размер которого отличается от размера аргумента?
Лучше так
unsigned long a = 1234567;
// Если знаем, что строку большего размера записывать не будем, то лучше использовать strdup()
// для выделения памяти и копирования строки.char *s = strdup( "Hello world!" );
printf( "Data: %lu %s; address: %p\n", a, s, s );
// Не надо забывать освобождать ресурсы.
free( s );
Но ещё лучше так:
unsigned long a = 1234567;
// Что здесь происходит, можешь объяснить?const char *s = "Hello world!";
printf( "Data: %lu %s; address: %p\n", a, s, s );
Здравствуйте, snautSH, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
SH>Delphi это не язык программирования, это IDE, язык там Pascal
Здравствуйте, snautSH, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
SH>Delphi это не язык программирования, это IDE, язык там Pascal
Сравни конструкции в 1-м Делфи, вполне себе Паскаль.
И посмотри на конструкции языка в последних Делфи.
Как по мне, Делфи это всеже паскале подобный язык, а не Паскаль.
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, Ваня Первачев, Вы писали:
ВП>>а что мешает провести собеседование в режиме рсднбоксирования?
RF>А это что такое?
создаешь топик и тебе пишут вопросы и тут же дают фидбек
Здравствуйте, RussianFellow, Вы писали:
RF>Как я понимаю, уважаемые коллеги, здесь есть те, кто проводит собеседования. RF>Не могли бы вы пригласить меня к себе на собеседование? Я Вам расскажу про свой опыт, Вы мне зададите вопросов--и в результате выяснится, какие знания нужны и чего я стою как специалист.
Собеседования ничего не показывают про уровень кандидата, а чтобы продать себя подорже, нужно просто быть хорошим продажником. Чтобы попасть в "компанию мечты" нужно через инсайдеров или всякие стеклянные двери и их аналоги выяснить, что и как спрашивают в той компании, а потом недельку поднатаскаться. Если думать, что "я всё знаю, поэтому меня возьмут", есть ненулевой риск нарваться на Ашишкутропаля, которому карри за завтраком не понравился, и он решил завались всех, с кем у него сегодня собеседование.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, RussianFellow, Вы писали:
RF>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python. E>Ну давай здесь пособеседуем, просто отсевочные вопросы, навскидку. Правильных ответов нет. Ответ "я не знаю что такое смарт поинтер, парадигма программирования, или просто полная ахинея автоматом означает что далее собеседовать смысла нет. Точнее это означает, что из списка баззвордов такой язык нужно вычеркивать точно. E>1) Что такое смартпоинтеры, зачем они нужны, какие бывают, используете ли вы их в своих проектах; E>2) Какие новые фичи Java 9 и 10 можете навскидку вспомнить. Как вы считаете, насколько они актуальны и насколько своевременно сделали. Что такое грааль . E>3) Какие отличия C# от Java можете назвать. Какие достоинства и недостатки каждого языка можете назвать. E>4) Перечислите что вам нравится и не нравится в Delphi E>5) В какой парадигме программирования вы пишете на Python. Для каких проектов Python является оптимальным выбором. Какие у него достоинства и недостатки. Что такое for comprehension. Зачем он нужен. Приведите пример. И далее как тоже самое написать на Java, C++, C#, Delphi
E>Да, ты там вроде крутой математик. По математике 2 вопроса, навскидку. Что таком монада и как это относится к программированию. Что такое синус гиперболический и зачем он нужен.
Блин, пойду повешусь. Ведь половины из всего этого я не знаю. Особенно какие отличия между C# и Java.
С таким набором вопросов удаётся кого-нибудь нанять, кроме студентов? Или это и есть способ нанимать работников за миску риса?
Здравствуйте, sr_dev, Вы писали:
Aib>>Такие широкопрофильные сразу идут на юх при первоначальном отсеве резюме.
_>Хороший программист программирует на всём.
Здравствуйте, elmal, Вы писали:
E>На деле. Мы имеем перед собой по резюме эксперта с 20 летним опытом. У которого в резюме стоит оба языка. Разве не хотелось бы узнать на собеседовании мнение эксперта, который работал и с тем и с тем? Вот я, например, не очень в курсе относительно того, какие там основные алгоритмы сборки мусора в .NET, что там нужно настраивать, какие рекомендуются настройки и т.д.
Скажу... фром зе боттом ов май харт... Не нужно ковырять сборщик мусора. Это борьба со следствием. Устраняйте причину.
Здравствуйте, Amygdala, Вы писали:
A>Здравствуйте, RussianFellow, Вы писали:
RF>>У студента нет нормального опыта работы.
A>И у 40-летних в основном нет. Потому что нормальных контор и нормальных команд крайне мало. Почти нет. А то что чел 30 лет просидел на одном месте в DOS-е писал — не значит что у него "опыт работы"
А как вы отличаете нормальные конторы и нормальные команды от "ненормальных"? Имхо, во всех требуется поддержка кода, багфиксинг в какой то степени. Какие критерии предьявляете к конторам?
Здравствуйте, RussianFellow, Вы писали:
RF>Пусть даже будет "предвзятое" отношение, но я зато пойму, что я представляю собой как программист. Мне (на первых порах) хочется, чтобы меня прособеседовали люди, знающие меня по этому программистскому форуму, чем люди, которые вообще меня не знают.
Слушайте, а зачем вам в программисты? Языки программирования иожет освоить любой идиот, а вот писать грамотно по-русски хотя бы на уровне начальной школы дано только выдающимся умам. Не хотите попробовать себя в качестве технического писателя? Или составителя техзаданий? Тут только одна проблема -- найти интервьюера с начальным образованием.
Здравствуйте, RussianFellow, Вы писали:
AG>>При этом, следует понимать: AG>>Что если тебе за 40...50, то ты явно проиграешь студенту (который знает всё, но понемногу)
RF>Ну неправда!
Здравствуйте, RussianFellow, Вы писали:
RF>>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
SH>>Delphi это не язык программирования, это IDE, язык там Pascal
RF>Ну да, строго говоря, это так. Я уже просто для простоты написал Delphi, а не Pascal.
Здравствуйте, AlexRK, Вы писали:
SH>>Delphi это не язык программирования, это IDE, язык там Pascal
ARK>Нет, Delphi — это именно язык программирования, наряду с IDE. Никакого Pascal там нет.
А вот и специалисты подтянулись. RussianFellow, мужайтесь!
Здравствуйте, mgu, Вы писали:
mgu>Блин, пойду повешусь. Ведь половины из всего этого я не знаю. Особенно какие отличия между C# и Java.
А ты пишешь в резюме, что знаешь C# и Java?
Здравствуйте, mgu, Вы писали:
mgu>Блин, пойду повешусь. Ведь половины из всего этого я не знаю. Особенно какие отличия между C# и Java.
А вы на этих языках что-нибудь написали? Я, в основном, на С++ пишу, но пару принципиальных отличий C# и Java могу сходу назвать:
Генерики. В Java они существуют только во время компиляции. Во время исполнения List<String> и List<Object> одно и то же.
Написать функцию T createFoo<T>() в Java невозможно, а в C# запросто. Тип T, фактически, передаётся в метод.
Говоря простым языком, в C# у всякого метода есть два списка параметров. Один для типа, другой для экземпляра.
Boxing для примитивов. В C# магия превращения int в Object более высокого порядка, чем в Java.
В C# можно создать Set<int> и это совсем не то, что Set<Integer> в Java. Память он будет кушать как int[],
но все нужные плюшки будут в наличии. В Java такое невозможно.
Все прочие различия, типа yeld return в C# или хитрые enum в Java — это синтетический сахарок от компилятора.
В теории, всё это можно добавить при помощи внешних надстроек над компилятором, типа Lombok.
P.S. Если кто знает ещё какие важные различия, пожалуйста поделитесь.
Здравствуйте, RussianFellow, Вы писали:
AG>>Что если тебе за 40...50, то ты явно проиграешь студенту (который знает всё, но понемногу) RF>Ну неправда!
Правда. Мы же говорим о восприятии работодателя, а не о твоём мнении о себе.
Студента уровня джуниор возьмут. Тебя уровня джуниор, но с опытом 20 лет — нет.
Например, я советовал брать студента на должность junior DBA, хотя он плавал во многих темах. А вот 40-летнего мужика
с 20-летним релевантнам опытом не советовал. Потому что если человек за 20 лет работы DBA не разобрался в видах резервного
копирования, то крайне сомнительно, что разберется за месяц.
При этом, вполне может быть, что я посоветовал бы нанять 40-летнего без релевантного опыта, даже если бы он плавал кое-где.
Здравствуйте, _ABC_, Вы писали:
mgu>>Блин, пойду повешусь. Ведь половины из всего этого я не знаю. Особенно какие отличия между C# и Java. _AB>А ты пишешь в резюме, что знаешь C# и Java?
Здравствуйте, mgu, Вы писали:
SH>>>Delphi это не язык программирования, это IDE, язык там Pascal
ARK>>Нет, Delphi — это именно язык программирования, наряду с IDE. Никакого Pascal там нет.
mgu>А вот и специалисты подтянулись. RussianFellow, мужайтесь!
Э... А в чем проблема, гражданин специалист? Вы не в курсе, что Delphi — это язык программирования?
Здравствуйте, mgu, Вы писали:
RF>>>>Языки программирования, которые я знаю--C++, Java, C#, Delphi, Python.
SH>>>Delphi это не язык программирования, это IDE, язык там Pascal
RF>>Ну да, строго говоря, это так. Я уже просто для простоты написал Delphi, а не Pascal.
mgu>Там Object Pascal.
Здравствуйте, mgu, Вы писали:
mgu>Блин, пойду повешусь. Ведь половины из всего этого я не знаю. Особенно какие отличия между C# и Java.
Отличия с практической точки зрения? Я не шарпист, но как минимум могу сказать про другие средства разработки, про другой Code Convention (и кстати Java convention мне больше нравится). Могу ошибаться, но для веб части шарп завязан на IIS, по крайней мере это было раньше, для Java вариантов миллион. У шарпа фич и синтаксического сахара гораздо больше, другие дженерики без erasure (это и достоинства и недостатки). С кроссплатформенностью есть ньюансы, раньше было завязано многое на решения от Microsoft, сейчас возможно все получше стало, но как на практике, это как раз от кандидата и хотелось бы услышать. И много чего еще. Кто не такой дилетант в шарпе, как я, тот до черта мог бы рассказать про системы сборки, про библиотеки, мог бы дать рекомендации и т.д.
mgu>С таким набором вопросов удаётся кого-нибудь нанять, кроме студентов? Или это и есть способ нанимать работников за миску риса?
Проблем с набором нет, я всегда говорил что программистов избыток и найти человека вообще на проблема. Кстати, именно студентов набрать проблематично. Ибо уровень студента обычно — ужас ужас ужас. Хоть и значительно выше уровень, чем у топикстартера и даже зарплатные ожидания у них зачастую ниже, но толкового студента найти, у которого хотя бы базис есть, весьма проблематично. Брать выпускника технического ВУЗа программерской специальности не знающего что такое дерево (он умудрился проучиться не слышав про это, ответ был что то вроде это что то на первом курсе было, щас вообще не помню) вообще смысла нет. Даже если теоретический уровень хороший (таких мало и в основном за счет самообразования), зачастую куча гонора при отсутствии опыта перевешивают все плюсы. От копипаста отучать приходится, от операторов экскремента, от спагетти, от излишней переусложненности на ровном месте — это пройдет не один год пока детские болезни уйдут.
Набор вопросов варьируется от того, что у человека в резюме. Первый вопрос — какие языки лучше всего знаете. И если человек знает с C# и Java, естественно будут подобные вопросы. Если человек на знает Java вообще или знает хреново, но знает хорошо Common Lisp, Python и т.д — вопросы будут другие. Взяли недавно питониста (а у нас pythonа нет, если что), по Java например вопросов практически не было, ибо я быстро увидел что смысла гонять нет, по существу опыта нет. Прекрасно работает, очень довольны, хоть и биг босса пришлось убеждать его брать, а он хотел его забраковать ибо кандидат Java не знает в достаточной мере.
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, RussianFellow, Вы писали:
RF>> int res;
RF>> if (n==0) RF>> res = 1; RF>> else RF>> { RF>> res = 1;
mgu>Спасибо, мы вам перезвоним.
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, RussianFellow, Вы писали:
RF>>Пусть даже будет "предвзятое" отношение, но я зато пойму, что я представляю собой как программист. Мне (на первых порах) хочется, чтобы меня прособеседовали люди, знающие меня по этому программистскому форуму, чем люди, которые вообще меня не знают.
mgu>Слушайте, а зачем вам в программисты? Языки программирования иожет освоить любой идиот, а вот писать грамотно по-русски хотя бы на уровне начальной школы дано только выдающимся умам. Не хотите попробовать себя в качестве технического писателя? Или составителя техзаданий? Тут только одна проблема -- найти интервьюера с начальным образованием.
Здравствуйте, Muxa, Вы писали:
RF>>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
M>А если в Королеве придешь в рабочий день?
Только в обеденный перерыв (с 13 до 14). Или после 17:35. (В пятницу--после 16:20).
Здравствуйте, RussianFellow, Вы писали:
M>>А если в Королеве придешь в рабочий день?
RF>Только в обеденный перерыв (с 13 до 14). Или после 17:35. (В пятницу--после 16:20).
Ты и в Москву на собеседование в 19:00 — 19:30 успеешь.
Здравствуйте, mgu, Вы писали:
mgu>Тогда сразу гоните в шею тех, кто владеет и русским, и английским. С такими скиллами ведь будут инсёртить английские ворды в русский спич.
Не надо передергивать, это разговорные языки.
И за русским, и за английским стоит одна и та же сущность — разговорное (и письменное) общение между людьми.
mgu>А что касается важного, то синтаксис конкретного языка явно не самое главное в программировании. Серьёзные проекты (тм) и не очень часто используют несколько языков.
Обычно, всё не так просто: в компьютерном мире за языком стоит такое понятие, как стек технологий.
Каждой семантической сущности компьютерного мира (читай — каждому прикладному направлению) присущ свой отдельный стек технологий.
Поэтому, как правило, одним знанием синтаксиса все-таки не обойтись
Здравствуйте, alzt, Вы писали:
A>Здравствуйте, AleksandrN, Вы писали:
A>А зачем вообще там i? Почему бы просто не написать: A>
A> unsigned long result = 2;
A> // Сэкономим пару итераций.
A> for (; value>2; --value )
A> result *= value;
A>
Согласен. Так лучше.
A>Здесь проблема теста. Не было понятно зачем там strcpy и можно ли её удалять. Может в тесте надо продемонстрировать знание этой функции. Про strdup тоже непонятно, а ещё она может вернуть ноль .
Тест на понимание работы со строками и памятью и умение читать чужой код. Обычно, на собеседованиях, всегда спрашивают задачки типа "мы тут немножко наговнокодили, как можно исправить?". А я воспроизвёл этот подход. Такая задача оказалась посложнее, чем писать нормальный код для решения задачи.
M>>>А если в Королеве придешь в рабочий день? RF>>Только в обеденный перерыв (с 13 до 14). Или после 17:35. (В пятницу--после 16:20). AN>Ты и в Москву на собеседование в 19:00 — 19:30 успеешь.
Слишком поздно.
Мамка заругает.
Здравствуйте, RussianFellow, Вы писали:
... RF>Языки программирования, которые я знаю--C++ ...
Навскидку несколько вопросов задам:
1) Чем ссылка отличается от указателя?
2) Для чего нужны smart-указатели?
3) Чем NULL отличеается от nullptr?
4) Что и куда перемещеат выражение: std::move(...)?
5) Чем функтор отличается от лямбда функции?
6) Чем статический метод класса отличается от обычного метода?
7) Может ли статический метод быть виртуальным?
8) Может ли статический метод быть перегруженным?
9) Как (не испльзуя никаких входных пареметров), вернуть из метода/функции более одного значения?
RF>Только одно "но": собеседование должно проводиться в выходные дни, так как я живу и работаю в Королёве.
Я из Минска, поэтому только могу подкинуть пару полезных ссылочек: https://habrahabr.ru/post/117996 http://www.quizful.net/interview/cpp
Здравствуйте, vsb, Вы писали:
vsb>Здравствуйте, AleksandrN, Вы писали:
AN>>1. Написать функцию, принимающую на вход строку и переворачивающую её. AN>>Кодировка однобайтная.
vsb>Шо вы всё "однобайтная да однобайтная". А по-мне вопрос с UTF-8 куда интересней. И практичней, между прочим.
А это уже дополнительный вопрос, что нужно сделать, что бы с UTF-8 работала. И как лучше — с дополнительным буфером или без него. И плавно перейти к отличиям между memmove() и memcpy().
Здравствуйте, AleksandrN, Вы писали:
AN>А это уже дополнительный вопрос, что нужно сделать, что бы с UTF-8 работала.
Вроде бы функции с префиксом w (точные их имена не помню) подходят для работы с UTF-8-строками.
AN>И плавно перейти к отличиям между memmove() и memcpy().
Здравствуйте, RussianFellow, Вы писали:
AN>>А это уже дополнительный вопрос, что нужно сделать, что бы с UTF-8 работала.
RF>Вроде бы функции с префиксом w (точные их имена не помню) подходят для работы с UTF-8-строками.
Здравствуйте, AlexGin, Вы писали:
AG>Здравствуйте, RussianFellow, Вы писали: AG>... RF>>Языки программирования, которые я знаю--C++ ...
AG>Навскидку несколько вопросов задам: AG>1) Чем ссылка отличается от указателя?
Указатель--адрес памяти, которую занимает переменная, а ссылка--своего рода псевдоним переменной, используется в нескольких случаях (один из них--получение адреса переменной).
AG>6) Чем статический метод класса отличается от обычного метода?
Тем, что он выполняется для всех объектов этого класса при его вызове.
AG>9) Как (не испльзуя никаких входных пареметров), вернуть из метода/функции более одного значения?
Функция должна возвращать структуру (или класс), полями которой и будут нужные нам возвращаемые значения.
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, AleksandrN, Вы писали:
AN>>А это уже дополнительный вопрос, что нужно сделать, что бы с UTF-8 работала.
RF>Вроде бы функции с префиксом w (точные их имена не помню) подходят для работы с UTF-8-строками.
Неправильно. Эти функции работают с типом wchar_t. А для работы с UTF-8 используется char. wchar_t UTF-8
Подумай ещё раз.
AN>>И плавно перейти к отличиям между memmove() и memcpy().
RF>И в чём отличие?
Использование memmove безопасно, если области памяти, переданные функции как аргументы, пересекаются.
Здравствуйте, RussianFellow, Вы писали:
RF>Указатель--адрес памяти, которую занимает переменная, а ссылка--своего рода псевдоним переменной, используется в нескольких случаях (один из них--получение адреса переменной).
Нулевой (неинициализированный и установленный в нуль) указатель — вполне реальное явление.
Что соответствует ему в понятиях ссылок?
Что насчёт smart-указателей?
Как насчёт rvalue и lvalue ссылок?
Какое отношение выражения std::move(...) к ссылкам?
AG>>6) Чем статический метод класса отличается от обычного метода?
RF>Тем, что он выполняется для всех объектов этого класса при его вызове.
Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
AG>>9) Как (не испльзуя никаких входных пареметров), вернуть из метода/функции более одного значения? RF>Функция должна возвращать структуру (или класс), полями которой и будут нужные нам возвращаемые значения.
+100500
Точнее сказать: возвращать экземпляр класса или структуры.
Возможны также случаи, когда возвращем пару, кортеж или коллекцию объектов.
mgu>Оформляет в виде коллекции и приводит к строке по умолчанию?
Сортирует по востребованности на рынке, если резюме не нацелено на конкретного работодателя. Я бы python поставил перед delphi
Здравствуйте, AlexRK, Вы писали:
AG>>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
ARK>На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Крокодилы летают время от времени, но очень, очень низко!
Крокодилы летают время от времени, но очень, очень низко!
Цирк, выходит на арену конферансье: — А сейчас выступят летающие крокодилы!!!
Зал: — Да ну, фигня какая... Не бывает такого...
Тут на арену выбегает стадо крокодилов, бежит, бежит и... взлетает!!!
И начинает летать по кругу, только один маленький крокодильчик отстает
от всей банды. Зал в шоке...
Маленькая девочка в первом ряду, умиляясь, восклицает: — Ах, летающие
крокодильчики, как это прелестно!!!
А маленький крокодильчик подлетает к ней и говорит: — Эх, девочка, знала бы ты,
КАК НАС ТУТ ПИ$#ЯТ...
SH>А маленький крокодильчик подлетает к ней и говорит: — Эх, девочка, знала бы ты,
SH>КАК НАС ТУТ ПИ$#ЯТ...
Цирк, выходит конферансье, объявляет:
— Смертельный номер, полет лошади из-под купола цирка!
Ведут хромую больную лошадь, поднимают на веревке под купол, сбрасывают вниз. Лошадь летит на арену, падает, ба-бах! Зал разражается аплодисментами. Лошадь с огромным трудом поднимается и говорит:
— КАК ЖЕ ВЫ ЗА$БАЛИ...
Здравствуйте, AlexRK, Вы писали:
A>>А зачем вообще там i?
ARK>ИМХО, с i код гораздо нагляднее.
A>>Почему бы просто не написать: A>>
A>> unsigned long result = 2;
A>> // Сэкономим пару итераций.
A>> for (; value>2; --value )
A>> result *= value;
A>>
Для факториала i лишняя. Она просто там не нужна. С i может привычнее, но само определение факториала обычно даётся рекурсивно, поэтому более естественно писать его без использование итеративной переменной. Рекурсию в данном случае тоже можно использовать,т.к. о производительности речи не идёт.
ARK>Ну, тогда уж
ARK>
ARK> unsigned long result = 1;
ARK> for (; value; result *= value--);
ARK>
инкремент в выражениях лучше осторожно использовать. Есть разные стили, но это потенциальный источник ошибок, лучше отделить в отдельную операцию. Может while лучше использовать, если for непривычно выглядит.
И с result = 1 ТС уже поругали.
ARK>> unsigned long result = 1;
ARK>> for (; value; result *= value--);
ARK>>
VF>Столько разговоров про факториал, и ни слова про переполнение...
Это проблема собеседований — непонятно что именно спрашивают. Спроектировать тип данных для вычисления факториала для хотя бы 500 совсем не тривиально, не говоря уже о производительности. И главное — зачем? Для среднестатистического программиста такой навык не требуется.
Здравствуйте, alzt, Вы писали:
VF>>Столько разговоров про факториал, и ни слова про переполнение...
A>Это проблема собеседований — непонятно что именно спрашивают. Спроектировать тип данных для вычисления факториала для хотя бы 500 совсем не тривиально, не говоря уже о производительности. И главное — зачем? Для среднестатистического программиста такой навык не требуется.
Я это и не предлагаю; просто можно заметить, что в 64-битный unsigned long помещается только 20!, и дальше идти по циклу не стоит...
Здравствуйте, VladFein, Вы писали:
A>>Это проблема собеседований — непонятно что именно спрашивают. Спроектировать тип данных для вычисления факториала для хотя бы 500 совсем не тривиально, не говоря уже о производительности. И главное — зачем? Для среднестатистического программиста такой навык не требуется.
VF>Я это и не предлагаю; просто можно заметить, что в 64-битный unsigned long помещается только 20!, и дальше идти по циклу не стоит...
Тогда можно предложить на шаблонах написать факториал и вначале функции вставить проверку, что если n>factorial<unsigned long>::max, то вернуть код ошибки, или даже исключение бросить.
Здравствуйте, alzt, Вы писали:
A>>>Это проблема собеседований — непонятно что именно спрашивают. Спроектировать тип данных для вычисления факториала для хотя бы 500 совсем не тривиально, не говоря уже о производительности. И главное — зачем? Для среднестатистического программиста такой навык не требуется.
VF>>Я это и не предлагаю; просто можно заметить, что в 64-битный unsigned long помещается только 20!, и дальше идти по циклу не стоит...
A>Тогда можно предложить на шаблонах написать факториал и вначале функции вставить проверку, что если n>factorial<unsigned long>::max, то вернуть код ошибки, или даже исключение бросить.
Так а я о чём?
Один кандидат бросается, сморщив лоб, писать for цикл, а другой оговаривает тех задание: что возвращать, кто отвечает за проверку входных данных, exception vs error code, etc.
Понятно же что задание академическое. Если бы нужен был факториал — посмотрели бы в таблице.
Здравствуйте, AlexRK, Вы писали:
SH>>>>Delphi это не язык программирования, это IDE, язык там Pascal
ARK>>>Нет, Delphi — это именно язык программирования, наряду с IDE. Никакого Pascal там нет.
mgu>>А вот и специалисты подтянулись. RussianFellow, мужайтесь!
ARK>Э... А в чем проблема, гражданин специалист? Вы не в курсе, что Delphi — это язык программирования?
Здравствуйте, Privalov, Вы писали:
P>В Шарпе примитивные типы являются объектами. P>Не знаю, насколько это важно, пару раз пользовался чем-то таким: P>string p = 25.ToString();
string -- это объект с поведением примитивного типа, это во многих яхыках так, в т. ч. и С++-ах с человеческим лицом.
P>Перегрузка операций опять же. Удобнее читать P>int c = a + b; P>чем P>int c = a.add(b);
В Джаве есть плюс как сложение, от сотворения мира.
P>Исключения объявлять не надо. В Java меня порядком достал такой код: P>
P>void MyCoolMethod(int a, int b) throws Exception
P>{
P> int p;
P> try
P> {
P> // 100500 строк кода
P> }
P> catch (Exception ex)
P> {
P> }
P>}
P>
Если блюёт исключениями, то оборачивать всю функцию в try/catch нэ надо.
Здравствуйте, elmal, Вы писали:
mgu>>Блин, пойду повешусь. Ведь половины из всего этого я не знаю. Особенно какие отличия между C# и Java. E>Отличия с практической точки зрения? Я не шарпист, но как минимум могу сказать про другие средства разработки, про другой Code Convention (и кстати Java convention мне больше нравится). Могу ошибаться, но для веб части шарп завязан на IIS, по крайней мере это было раньше, для Java вариантов миллион. У шарпа фич и синтаксического сахара гораздо больше, другие дженерики без erasure (это и достоинства и недостатки). С кроссплатформенностью есть ньюансы, раньше было завязано многое на решения от Microsoft, сейчас возможно все получше стало, но как на практике, это как раз от кандидата и хотелось бы услышать. И много чего еще. Кто не такой дилетант в шарпе, как я, тот до черта мог бы рассказать про системы сборки, про библиотеки, мог бы дать рекомендации и т.д.
Так вы уже практически всё и рассказали. Эти вопросы, скорее, к архитектору. А знания си-шарпа как языка -- это отличия класса от структуры и using от using.
mgu>>С таким набором вопросов удаётся кого-нибудь нанять, кроме студентов? Или это и есть способ нанимать работников за миску риса? E>Проблем с набором нет, я всегда говорил что программистов избыток и найти человека вообще на проблема. Кстати, именно студентов набрать проблематично. Ибо уровень студента обычно — ужас ужас ужас. Хоть и значительно выше уровень, чем у топикстартера и даже зарплатные ожидания у них зачастую ниже, но толкового студента найти, у которого хотя бы базис есть, весьма проблематично. Брать выпускника технического ВУЗа программерской специальности не знающего что такое дерево (он умудрился проучиться не слышав про это, ответ был что то вроде это что то на первом курсе было, щас вообще не помню) вообще смысла нет. Даже если теоретический уровень хороший (таких мало и в основном за счет самообразования), зачастую куча гонора при отсутствии опыта перевешивают все плюсы.
Это да.
E>От копипаста отучать приходится, от операторов экскремента, от спагетти, от излишней переусложненности на ровном месте — это пройдет не один год пока детские болезни уйдут.
Эти болезни у многих хронические. Многие мои бородатые коллеги на мой глас вопиющего в пустыне по поводу всего вышеизложенного изрекают: "Так понятнее!"
E>Набор вопросов варьируется от того, что у человека в резюме. Первый вопрос — какие языки лучше всего знаете. И если человек знает с C# и Java, естественно будут подобные вопросы. Если человек на знает Java вообще или знает хреново, но знает хорошо Common Lisp, Python и т.д — вопросы будут другие. Взяли недавно питониста (а у нас pythonа нет, если что), по Java например вопросов практически не было, ибо я быстро увидел что смысла гонять нет, по существу опыта нет. Прекрасно работает, очень довольны, хоть и биг босса пришлось убеждать его брать, а он хотел его забраковать ибо кандидат Java не знает в достаточной мере.
А зачем приглашали питониста? Джавистов-то как собак нерезаных.
Здравствуйте, RussianFellow, Вы писали:
mgu>>Здравствуйте, RussianFellow, Вы писали:
RF>>> int res;
RF>>> if (n==0) RF>>> res = 1; RF>>> else RF>>> { RF>>> res = 1;
mgu>>Спасибо, мы вам перезвоним.
RF>Что, неправильный код?
Здравствуйте, AlexGin, Вы писали:
mgu>>Тогда сразу гоните в шею тех, кто владеет и русским, и английским. С такими скиллами ведь будут инсёртить английские ворды в русский спич. AG>Не надо передергивать, это разговорные языки. AG>И за русским, и за английским стоит одна и та же сущность — разговорное (и письменное) общение между людьми.
А я и не передёргиваю: неоднократно встречал пациентов, которые в модных языках программирования все переменные объявляют в начале функции -- как в дореволюционном С.
AG>Поясню подробнее на примере: AG>Есть C++ и C# (синтаксис весьма схожий, стеки технологий — различны): AG> — разрабатывать систему документооборота будем на C# (со всеми сопутствующими технологиями: ADO.NET, WPF/WinForms/ASP.NET...); AG> — для приложений real-time управления объектом, выберем C++ (с STL, boost, и к ним же Qt/MFC...).
Здравствуйте, Muxa, Вы писали:
M>>>>А если в Королеве придешь в рабочий день? RF>>>Только в обеденный перерыв (с 13 до 14). Или после 17:35. (В пятницу--после 16:20). AN>>Ты и в Москву на собеседование в 19:00 — 19:30 успеешь. M>Слишком поздно. M>Мамка заругает.
Здравствуйте, VladFein, Вы писали:
VF>Я это и не предлагаю; просто можно заметить, что в 64-битный unsigned long помещается только 20!, и дальше идти по циклу не стоит...
А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
Здравствуйте, mgu, Вы писали:
P>>string p = 25.ToString(); mgu>string -- это объект с поведением примитивного типа, это во многих яхыках так, в т. ч. и С++-ах с человеческим лицом.
Речь не о строках, а о магии боксинга для value-типов в C#.
Здравствуйте, mgu, Вы писали:
mgu>Так вы уже практически всё и рассказали. Эти вопросы, скорее, к архитектору. А знания си-шарпа как языка -- это отличия класса от структуры и using от using.
Я понятия не имею, чем должен заниматься архитектор, а то директор сам меня так называет, хотя я 99 процентов времени обычной разработкой занимаюсь, а принятие стратегических решений один черт за начальством и за исполнителями. Могу только советовать как консультант. У юниоров полномочия 1 в 1 как у меня, если что, хоть и явный юниор у нас один, и выше этого уровня он вряд ли когда поднимется по объектичным причинам, хоть и его уровень на много порядков круче чем уровень топикстартера.
mgu>А зачем приглашали питониста? Джавистов-то как собак нерезаных.
Затем, что нам язык программирования не важен. Тот, на котором мы пишем, один черт никто не знает, наверное единственные в мире кто его в продакшене применяет . Но платформа JVM. А вот общая эрудиция важна, как и умение программировать и знание алгоритмов и общего курса Computer Science. Если опыт только Java, думает только энтерпрайзами, формочками и базами данных, а весь опыт это багфикс какого легаси — это наоборот недостатком будет. Черти какой хайлоад тоже нам не нужен.
Здравствуйте, mgu, Вы писали:
P>>string p = 25.ToString();
mgu>string -- это объект с поведением примитивного типа, это во многих яхыках так, в т. ч. и С++-ах с человеческим лицом.
Про это уже объяснили.
P>>int c = a + b; P>>чем P>>int c = a.add(b);
mgu>В Джаве есть плюс как сложение, от сотворения мира.
Только для примитивных типов. Если кому-то понадобятся, к примеру, комплексные числа, плюс работать не будет. Впрочем, может, в новой Java все изменилось, я давно ее не видел.
mgu>Если блюёт исключениями, то оборачивать всю функцию в try/catch нэ надо.
Может и не надо. Но я не рассуждаю, как надо, а как нет. Код, с которым мне приходилось работать, оборачивали. Видимо, боялись, что полетит исключение из catch.
И ставили throws Exception потому, что тупо лень было перечислять весь список исключений, которые мог выбросить метод.
Здравствуйте, VladFein, Вы писали:
VF>Я это и не предлагаю; просто можно заметить, что в 64-битный unsigned long помещается только 20!, и дальше идти по циклу не стоит...
Задачу на факториал на собеседовании имеет смысл спрашивать только для того, что бы поговорит с кандидатом о двух вещах:
1. Понимание размера данных и переполнения.
2. Понимание отличий рекурсии от итерации.
Для практической задачи на вычисление факториала с ограничением входных параметров, лучше не по циклу идти, а делать так:
unsigned long fact( unsigned long value )
{
// Для 64-х битной платформы.static const unsigned long MAX_FACT_ARG = 20;
static const unsigned long FACT[ MAX_FACT_ARG + 1 ] =
{
1,
1,
2,
6,
24,
120,
720,
5040,
40320,
362880,
3628800,
39916800,
479001600,
6227020800,
87178291200,
1307674368000,
20922789888000,
355687428096000,
6402373705728000,
121645100408832000,
2432902008176640000
};
if ( value > MAX_FACT_ARG )
return -1;
return FACT[ value ];
}
Здравствуйте, AlexGin, Вы писали:
AG>P.S. Статический метод — это метод не принадлежащий ни одному из объектов (экземпляров) класса.
Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса.
AG>Он просто объявлен в пространстве имён данного класса. Фактически — это аналог глобальной функции (просто объявленной в составе класса).
Одинаковая реализация не говорит, что это идеалогически одно и то же. И кроме того, в чистых OO языках нет глобальных функций.
Здравствуйте, Тёмчик, Вы писали:
Тё>Здравствуйте, AlexRK, Вы писали:
RF>>>>Тем, что он выполняется для всех объектов этого класса при его вызове.
AG>>>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
ARK>>На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Тё>Будет на всех и очень быстро. Когда много объектов этого класса, тогда медленно.
Здравствуйте, elmal, Вы писали:
E>Я понятия не имею, чем должен заниматься архитектор, а то директор сам меня так называет, хотя я 99 процентов времени обычной разработкой занимаюсь, а принятие стратегических решений один черт за начальством и за исполнителями. Могу только советовать как консультант. У юниоров полномочия 1 в 1 как у меня, если что, хоть и явный юниор у нас один, и выше этого уровня он вряд ли когда поднимется по объектичным причинам, хоть и его уровень на много порядков круче чем уровень топикстартера.
Вот архитектору как раз и надо знать различия между языками и платформами, чтобы выбирать под конкретную задачу.
Интересно, а какие объективные причины могут мешать профессионально расти?
mgu>>А зачем приглашали питониста? Джавистов-то как собак нерезаных. E>Затем, что нам язык программирования не важен. Тот, на котором мы пишем, один черт никто не знает, наверное единственные в мире кто его в продакшене применяет . Но платформа JVM. А вот общая эрудиция важна, как и умение программировать и знание алгоритмов и общего курса Computer Science. Если опыт только Java, думает только энтерпрайзами, формочками и базами данных, а весь опыт это багфикс какого легаси — это наоборот недостатком будет. Черти какой хайлоад тоже нам не нужен.
Здравствуйте, Privalov, Вы писали:
P>>>string p = 25.ToString();
mgu>>string -- это объект с поведением примитивного типа, это во многих яхыках так, в т. ч. и С++-ах с человеческим лицом.
P>Про это уже объяснили.
А я всё равно ничего не понял, в чём фишка-то? И ещё больше зауважал JavaScript, где нет этих Баден-Баденов.
P>>>int c = a + b; P>>>чем P>>>int c = a.add(b);
mgu>>В Джаве есть плюс как сложение, от сотворения мира.
P>Только для примитивных типов. Если кому-то понадобятся, к примеру, комплексные числа, плюс работать не будет. Впрочем, может, в новой Java все изменилось, я давно ее не видел.
В нашем колхозе мнимые числа только в отчётности. А точки складываем методом, да.
mgu>>Если блюёт исключениями, то оборачивать всю функцию в try/catch нэ надо.
P>Может и не надо. Но я не рассуждаю, как надо, а как нет. Код, с которым мне приходилось работать, оборачивали. Видимо, боялись, что полетит исключение из catch.
Ужас какой.
P>И ставили throws Exception потому, что тупо лень было перечислять весь список исключений, которые мог выбросить метод.
Так и ссылочные типы бы выбросили до кучи, оставили бы вместо них Object.
Здравствуйте, koenig, Вы писали:
mgu>>А вот, кстати, интересно, можно ли написать функцию, которая возвращает 21! и более в виде строки цифр? Что-то у меня математического аппарата не хватает.
K>а вот это тебе аукается нелюбовь к фреймворкам и желание делать все самому. бери готовые
Здравствуйте, mgu, Вы писали:
mgu>Здравствуйте, AlexGin, Вы писали:
mgu>>>Тогда сразу гоните в шею тех, кто владеет и русским, и английским. С такими скиллами ведь будут инсёртить английские ворды в русский спич. AG>>Не надо передергивать, это разговорные языки. AG>>И за русским, и за английским стоит одна и та же сущность — разговорное (и письменное) общение между людьми.
mgu>А я и не передёргиваю: неоднократно встречал пациентов, которые в модных языках программирования все переменные объявляют в начале функции -- как в дореволюционном С.
Здравствуйте, elmal, Вы писали:
E>Проблем с набором нет, я всегда говорил что программистов избыток и найти человека вообще на проблема.
Вот именно, в Москве и Московской области программистов--полно!
Так что все эти разговоры про то, что будто бы проблема найти программиста--ложь!
Работодатели выбирают из соискателей тех, кто им больше нравится, больше подходит, а не предлагают работу первому человеку, положительно ответившему на вопросы на собеседовании.
Так что я уже задумываюсь над тем, чтобы сменить род деятельности (уйти из программирования) на случай, если я уйду с того места, где я сейчас работаю.
E>Кстати, именно студентов набрать проблематично. Ибо уровень студента обычно — ужас ужас ужас. <...> толкового студента найти, у которого хотя бы базис есть, весьма проблематично. Брать выпускника технического ВУЗа программерской специальности не знающего что такое дерево (он умудрился проучиться не слышав про это, ответ был что то вроде это что то на первом курсе было, щас вообще не помню) вообще смысла нет. Даже если теоретический уровень хороший (таких мало и в основном за счет самообразования), зачастую куча гонора при отсутствии опыта перевешивают все плюсы.
Совершенно верно. Скажу больше: человек, закончивший в 22 вуз, на самом деле только учится. Его нельзя считать нормальным готовым специалистом.
Здравствуйте, AleksandrN, Вы писали:
AN>Здравствуйте, RussianFellow, Вы писали:
RF>>но я зато пойму, что я представляю собой как программист
AN>Достигнута ли цель собеседованием на форуме?
Почти достигнута.
Но хочется пообщаться в реале или по Скайпу.
Здравствуйте, RussianFellow, Вы писали:
RF>Вот именно, в Москве и Московской области программистов--полно! RF>Так что все эти разговоры про то, что будто бы проблема найти программиста--ложь!
Зависит от решаемых задач и требований к квалификации.
Здравствуйте, mgu, Вы писали:
mgu>Интересно, а какие объективные причины могут мешать профессионально расти?
Не заточенные под программирование мозги могут помешать. Отсутствие базовых знаний и даже диплома о высшем образовании. Плюс проблемы со здоровьем. Общая заторможенность, хреновая обучаемость, учет у психиатра и постоянные пребывания на больничном. В таких условиях профессиональный рост — без шансов. Мозги нужно в молодости тренировать — если время упущено и возраст даже под 30, вообще без шансов. ИМХО даже в возрасте 20 лет шансов мало.
Здравствуйте, RussianFellow, Вы писали:
mgu>>А я и не передёргиваю: неоднократно встречал пациентов, которые в модных языках программирования все переменные объявляют в начале функции -- как в дореволюционном С.
RF>А это плохо?
Это просто ужасно...
Когда при чтении такого кода, я вынужден скроллить вверх и искать: где эта переменная и какое значение у неё в тот момент (точнее — в том месте),
когда она реально нужна (в том месте метода/функции, где она используется)!
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, mgu, Вы писали:
mgu>>Интересно, а какие объективные причины могут мешать профессионально расти? E>Не заточенные под программирование мозги могут помешать. Отсутствие базовых знаний и даже диплома о высшем образовании. Плюс проблемы со здоровьем. Общая заторможенность, хреновая обучаемость, учет у психиатра и постоянные пребывания на больничном. В таких условиях профессиональный рост — без шансов. Мозги нужно в молодости тренировать — если время упущено и возраст даже под 30, вообще без шансов. ИМХО даже в возрасте 20 лет шансов мало.
Здравствуйте, AleksandrN, Вы писали:
AN>Здравствуйте, RussianFellow, Вы писали:
RF>>Почти достигнута.
AN>Какой результат?
Плохой.
Нужно подучиться.
RF>>Но хочется пообщаться в реале или по Скайпу.
AN>Походи на собеседования по этим вакансиям: AN>C++ AN>Java AN>C# AN>Delphi AN>Python
Спасибо за ссылки!
AN>Как думаешь, результат будет лучше или хуже по сравнению с форумом?
Здравствуйте, RussianFellow, Вы писали:
RF>Вы о чём?
Об объективных причинах, которые могут помешать нормально профессионально расти. В данном случае речь идет не о тебе, но у тебя объективных причин тоже до черта. Сказал бы точнее, если б лично знаком был, но по косвенным признакам очень все нехорошо именно по объективным причинам. По косвенным признакам, кстати, у тебя предположительно воспитание было в основном со стороны матери. Могу ошибаться, но очень все похоже по симптомам, если б у меня папочка в детстве скончался, меня б могла ждать такая же судьба. Плюс есть пример родственника, которого вот так убила мать, сформировав в детском возрасте полную неприспособленность к жизни, в результате сынок полезным членом общества так и не смог стать.
Здравствуйте, mgu, Вы писали:
mgu>А я всё равно ничего не понял, в чём фишка-то? И ещё больше зауважал JavaScript, где нет этих Баден-Баденов.
А я вот JS не знаю совсем. И ничего, живой.
mgu>В нашем колхозе мнимые числа только в отчётности. А точки складываем методом, да.
Ну, ЭВМ не только в колхозах ставят. Мне одно время матан считать надо было. Хорошо, что в Фортране комплексный тип встроенный.
P>>Может и не надо. Но я не рассуждаю, как надо, а как нет. Код, с которым мне приходилось работать, оборачивали. Видимо, боялись, что полетит исключение из catch.
mgu>Ужас какой.
А может, просто логировали исключение в точке появления и пробрасывали дальше. Я разные варианты встречал.
mgu>Так и ссылочные типы бы выбросили до кучи, оставили бы вместо них Object.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, Sharov, Вы писали:
S>>Вы сейчас о чем, какие шансы, какие 20 лет? Это говорят про математиков, претендующих на серьезные результы. Помимо Торвальдса не мало очень крутых прогаммистов, многие в программирование пришли поздно. E>Одно дело прийти в программирование из любой области, но со сформировавшейся привычкой думать. И другое, когда в школе бухать начинать с пятого класса, когда нет даже среднего образования, когда последние лет 7 читал только желтую прессу и т.д. Без шансов даже в 20 лет измениться, если до этого никогда в жизни не напрягался. Плюс неоднократно пытался, но никак не осиливаются даже простейшие вещи, в результате забил.
Полностью согласен -- навыки усидчивости и систематического решения проблемы, т.е. умение долго думать над задачей, просто необходимы. И все это, конечно, идет со школы. Т.е. лучше, чтобы со школы. Просто Вы так категорично описали критерии, которые подходят к людям, решившим добиться значительных результатов в современной математики или физики. Там уже просто усидчивость и дисциплиной не обойдешься. Там к 20 годам должны быть сформированный серьезные профессиональные инстинкты в соотв. области. Соотв. чем раньше начнешь, тем лучше. Но опять же оговорки -- современная математики и значительные результаты. Штудировать мат. аппарат для ML можно хоть после 20, хоть после 40. Было бы желание.
Здравствуйте, RussianFellow, Вы писали:
mgu>>А я и не передёргиваю: неоднократно встречал пациентов, которые в модных языках программирования все переменные объявляют в начале функции -- как в дореволюционном С.
RF>А это плохо?
Здравствуйте, AleksandrN, Вы писали:
RF>>Вот именно, в Москве и Московской области программистов--полно! RF>>Так что все эти разговоры про то, что будто бы проблема найти программиста--ложь!
AN>Зависит от решаемых задач и требований к квалификации.
Здравствуйте, AlexGin, Вы писали:
mgu>>>А я и не передёргиваю: неоднократно встречал пациентов, которые в модных языках программирования все переменные объявляют в начале функции -- как в дореволюционном С.
RF>>А это плохо? AG> AG>Это просто ужасно... AG>Когда при чтении такого кода, я вынужден скроллить вверх и искать: где эта переменная и какое значение у неё в тот момент (точнее — в том месте), AG>когда она реально нужна (в том месте метода/функции, где она используется)!
Control-чпок в модных IDE обычно решает проблему.
А за методы, превышающие по размеру 2 экрана, во времена моей программистской молодости били в коридоре ногами. И строк на экране тогда было мало.
Проблема же, на мой взгляд, в другом -- в начале функции инициализируются переменные, затем идут проверки, после которых наши переменные могут и не понадобиться.
Здравствуйте, elmal, Вы писали:
E>Теоретически, если ты вдруг возьмешься за ум, начнешь впахивать умственно черти как, занимаясь самообразованием, под руководством того, кто возьмется за твое образование, возможно года за 3 ты сможешь претендовать на минимальную позицию в нормальную компанию. Практически это малореально. Никто, во первых, не возьмется (женщинам определенной наружности проще, их обычно любовники или претенденты на любовников натаскивают, кто будет натаскивать взрослого дядю я не могу представить).
Здравствуйте, Privalov, Вы писали:
mgu>>А я всё равно ничего не понял, в чём фишка-то? И ещё больше зауважал JavaScript, где нет этих Баден-Баденов.
P>А я вот JS не знаю совсем. И ничего, живой.
Я тоже много чего не знаю.
P>>>Может и не надо. Но я не рассуждаю, как надо, а как нет. Код, с которым мне приходилось работать, оборачивали. Видимо, боялись, что полетит исключение из catch.
mgu>>Ужас какой.
P>А может, просто логировали исключение в точке появления и пробрасывали дальше. Я разные варианты встречал.
Можно и так.
mgu>>Так и ссылочные типы бы выбросили до кучи, оставили бы вместо них Object.
P>Эээ... Не понял.
Ну, если исключения обрабатываются как базовый класс, то можно продолжить в том же духе и с объектами.
Здравствуйте, AlexGin,
AG>Мне скоро 53 года.
AG>Постоянно стараюсь осваивать новые понятия по программированию. AG>Круг интересов — стараюсь сконцентрироваться именно на C++ (тем не менее, эпизодически занимаюсь на C#). AG>Постоянно ищу (и нахожу) интересные материалы в интернете, периодически покупаю литератутру по данной тематике AG>(вот недавняя покупка:
Здравствуйте, elmal, Вы писали:
E>Правильно задумываешься. Ибо программирование явно не твое, а на текущем твоем месте тебе платят сильно выше рынка. В данный момент польза, которую ты можешь принести нормальной конторе, не просто нулевая, а отрицательная, ты явно не на своем месте, ты не приносишь пользу обществу. Даже если ты согласишься год работать бесплатно за ноль рублей в месяц, работодателю невыгодно тебя брать. Ибо проблем будет больше, чем ты напрогаешь. Если ты будешь платить работодателю тысяч 50 в месяц за то, что у него работаешь и стажируешься — в этом случае тебя имеет смысл взять. Уровень твой раскрывается очень просто и быстро, даже до собеседования, даже по резюме. Хотя по резюме ожидания от тебя будут больше. Даже если ты вызубришь все ответы на все вопросы и как то ухитришься обмануть собеседующих, ты очень быстро вылетишь в нормальной конторе с испытательного срока (а я ни разу не встречал случаев когда кто то вылетал). Конторы, в которых работать не стоит, возможно как то и будут заинтересованы в твоих услугах. Но тут мало кто тебе посоветует, ибо обычно rsdnовцы в таких конторах не работают. В тех конторах, где работать не стоит, если ты не блатной, то зарплат нормальных нет, и я сомневаюсь что тебе будут платить больше, чем у тебя сейчас. Те конторы, где работать стоит, для тебя недоступны.
Мне кажется, у тебя узкий кругозор. Я за свою жизнь работал в двух конторах, где "rsdnовцы не работают" судя по всему. По долгу службы сталкивался с другими программистами из других компаний. Я уверен, что подавляющее их большинство умеет программировать не лучше, чем RussianFellow. При этом они получают свои 300-600 долларов в месяц и приносят доход своим компаниям. Только в последние годы я заметил явное улучшение уровня разработчиков, хотя те разработчики тоже никуда не делись. Если человек умеет писать цикл и работать с массивами, он уже чуть ли не гуру. А остальное достигается копипастом.
Здравствуйте, vsb, Вы писали:
vsb>Мне кажется, у тебя узкий кругозор. Я за свою жизнь работал в двух конторах, где "rsdnовцы не работают" судя по всему. По долгу службы сталкивался с другими программистами из других компаний. Я уверен, что подавляющее их большинство умеет программировать не лучше, чем RussianFellow. При этом они получают свои 300-600 долларов в месяц и приносят доход своим компаниям. Только в последние годы я заметил явное улучшение уровня разработчиков, хотя те разработчики тоже никуда не делись. Если человек умеет писать цикл и работать с массивами, он уже чуть ли не гуру. А остальное достигается копипастом.
Здравствуйте, Sharov, Вы писали:
S>Вы сейчас о чем, какие шансы, какие 20 лет? Это говорят про математиков, претендующих на серьезные результы. Помимо Торвальдса не мало очень крутых прогаммистов, многие в программирование пришли поздно.
Программисты в большинстве своём- зашоренные посредственности. Этот парадокс не даёт им понять, насколько на самом деле в других областях требуется больше мозгов. Действительно умные с кругозором всё видят и идут в более перспективные или интересные виды деятельности.
Здравствуйте, Тёмчик, Вы писали:
Тё>Программисты в большинстве своём- зашоренные посредственности. Этот парадокс не даёт им понять, насколько на самом деле в других областях требуется больше мозгов. Действительно умные с кругозором всё видят и идут в более перспективные или интересные виды деятельности.
Здравствуйте, Тёмчик, Вы писали:
Тё>Как может метод принадлежать экземпляру? Метод всегда принадлежит классу. Просто обычный метод применяется к instance, т.е. к полям объекта, а статический — к классу, т.е. к полям класса.
Ну javascript например — методы принадлежат объектам (экземплярам), объекты наследуются от объектов, и ничего, все живы
Здравствуйте, AlexRK, Вы писали:
AG>>Значит ли это, что если НЕТ НИ ОДНОГО объекта этого класса, что статический метод выполняться НЕ БУДЕТ?
ARK>На некоторых компиляторах будет, но медленно. Но вообще это undefined behavior.
Ну зачеееееем вы это разоблачили!!
Такая прекрасная подсказка была RussianFellow!
Он мог бы это всерьез воспринять и на собеседованиях говорить!
И потом нам бы рассказывал — я им говорю про статический метод, а они улыбаются все, вот дебилы. И еще перезвонить обещали и не перезвонили.
А так всё, уже не будет этого. (