LINUX.ORG.RU
ФорумTalks

С++ и кризис среднего возраста

 


0

1

Здравствуйте. Суть вопроса: живу я стало быть живу. И вроде институт...И вроде дети...И работа...И вроде даже неплохо... Но все чаще посещает мысль, что как-то «не туда» или «не о том» все это. А с другой стороны и возраст уже не тот - за тридцатник. Но все чаще я стал вспоминать далекую юность, когда покупал я книжицу скажем по прикладной программе (Autocad, SolidWorks и т.д.), клал перед собой и неспешно, вечерами, вкуривал во все это. И ведь пригодилось потом. И вот я призадумался - а не вкурить ли мне во что-нибудь связанное с программированием, но консервативное, не сильно меняющееся, да привязанное к производству и железкам? И не так, чтобы «омг, мне нечего есть, подскажите, куда бежать», а чтобы неспешно, в удовольствие. Но чтоб если совсем мозг переклинит на бренность бытия - взять, да и поменять вид деятельности. И за сим вопросы: - может ли взлететь такое, если уже за тридцать, а программированием никогда не занимался? - подходит ли для этого C++ или еще что посмотреть? - если подходит и может взлететь - что бы почитать на эту тему? - кто убил Лору Палмер?

Перемещено leave из development

Ответ на: комментарий от agel122

Про матрицы жесткости и конечно-элементый анализ наверное вообще лучше не упоминать, да? (

Ну ты же с ними трахался. А на безрыбье, как известно, и рак - рыба.

Deleted
()
Ответ на: комментарий от Leupold_cat

Даже если признать бессмысленность жизни, все равно остаётся воля (в философском смысле этого слова).

Ты это про то, что мешки с мясом почему-то решили, что их мысли и действия - не предопределены, в отличии от всех других процессов в природе?

Deleted
()
Ответ на: комментарий от anonymous

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

Если не пускаться в многостраничные рассуждения, то утверждение в моем пересказании применимо к текущему обсуждению: «Если смысла жизни в конечном итоге нет, но очень хочется жить каким-то определенным образом и считаешь это правильным, то почему бы и не жить именно так»?

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 1)
Ответ на: комментарий от Deleted

Вы имеете в виду свободу выбора.

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

Условно говоря, вы можете быть глубоко убеждены, что жизнь бессмысленна и не важно, как ее проживёшь, но прожить вы ее все равно хотите, например, работая программистом, а не пожарным.

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 2)
Ответ на: комментарий от agel122

Начать надо с того, что без хорошего знания С не может быть никакого знания С++.

Чтобы изучить С++ мало того, что надо знать С, еще и крайне желательно иметь хотя бы небольшой практический опыт разработки на «чистом» С. Иначе большая часть внутренней языковой логики С++ будет выглядеть странно, а местами - совершенно дико (она и со знанием местами так выглядит).

Продолжить следует тем, что из всех высокоуровневых и кроссплатформенных языков С «ближе всех» к той модели, по которой сейчас работают вычислительные системы. Иначе говоря «больше всех похож на то, как работает процессор».

А закончить можно тем, что зная только С в масштабах «для дома, для семьи» можно написать почти всё, на что хватит знаний и терпения (некто Торвалдьс аж целое ядро операционной системы написал).

Переходить к С++ следует уже потом, когда есть уверенность в

  1. хорошем владении С
  2. необходимости освоения этого самого С++

P.S. Приятным бонусом от знания одного только С будет то, что после того, как знания умножат печаль и нахлынет грусть-тоска, можно будет взять любой скриптовый язык под Linux и почувствовать ветер свободы в парусе, уже зная течения и не боясь подводных рифов.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Чтобы изучить С++ мало того, что надо знать С, еще и крайне желательно иметь хотя бы небольшой практический опыт разработки на «чистом» С

ЛПП

annulen ★★★★★
()
Ответ на: комментарий от LamerOk

В современном C++ от сишки почти ничего не осталось.

RazrFalcon ★★★★★
()
Ответ на: комментарий от Deleted

А мог бы девок портить. Было бы что вспомнить.

Самое скучное занятие на земле. Лучше уж вспоминать как прогал или хотя бы в походы ходил с рюкзаком, или еще что-то.. Секс - скучное, долгое и бесполезное занятие.

bonta ★★★★★
()
Ответ на: комментарий от agel122

