Я так и не увидел в вашем ответе доказательств того что статья негодная. У меня почасовые рейты. Поэтому писать ответы на всё ваше словоблудие времени нет. Выделите любые три тезиса из вашей портянки. И я вам подробно отвечу на них.
>>> Это мнение профессора Сергея Савельева.
Я так и подумал. В том же самом интернете, на который вы ссылаетесь, есть достаточно опровержений его, гм, «теорий».
То что говорит Савельев очень хорошо сходиться с моим жизненным опытом.
>>> Сначала полгода-год самостоятельной учёбы. Т.е. учёбы без широкой посторонней помощи. [...] Потом вы сможете получать деньги за свои знания.
Через полгода-год обучения уже можно получать деньги за свои знания?
Да, но небольшие. Читайте внимательней!
>> Проработав так год, за самую обычную зарплату 300-400$. Вы получите опыт, открывающий перед вами все двери в жизни. Сможете получать от 1000$ удалённо и\или уехать туда, где вам больше нравится. Даже в другую страну.
Через год работы, т.е., через полтора-два года с момента начала обучения можно получать от $1000 удаленно или эмигрировать в любую страну? Простите, а вы знаете про условия оформления рабочих виз в части требуемого образования и/или опыта работы?
Не прощу. В стране куда уехал я ничего такого не нужно.
>>> Вам всегда хватит денег на «булку с маслом» и даже досрочное погашение ипотеки.
Я знаю программистов, которым не хватали на первоначальный взнос в ипотеку, что уж говорить о досрочном погашении. Так что нет.
Статья поможет стать правильным программистом, которому хватит.
>>> А в противном случае сможете набрать все необходимые знания за полгода.
Что именно относится к «необходимым» знаниям, и почему именно этот список? За полгода при какой загруженности?
Просто надо внимательнее читать. Имелось ввиду стать опытным пользователем компьютера. Я стал таким за полгода.
>>> Большинство желающих стать программистами, любители компьютерных игр, которым родители отключили инет для того, чтобы вернуть в реальность. [...] Устраиваются системными администраторами, самого низшего звена. Идут работать в техподдержку, потому что компьютер, единственное чем они могут пользоваться хорошо. У таких людей уже есть нужный багаж знаний.
Нет у них никакого «нужного багажа знаний». Любовь к компьютерным играм никак не связана со знанием компьютеров.
Любовь к компьютерным играм заставляет молодёж изучить: что такое файл, как устанавливать\настраивать ПО, настраивать локалки и многое другое. Просто потому что нет денег на дядю который всё это сделает за них.
А еще я вот никогда не работал ни системным администратором, ни в техподдержке. Можно, пожалуйста, ссылку на исследование, которое подтверждает ваше утверждение о «большинстве»?
Это мое ИМХО. И оно здесь ни на что не влияет.
>>> Конечно, все думают, всё можно свести к чему-то подобному вступительному экзамену в ВУЗ, где главным предметом будет математика.
Нет, не все. Я не думаю.
Вы так не думаете потому что у вас есть опыт. У неопытных это очень частое заблуждение. Вам вообще стоит усвоить что это статья для начинающих, а не для вас персонально.
>>> Дело в том, что освоение профессии — полгода или даже год учёбы.
Нет, освоение профессии — это сильно больше.
Напишите свою статью на тему. Это будет лучше чем придираться к чужим.
>>> Профессионалы из больших компаний склонны писать огромные книги или статьи, где описывают свой бесценный опыт другим. Странные люди конечно. Вместо получения огромных денег за работу занимаются книгописательством, за которое платят меньше, а то и совсем ничего.
Во-первых, вы не знаете, как соотносятся деньги, которые они получают за программирование и за написание книг. Во-вторых, почему вы думаете, что одно происходит вместо другого.
А вы знаете?! Ну расскажите нам тогда о мотивации топовых разработчиков.
Это соотноситься примерно так же как статьи на хабре и деньги. Их пишут явно не за деньги, но явно в рабочее время.
А в-третьих…
>>> Не надо покупать никакие курсы и платить за чудо-учебники. Все «чудеса» уже давно лежат, максимум на торрентах.
… вот поэтому за книги и платят меньше, чем могли бы. Давайте расширим этот список «не надо покупать никакие программы и платить за пользование ими»?
Нет, не надо покупать. Я так и делаю. За всю жизнь купил только две лицензии на ПО. Чисто из уважения к разработчикам. Да на мой Debian и покупать то особо нечего.
>>> HTML
>>> Очень простой язык программирования
HTML — это язык разметки, а не программирования.
Я тут перепутал «языки программирования» и «компьютерные языки». Но для вас эта разница настолько важна здесь, что статья оказывается совершенно негодной, так?
>>> Инструкции этого языка выглядят примерно так: «Вот у этого параграфа должен быть наклонный шрифт» [...] «Размер шрифта данного куска текста 12 точек. Цвет красный».
… это как раз показывает, что вы не понимаете, что такое HTML, и какой у него интент.
Смотря как переводить слова pixel и point.
>>> Ориентировочное время освоения, 2-5 дней.
Какой результат после этого «освоения»?
Понимание, можно ли браться за изучение более серьёзных технологий. Читайте внимательно!
>>> JavaScript
>>> Это уже «настоящий» язык программирования. Его изучение тесно связано с HTML.
Эм… нет. Если это «настоящий» язык программирования, то его можно учить без HTML. Для JS это вполне верно, кстати.
Однако все учебники JS рассматривают его исключительно с HTML.
>>> Но даже если вы собрались стать системным программистом.
… а что такое «системный программист»?
А это так важно прямо сейчас? И у вас забанили гугл?
>>> Скорее всего, рано или поздно столкнётесь с HTML и JS.
Вот когда столкнетесь, тогда и выучите. Зная хотя бы один C-подобный язык, понять JS достаточно несложно.
Зная хотя бы один С-подобный язык не хотят стать программистами. Это статья для тех кто как раз не знает.
>>> Одна из причин выбора JS как первого языка программирования, его применимость в разных областях. Начиная с логики web-страничек на стороне клиента. Кончая JS-подобным языком QML, куда нас тянут за уши разработчики фреймворка Qt.
Мне вот никогда в моей разработке не был нужен ни Qt, ни QML. И я знаю много людей, которым он тоже не был нужен.
Но даже не зная QML, я уверенно могу сказать, что он не JS-подобный. Он декларативный (что, собственно, видно из M в названии), JSON-подобный, и может содержать включения на JS.
Ну и что? Учить JS, не учить JS? Может вы всё таки напишете свою статью, вместо того что бы раздувать своё ЧСВ на моей?!
А еще я хочу сказать, что моим первым языком программирования был GW-Basic. Вторым — Visual Basic. Оба из них сейчас не применяются. И что?.. это никак мне не помешало.
Уверен что ваши ученики и поклонники оценят Basic двух видов, как первые языки программирования. Надо было просто написать о своих взглядах раньше меня. Но ещё не всё потеряно!
>>> Если начинающий программист не знает простых вещей, нет большой разницы на чём начинать.
Именно. Поэтому лучше начинать на максимально простом и последовательном языке.
Т.е. всё же Basic, по вашему?
>>> Те, кто имеет хороших наставников по другим технологиям программирования. К примеру, брат\сват, работающий системным программистом С. И он готов вам помогать. В этом случае С может быть предпочтительней.
А чего бы просто не пойти учиться?
Тема учёбы рассматривается. Читайте внимательней!
>>> Но насколько знаю, около 30% программистов, WEB-программисты. Так что с большой вероятностью JS будет правильным выбором.
Веб-программисты — это не обязательно JS.
Т.е. опять Basic??? Можно как то конкретнее выражать свои мысли?!
>>> Люди, которым какой-то другой язык нужен, прямо сейчас для работы. Системным администраторам, как правило, SQL и bash.
А вот нет. Системным администраторам — то, что нужно по месту администрирования. Но кто возьмет человека без опыта на администрирование SQL?
Поэтому и написано «как правило».
>>>В случае SQL я бы не стал обольщаться. Это тоже «ненастоящий» язык.
SQL как раз «настоящий» язык. Просто он в непривычной вам парадигме.
По вашему «структурированный язык запросов» может быть заменой JS или Python???
>>> Но со временем я бы советовал, всё равно попробовать что-то типа JS, поддерживающее процедурное и ООП парадигмы.
Можно подумать, больше мультипарадигменных языков нет. Хотя я бы, кстати, советовал начинать с языка с одной выраженной парадигмой, чтобы не было смешения в голове.
Ваш совет был услышан. Начинающие начинают забивать в гугл «язык с одной выраженной парадигмой». Пусть это будет хорошее начало для ваших поклонников. Для всех других есть моя статья.
>>> Слышал, JS позволяет заменять bash через модуль в node.js. Так что, если надо написать скрипты с нуля, JS будет поинтереснее.
«Поинтереснее», ага. Так вам и дали поставить node.js на продакшн-сервер, где ноды нет и никогда не будет.
А чего это вдруг? Ноду можно оставить только для консоли. Лишние модули поудалять. Потом речь идёт о полезности языка для карьеры, а не для продакшн-сервера.
>>> Очень важный вопрос, какие учебные пособия использовать. Здесь перечислены варианты в порядке, котором должны их проходить: Видеоуроки [...] Мультимедийные учебники [...] Книги. Самые тяжёлые для восприятия.
Во-первых, лично мне из этого списка книги — самые легкие для восприятия. Во-вторых, на чем вообще основывается ваше утверждение о том, что это правильный порядок?
Восприятие видео всегда было легче. Поэтому надо начинать с него. Если кому больше нравятся книги, пожалуйста.
Потом, эта статья писалась не лично для вас. А скорее для всех кроме вас.
>>> Но даже, если вы решите, что лучше взять учебник по другому языку программирования, на который вы возлагаете большие надежды. Он тоже будет мучать вас строками типа '5' + 3.
… или нет. Есть, знаете ли, языки, которые запрещают явное сложение разных типов.
GW-Basic??? Если кто хочет сбежать от указанных проблем, наверное найдёт прибежище только там.
>>> После освоения основ JavaScript. Вы уже хорошо представляете себе, что такое писать код программ.
Нет, просто нет. Вы думаете, что представляете себе, что такое писать код программ. Но на самом деле вы еще ничего не понимаете о куче вещей, на которых программирование основано. Это как сказать «после того, как вы выучили алфавит, вы уже представляете себе, что такое писать книги».
Нет, неправильно поняли.
>>> Всех людей, стремящихся овладеть какой либо профессией, можно поделить на две категории: любителей и профессионалов.
Профессионалы же готовы заниматься этим только за деньги. Либо за перспективу их получения. Профессионалов надо мотивировать. И они практически всегда останавливаются в своём развитии, как только получают хорошую работу. Даже повышение з.п. в два раза может быть недостаточной причиной для них, продолжить учёбу. На повышение квалификации годны, как правило, только любители.
На каком конкретно определении профессионала вы основываетесь, и где вы его взяли? Одно из качеств профессионала — в словарном определении — это поддержание уровня в профессии.
На перестроечном. Массовое сознание воспринимает это слово как «человек работающий за деньги». Поэтому словосочетание «профессиональная армия» подразумевает военную службу за денежное вознаграждение. Глупо оспаривать определения дающиеся в статье. Ну пореплейсите в текстовом редакторе «профессионал» на «чулакабра». Поменяется и определение и ссылки на данное понятие. Пусть вам будет легче.
>>> Придётся отдельно зарабатывать деньги, отдельно программировать. Что, естественно, невозможно.
Почему невозможно?
Потому что кроме программирования и работы есть ещё куча других вопросов в жизни которым надо уделять время. Семья, дети, дача и всевозможный быт. А тут ещё и программирование. Как раз этот момент я и продумал.
>>> Единственное исключение я бы сделал для С++. Это сложный язык. Он, наверное, требует в два раза больше времени на освоение. Чем просто С или JS. При этом зарплата будет больше максимум на 20%. С++ это язык любителей С++.
Простите, а сколько языков вы освоили?
Опять не прощу. Это просто не ваше дело. Для тех кто не верит мне на слово, есть куча учебников по С++. Дерзайте!
>>> Но, с другой стороны, разработчики Java в связке с Oracle(PL\SQL) из больших корпораций, возможно, самые высокооплачиваемые разработчики в IT. При том, что это технологии средней сложности.
Как вы меряете «сложность» технологии?
Субьективно.
>>> (Предполагаю, в мире Java платят уже только за умение запускать jar файлы.)
Вы предполагаете неправильно.
Это был просто стёб. Я люблю шутить над Java. Даже когда меня собеседуют джависты. Надо сказать они такие шутки понимают. А вы походу не джавист.
>>> Самостоятельная учёба имеет преимущество перед стажировкой. Можно получать более фундаментальные знания.
… какие, например?
«более фундаментальные»
>>> Вы должны выбрать для себя большую, фундаментальную книгу по какому-либо языку программирования. И изучить её до конца.
Фундаментальная книга по языку программирования — это не фундаментальные знания, это практические знания.
Какое практическое значение содержит ваше замечание?
>>> У SQL есть ещё один аспект. Этот язык, возможно, самое сложное, что спрашивают при приёме на работу тестировщиком.
Нет, самое сложное, что спрашивают при приеме на работу тестировщиком — это как протестировать вот это, вот это и вот это. Надежно, быстро и повторяемо. SQL на этом фоне прост, как азбука.
Вы ещё нагрузочное тестирование вспомните. Речь идёт о банальном «протыкивании» мышкой интерфейса программ. Самое сложное там как раз знать SQL.
>>> И вас очень легко переведут из тестировщиков в разработчики. Как только покажете, что способны писать хороший код.
Еще один человек, который считает, что тестировщики — это такие неудавшиеся разработчики? Но нет.
Нет. У каждого своё призвание в жизни.
>>> Освоить «слепой» десятипальцевый метод печати на клавиатуре [...] освойте обязательно. [...] Если у вас не хватит терпения на даже на это, двигаться дальше нет никакого смысла.
Я не освоил (и никогда не пытался даже). Мне это никак не помешало.
… но и не помогало.
>>> Системы контроля версий. Конечно же это будет Git.
… а потом вы придете на первую работу, а там SVN. Или TFS. Или Mercurial. Так откуда же такое «конечно же»?
Оттуда что всё равно придётся заливать код для портфолио на gitXXX сервисы. Кто держит TFS и Mercurial никогда не будут искать именно ихних пользователей. Тут уж либо Mercurial либо PHP, к примеру.
>>> Лучше быть стажёром через год самостоятельной учёбы, чем через четыре года посещения ВУЗа.
Не вы ли выше писали про фундаментальные знания? Про учебу с наставником?
Качество образования в ВУЗ-ах. Такое что лучше без них. Тут в каментах уже обсуждался этот вопрос с ссылками на источники.
>>> Те, кто начнёт заниматься по моим рекомендациям сейчас, через 4 года будут проводить технические тесты при приёме на работу тех, кто сейчас поступает в ВУЗы.
Нет, не будут. Откуда им взять навыки для собеседования?
В статье есть всё про это. Просто надо внимательнее читать.
>>> Как правило, такие курсы имеют какие-то требования к кандидатам. Яндекс требовал математическую подготовку. EPAM требовал знание основ программирования. [...] Большой плюс таких курсов. Там не требуют никакого образования.
Эм. Так «требуют матподготовку/основы программирования» или «не требуют никакого образования»?
Имелось ввиду не требуют дипломов. Но требуют иметь какие то знания. У них на сайтах всё подробно расписано.
>>> Вы заказали себе костюм в ателье. Оговорили все детали. Через неделю звонит мастер с известием, оговоренная форма швов очень плохо смотрится на костюме, надо менять.
Плохой мастер, больше не ходите в это ателье.
С разработкой то же самое — есть набор решений, которые можно и нужно принять заранее, и неспособность их сделать свидетельствует о недостатке квалификации.
Т.е. заплатить деньги второй раз?
>>>Например, стали больше понимать что хотите делать в итоге, сайты или десктопные приложения. Потом, на этапе пробного периода, попробуете программировать для web (html, js).
… а если я понял, что хочу делать десктопные приложения? Или вообще чат-боты?
Выбирайте соответствующие технологии. Я не обязан описывать все кейсы.
>>> Но тех, у кого получится, ждёт приятный бонус в виде перспективы стать «менеджером проектов». Если сейчас вам просто хочется получать зарплату программиста, то зарплату менеджера проектов вам захочется настолько, что не сможете спать.
А ничего, что менеджер проектов — это совершенно другая работа, не связанная с навыками программиста, и требующая других навыков? И да, спать вы не сможете. От постоянного стресса.
Менеджер проектов который не вырос из тимлида это просто секретарь у команды разработчиков. Таких обычно не держат, ибо толку никакого.
>>> Если вам до 23 — 25-ти лет и вы живёте там, где хорошо развита отрасль разработки ПО, у вас это получится. Может вы не станете хорошим специалистом. Но на жизнь заработаете точно.
Что у нас считается «заработать на жизнь» в Москве?
Ищите обзоры зарплат для Москвы. Там будут и ставки начинающих программистов.
>>> И есть люди которым далеко за 25. Такие должны дольше учиться.
Э, а почему?
Читайте внимательней!
>>> Начать искать работу, как можно раньше, имеет смысл, если вы уже работаете на работе с высокой загрузкой. Там, где не почитаешь книжки по программированию. В этом случае вам без разницы, после какой работы вечером изучать предмет. Нынешней или после работы стажёром.
Вот я работаю на работе с высокой загрузкой. Получаю там ощутимые деньги. При переходе на работу программистом я потеряю раза в три. «Без разницы»?
Если хотите стать программистом то да. Надо чем то жертвовать. Есть вариант не становится программистом.
>>> Процесс вашей самоподготовки делает вас более привлекательным для работодателей.
Совершенно не обязательно. Направление вашей самоподготовки может совпадать с задачами работодателя, а может и не совпадать.
Работодателей масса. С кем то совпадает. А с кем то нет.
>>> Если вы сделаете калькулятор для расчёта траекторий полёта спутников Земли, будет конечно круто. Но ваш будущий работодатель навряд ли в теме. Поэтому не сможет оценить результат.
Как раз наоборот. Оценивают же качество кода, а не качество алгоритмов. Если код по незнакомой теме понятен — это большой плюс.
Оценить качество кода без возможности проверить на практике его работу??? Успехов!
>>> Тему, где вам рассказывали про ваши ошибки, удаляете.
Ну то есть воспользовались чужим опытом, а потом не позволяете другим воспользоваться вашим. Очень мило.
Да, звучит цинично. Но…
>>> Будущему работодателю об ошибках знать не обязательно.
(Особенно если он случайно был одним из тех, кто рецензировал ваш код.)
На самом деле, как раз наоборот, работодатель заинтересован в том, чтобы знать, как человек реагирует на сообщения об ошибках, и как он исправляется. Ошибки совершают все. Исправляют их не все.
Работодателя интересует чтобы кандидат наделал меньше ошибок в коде. Ибо если кандидату подсказали на форуме что есть ошибка в его коде, то никто не будет подсказывать тоже самое для продакшена потом.
>>> Как-то раз была забавная история. Взялся раскритиковать резюме одного коллеги. Выводы были неутешительными.
А что в этой истории забавного? Вы написали свои выводы, но вы не написали, на чем они основывались и оказались ли они верными.
Заплатите мне. Напишу детальную статью про резюме. В т.ч. на чём основывался. Пока что меня поливают грязью такие как вы, за работу которую сделал бесплатно. Ну и смысл писать тут что то ещё для вас?
>>> Интересные технические решения, достижения(подробно). Хоть 10 страниц. Но именно в конце.
А в начале что?
Что обычно.
>>> Обязательно укажите, что готовы к релокации(переезду) и командировкам.
А если не готов?
Значит придётся ждать работу у себя в городе или даже деревне. Возможно даже всю жизнь.
>>> Невзирая на минимальный требуемый стаж, наличие профильного высшего образования, то, что вакансия уже закрыта и многое другое. На «том конце провода» лучше знают, что делать с этим.
Да, записать в черный список. Если человек не способен прочитать требования (и аргументированно объяснить, почему к нему они не применимы), он на этой работе не нужен.
Так и так человек не попадёт никуда. Смысла бояться черных списков нет.
>>> Вы удивитесь, но большинство собеседований для программистов проходят удалённо.
Очень удивлюсь. Во всех местах, где я работал, были очные собеседования.
Лично я недавно много куда просился на работу в офис. И никого не смущало что сейчас нахожусь на другом конце света. Прекрасно беседовали по скайпу.
>>> У большинства свербит главный вопрос, о зарплате. Вот это надо выяснять, в последнюю очередь. Такие вопросы поначалу обычно задают «профессионалы».
Нет, такие вопросы задают люди, которым нужны деньги.
… т.е. «профессионалы» как они описаны в статье.
>>>Обычно, размер зарплаты у стажёра, с некоторым багажом знаний по теме, это размер зарплаты обычного офисного хомячка в том же городе.
С чего бы? Пользы компании от таких стажеров немного.
Поэтому и зарплаты смешные, по сравнению с обычными разработчиками.
>>> Думаю, 500$ для сисадмина в средней полосе России потолок.
Что?!
500$
>>> Конечно, может так случиться, «Опыт и знания на 1000$» не получите. В этом случае, просто ищите другую работу.
… на которую вас не возьмут, потому что у вас недостаточно опыта. Замкнутый круг, не правда ли?
Как раз возьмут, потому что формально опыт уже будет.
>>> Чем больше объединение работников, тем больший доход это объединение получает на каждого работника. Соответственно, в больших фирмах зарплаты у работников обычно выше.
Во-первых, я не вижу, как из первого вытекает второе. Во-вторых, можно, пожалуйста, ссылку на исследование, показывающее, что у работников одинаковой квалификации зарплаты в больших фирмах больше?
Повторюсь. «Именно известные гиганты индустрии платят самые топовые зарплаты и скупают лучшие умы.» Опровергайте сами если не согласны.
>>> Как говорилось ранее, большинство людей «профессионалы». Попав на свою первую работу, они «успокоятся». И их стратегией будет «выживание». Они будут осваивать только знания, необходимые здесь и сейчас.
Ссылку на подтверждающее исследование, пожалуйста.
Нет ссылки. Не хотите не верьте. Я вам своё мнение не навязываю.
>>> Обычно этот период полгода.
Полгода до становления полноценным разработчиком? С какого момента?
Вообще то вначале вы правильно сосчитали. Цитирую:«через год работы, т.е., через полтора-два года с момента начала обучения можно получать от $1000 удаленно или эмигрировать в любую страну? „
А сейчас как раз об этом спрашиваете.
И да, автор нагло врёт, когда обещает, что вы будете проводить технические собеседования через 4 года, следуя его советам.
Если выбрать направление, где интересно, человек будет развиваться самостоятельно и достигнет больших успехов. Стать TeamLead за 4 года вполне реально.
В любой приличной компании никто вас не назначит на должность, требующей принятия хоть каких-то решений, если у вас нет ВО.
В гоструктурах, да. Там и программировать то особо не надо. А где люди заняты делом ценят исключительно компетентность безо всяких дипломов.
За 4 года реально не то что проводить тех собеседования, но и создать свою фирму. Всё зависит исключительно от талантов и амбиций человека.
Автор сам пишет, подтверждая мои слова:
Я вот с опытом на плюсах с трудом нахожу нормальную работу
Просто на плюсах удалённо мало вакансий. Но вопрос уже практически решён. Поэтому быстро доделал и выложил статью чтоб не отвлекаться на неё во время работы.
Моя фраза изначально была о том, что есть более интересные варианты чем С++ с теми же зарплатами. Питон, например. Хотя усилий на изучение он требует гораздо меньше.
Согласен со всем. Кроме того что изучать поначалу надо не питон с явой. А банально хтмл и js. Кто осилит, проходите на следующий уровень. Для остальных это будет пустая трата времени.
Но и советы-то вредные. Особенно в плане того, что учить. Учите, детки, хтмл, жабоскрипт, а потом переходите на серьёзный уровень — SQL и PHP. Нам нужно больше вордпрессят.
Тем кто не осилит хотя бы это стек, браться за плюсы или что серьезное противопоказано. Кто освоит можно и за плюсы. Но ради чего? Я вот с опытом на плюсах с трудом нахожу нормальную работу. Что уж говорить про начинающих. «Лучше синица в руках, чем журавль в небе.» Об этом и написано.
Это была шутка из интернета, которую очень хорошо запомнил ибо сам такой. Это вполне типично для специалистов которые пользуются английским только для чтения документации. Например когда работают только на отечественного заказчика.
Ну и как можно общаться с заказчиками, не умея говорить на этом языке?
Я это делал несколько лет текстом(чаты и багтрекинг).
… и вы так и не выучите технический английский. Потому что даже в «техническом английском» нужна грамматика, которую таким способом получить невозможно. Собственно, таким образом можно получить только навык условного понимания простого английского текста.
Лично я делал точно так как написал. До этого момента были только обрывочные знания о грамматике со школы. Сейчас понимаю всё что мне пишут. Но разговорный хромает.
В статье много полезного. Но если выражаться проще, в команде должен быть правильный процесс code review. Когда плохой код возвращают разработчику на доработку. И у заказчиков\руководства должно быть понимание того что на хороший, поддерживаемый код надо тратить +10-30% больше времени. Иначе рано или поздно он свалиться и похоронит весь проект.
1) Всяких библиотек в С++ туча. Даже на одно и тоже можно найти разные библиотеки.
2) Eclipce вроде ещё поддерживает С++\Qt. И Visual Studio. Надо было попробовать.
3) Утечки памяти сейчас ищут только упёртые С-ишники. Есть куча smart pointer-ов которые позволяют избежать этого. Компиляция маленьких программ занимает секунду. И на этом этапе вам расскажут об ошибках во всей программе, а не только куда вы явно зайдёте.
«Пляски с бубном» вокруг QSqlTableModel у меня были на другом проекте, в продакшене. Здесь просто констатация факта что иногда глючит. Поэтому надо оставлять место для запасных вариантов типа «QSqlQueryModel».
Нет, тут немного о другом. Я написал велосипед для обмена данными формы с базой. И для пущей наглядности усложнил его таблицей слева.
Поскольку решение это примерное. Демонстрация подхода. Который можно применить на любых формах. Т.е. и на формах без левой таблицы. А раз так, мне надо заполнять таблицу и форму отдельно.
Моя нота выше. Про то что программист может по своему желанию сменить модель для левой таблицы на другую. Вдруг заглючит, что бывало. Или функционал окажется недостаточным. Или она вообще будет не нужна.
Судя по вашему коду. Вы написали примерно такой же велосипед как у меня в той статье.
Полностью согласен. Cохранять данные через QDataWidgetMapper гораздо красивее. Ваш вариант с Q_PROPERTY конечно хорош.
Если ориентироваться на QDataWidgetMapper, можно ещё задать ему делегата. Который, внезапно, отвечает как раз за то чтобы взять значение у произвольного виджета и превратить его в QVariant().
Просто у меня QDataWidgetMapper не завёлся. И я подумал что очередные пляски с бубном как с QSqlTableModel мне не нужны.
Не работал ни разу с такими. Можно копнуть в сторону создания своего делегата для QComboBox. QComboBox::setItemDelegate(QAbstractItemDelegate * delegate). Если он похож как для QTableView. Там хоть преферанс с куртизанками впихнуть можно. Но это тема требующая времени.
Писать модель или кастовать их в общий тип на стороне БД. А у вас часто так бывает, что типы в столбце не совпадают?
У меня так может быть. У моих коллег такое может случиться. Поэтому мне надо писать поддерживаемый код. Который не свалиться на таких мелочах. К тому же это учебный пример. О том что так можно делать в принципе. Я набегался по этим граблям с UNION потому что мой запрос к базе обязан был работать аж в двух базах одновременно. Мне совсем не охота гадать кто и когда наступит на эти грабли снова.
Я с вами не согласен. Есть некоторые фишки, которые есть только у QComboBox, и которые можно интересно использовать: смена отображения, редактирование с валидатором, манипуляции над моделью аля мультивыбор. Но вы о них ни слова не сказали, как будто даже доки не открывали.
Погодите ка. А я разъве обязан тут обо всём этом писать? Я ж не писатель документации из команды Qt. Я просто поделился тем что знаю очень хорошо и что может пригодиться другим. Вам надо развить тему, пожалуйста пишите свою статью.
Вы целую модель под это написали.
Просто для меня это естественно. И я не считаю это чем то сложным и заумным.
А всего-то надо было запихнуть union в запрос и modelColumn(1) в комбобокс, да IDшник брать по comboBox->model()->index(index.row(),0).data().toInt().
Даже modelColumn(1) вам тут не нужен. Надо просто первым столбцом выводить не первичный ключ. А пользовательские данные. Например «SELECT countryname, id FROM countries».
Что решается? Это уже решено, скрин по ссылке.
Менять данные таблицы в полях слева от таблицы?! Ваш проект вы и решаете что тут считать решением.
Стоило хотя бы просто указать, что вместе с моделью можно менять и отображение.
Напишите свою статью о комбобоксах. Я за вас только порадуюсь.
(продолжение)
Кода вы работаете с комбобоксоом. Вам важнее какой вторичный ключ записать в базу. А не какое название выбрал юзер на экране. Допустим комбобокс выбора стран. Пользователь может выбрать там «Russia», но вам ведь не название страны надо записывать в базу в результате. А «id» этой записи в cтолбец «countryid». И в моём случае я легко получаю этот «id» из UserRole. QDataWidgetMapper не может менять именно вторичные ключи в базе.
То что говорит Савельев очень хорошо сходиться с моим жизненным опытом.
Да, но небольшие. Читайте внимательней!
Не прощу. В стране куда уехал я ничего такого не нужно.
Статья поможет стать правильным программистом, которому хватит.
Просто надо внимательнее читать. Имелось ввиду стать опытным пользователем компьютера. Я стал таким за полгода.
Любовь к компьютерным играм заставляет молодёж изучить: что такое файл, как устанавливать\настраивать ПО, настраивать локалки и многое другое. Просто потому что нет денег на дядю который всё это сделает за них.
Это мое ИМХО. И оно здесь ни на что не влияет.
Вы так не думаете потому что у вас есть опыт. У неопытных это очень частое заблуждение. Вам вообще стоит усвоить что это статья для начинающих, а не для вас персонально.
Напишите свою статью на тему. Это будет лучше чем придираться к чужим.
А вы знаете?! Ну расскажите нам тогда о мотивации топовых разработчиков.
Это соотноситься примерно так же как статьи на хабре и деньги. Их пишут явно не за деньги, но явно в рабочее время.
Нет, не надо покупать. Я так и делаю. За всю жизнь купил только две лицензии на ПО. Чисто из уважения к разработчикам. Да на мой Debian и покупать то особо нечего.
Я тут перепутал «языки программирования» и «компьютерные языки». Но для вас эта разница настолько важна здесь, что статья оказывается совершенно негодной, так?
Смотря как переводить слова pixel и point.
Понимание, можно ли браться за изучение более серьёзных технологий. Читайте внимательно!
Однако все учебники JS рассматривают его исключительно с HTML.
А это так важно прямо сейчас? И у вас забанили гугл?
Зная хотя бы один С-подобный язык не хотят стать программистами. Это статья для тех кто как раз не знает.
Ну и что? Учить JS, не учить JS? Может вы всё таки напишете свою статью, вместо того что бы раздувать своё ЧСВ на моей?!
Уверен что ваши ученики и поклонники оценят Basic двух видов, как первые языки программирования. Надо было просто написать о своих взглядах раньше меня. Но ещё не всё потеряно!
Т.е. всё же Basic, по вашему?
Тема учёбы рассматривается. Читайте внимательней!
Т.е. опять Basic??? Можно как то конкретнее выражать свои мысли?!
Поэтому и написано «как правило».
По вашему «структурированный язык запросов» может быть заменой JS или Python???
Ваш совет был услышан. Начинающие начинают забивать в гугл «язык с одной выраженной парадигмой». Пусть это будет хорошее начало для ваших поклонников. Для всех других есть моя статья.
А чего это вдруг? Ноду можно оставить только для консоли. Лишние модули поудалять. Потом речь идёт о полезности языка для карьеры, а не для продакшн-сервера.
Восприятие видео всегда было легче. Поэтому надо начинать с него. Если кому больше нравятся книги, пожалуйста.
Потом, эта статья писалась не лично для вас. А скорее для всех кроме вас.
GW-Basic??? Если кто хочет сбежать от указанных проблем, наверное найдёт прибежище только там.
Нет, неправильно поняли.
На перестроечном. Массовое сознание воспринимает это слово как «человек работающий за деньги». Поэтому словосочетание «профессиональная армия» подразумевает военную службу за денежное вознаграждение. Глупо оспаривать определения дающиеся в статье. Ну пореплейсите в текстовом редакторе «профессионал» на «чулакабра». Поменяется и определение и ссылки на данное понятие. Пусть вам будет легче.
Потому что кроме программирования и работы есть ещё куча других вопросов в жизни которым надо уделять время. Семья, дети, дача и всевозможный быт. А тут ещё и программирование. Как раз этот момент я и продумал.
Опять не прощу. Это просто не ваше дело. Для тех кто не верит мне на слово, есть куча учебников по С++. Дерзайте!
Субьективно.
Это был просто стёб. Я люблю шутить над Java. Даже когда меня собеседуют джависты. Надо сказать они такие шутки понимают. А вы походу не джавист.
«более фундаментальные»
Какое практическое значение содержит ваше замечание?
Вы ещё нагрузочное тестирование вспомните. Речь идёт о банальном «протыкивании» мышкой интерфейса программ. Самое сложное там как раз знать SQL.
Нет. У каждого своё призвание в жизни.
… но и не помогало.
Оттуда что всё равно придётся заливать код для портфолио на gitXXX сервисы. Кто держит TFS и Mercurial никогда не будут искать именно ихних пользователей. Тут уж либо Mercurial либо PHP, к примеру.
Качество образования в ВУЗ-ах. Такое что лучше без них. Тут в каментах уже обсуждался этот вопрос с ссылками на источники.
В статье есть всё про это. Просто надо внимательнее читать.
Имелось ввиду не требуют дипломов. Но требуют иметь какие то знания. У них на сайтах всё подробно расписано.
Т.е. заплатить деньги второй раз?
Выбирайте соответствующие технологии. Я не обязан описывать все кейсы.
Менеджер проектов который не вырос из тимлида это просто секретарь у команды разработчиков. Таких обычно не держат, ибо толку никакого.
Ищите обзоры зарплат для Москвы. Там будут и ставки начинающих программистов.
Читайте внимательней!
Если хотите стать программистом то да. Надо чем то жертвовать. Есть вариант не становится программистом.
Работодателей масса. С кем то совпадает. А с кем то нет.
Оценить качество кода без возможности проверить на практике его работу??? Успехов!
Да, звучит цинично. Но…
Работодателя интересует чтобы кандидат наделал меньше ошибок в коде. Ибо если кандидату подсказали на форуме что есть ошибка в его коде, то никто не будет подсказывать тоже самое для продакшена потом.
Заплатите мне. Напишу детальную статью про резюме. В т.ч. на чём основывался. Пока что меня поливают грязью такие как вы, за работу которую сделал бесплатно. Ну и смысл писать тут что то ещё для вас?
Что обычно.
Значит придётся ждать работу у себя в городе или даже деревне. Возможно даже всю жизнь.
Так и так человек не попадёт никуда. Смысла бояться черных списков нет.
Лично я недавно много куда просился на работу в офис. И никого не смущало что сейчас нахожусь на другом конце света. Прекрасно беседовали по скайпу.
… т.е. «профессионалы» как они описаны в статье.
Поэтому и зарплаты смешные, по сравнению с обычными разработчиками.
500$
Как раз возьмут, потому что формально опыт уже будет.
Повторюсь. «Именно известные гиганты индустрии платят самые топовые зарплаты и скупают лучшие умы.» Опровергайте сами если не согласны.
Нет ссылки. Не хотите не верьте. Я вам своё мнение не навязываю.
Вообще то вначале вы правильно сосчитали. Цитирую:«через год работы, т.е., через полтора-два года с момента начала обучения можно получать от $1000 удаленно или эмигрировать в любую страну? „
А сейчас как раз об этом спрашиваете.
Если выбрать направление, где интересно, человек будет развиваться самостоятельно и достигнет больших успехов. Стать TeamLead за 4 года вполне реально.
В гоструктурах, да. Там и программировать то особо не надо. А где люди заняты делом ценят исключительно компетентность безо всяких дипломов.
За 4 года реально не то что проводить тех собеседования, но и создать свою фирму. Всё зависит исключительно от талантов и амбиций человека.
Просто на плюсах удалённо мало вакансий. Но вопрос уже практически решён. Поэтому быстро доделал и выложил статью чтоб не отвлекаться на неё во время работы.
Моя фраза изначально была о том, что есть более интересные варианты чем С++ с теми же зарплатами. Питон, например. Хотя усилий на изучение он требует гораздо меньше.
Коротко, но с матом, мнение директора к которому приходят устраиваться на работу после получения ВО. Потом, замечательная статья на тему от профессора Столярова
Если хотите возразить по теме моего ума\опыта. Прочитайте другие мои статьи и возражайте.
Тем кто не осилит хотя бы это стек, браться за плюсы или что серьезное противопоказано. Кто освоит можно и за плюсы. Но ради чего? Я вот с опытом на плюсах с трудом нахожу нормальную работу. Что уж говорить про начинающих.
«Лучше синица в руках, чем журавль в небе.» Об этом и написано.
Я это делал несколько лет текстом(чаты и багтрекинг).
Лично я делал точно так как написал. До этого момента были только обрывочные знания о грамматике со школы. Сейчас понимаю всё что мне пишут. Но разговорный хромает.
Отвечу за каждое слово. Огласите список «такого же рода утверждений».
Как выпускник ПТУ могу точно сказать. Нас учили лучше!
Один только blockchain за последний год всосал наверное 10% всех разрабов. То ли ещё будет!!!
Какие ниши ещё появятся неизвестно.
2) Eclipce вроде ещё поддерживает С++\Qt. И Visual Studio. Надо было попробовать.
3) Утечки памяти сейчас ищут только упёртые С-ишники. Есть куча smart pointer-ов которые позволяют избежать этого. Компиляция маленьких программ занимает секунду. И на этом этапе вам расскажут об ошибках во всей программе, а не только куда вы явно зайдёте.
Поскольку решение это примерное. Демонстрация подхода. Который можно применить на любых формах. Т.е. и на формах без левой таблицы. А раз так, мне надо заполнять таблицу и форму отдельно.
Моя нота выше. Про то что программист может по своему желанию сменить модель для левой таблицы на другую. Вдруг заглючит, что бывало. Или функционал окажется недостаточным. Или она вообще будет не нужна.
Судя по вашему коду. Вы написали примерно такой же велосипед как у меня в той статье.
Если ориентироваться на QDataWidgetMapper, можно ещё задать ему делегата. Который, внезапно, отвечает как раз за то чтобы взять значение у произвольного виджета и превратить его в QVariant().
Просто у меня QDataWidgetMapper не завёлся. И я подумал что очередные пляски с бубном как с QSqlTableModel мне не нужны.
У меня так может быть. У моих коллег такое может случиться. Поэтому мне надо писать поддерживаемый код. Который не свалиться на таких мелочах. К тому же это учебный пример. О том что так можно делать в принципе. Я набегался по этим граблям с UNION потому что мой запрос к базе обязан был работать аж в двух базах одновременно. Мне совсем не охота гадать кто и когда наступит на эти грабли снова.
Погодите ка. А я разъве обязан тут обо всём этом писать? Я ж не писатель документации из команды Qt. Я просто поделился тем что знаю очень хорошо и что может пригодиться другим. Вам надо развить тему, пожалуйста пишите свою статью.
Просто для меня это естественно. И я не считаю это чем то сложным и заумным.
Даже modelColumn(1) вам тут не нужен. Надо просто первым столбцом выводить не первичный ключ. А пользовательские данные. Например «SELECT countryname, id FROM countries».
Менять данные таблицы в полях слева от таблицы?! Ваш проект вы и решаете что тут считать решением.
Напишите свою статью о комбобоксах. Я за вас только порадуюсь.
Кода вы работаете с комбобоксоом. Вам важнее какой вторичный ключ записать в базу. А не какое название выбрал юзер на экране. Допустим комбобокс выбора стран. Пользователь может выбрать там «Russia», но вам ведь не название страны надо записывать в базу в результате. А «id» этой записи в cтолбец «countryid». И в моём случае я легко получаю этот «id» из UserRole. QDataWidgetMapper не может менять именно вторичные ключи в базе.