нужен совет программистов!
Спасибо всем,кто заглянул и потратил своё драгоценное время!
Мне 42,в Германии я больше года,сейчас пойду на курс немецкого А2-B1.A потом встанет вопрос "Что делать?"
5 лет назад в Италии закончила гос. Ausbildung (3 года) по профессии индустриальный техник (спец.Информатика). Теперь, вроде,точно такой же в Германии нет,но мне предлагают сделать Аннеркеннунг(скорее в пользу программиста чем техника).Вопрос не в этом.
Стоит ли мне вообще затевать этот "танец с бубнами" в моем возрасте и без опыта?Потом прошло 5 лет,я многое забыла!
Изучали из Информатики:
C++;mySQL;HTML;PHP;(может что и забыла).
Потом,конечно, Системы,Электроника,куча математики, английский.
Закончила с 85/100; информатика-любимый предмет.
Хочу спросить,есть какой-то шанс устроиться в Германии с моим вышеперечисленным или оставить в покое эту идею.
Если кому-то интересно,вот об этой итальянской профессии:
https://it.m.wikipedia.org/wiki/Perito_industrialeЗаранее всем благодарна за ответы.
Постараюсь дать объемный ответ, а Вы уже думайте.
В данной ситуации надо учитывать несколько факторов.
Первый и самый главный, собственное желание. Вы хотите программировать?
Если да, то параллельно с курсами немецкого учитесь и вникайте во все современные тонкости. 5 лет в программировании - это много. Посмотрите, что есть и что лично Вам больше по душе.
Садитесь и кодить, кодить, кодить. Если это у Вас начнет вызывать отвращение и рвотный рефлекс, то вряд ли это Ваше, если же наоборот, то вперед.
Второе - где Вы территориально. В целом по стране высокая нехватка специалистов, но есть и регионы, где мы никому не нужны. Возможно придется переехать.
Ваше образование. По большому счету в этой профессии оно сейчас мало кого интересует, гораздо важнее, что Вы умеете и что у Вас в голове. Тот факт, что Ваше образование техническое, уже сам по себе достаточен. Подтверждение Вашего итальянского диплома нужно, если Вы хотите дальше учиться. Основной массе работодателей это фиолетово. Бумажки мало кого интересуют. Подтвердите на всякий случай, может когда-то пригодится, есть оно не просит.
Отбросьте совковое мышление. 42 для Германии - это еще не возраст. Тут многие в это время только учиться заканчивают.
Учитесь, выберете для себя какую-то начальную специализацию, после чего отдавайте свои данные хэдхантерам.
Скорее всего не сразу, но со временем Вы устроитесь куда-то junior разработчиком.
Да, при отсутствии опыта Вам придется пройти не одно собеседование. Тут главное после первых неудач, а они с большой вероятностью будут, не поставить на себе крест.
Воспринимайте все собеседования как тренировку. Вам будут задавать вопросы, на которые у Вас не будет ответа. Возвращаетесь и вникаете, в то, что у Вас спрашивали.
Помните, для начинающего ощущение "я - тупой идиот" - это нормально! Они и для опытного нормально, показывает здоровую самокритику и заставляет учиться, прогрессировать.
Если у Вас есть призвание и желание, у Вас есть все шансы. Удачи!
Спасибо за совет,живу в Баден- Вуертенберг,как раз в"столице интернета",поэтому и думаю ,что тут программистов и так навалом.5 лет ,согласна,нужно все вспоминать.Хотела спросить,как здесь,у каждого довольно узкий профиль? Может лучше сделать акцент на один-два "языка"?Или надо знать 5,например? Или лучше выучить что-то новое ?
Или попросить курс программиста от АА (2года)? Я работаю,но хочу увольняться.
Много вопросов,может глупых,но я в этой сфере никогда не "варилась"
Ещё раз спасибо за ответ и за поддержку.
Потом прошло 5 лет
------
И что же делалось в эти 5 лет?
из Информатики:C++;mySQL;HTML;PHP
-----
Не густо. Аккурат для техников.
По программингу - просто - слей последнюю Студию с микрософта, проинсталируй и попробуй освоить что-нибудь из того что изучала - сделать какой-нибудь сайтик с базой позади. Если за пару месяцев не освоишь - ищи швабру...
Что же делалось в эти 5 лет? Появился на свет мой сын,которому сейчас 4.На работу вернулась
через месяц после родов,работать по специальности в Италии возможности не было.Давно собирались переезжатьв Германию-у меня тут родители...Спасибо,насчет швабры подумаю...От чего такое пренебрежение к техникам,что они вам сделали😂😂😂.Кстати сайтик был сделан как дипломная,ничего, освоила...
Появился на свет мой сын
-----
Хммм... Какое отношение к запрашиваемой работе имеет опыт подлежания, залета и всего последующего?
работать по специальности в Италии возможности не было
-----
Когда у меня нет возможности работать - Я, обычно, что-то изучаю и осваиваю.
Кстати сайтик был сделан как дипломная,ничего, освоила...
-----
Ндаа... Даже читать получается с трудом... Ну да ничего - может кому именно такое и надо... Удачи...
Так я и занималась основной работой и ребенком .Я и не считаю себя програграммистом....потому и прошу совета у профессионалов.В Италии другие реалии :там государство с тобой не будет нянькаться...Пока ты учиться будешь...Училась я тоже на вечернем-днем работала-до 23 в техникуме.Я себя не оправдываю,но времени не было,на практику никто не брал,кризис полный в Италии.Чтож теперь все зачеркнуть и к метле? В таком уж случае лучше на завод...
Не надо 5, в данной ситуации лучше сконцентрироваться на PHP и JS.
Не надо 5. Я же Вам написал, найдите свою специализацию. Сразу на нескольких языках на одной работе мало кто пишет.
Освойте для начало что-то одно на уровне, чтобы смогли работать.
Здесь у каждого свой путь, поэтому и профили разные. В принципе, если умеешь программировать, то язык - это только средство. Синтаксис другого языка осваивается очень быстро, основные библиотеки учатся за месяц-другой, тонкости учатся вечно, ибо нет предела совершенству. Но опыт Вам никто не подарит, его надо наживать самому.
Проработавшие в программирование лет 10 имеют, как правило, опыт в 3х и больше языках. Но начинать надо с чего-то одного.
Или попросить курс программиста от АА (2года)?
Эти курсы пустая трата времени и скорее негативная рекомендация, чем позитивная.
1. Работать программистом
гораздо выгоднее, чем учителем программирования для начинающих. Кто там преподает и что, лично для меня крайне сомнительно.
2. На такие курсы АА пихает всех, кто не может найти работу. Если уже что-то знаете, то будете там только деградировать. Я сильно сомневаюсь, что там можно что-то выучить.
Сам я эти курсы в живую никогда не видел. Но так же как я размышляет любой вменяемый работодатель и интервьюер.
Да, конечно. Он весьма широко используется. На stackoverflow он явный лидер. Тем более его выбор имеет смысл вместе с вебом, PHP/JS
У С++ узкая область применения. Маловероятно, чтобы вы без опыта смогли найти работу по С++. Я сам был экспертом по С++, но уже много лет в вебе, в основном на Java.
Очень жаль,как раз С++ мы 2 года долбили.PHP только последний год,после которого многие сказали что с программированием больше не хотят иметь ничего общего(может сказалась усталость).
Остаётся Веб,чего я и боялась... Скажите Java сложный?Порекомендуете книгу на русском?
Хочу спросить,есть какой-то шанс устроиться в Германии с моим вышеперечисленным или оставить в покое эту идею.
шанс > 0, но это не означает, что вы обязательно сумеете его использовать. в какое-нибудь маленькое gmbh на невысокую зарплату возьмут вполне. чему-нибудь научат и за что-нибудь усадят. пару лет поработать, и вы уже считаетесь "с опытом работы", тогда можете искать дальше и смотреть уже на другие уровни заработка. нужно искать поплотнее. желательно жить вблизи большого города, зарегистрироваться на всяческий порталах типа stepstone, красивый лебенслауф составить, ну и фарт в большой степени иметь.
"швабру" вам найти может оказаться еще сложнее, скорее камерьерой где-нибудь тарелки между столами таскать, т.к. никто не ищет сотрудника, который вот-вот вспомнит о своем образовании и исчезнет. так что карабкайтесь туда, куда вы принадлежите. упорно и не теряя оптимизма : )
зы. zucchero canta ancora o è già in pensione? 20-30 anni fa era molto famoso.
Очень жаль,как раз С++ мы 2 года долбили
Если это всё что есть по С++ - это очень немного. Это очень сложный язык.
> Очень жаль,как раз С++ мы 2 года долбили.PHP только последний год,после которого многие сказали что с программированием больше не хотят иметь ничего общего(может сказалась усталость).
> Остаётся Веб,чего я и боялась... Скажите Java сложный?Порекомендуете книгу на русском?
тут вот какое дело, с одной стороны, работодатель смотря на вас будет считать, что де есть пробелы в знаниях, опыте, нет послужного списка, да и женщина при том, то есть платить можно меньше, и тут правильнее тендировать к какой-нибудь лабуде типа веба, да питона с жабой.
С другой стороны, если С++ вам нравится, и у вас есть еще и алгоритмика (или хотя бы желание ее осваивать), то можно попытаться именно в этом направлении двигаться. Адекватный работодатель с радостью разбавит мужской С++ коллектив остроумной и хорошо мотивированной (и при том начинающей) женщиной. ИМХО, я бы в этом направлении на вашем
месте двинулся, но тут надо быть готовым, что по началу зарплаты будет не очень, то есть junior, но рост будет, в отличии от веба.
Во-первых, если с Вами собеседуется не голимый ХР, а человек связанный с самой разработкой, то мотивация чаще бывает важнее, чем наличие или отсутствие ВО. Другое дело, что ХР часто отбраковывает такие резюме еще до собеседования, но это тоже проходимо, если очень понятно это сформулировать в мотивационном письме.
По позициям - на ключевых и интересных позициях в Германии находятся исключительно немцы, даже если их квалификация уступает иностранцам. В то же время работников катастрофически не хватает, поэтому часто берут на средние и юниорские позиции тех, кто реально будет работать, и работодателю плевать какого цвета у него кожа и на сколько сложно для немецкого уха у него звучит фамилия.
По позициям - на ключевых и интересных позициях в Германии находятся исключительно немцы, даже если их квалификация уступает иностранцам.
Откуда этот бред?
Я работаю на фирме с 1к сотрудников, отдел разработки порядка 30 программистов и архитекторов, среди них есть 3 доктора.
Начальница - женщина хорватка, причем блондинка, но сама бывший программист.
По позициям - на ключевых и интересных позициях в Германии находятся исключительно немцы, даже если их квалификация уступает иностранцам.> Откуда этот бред?
это не бред а суровая правда, хорошо, готов переформулировать не столь категорично, и заменить "исключительно" на "с большим преобладанием". Сугубо ИМХО, надеюсь, что это все-таки не везде так, но за 20 лет работы и многочисленных контактов я не видел исключений из правил.
Если речь идет о позициях, где надо работать, а не управлять/философствовать, там как раз, как я говорил, наоборот.
> Начальница - женщина хорватка, причем блондинка, но сама бывший программист.
у нас вроде уже какое десятилетие канцлерин, пора бы к женскому руководству и привыкнуть, работают женщины чаще лучше и ответственнее мужиков, мозги по генетике больше приспособлены к многозадачности, то есть в современную эпоху стоит ждать неуклонного роста процента женщин в рядах алгоритмических программеров и софтверных архитекторов многоядерных и многопроцессорных систем.
> В Штутгарте с Вашей исходной 35-40к.
яб даже в нижнюю сторону 30-35 смотрел бы, чтоб но, при правильной позиции и смене работы через нескольких лет работы можно ожидать 50К+.
35K - это 35000 в год брутто, где-то 10К еще работодатель сверху должен по страховкам отдавать, то есть вы реально ему будете обходится в 45000 евро в год, а вот на руки получать, если муж работает и больше вас зарабатывает, около 1500 евров в месяц. Можно на lohnsteuer rechner погуглить, тогда цифры будут точнее.
Я говорю не про ВО, а про знание С++. Два года изучения для С++ - это ничто.
Я и подразумевала под ВО более глубокое изучение языка.Базы нам дали:учили по учебнику для высшего тех.обр,т.к. специального пособия для технарей по С++ нет в Италии.Потом в основном все в лаборатории.Хотелось бы посмотреть какой сложности программу может встретить junior.Конечно учиться надо...Притом не прекращая...
Я говорю не про ВО, а про знание С++. Два года изучения для С++ - это ничто.
я другое мнение выскажу: если человек изучал ДВА ГОДА С++, и не освоил, то он его не освоит НИ!КОГ!ДА!
конечно, можно по-всякому "изучать", но мой опыт показывает, что это именно вот так.
Если район Aalen подойдет и с "С" можете хорошо разобраться могу скинуть координаты. Я на той фирме два проекта сделал и там постоянно нужны люди. На С# ASP.NET тоже нужны.
Девочка там тоже работала, но потом её заломало с Ульма ездить. В вашем районе как раз должно быть достаточно много вакансий на С, С++
я мог бы понять из аалена кататься в штуттгарт, но не наоборот. разве что за большущими деньжищами, но это не тот случай?
"постоянно нужны люди" сотням фирм прямо в штуттгарте.
я тоже могу "скинуть координаты" (по секрету, знамо дело : ). вот они:
https://de.indeed.com/Jobs?q=c/c+++junior&l=Stuttgar...
если мало, скажите, я накидаю еще. рассылаетесь во все, которые с виду покажутся подходящими, только напишите им сжато и по-делу, не размазывая, как в "образцах хороших бевербунгов" из интернета. и получите уже на той неделе приглашение (-я) на гешпрех.
имейте ввиду, что если пригласят на ферхау (а скорее всего), то сразу оговорите, что разъезжать по всему баден-вюрттембергу не согласны (если действительно не согласны).
я другое мнение выскажу: если человек изучал ДВА ГОДА С++, и не освоил, то он его не освоит НИ!КОГ!ДА!
А вы сами С++ насколько хорошо знаете?
PS Можете не отвечать, уже нашел вашу тему по бусту. Очевидно, что С++ вы в принципе не знаете.
Было только пару свободных минут, не заметил что ТС в Штутгарте. Тогда большого смысла конечно нет.
А выкладывать в общий доступ майл человека который не дал на это разрешение я не могу. Кроме того, фирму и начальство я более менее знаю, там бы и остался после проекта, если бы не было далеко для меня.
"Не надо 5. Я же Вам написал, найдите свою специализацию. Сразу на нескольких языках на одной работе мало кто пишет.
Освойте для начало что-то одно на уровне, чтобы смогли работать."
Почти во всех объявлениях о работе ,напр.Веб - пишут Java,Php,Html,my Sql.
Это как минимум и плюсом ещё чего-нибудь укажут?
Не Java, а JavaScript - это совершено разные языки.
Эти 4 компонента - основа для веба. Обычно еще 5ым идет CSS.
PHP - серверная часть, обработка данных
mySql - запросы в базу данных
html - это только разметка, это не язык программирования
css - стили, дополняет html
JavaScript - вся динамика на уровне броузера.
Да где мы такую возьмём? Специально для юниоров программы не пишут, они работают с тем же кодом что и остальные.
Все поняла...сижу краснею...Все проходили кроме Js.
Просто в одном бюро куда я зашла в отдел softwerистов они как раз и сидели : кто-то c query,кто-то s Php, кто-то с артиклями и т.д. вот я и подумала,что все разделено,но кто была очень большая организация
вашей главной проблемой на реальной работе будет далеко не в первую очередь с++, поверьте. хотите "попробовать себя"? сходите, например, сюда:
https://wiki.blender.org/index.php/Dev:Doc/New_Developer_I...
и попробуйте запустить у себя на компьютере этот проект. из исходного кода. вся информация на сайте по ссылке имеется. когда вы запустите это (ни разу не заглянув в с++ код), можете считать, что вы справитесь (wir schaffen das : ). потому что когда попадете на реальный проект, у вас под рукой будет кто-то, кто введет вас в курс дела, поможет наладить среду разработки (или посадят за уже готовый компьютер), а по приведенной мною ссылке вам придется все читать самостоятельно, делать, оно не сразу будет получаться, нужно будет искать почему, исправлять, узнавать и т.д. но когда заработает - попробуйте поиграться с приложением, освоиться в нем (заметьте, все еще не заглядывая в код!). затем найдите список известных issues, выберите что-нибудь, суть чего вам понятнее всего (жалательно с тэгом first_time_bug, если у них это принято), и попробуйте воспроизвести. если и это получилось - вы уже крупный специалист : ) и только теперь вам придется заглянуть в код, найти места, где происходят события, имеющие отношение к багу, разобраться, как это все задумано, как оно работает, и почему работает не так, как надо. в основном работа и состоит из того, чтобы читать и разбираться, а не "программировать".
зы. и вообще - основной сложностью будет для вас (ВСЕГДА!) не язык программирования, а конкретный проект и problem domain.
затевать стоит. Учите немецкий до уровня В2, потом ищите работу разработчиком ПО на позицию Junior или Trainee. Меня смущает в вашей информации только то, что вы не уверены в том, что вам стоит дальше продолжать карьеру в ИТ. Как по мне, уверенность в своих силах, выраженная мотивация и интерес к профессии, четкие цели и готовность много работать для их достижения - уже половина профессионального успеха.
Вот что запостила "Мурр",правда,в соседней ветке:
"Как по мне, уверенность в своих силах, выраженная мотивация и интерес к профессии, четкие цели и готовность много работать для их достижения - уже половина профессионального успеха.
-----
А где хоть что-то из этого удалось найти?
- выраженная мотивация - кроме общих вопросов, ответы на которые гооглятся за пару минут, ничего нет
- интерес к профессии - ограничен техникумом 5-летней давности, причины поступления - неясны, продолжение -отсутствует
- четкие цели - где? какие? Пока вижу что нет не только целей, но и элементарного понимания что где как...
- готовность много работать - за последние 5 лет - нулевая активность в профессиональной области.
Будущая готовность?
Челу - 42 года, ближайшие лет 10-12 чел будет занят заботами об ребенке, через 3-4 года появятся проблемы с простым запоминанием информации и уже сейчас имеются сложности с анализом, которые будут прогрессировать. Прогеров в возрасте за 50 практически не существует.
О чем тут говорить? Максимум на что можно рассчитывать - освоить кодинг на 1-2 языках и найти работу по кодингу. И то - только из-за жесткого дефицита кадров - снизится дефицит - либо на улицу, либо на 20-25K..."
Она хорошо изложила....Откуда мои опасения и неуверенность.
Ой, не слушай мурра, он уже 15 лет тут ноет одну и ту же песню. Работай над собой и всё получится.
С++ сильно ограничивает возможные места работы, а его сложность делает быстрый вход в профессию малореальным. Веб просто более реалистичен в вашей ситуации. Ладно, вопрос на засыпку, вам в этом коде всё ясно? http://forum.ixbt.com/post.cgi?id=print:26:40677&user= f...
зачем вы пугаете человека? во-первых, ничего военного в этом коде не. во-вторых, от junior никто не будет ожидать черный пояс по темплейтам. достаточно, если он может разобраться, как их применять. т.е. ему достаточно понять то, что внутри main() этого кода. разве что он идет юниором в фирму, для которой разработка системного софта - основной профиль. уверен, 95% "с++ программистов с опытом" зв все годы не создали ни одного темплейта, а максимум что использовали - это stl. или какие-нибудь детали boost (последних меньше), и то не всегда правильно это используют. такие примеры новичку тыкать - это просто "надувать щеки". нехорошо.
Да, я тоже почувствовала, что вы сильно не уверены в себе и в том, что программирование - это ваше. Это, конечно, не есть хорошо. Не знаю, что лучше посоветовать. Могу посоветовать однозначно перестать комплексовать по поводу возраста. 40 лет - это нормальный возраст для освоения новой профессии, тем более, если соответствующее образование уже получено. 4-хлетний ребенок уже не так мал, его можно отдать на полный день в детсад и работать самой на vollzeit. Одна моя коллега отдала ребенка в возрасте 8 недель в ясли, чтобы иметь возможность доучиться в университете. То есть, совмещать интенсивную работу и маленького ребенка, хоть и сложно, но можно. Это опять же вопрос мотивации. Если ее нет, то будет сложно. В любом возрасте.
v Maine идет штамповка array из 3 элементов(по моему).Ему предшествуют 2 публичных класса.Первый возвращает число во второй klass Message,имеющий в классе своих 3 елемента.Внутри Message понимаю с трудом...Но если повторить все,думаю станет ясней..
Там пара достаточно стандартных концептов: variadic & forward. Просто тест на знание С++. Тест провален. Эрго, знания языка рудиментарны, поэтому их при выборе направления их можно не учитывать.
я понимаю, что "для поупражняться" можно любую муру нагородить. в нормальной жизни человек обойдется без нагромождения лишней лабуды, в которой так обожают поковыряться теоретики, а просто напишет прямо в main()
std::tuple msg = std::make_tuple ( 42, "Answer", 21 );
std::cout << std::get<0>(msg) << "\n";
std::cout << std::get<1>(msg) << "\n";
std::cout << std::get<2>(msg) << "\n";
, и получит тот же самый результат, только более прямой и понятный.
знания языка рудиментарны
-----
И для понимания этого нужно было давать тест?
Остальное, кстати, находится в таком же состоянии - за пятилетку полного простоя даже у профи из актива выпадают почти все ньюансы.
Так что остается только то, что было предложено ранее - самостоятельно освоить что- то новое на базе того что когда-то якобы было...
тьюпл (tuple) - это не массив, а тьюпл. т.е. нечто, о чем можно думать, как о структуре, содержащей несколько элементов различных (в общем случае) типов. но в некоторых случаях использование тьюпла, а не структуры упрощает жизнь. например, чтобы сравнивать структуры, вы должны переопределить операторы сравнения, а тьюпл сходу будет сравнивать поэлементно, и если это вас устроит - то все готово out of the box. наверняка есть множество других нюансов, например, если вы захотите, чтобы тьюпл "умел что-то делать новенькое" (как в предложенном примере, только действительно новенькое, а не то, что тьюпл и так умеет), вы должны будете поработать головой и ручками, но, но повторю: юниору это полезно знать, но далеко не обязательно. может, и не встретите за всю вашу будущую
профессиональную деятельность. с одной стороны, чем больше вещей вы знаете, тем шире ваш кругозор, что в результате выльется в более изящный (простой и понятный) код, но сразу исходите из того, что в каждом углу ковыряться не следует, и ни один эксперт не не побывал во всех углах, на то он и с++. достаточно, если у вас будут базовые знания и голова, используя которую, вы будете в состоянии разобраться с любым аспектом языка. я уже говорил, что разобраться с public domain и development environment будет сложнее?
Спасибо большое Mose.
Смотрю сейчас учебник по кот.учили С++;Все что есть :Алгоритмы,процедуры и функции(sorry,перевожу с итальянского),аррай -матричи, структуры дат и указатели,классы и объекты,file.Все,больше нифига нету у меня и все ето пятилетней давности😢
> Смотрю сейчас учебник по кот.учили С++;Все что есть
:Алгоритмы,процедуры и функции(sorry,перевожу с итальянского),аррай
-матричи, структуры дат и указатели,классы и объекты,file.Все,больше
нифига нету у меня и все ето пятилетней давности😢
у вас учебник 11-ый стандарт не поддерживает, а сейчас уже 14-тый в моде. Там еще веселее бывает. Почитайте, на ночь глядя http://www.getinfo.ru/article40.html поймете, зачем это напридумавали.
Реально, как тут многие заметили, язык не есть ключевое, что нужно знать, а очень желательно знать именно алгоритмику. То есть понимать какими средствами можно реализовать(имплементировать) какой алгоритм. Для особо одаренных позиций требуется знание почему один и тот же код с одинаковым числом арифметических операций может в сотни или даже тысячи раз по скорости отличаться. Но на это - не обращайте внимание, хотя это очень увлекательно и сильно затягивает, особенно если к этому подходить с энтузиазмом. Я сейчас на своей дочке 5-класснице тренируюсь объясняя
ей параллельные вычисления, очень прикольно, как легко ей даются алгоритмы, которые я сам проходил на старших курсах универа.
Если хотите продуктивно общаться на этом форуме, сразу заносите мурра в игнор-лист. Кстати, это не женщина, если вдруг еще не поняли.
Если вам php + js недостаточно, посмотрите java (с j2ee или Spring Framework) - язык намного проще и приятнее в использовании, чем с++, не говоря уже о возможности найти хорошее хлебное место.
интервью - выпендреж, показывающий, что у парня с юмором тоже все в порядке
а на ночь я бы такое лучше почитал
https://github.com/Droogans/unmaintainable-code
тьюпл - это не с++. это - "прибамбас", созданный средствами (читайте templates) с++ для облегчения жизни. многие темплейты (библиотеки темплейтов) стали со временем неотъемлемой частью каждого проекта (stl, boost). но не заморачивайтесь, вам вряд ли когда-нибудь придется создавать свой темплейт, но использовать существующие (или читать и понимать, как они используются) - обязательно. но для этого придет время.
и главное, попытайтесь понять, насколько это ДЛЯ ВАС интересно. не сам с++ на вашем сегодняшнем уровне, а путь его освоения. это должно или захватывать и увлекать, либо раздражать и даже злить. если первое - вперед и с песней, если второе - зачем себя любимую мучить? за вас на этот вопрос никто не ответит и не подскажет ничего.
потому что без этого можно вполне нормально прожить, и большинство так и делает. есть не так много задач, где создание темплейта - единственный вариант (или просто оптимальный), и даже тогда люди пытаются обойтись привычными им средствами. вспомните, исключение - если человеку просто нравится это дело, и он даже хэллоуорлд через темплейт (лучше -ы : ) реализует. но таких немного.
// function template II
#include <iostream>
using namespace std;
template <class T>
T GetMax (T a, T b) {
return (a>b?a:b);
}
int main () {
int i=5, j=6, k;
long l=10, m=5, n;
k=GetMax(i,j);
n=GetMax(l,m);
cout << k << endl;
cout << n << endl;
return 0;
} takoe mne legce ponjatj.,teper ja znaju cto takoe template.
Это одно из применений шаблонов, да. Мы избегаем повторного написания функции для всех типов , которые мы используем. Вместо этого мы пишем одну шаблонную функцию, а компайлер за нас инстанциирует (то бишь генерирует) эту функцию для используемых нами типов.
Ещё одно использование - параметризация функции. Пример (здесь мы с помощью шаблона параметризуем размер используемого массива):
template< size_t N > // optimal N = 16-128K std::string load_file( const char* filename ) { std::ifstream ifs( filename, std::ios::binary | std::ios::in ); std::tr1::array< char, N > buffer; std::string s; ifs.seekg( 0, std::ios::end ); s.reserve( ifs.tellg() ); ifs.seekg( 0 ); while( ifs ) { ifs.read( buffer.data(), buffer.size() ); s.append( buffer.data(), ifs.gcount() ); } return s; }
Ещё одно использование - вывод типов, но это такие дебри куда новичку лучше не лезть. В С++ отсутствует рефлексия, поэтому шаблонами злоупотребили для получения разной информации о типах... Более того, даже целый парсер-генератор накатали на шаблонах. Это прикольно, но тоже не для новичков.
А что касается алгоритмов, вот есть хорошая книжка по соревновательному программированию, там рассмотрены большинство существующих алгоритмов http://vandoren.strana.germany.ru/cp3.pdf
Так и джаве можно без генериков обойтись
вы имеете ввиду без создания своих, или без использования? если второе, то очень вряд ли : )
Шаблоны - это такой же инструмент, как и остальные фичи языка
нет, здесь я не согласен.
и если он облегчает жизнь, его надо использовать.
, и нужно добавить ", а если усложняет - то поотрывать руки тому, кто использует".
я вспоминаю, как работал в одной фирме с очень успешным и всемирно распространенным продуктом. так вот один из ведущих специалистов (считался экспертом на фирме по с++, вот прямо как Ван Дам), так он свой класс "динамический вектор" или что-то такое написал (и это было интегрировано в продукт!), и все только потому, что ему не нравился std::vector, у него часто возникали прерывания в коде самого темплейта, а разбираться в реализации (посмотрите одну из здесь https://gcc.gnu.org/onlinedocs/gcc-4.6.3/libstdc++/api/a01...) ему не хотелось. а товарищ хотел ясно понимать (и чтобы все понимали), что у него происходит. вот бы их с Ван Дамом свести, они
бы наверняка подружились : )
В каком смысле верю? Вы про интервью 20-летней давности? Это в айти вечность, ничто из этого не имеет сегодня значения в любом случае.
Вы какой-то бред тут несете. В принципе, насколько нужны свои шаблоны сильно зависит от типа программы. В любом случае, общие use cases встречаются достаточно часто, и они должны решаться шаблонами. Я лично использовал очень сложное метапрограммирование на шаблонах в универе для написания базы данных, ибо альтернативой были бы тонны кода. Мои шаблоны свели пользовательский код до коротеньких элегантных функторов. Там же я сделал стримы-итераторы на шаблонах, где до этого без пяти минут доктора информатики писали ужасный километровый код. Как и во всем - надо знать, где и когда их применять. А переписывать стандартную библиотеку в любом случае маразм.
Ещё вопрос:Вы сказали, с++ очень узко используется.В каких именно? Где на практике,для чего?
Можете сами полистать. https://www.gulp.de/gulp2/projekte/suche?0&scope=projects&...
В основном имхо embedded. Или вот ещё https://stackoverflow.com/jobs?sort=y&q=c++&l=Germany&...
> Скажите,Van Doren, вы верите(или отчасти),в то что было указано в статье Ilghiz?
вообще ходит мнение, что Страустрап такое не говорил, но первого января и не такое можно было сказать :)
Я лично считаю, что если пользоваться С++ адекватно и с жесткой цензурой, то получается очень аккуратно написанный и читаемый код, но если в команде много говнокодеров и руководство проекта не контролирует разработку, то получается так, что проект пишется и поддерживается только той же командой, которая это и писала.
Расскажу забавную историю. В 1993 году зная и, уже много используя С++, пришел в фирму устраиваться на работу. Далее Ш - шеф, Я - это я.
Ш: у нас все на фортране,
Я: фу, это старый язык, я знаю С++,
Ш: мне надо пермутировать 7-мерный массив, если твоя программа на С++ будет работать хотя бы также быстро, как моя на фортране и поместится хотя бы в 20 строк, то ты будешь писать на С++, иначе - переучиваешься.
Итого: да, я переучился и стал писать на фортране, так как фортрановская версия была раз так 10 быстрее, и в 3 раза короче по числу строк и конечно же прозрачнее в восприятии.
То, что было в фортране в 70-ых и появилось с стандарте С 99 года, наконец-то появилось с С++ только в 14 стандарте (2014), до этого работать адекватно с разбивкой куска памяти на многомерный массив можно было или через какое-то место (то бишь указатели на указатели) в ущерб производительности, или разрисовывая индексы вручную.
То есть я к
чему, и на С, и даже на ООП Фортране можно писать большие и успешные программы. На С++ очень много возможностей и нужен внутренний стержень, чтоб не стать говнокодером, чтоб потом вами написанный код никто не смог прочитать и поддерживать. В то же время, современный С++ 14 стандарта позволяет ИМХО писать наиболее лаконичные, читаемые, и одновременно наиболее оптимальные с точки зрения производительности программы.
вы имеете ввиду без создания своих, или без использования? если второе, то очень вряд ли : )
Как, так и.
Например, я сижу на легаси-проекте, в котором никаких генериков не было до моего прихода.
А я постоянно пишу классы с генериками для своих нужд. И на С++ писал (причем не тривиальные, а с выведением типов, если я правильно понимаю термин), на что у коллег начинался лютый батхерт, потому что как с++ они толком не знали и разбираться не хотели - мол, и так сойдет. В их понимании я усложнял, а я считал, что упрощал.
если в команде много говнокодеров и руководство проекта не контролирует разработку, то получается так, что проект пишется и поддерживается только той же командой, которая это и писала.
Вот в такое я и вляпался в своей второй фирме. Пришел 2 января в офис, открыл код и чуть не ох...л. Носителей ноухау уже давно не было, и слава богу - убил бы :-D Хорошая школа жизни оказалась. Квинтэссенция - "я могу все".
В теперешней примерно то же получилось с джава-проектом, но джава - это джава, тулзы на порядок лучше.
Носителей ноухау уже давно не было, и слава богу - убил бы :-D
«Всегда кодируй так, будто парень, который будет поддерживать твой код — необузданный психопат, и он знает, где ты живёшь» 🤣
Мы хоть и одного с Вами возраста, но разве уже на "ты"? Я очень даже "милых дам" приветствую в IT. У меня самого дочки - 9 и 11 лет - этим делом очень даже интересуются. Именно в этом возрасте надо детей учить программировать на С. Вот в декабре - дочки командно выиграли 2 диплом по Германии по информатике в хаупт-лиге, это где и оберштуфа участвует. Задачки они решали именно на языке С, хотя организаторы олимпиады рекомендуют решать на жабе с питоном - и вместо тысяч строк на этом говнокоде, как у многих, получилось по 40 строк на задачку на С - и 2 место в хаупт-лиге плюс приглашение на воркшоп по ИИ в феврале. Поэтому хоть и мозги у женщин больше к параллелизму склонны, лучше бы поторопиться, ведь молодняк скоро на пятки будет наступать.
хотя организаторы олимпиады рекомендуют решать на жабе с питоном - и вместо тысяч строк на этом говнокоде
На питоне как раз часто можно очень компактный код писать. Хотя я всегда пишу соревновательные задачи на С++. Вот пример для питона: https://code.google.com/codejam/contest/8294486/dashboard#...
решение на питоне:
def solve(N,R,O,Y,G,B,V): if max(R,Y,B) > sum([R,Y,B])-max(R,Y,B): return "IMPOSSIBLE" if R==max(R,Y,B): return "RYB"*(Y+B-R)+"RY"*(R-B)+"RB"*(R-Y) if Y==max(R,Y,B): return "YRB"*(R+B-Y)+"YR"*(Y-B)+"YB"*(Y-R) if B==max(R,Y,B): return "BRY"*(Y+R-B)+"BR"*(B-Y)+"BY"*(B-R) testcase = input() for i in range(testcase): N,R,O,Y,G,B,V = map(int,raw_input().split()) print "Case #"+str(i+1)+":",solve(N,R,O,Y,G,B,V)
Ни в коем случае не хотела умолить Ваших достоинств.По старой итальянской привычке вырвалось:там не принято на Вы,кто жил много лет в Италии может подтвердить.Приехав сюда,не раз приходилось краснеть. Ещё раз sorry...
P.s почему-то мне показалось что Вы совсем ещё юный парень...
"Спасибо,ты очень умный парень,надеюсь вскоре ты разрешишь свои проблемы(читала в соседней ветке)."
Это я тоже о Вас написала,намного раньше,почему Вы меня сразу не одернули.Повторюсь,я подумала,что Вы молодой парень,не знаю почему.Например, Ван Доре вызывает ассоциацию зрелого мужчины,может в силу своей аватар...Его мне не пришло бы в голову назвать на ты.
Мне жаль что Вы так это восприняли.