Си - это lingua franca современного системного программирования. Дубово, производительно, никаких ограничений, а главное все другие языки в итоге умеют работать с сишными библиотеками или ими притворяться. Но как обычно «with great power comes great responsibility», делать надёжный софт на си сложно и требует опыта, дисциплины и анализаторов кода.

C++ - обмазываем си объектной моделью, abi не стандартизуем, это не нужно, оборачиваем шаблонами для обобщённого программирования, добавляем исключений для вязкости и жарим в комитете до дыма. Иногда читаем Саттера и Александреску шкрябая по страницам, приговаривая «ух бл...», потом метапрограммирование такое, что компилятор отклеивается.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 2)

... Но все чаще посещает мысль, что как-то «не туда» или «не о том» все это.

А я все чаще замечаю,
Что меня как будто кто-то подменил.
О морях и не мечтаю,
Телевизир мне природу заменил.
Что было вчера, то забыть мне пора,
С завтрашнего дня, с завтрашнего дня.
Ни соседям, ни друзьям, никому,
Не узнать меня, не узнать меня. 
anto215 ★★
()
Ответ на: комментарий от LamerOk

Начать надо с того, что без хорошего знания С не может быть никакого знания С++.

Практика показывает, что среди людей, пришедших в профессию в 2000-х и 2010-х, есть изрядное количество владеющих C++, но имеющих лишь смутное понятие о чистом C.

ХЗ хорошо это или плохо, но это имеет место быть.

eao197 ★★★★★
()
Ответ на: комментарий от LamerOk

без хорошего знания С не может быть никакого знания С++

Чем докажете?

anonymous
()

Для удовольствия? Си + геймдев.

Deleted
()
Ответ на: комментарий от LamerOk

Начать надо с того, что без хорошего знания С не может быть никакого знания С++.

Смотря что считать хорошим знанием Си. Если именно синтаксиса то определённо да.

Если же речь о больше чем синтаксис, т.е. именно про хороший, многолетний, опыт разработки на Си, то как правило таким людям обычно тяжелее воспринять ООП культуру и хорошие практики из Си++, в итоге многие из них просто продолжают писать как на Си в плюсах.

т.е. если ставить целью освоить си++ то нужно начать с Си, понять его на уровне какой-нить вузовской книжки, аля Подбельский, Фомин, и бросить, не ведя на нём что-то крупное, перейти сразу на ++. Иначе вовред будет. Я например года 3 прогал на Си на госструктуру, после незаконченного вуза. Потом худо бедно ушел на ++ (правда сложно это, и до сих пор не могу сказать что хорошо языком владею, но нравится мне он куда больше других), а от си теперь плевать тянет.

Т.е. у людей со стороны всевремя мнение (и это даже в вакансиях отражается) типа «программист Си/Cи++», но это соврешенно разные языки и культуры разработки.

Думаю не я один такой, кто проникся Плюсами - неизбежно будет плеваться в сторону Си, как языка заставляющего составлять просто вырвиглазные сигнатуры функий в программах сложнее консольных утилиоток и криптографии.

bonta ★★★★★
()
Последнее исправление: bonta (всего исправлений: 2)
Ответ на: комментарий от eao197

среди людей, пришедших в профессию в 2000-х и 2010-х, есть изрядное количество владеющих C++, но имеющих лишь смутное понятие о чистом C.

Среди тех, кто пришёл в профессию в 10-ые годы, таких ещё больше. И это серьёзно бьёт по их возможностям.

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)
Ответ на: комментарий от LamerOk

И это серьёзно бьёт по их возможностям.

ХЗ, для микроконтроллеров программировать не приходилось, а уровнем повыше практической пользы от владения чистым C ни я сам не вижу, ни мои коллеги, которые на C вообще никогда не программировали.

О каких возможностях вы говорите?

eao197 ★★★★★
()

И не так, чтобы «омг, мне нечего есть, подскажите, куда бежать», а чтобы неспешно, в удовольствие.
Но чтоб если совсем мозг переклинит на бренность бытия - взять, да и поменять вид деятельности.

«Тут либо думать, либо знакомиться». Либо нырять с головой и въезжать со страшной силой, как будто завтра жрать нечего, либо не париться вовсе, и потратить время с иной пользой. Просто почитывая книжечку по вечерам ничего кроме доп. бесполезного хобби не принесет. И аналогии по примеру того, что когда-то что-то пригодилось из изученного в прошлом, здесь не работают.

