Здравствуйте, elmal, Вы писали:
E>Здравствуйте, Sharov, Вы писали:
S>>Вы сейчас о чем, какие шансы, какие 20 лет? Это говорят про математиков, претендующих на серьезные результы. Помимо Торвальдса не мало очень крутых прогаммистов, многие в программирование пришли поздно. E>Одно дело прийти в программирование из любой области, но со сформировавшейся привычкой думать. И другое, когда в школе бухать начинать с пятого класса, когда нет даже среднего образования, когда последние лет 7 читал только желтую прессу и т.д. Без шансов даже в 20 лет измениться, если до этого никогда в жизни не напрягался. Плюс неоднократно пытался, но никак не осиливаются даже простейшие вещи, в результате забил.
Полностью согласен -- навыки усидчивости и систематического решения проблемы, т.е. умение долго думать над задачей, просто необходимы. И все это, конечно, идет со школы. Т.е. лучше, чтобы со школы. Просто Вы так категорично описали критерии, которые подходят к людям, решившим добиться значительных результатов в современной математики или физики. Там уже просто усидчивость и дисциплиной не обойдешься. Там к 20 годам должны быть сформированный серьезные профессиональные инстинкты в соотв. области. Соотв. чем раньше начнешь, тем лучше. Но опять же оговорки -- современная математики и значительные результаты. Штудировать мат. аппарат для ML можно хоть после 20, хоть после 40. Было бы желание.
Здравствуйте, AlexGin, Вы писали:
AG>Мне скоро 53 года. AG>По образованию я инженер электросвязи (высшее, но не профильное). Институт окончил ещё во времена СССР AG>Занимаюсь программированием примерно с конца 1990-х (когда полностью забросил связистскую тематику). AG>Постоянно стараюсь осваивать новые понятия по программированию. AG>Круг интересов — стараюсь сконцентрироваться именно на C++ (тем не менее, эпизодически занимаюсь на C#). AG>Постоянно ищу (и нахожу) интересные материалы в интернете, периодически покупаю литератутру по данной тематике AG>(вот недавняя покупка:
— книга по C++17).
AG>Не сочтите, пожалуйста, это сообщение за самопиар или саморекламу. AG>Это просто к тому, что так может каждый! В том числе и Вы, уважаемый RussianFellow! AG>Здесь — главное: желание профессионального совершенства. AG>Задаться целью роста и мобилизовать на это все силы и средства!
Здравствуйте, RussianFellow, Вы писали:
mgu>>А я и не передёргиваю: неоднократно встречал пациентов, которые в модных языках программирования все переменные объявляют в начале функции -- как в дореволюционном С.
RF>А это плохо?
Здравствуйте, AleksandrN, Вы писали:
RF>>Вот именно, в Москве и Московской области программистов--полно! RF>>Так что все эти разговоры про то, что будто бы проблема найти программиста--ложь!
AN>Зависит от решаемых задач и требований к квалификации.
Здравствуйте, elmal, Вы писали:
mgu>>Интересно, а какие объективные причины могут мешать профессионально расти? E>Не заточенные под программирование мозги могут помешать.
Мне кажется, что это встречается так же редко, как и люди, не спускающие за собой воду.
Здравствуйте, 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 долларов в месяц и приносят доход своим компаниям. Только в последние годы я заметил явное улучшение уровня разработчиков, хотя те разработчики тоже никуда не делись. Если человек умеет писать цикл и работать с массивами, он уже чуть ли не гуру. А остальное достигается копипастом.
Здравствуйте, 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.
Здравствуйте, bnk, Вы писали:
bnk>Интересно, какая мотивация всем этим заниматься. Деньги, или?
Это все-таки некоторый личностный/профессиональный рост.
И желание быть как-то востребованным. Чтобы не затеряться среди современных молодых и энергичных...
Что же касается денег, то здесь скорее уместна формулировка: не остаться без средств, на содержание семьи
bnk>Не надоела вся эта галиматья за 30 лет?
В разное время — разные приоритеты.
Так, например, был период (середина 2000-х, начало 2010-х) — когда C++ не развивался так динамично, как теперь.
Тогда я больший упор делал на аспекты по проектированию, чем по конкретным технологиям и средствам разработки.
P.S. Личностный рост — ИМХО это когда ты видишь свой личный прогресс.
Это когда ты смотришь код и тебе хочется "набить морду тому г-но-кодеру", а потом вдруг спохватываешься, что это твой собственный код, написанный тобой же лет 5...6 назад
Здравствуйте, vsb, Вы писали:
vsb>Мне кажется, у тебя узкий кругозор. Я за свою жизнь работал в двух конторах, где "rsdnовцы не работают" судя по всему. По долгу службы сталкивался с другими программистами из других компаний. Я уверен, что подавляющее их большинство умеет программировать не лучше, чем RussianFellow. При этом они получают свои 300-600 долларов в месяц и приносят доход своим компаниям. Только в последние годы я заметил явное улучшение уровня разработчиков, хотя те разработчики тоже никуда не делись. Если человек умеет писать цикл и работать с массивами, он уже чуть ли не гуру. А остальное достигается копипастом.
Здравствуйте, 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.
В моей вселенной обычно гуисты и разработчики промежности даже не догадываются о существовании друг друга.
Здравствуйте, Sharov, Вы писали:
S>Вы сейчас о чем, какие шансы, какие 20 лет? Это говорят про математиков, претендующих на серьезные результы. Помимо Торвальдса не мало очень крутых прогаммистов, многие в программирование пришли поздно.
Программисты в большинстве своём- зашоренные посредственности. Этот парадокс не даёт им понять, насколько на самом деле в других областях требуется больше мозгов. Действительно умные с кругозором всё видят и идут в более перспективные или интересные виды деятельности.
Здравствуйте, Тёмчик, Вы писали:
Тё>Программисты в большинстве своём- зашоренные посредственности. Этот парадокс не даёт им понять, насколько на самом деле в других областях требуется больше мозгов. Действительно умные с кругозором всё видят и идут в более перспективные или интересные виды деятельности.