Сами подумайте, с т.з. работодателя, с одной стороны армия кодеров, уже с ВУЗовской скамьи работающих над своими скиллами (а с т.з. общих знаний по программированию так вообще со школы), и не прочь поработать для начала за мизерную з.п., перерабатывая внеурочные. А с другой стороны вы, без опыта работы программистом, с семьей и соотв. требованиями к жизненному распорядку. Чтобы вас работодатель выбрал, вам нужно быть на две головы выше этих бывших студней, и как минимум на одном уровне с одногодками профессионалами.

Я даже не говорю о том, что рынок ИТ-индустрии в РФ не самый богатый. Хотя и за бугром критерии выбора будут примерно такие же. Только конкурировать придется еще и с индусами, китайцами и проч. понаехалами, которых там больше, чем в РФ.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от bonta

Самое скучное занятие на земле. Лучше уж вспоминать как прогал или хотя бы в походы ходил с рюкзаком, или еще что-то.. Секс - скучное, долгое и бесполезное занятие*

* – мне рассказывали

Deleted
()
Ответ на: комментарий от eao197

Практика показывает, что среди людей, пришедших в профессию в 2000-х и 2010-х, есть изрядное количество владеющих C++, но имеющих лишь смутное понятие о чистом C.

Среди тех, кто учился не на прикладной математике и не на «чисто компутер сайнс» кафедрах, а по стандартизованным специальностям, оставшимся в ВУЗах РФ еще времен СССР, особенно в которых заметная доля предметов имеет непосредственное отношение к железу, о С++ разве что слышали, что там есть «инкапсуляция», «наследование», «полиморфизм». А обучение программированию в основном было на С, и немного даже на Паскале. Конечно, самостоятельно можно было познакомиться с чем угодно, но С считался самым верхним уровнем для инженеров, имеющих непосредственное отношение к железу.

seiken ★★★★★
()
Ответ на: комментарий от seiken

И? Как сей факт отменяет то, что программистов готовят и по другим специальностям, не имеющим отношения к компьютерному железу?

eao197 ★★★★★
()
Ответ на: комментарий от agel122

И вот я пытаюсь найти что-то подобное по программированию. Чтобы было для нубов расписано - про уровни программирования, про наиболее применимые языки, про прикладные вопросы - с удовольствием бы почитал такую книжицу и решил бы - надо ли оно мне?

Таких книг «все в одну кучу» скорее всего нет. Те же книги Таненбаума - это типа учебника, т.е. в основном или полностью теория. Ответы на некоторые вопросы решаются элементарной гуглежкой. Статистика о используемости языков доступна, всевозможные онлайн курсы доступны, и там, по идее, и должно быть структурированние изложение для нубов.

seiken ★★★★★
()
Ответ на: комментарий от Deleted

лучше на чужих ошибках учится, чем на своих.

bonta ★★★★★
()
Ответ на: комментарий от eao197

И? Как сей факт отменяет то, что программистов готовят и по другим специальностям, не имеющим отношения к компьютерному железу?

Не отменяет.

seiken ★★★★★
()
Ответ на: комментарий от LamerOk

По личным наблюдениям, как раз богатый опыт в C сильно бьет по возможностям перешедших в C++. Они постоянно стремятся генерить лапшеподобный бойлерплейт код, с постоянным ручным управлением памятью, закатыванием солнца вручную, кучей goto, игнорированием возможностей стандартной библиотеки и т.д. И эти привычки искоренить из них очень трудно.

CatsCantFly
()
Ответ на: комментарий от CatsCantFly

У кого мозги есть - те переучиваются, и в результате имеют куда больший кругозор. И хорошо прокачанный «ручник».

Я переучивался. Небыстро и небезболезненно, но.

anonymous
()
Ответ на: комментарий от eao197

Посыл в том, что среди тех, кто начинал работать в 2000х и что-то знал о C++ было много С'шников. Вообще, не очень понятно, что такое «смутное понятие о C».

seiken ★★★★★
()
Ответ на: комментарий от Deleted

Ты это про то, что мешки с мясом почему-то решили, что их мысли и действия - не предопределены, в отличии от всех других процессов в природе?

Насчет других процессов могу огорчить, с предопределенностью даже в чистой механике грустно, Лаплас сильно ошибался, реальные системы все норовят в странные аттракторы свалится.

anonymous
()
Ответ на: комментарий от LamerOk

Чтобы изучить С++ мало того, что надо знать С, еще и крайне желательно иметь хотя бы небольшой практический опыт разработки на «чистом» С.

Желательно иметь опыт на любом низкоуровневом процедурном языке, например паскаль, форт и/или ассемблер (не обязательно x86, лучше попроще, например i8080 или z80 или даже команд калькулятора типа МК 61 вполне достаточно).

anonymous
()
Ответ на: комментарий от LamerOk

И это серьёзно бьёт по их возможностям.

Можно пример такой возможности или ее применения?

anonymous
()
Ответ на: комментарий от seiken

Посыл в том, что среди тех, кто начинал работать в 2000х и что-то знал о C++ было много С'шников.

Не вижу никакого противоречия с

«Практика показывает, что среди людей, пришедших в профессию в 2000-х и 2010-х, есть изрядное количество владеющих C++, но имеющих лишь смутное понятие о чистом C.»

Есть много тех, кто знает C++, но не знает C. Есть много тех, кто знает C, но не знает C++. Вполне себе непересекающиеся подмножества того множества программистов, которые пришли в профессию за последние 10-15 лет.

Так что смысла вашего комментария я до сих пор не понимаю.

Вообще, не очень понятно, что такое «смутное понятие о C».

Ну вот человек может знать, что есть C, из которого когда-то C++ произошел. Но чем именно C отличается от C++ не имеют понятия. Как и никогда не писали на C-подобном языке вынуждено отказываясь от ссылок, шаблонов, классов и прочих преимуществ C++ (особенно современного C++).

eao197 ★★★★★
()
Ответ на: комментарий от eao197

О каких возможностях вы говорите?

Профессиональных, конечно же. У программистов на С++, «прогулявших» С, как правило по началу наблюдаются пробелы в знаниях самого разного масштаба - от незнания спецификаторов static и extern и неумения работать с указателями на функции или указателями на указатели до незнания того, что такое выравнивание или endianness.

И без некоторого опыта работы на Си хотя бы с небольшими проектами иногда наблюдаются либо очень странные «архитектурные» решения, типа класса, состоящего целиком из статических функций, либо просто откровенная боязнь сишных интерфейсов - когда вокруг пяти вызовов к какому-нибудь curl в единственной точке кода лепиться класс-обёртка на pimpl’е с синглтоном.

Многое из этого со временем лечиться, но времени на это уходит сильно больше.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

от незнания спецификаторов static

Если static для функций, то ненужно, есть анонимные пространства имен.

и extern и неумения работать с указателями на функции или указателями на указатели до незнания того,

Не наблюдал.

что такое выравнивание или endianness.

Этого не знают и среднестатистические C-шники.

И без некоторого опыта работы на Си хотя бы с небольшими проектами иногда наблюдаются либо очень странные «архитектурные» решения, типа класса, состоящего целиком из статических функций

Такое наблюдается не у тех, кто не программировал на C, а у тех, кто успел попрограммировать на Java.

eao197 ★★★★★
()
Ответ на: комментарий от LamerOk

странные «архитектурные» решения, типа класса, состоящего целиком из статических функций

Вспомнились случаи, когда мне самому потребовалось делать классы (точнее, struct-ы) с одними статическими методами внутри. Это нужно было для передачи различных свойств в шаблонные классы. Что-то вроде:

template< typename A, typename B, typename C, typename Traits >
class some_complex_template {
  ...
  void some_method() {
    if(Traits::some_property())
      ...
    else if(Traits::another_property())
      ...
  }
  ...
};
...
struct first_case_traits {
  static bool some_property() { ... }
  static bool another_property() { ... }
  ...
};
struct second_case_traits {
  static bool some_property() { ... }
  static bool another_property() { ... }
  ...
};
...
using specific_class = some_complex_template<..., first_case_traits>;

eao197 ★★★★★
()

то-нибудь связанное с программированием, но консервативное, не сильно меняющееся

Возьми Lisp. SICP хорошо подходит для курения вечерами.

rupert ★★★★★
()

C++ пригоден только для профессиональной деятельности и олимпиад. И доля его падает в списке востребованных работодателями. Возьми лучше Python и чистый Си с ардуино (для железяк).

snizovtsev ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.