Pull to refresh

Comments 219

Если честно даже не знаю. Я считаю, что в ИТ-сфере слишком много всего и понятие недоучка — очень относительно. Для кого-то Вы реально недоучка, а для кого-то и нет. Могу сказать про себя, мной движет желание постоянно изучать что-то новое и вообще крутым будет применить это на практике. Мне например мало просто изучить технологию, что сделать на ней (например это выйдет в продакшн), хочется изучать что-то дальше и так постоянно. Или например, хочется не просто писать код — а писать код качественный, грамотный и легко в будущем поддерживаемый и т.д. Или, например, последнее время читаю некоторые фундаментальные книги по ИТ — тоже очень много расширяет в кругозоре. У меня многое не получается — объективно говоря, но главное, что пока есть некий движок внутри, который толкает меня вперёд.
А нам в универе, один из преподавателей постоянно говорил: «Я вам сочувствую! Вы выбрали эту профессию, и теперь вы останетесь студентами навсегда.» Чем больше я работаю, тем глубже понимаю смысл этой фразы. Наша профессия — это постоянная гонка. И однажды, у нас перестанет хватать сил и времени… Но выход есть всегда!
и нам так говорили! правда еще и стимулировали в нас желание учится, за что им огромное спасибо!
Но выход есть всегда!
Дауншифтинг?
Пессимист вы. Можно просто сменить вид деятельности. И овцы целы, и волки сыты.
Нет, я просто тролль и люблю покушать.
За все 4 года, что я здесь нахожусь, я так и не понял этот ваш хабр. За споры с четкими доводами карму сливают, а за тупые, ничего не значащие комменты — наоборот поднимают.
Саморегулирующееся сообщество говорите? Ну-ну.
UFO just landed and posted this here
Очень точное определение! Полностью согласен с вашим преподавателем.
Спасение, как всегда, в узкой специализации.
Главное, чтобы специализироваться в том, что не теряет актуальность.
> программирование – это мое не основное занятие и не самое интересное для меня

Сопоставьте вместе с заголовком статьи: «Кто я: профессионал или недоучка?», учитывая что "… программирование – это мое не основное занятие и не самое интересное для меня". Разве можно быть профессионалом в том, что неинтересно?

По-моему, ответ очевиден.
Далеко не факт. Что такое профессионализм по сути? Знания, навыки и опыт, позволяющие решать задачи на уровне, позволяющем зарабатывать деньги. Можно ли получить знания, навыки и опыт без интереса? По-моему, ответ очевиден — можно. Многие выбирают профессию по объективным показателям (прежде всего потенциальному доходу), а не по субъективным вроде интереса. Используют профессию как средство получения возможности заниматься тем, что интересно в свободное время.
Возможно вы правы, но я вот как-то не могу связать «зарабатывание денег» и «профессионализм»: если я зарабатываю программированием хорошие деньги, это совсем не значит что я профессионал; и наоборот — если я не получаю денег от разработки, я не недоучка. И понятия «профессия» и «профессионализм», как мне думается, не так сильно связаны, как кажется на првый взгляд.
Можно добавить уточнение вроде «профессионал — человек, который благодаря своим специальным знаниям, навыкам и опыту в какой-то области деятельности может в условиях совершенной конкуренции зарабатывать деньги стабильно большие чем человек такими знаниями и т. д., не обладающий при прочих равных.», чтобы исключить ситуации типа:
— знаний по предмету не многим больше ноля, но зарабатывает много благодаря социальным навыкам и связям
— знаний полно, но по каким-то причинам ими для зарабатывания денег не пользуется

А в условиях совершенной конкуренции зарабатывать больше денег означает давать тот же результат за меньшее время или лучший результат за то же время.

Ещё, кнечно, кучу нюансов упустил, но думаю мысль ясна
На самом деле в конечном счете побеждают не самые умные и способные, а самые упорные. Всем известен Нобелевский лауреат Жорес Алферов. У нас в Политехе преподавал профессор, который вместе с ним работал (благо ФизТех находится через дорогу). Он сказал, что на самом деле в тот момент, когда Алферов делал свое открытие гетероструктур вокруг него было много еще более умных людей. Только вот эти умные люди от своего слишком большого ума считали, что то, чем занимался Алферов создать невозможно. Алферов при этом просто долго и упорно бил в одну точку и в конце концов получил результат, который сегодня применяется во многих полупроводниковых приборах (например, в дешевых полупроводниковых лазерах, применяемых в приводах CD-RW, DVD-RW, BluRay). Вот так-то. Удачи вам!
Я закончил ту же кафедру, что и Алфёров, и нам рассказывали, что как там всё было. Алфёров занимался тем, что создать нельзя — соединение то ли арсенид галлия, то ли алюминия (я уже забыл) было нестабильно. Но лаборантка как-то сказала, что что-то уже давно не разлагается на воздухе «продукт». Алфёров удивился. Оказалось — была примесь. С этой случайности и началось.
Как я Вас понимаю со своим программированием и администрированием без профильного образования
Не обращайте внимания, занимайтесь своим делом
Успехов!
Когда-то программирование было моих хобби. Я писал различные программы, сервисы (весьма не тривиальные), получал удовольствие от реализации и применения сложных алгоритмов на своих данных. Имел успехи и признание со стороны. Казалось бы, дизнь удалась. В общем жизнь была в «кайф». Но перед тем как начать карьеру один умный человек сказал мне «не совмещай хобби и работу», а пропустил это мимо ушей, а сейчас жалею об этом. Прошло N лет, я многому научился, и то что приносило удовольствие — стало лишь обузой. И вот сейчас я пытаюсь сменить род занятий (плавно или резко — не важно), пока мой технический бекграунд окончательно не стал моим клеймом.
*моим хобби. Прошу прощения
Один в один моя история. В результате получилось что-то вроде: «Сегодня я собрал 5 компьютеров и отладил софтинку. Ура! Рабочий день закончился, можно идти домой, там же меня ждут ещё два компа друзей и прогу знакомому обещал помочь написать!». По сути что дома, что на работе. Теперь тоже хочу сменить род деятельности.
UFO just landed and posted this here
Надо быть очень самоорганизаванным что бы работать в таком графике, и вырабатывать все те-же 40 часов в неделю.
Фишка тут в том, что нет этих самых 40 часов в планах.
Ты просто делаешь то, что необходимо, не глядя на рабочие часы и прочие условности.
Такое реально, только если вы фрилансер, или работаете на себя.
Именно, но я же вынужден торчать в конторе с 8 до 17.
В таком режиме можно вырабатывать по сути и 60 часов в неделю не напрягаясь. Главное чтобы на работе не приходилось заниматься тем, что не нравится. Ну или приходилось, но в относительно небольших объёмах.
Если я правильно понял, понятия жена и ребенок в Вашей жизни пока отсутствую?
отсутствую=отсутствуют
тысячу извининений
UFO just landed and posted this here
Пока есть только жена есть еще возможность работать в подобном режиме. С появлением ребенка ситуация изменится.
Я сам не удосужился до рождения ребенка постигнуть python&django. Теперь вот очень напряжно.
Свободное время уходит на мелкого. Обучаться приходится в свободное от свободного времени.
А Вашему стилю жизни-работы, откровенно, завидую :)
Вот вот. Аналогично. Раньше ради интереса подался в веб. Было здорово, когда что-то делаешь и оно начинает работать. А сейчас этот веб уже в печенке сидит и проклинаю его вместе с работой… Но есть все равно хочется. И так изо дня в день.
Аналогично. И профиль особо не сменишь. Не в макдональдс же идти =)
Работал в студии просил перевести меня в менеджеры, устал уже кодить. Отказали. Лучше хороший программист, чем плохой менеджер.
И правильно сделали. Программист в принципе не может быть менеджером, управленцем. Просто народ часто путает понятие «координировать» и «управлять». Хороший программер может координировать и мотивировать к работе в определенном направлении группу других програмистов (в основном примером и вообще методом пряника), но никак не может управлять группой.

Управленцы это особые люди с особым складом характера, мировоззрением и подходами к решению проблем.

И в обществе самая большая проблема, что все считают, что смогут управлять другими. Это не так.
В нашем случае менеджеры не управляли, они были некой «прослойкой» между клиентами и разработчиками: Поиск, бумажки, договора. Сроки и тех вопросы решались совместно с разработчиками. Речи про руководство не было. В вашем случае я соглашусь — руководить нужно уметь.
И долго вы занимаетесь таким совмещением?
Вопрос не в этом. Дело в том, что я только недавно это понял.
Я уже 9 лет совмещаю и пока не жалею, дома не работаю из принципа. Поэтому меня и интересует заданный мною вопрос )
видите ли, я «жил — не тужил», но однажды проснулся и осознал это. Словно молнией ударило. Тут вопрос не времени: у кого-то это занимает 3 года, у кого-то 15 лет, кто-то останется доволен. Конкретно у меня этот процесс занял 5 лет.
Может дело просто в резкой потере мотивации? Попали на «длинный» проект, который использует устаревшие технологии, развития ноль — сплошная демотивация. Меня в основном мотивирует именно использование новых технологий(соответственно и их освоение), компанию подбирал таким образом, чтобы она не ограничивала моё развитие.
Нет, отнюдь, проекты себе я выбираю сам, технологии тоже выбираю сам. Есть, конечно, рамки — но они не существенны. Насчет мотивации, промолчу, возможно просто перерос эту работу, но чтобы заняться другой… В общем как обычно. Не сочтите за пиар, вот первая часть моей статьи: там пока вступление, но планирую написать и про мотивацию и про делегирование. Рано или поздно эта информация вам может пригодиться (например, когда будете руководить группой разработчиков)
Не делай хобби работой, но сделай хобби источником дохода.

Между заработком и доходом есть один маленький нюанс…
А как на счет того чтобы найти новое хобби?
Думаю, что рано или поздно придется заняться поиском нового хобби, вне зависимости от результата по смене деятельности.
Самое главное что профильное образование у меня как раз есть. Учился на факультете информационных технологий. Правда не на узком направлении типа «программирование», а на более широком, где было все и программирование и базы данных и компьютерная графика и железно и электроника и электротехника и веб и безопасность мн. др. Короче говоря, «Вычислительные машины, комплексы, системы и сети» — вот моя специальность. Типичный представитель моей специальности — это либо сисадмин, либо программер. А меня вот как-то на веб потянуло, да на все сразу что с вебом связано.
Я тоже ВМ-ку оканчивал. Главное что мне дало образование — умение шевелить мозгами. Все навыки приобрёл (и приобретаю) чтением манулов, доков, блогов и большим количеством практики. Я думаю, что профессионалом делает не спецобразование (хотя оно, бесспорно, очень помогает), а именно желание изучать, разбираться и применять на практике.
Точно. Как говорится, выпускник ВУЗа отличается от выпускника школы только умением работы с литературой. Каким бы профильным образование ни было, все забываешь на следующий день после экзамена. Я, например, закончив РТФ МЭИ, хоть убей не вспомню про что теорема Коши :) А вот на работе остаются лишь те знания, которые реально используются.
З.Ы. Предвижу холивар, все что выше — исключительно про меня лично)
сколь бы плохо ни изучался материал в университете — всё равно запоминаешь его частично (хотя бы по типу «слышал про это и примерно знаю что такое»), а дальше, когда знаешь куда копать — копать можно быстро и легко.
Как говорил наш преподаватель по дискретной математике — «мне нужно, чтобы вы не заучили, а знали что это есть и в любой момент могли найти» (дело было на 1ом курсе, а я уже 3 года как выпустился).
Прямо в точку! 100% согласен. Универ (или другая вышка) дает «направление». Дает знание что ЭТО ЕСТЬ и ГДЕ и КАК ЭТО ИСКАТЬ. Ну и какие никакие общие знания и представления.
Не согласен. Получал образование в области приборостроения, но когда возникала необходимость разбирался и со строительством, и с бухгалтерией, и с гостиничным бизнесом, и ещё много с чем. Может не понимал сути бизнес-процессов, но смог найти нормативные, справочные и учебные материалы и изучить их в объёме достаточном для того, чтобы решать поставленные задачи. Я не знал, что ЭТО ЕСТЬ, я знал, что ЭТО ДОЛЖНО БЫТЬ и знал где и как искать то, что мне скажет, где и как искать это. Интернет и поисковики, конечно, сильно облегчили задачу, но думаю результата бы достиг и пользуясь библиотекой: библиотечные каталоги — великая вещь :) Да, мне не приходилось решать нестандартные задачи, где требовалась профессиональная интуиция, но положа руку на сердце — у многих ли выпускников она есть?
Абсолютно та же фигня. кафедра Инф. техн. и выч. систем в Станкине дала мне все: математику, программирование, бд, сети, архитектуру ПК и еще черти чего, что сразу не вспомнишь. И уже ни раз я понимал, что я знаю всё, но не знаю ничего. Я не могу сесть и написать с ходу свою программу на каком-то языке, но я могу понять чужой код, его логику и разобраться почти в любом ЯП.
По работе ушел сначала в администрирование серверов, потом перешел в сети, потом объединилось, а теперь я работаю на такой работе, что мне нужны все мои знания и слепое пятно в любой области это минус. Да я хуже какого-нибудь профи сетевика, программера, юниксоида, виндузятника, но черт возьми, приятно, когда уже не в первой рабочей бригаде ты центр мышления, потому что вопрос который к тебе приходит на любую из тем, можно подвергнуть анализу, обсуждению и на основе базовых знаний (которые бесконечно расширяются для меня, но не так быстро и всеобъемлюще, как у узкого спеца) найти ответ. Да этот ответ Сергей Ш. как специалист с 10 летним опытом работы мог уже знать. Да ты потратил 5 минут времени. Но нельзя иметь роту Сергеев на все случаи жизни и будет момент, когда Сергей не сможет ответить, а ты устало улыбнешься, возьмешь бумагу карандаш и скажешь «давай сначала напишем, что бы вся дурь на бумаге видна стала».
Мне кажется — развивайся, думай, читай и смотри на опытных людей только как на источник знаний, но не как на эталон.
Не понимать, что пишут на форумах — полбеды (не все, кто там пишут, сами понимают что именно им нужно). Куда страшнее когда не понимаешь и не имеешь желания вникать как работают фундаментальные вещи вроде хеш-таблиц и сортировок — в этом случае уже никак не вырастешь в профессионала.
Автор, текст у вас слишком длинный. :-( Вам его надо на два отдельных поста разделить: личностные переживания о своей сущности как программиста и конкретная просьба по линчу вашего проекта. А то сейчас все в кучу — мне вот, например, про внутренности вашего проекта читать совсем неинтересно, а про личностные переживания — вполне, т.к. сам такой. :-)
Но в целом — это возрастное. Сейчас вы говорите, что у вас хорош результат, хоть и достигали вы его через одно место. А буквально через 5-7 лет вы начнете и в самом результате сомневаться и вас будут глодать мысли из серии «жизнь проходит зря, я ничего не добился в свои годы». :-)
Судя по моему комментарию ниже, у нас это зависит от языка программирования.
Все это относительно, я нахожусь примерно в такой же ситуации как и вы. В 12 лет я с телефона (сайты писал под вап) написал комбайн с некой эмуляцией денег, общения в виде чата, внутренней почты, систему серфинга по сайтам (определение через капчу например или просто картинкой, кодом и т.д., около 5 типов серфинга с мобилки) со счетчиками и т.д., мультирекламы (не зная о рекламе которую встраивает гугл в сайты, я написал аналог который показывал нужные таргеттированные сайты и расчитывал время, считывал баланс и т.д.)… короче там было очень много модулей. Этакий портал для людей которые хотят заработать денег на месяц интернета (у меня реально выходило например в день тратить 30 руб на интернет, а получать 50). Даже конкурировал с еще 3 похожими сервисами. Но сейчас когда я смотрю код, я понимаю это он кривой, хотя определение операторов по IP адресам и их приведение к сравниваемой форме меня радовало. Я тоже думаю что программист я так себе, однако в последнее время я начинаю быть с этим не согласен. Например в институте я на паскале разобрался со списками, деревьями и т.д. задачки пишу в два счета, в группе мало кто понимает, да и даже те кто учится по программированию у меня иногда что нибудь спрашивают, освоил лисп, хотя и не надо было. Недавно разработку под андроид начал изучать, тут уже конечно мне стало сложно, много элементов и совсем радикальная перестройка схемы разработки, но за пару дней я уже в общем то менюшки могу написать калькулятор например. Вообще мне кажется, что мозг у меня расчитан под программирование, в этом тексте я написал описал очень много всего, т.к. я начал машинально строить структуру связей комментария и он просто растянулся в мини статью, а чем дальше я пишу тем больше растягивается дерево и растет функционал… В общем меня всегда заносит и каждый раз я как будто бы пишу большой проект, в котором реализована часть функционала и как будто бы его потом можно дописать.

В общем не буду тут все так расписывать, для одних ваш код кажется быдлокодом, а для других кажется чем то хорошо написанным, а точнее — если код написан по мнению человека хорошо, значит он большую часть не понимает и думает как он так мог написать. Ну к примеру если вы начнете читать код ядра Linux то вы ничего не поймете практически, даже зная язык вы как минимум не знаете структуру построения ядра, модуля и т.д. как там ведется работа в системе. А для человека, который разрабатывает под линукс, любой код который написан чуть хуже чем у него, либо подругому — он либо непонятен, либо кажется написанным плохо.
Я все таки считаю вас программистом, но конечно же Web. Там своя специфика и т.д. Кстати например программист, который всю жизнь работал например с C# думаю будет разбираться почти также долго с php, как если бы php программист разбирался с c#.

Вообще советую вам на досуге тоже научиться программировать например на C++ или под мобильные платформы. Я думаю вам было бы интересно написать к вашей CMS например панель управления с мобильного, ну либо что то для себя. Я например как дела с работой закончу, сессию закрою — буду изучать андроид, писать клиент под хабр с открытым исходным кодом, ох чувствую будут многие писать какой у меня быдлокод. Хотя думаю, что если меня поправят, то общественным мнением можно хорого оптимизировать свои навыки.
На самом деле, между C# и PHP не такая уж и разница в плане изучения. Это как с иностранными языками: знаете английский, изучать, например, немецкий или голландский будет куда легче. А вот, к примеру, Lisp или Haskell — будет изучать всё так же сложно (это как японский :)) — там парадигма другая, и требует другой модели мышления.
Мне кажется, в конечном счёте очень полезно изучать языки различных парадигм. Несмотря на различия, знание одного языка дополняет знание другого.
>>всю жизнь работал например с C# думаю будет разбираться почти также долго с php, как если бы php программист разбирался с c#.

Мой случай. Достаточно свободно пишу на PHP (знаю HTML, CSS, Javascript (JQuery), SQL, Twig, ...) и уже около месяца пытаюсь разобраться с ASP.net MVC 3 и все равно пока что больше вопросов, чем ответов.
Вроде для ASP.NET MVC можно писать и на PHP. И вы не упомянули ни одного MVC-фреймворка на PHP — не использовали или не сочли нужным? Если первое, то вероятно в этом проблема.
UFO just landed and posted this here
Ох и хитрый автор.

Так расписал достоинства своей ЦМС, которая и держит нагрузку, и доставляет радость, и очень наворочена, и имеет кучу фич, которых нету в иных. Я бы сказал, пиар на грани троллинга автором самого себя.

Чего вы ноете? Берите и самообучайтесь, как грамотно делать и писать! Много нас тут таких, кто умеет всего понемногу. Ведь в бизнесе главное не то, как сделано, а то сколько вы продали и по какой цене.

Короче, многие тут себя так и не узнают. Вы пытаетесь донести до покупателя свою чудо ЦМС, но сразу оправдываетесь за свой непрофессионализм в виде путешествия в глубь души с рекурсивным вызовом жалости с отвлечением на говнокод.

А может вы ищите сочувствующих, кто захочет вам помочь в обрабатывании паровоза напильником? Либо же ищите фею, которая попросит посмотреть на ваш код и скажет: «йоптыть, я видел и похуже», тем самым изливая бальзам вам на душу и попав в вашу хитрую ловушку словоблудия.

Как-то в общем не по себе от ваших излияний. Осадок остался после прочтения.
Кто считает себя подобным неудачником есть хорошее решение.
Вообще это банально депрессия, и от нее просто избавиться, есть два способа:
1. заканчивайте программировать, идите в другую сферу (дворников мало, судя по улицам)
2. меняете работу
2.а работаете пол года
2.б депрессия ушла? все ок
2.в не ушла? см пункт 2.
Второй вариант отлично избавляет от депрессии и молниеносно повышает опыт, но сильно ухудшает мнение хаеров =)
давно!=хорошо && давно!=профессионально
Подумайте о такой вещи как стандарты программирования — зачем они разрабатываются и внедряются? В самостоятельном обучении нет ничего плохого только при том условии, что в своем sandbox — вы играетесь со «взрослыми» игрушками.
Есть узкие места, но их не так много. Оптимизировать SQL-запросы, переписать пару функций более грамотно и усе! Разве не так?

По этой залихватской фразе рискну предположить, что вам бы еще поучиться.
Не должно быть «их не так много». Должно быть «их — N: тут, тут и тут, фиксим тогда-то, тогда-то и тогда-то в соответствии с тем-то и тем-то (ТЗ, стандарты программирования).В документации отражено тут и тут, багтрекер #N». На крайний случай «архитектура приложения не позволяет оптимизировать» (об этом думали?).
Хотя бы для себя.

вы вот пишете:
И я понимаю, что если захочу устроиться на работу программистом (я, конечно, вряд ли захочу, т.к. программирование – это мое не основное занятие и не самое интересное для меня, но если чисто гипотетически)


может проблема где то тут?

Может надо успокоиться и не париться?

если в этом, то не стоит париться =)
Всё что отличает профессионала от любителя — это безопасное программирование и точное поведение системы. Какой бы код не был внутри. если система работает по плану и её трудно сломать (сломать можно всё), то то значит вы профессионал. Конечно, говнокод дорог в поддержке и т.д., но для бизнеса это вторично.
Главное — без комплексов, ведь любой специалист на фоне другого может выглядеть неумекой, нет предела совершенству, но это не значит что к нему нужно переться любой ценой.
странные критерии -) вообще безопасное это подмножество точного в контексте вашего предложения. если был критерий сделать прогу безопасной, а она написана не безовасно, то она и не точна. а если не было оговорено делать безопасную, то если она и не безопасная, то ничего страшного, т.к. это и не нужно было.

а профессионала от любителя отличает одно, профессионал зарабатывает своей профессией ресурсы, а любитель занимается делом ради фана.

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

это его работа, он зарабатывает деньги, и он программист

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

но даже и эти параметры не всегда с высокой точностью покажут качество кода, ситуации бывают разные, и в программировании сайтов, и в оптическом распознавании текста

но думаю если QA прочтут коммент то внесут свои комментарии
Все что отличает профессионала от любителя — это то, что профессионал берет за работу деньги.
То, что некоторым платят за их работу деньгия — я называю недоумением и незнанием ситуации и стандартных требований к заказываемому ПО.
Автор заявил чо он получает за это деньги и профессионализм нужно обсуждать в другом срезе нежели толковый словарь или википедия.
Думаю профессионала от любителя отличает умение выдерживать заявленную (или требуемую) цену, качество и сроки. Другими словами прогнозируемость результатов его работы. В крайнем случае заранее предупреждать что по, например, срокам он ничего сказать заранее не может.
Главный вопрос — хочется ли Вам «быть программистом». Если да — есть хорошие книги, есть активно набирающие популярность интернет-курсы. Если Вас устраивает текущая ситуация — то и ладно. Главное, трезво оценивать свои силы и не хвататься за то, что заведомо не потянете.
Все это конечно замечательно, но вот что же будет когда нужно будет нанять человека на саппорт — еще одного «допиливателя функционала». Или еще хуже — 5 допиливателей.

Будете икать и ловить бяки в карму от тех, кто с этим столкнется.

Если автор сам думает плохо о своем коде во многих чатях проекта, то для постороннего это будет адский ад.

С другой стороны — посторонний заработает много на саппорте, ведь «а вот это выделить красным» будет занимать часов 12 :-)
Много слов. Развивайся дальше в программировании без излишней паранои. Вот и все…
Отвечаю на вопрос: кем себя назвать?
Вы — профессионал.
Что это значит? Это значит, что за свою работу Вы получаете деньги.
А значит и подходите к вопросу более ответственно.
профессионал
за свою работу Вы получаете деньги
подходите к вопросу более ответственно

Простите, но эти понятия связаны примерно так же, как: «русский, балалайка и медведь».
Кто я: профессионал или недоучка? Исповедь программиста-непрограммиста


И я понимаю, что если захочу устроиться на работу программистом (я, конечно, вряд ли захочу, т.к. программирование – это мое не основное занятие и не самое интересное для меня, но если чисто гипотетически)


image
Как я вас понимаю. Это очень напоминает меня в детстве. Тогда я учил программирование по самоучителям и умным книгам, половину из которых я не понимал. Я сначала писал различные мелкие программы на Delphi и PHP, потом влюбился в C# и писал всякую мелочь для себя. В какой-то момент мне посчастливилось найти себя в одном крупном open source-проекте на PHP, и с тех пор мой уровень начал расти. (Кстати, рекомендую почитать код многих массивных open source проектов на PHP, это может открыть вам много интересного).

На самом деле главное, чего вам не хватает, — это общения с коллегами. И code review. Это открыло бы для вас много интересного. Но вектор развития у вас правильный — вы решаете проблемы по мере их поступления. Ваш рост продиктован опытом, и это прекрасно. Это гораздо лучше, чем подход отдельных программиств, начитавшихся умных книг, и предлагающих использовать [паттерн, который здесь нафиг не сдался, но который сильно усложнит код] и [технология, которая здесь вообще нафиг не сдалась].

Главный вывод, которому научила меня практика — сначала делайте дизайн, обдумывайте альтернативы, гуглите полезные вещи, спрашивайте коллег, которые уже могли решить эту проблему (пишите на StackOverflow или сюда в Q&A) и лишь потом приступайте к написанию кода. Это спасёт вас от потраченного в пустую времени и у вас не будет желание оставить плохое решение лишь потому, что оно уже написано.
Паттерны надо не столько знать, а сколько успешно применять.
Понимать, когда они необходимы, а когда только навредят.
В этом и есть искусство.
Это очень напоминает меня в детстве.

Дата рождения: 8 февраля 1995

Современная молодежь :)
Я ж о том же. В мои 13 лет об интернете только легенды ходили.
Все знали, что он где-то есть, но никто не знал, как он выглядит :)
Это называется кризис среднего возраста.
Начни ходить на собеседования. Не ради устройства на работу (только хаэровцам говори, что работу получить хочешь), а ради накопления опыта. Понять, что сейчас нужно работодателю, что сейчас актуально и какие технологии используют.
После нескольких десятков собеседований тебе будет понятно в каком направлении двигаться дальше.
UFO just landed and posted this here
Такая же фигня (не про сайтописание, а про остальное). Но пообщавшись с людьми, которые соображают и умеют намного меньше, но мнят себя ппц какими ацкими админами/программерами/электронщиками, начинаешь понимать что ты ещё не худший вариант :-)

Короче, хорошо когда появляются мысли «я плохой то, я плохой это». Гораздо хуже когда появляются мысли «я аццки крутой, круче только тучи»
>«я аццки крутой, круче только тучи»
Чем выше заберёшься, тем больнее падать…
А я Вам завидую. Пока я вникаю во все тонкости и варианты решений, Вы уже сделали работающий проект. Пока я теоритезирую, Ваш проект уже, возможно, приносит кому-то пользу. У Вас есть законченые работы, но Вы недовольны собой. И я недоволен собой, причем вдвойне, т.к. застряю в поисках наилучшего решения и, в итоге, не довожу дело до конца. Преждевременная оптимизация — она такая.
Истина, как всегда, где-то между.
Если не понимаете тонкостей — то поначалу используйте мейнстрим подходы, технологии.
Вы мне напоминаете человека, который изолировался от общества и что-то сам там себе делает. Нужно же иметь связь с внешним миром, общаться с людьми. А так вы будете бить камень об камень и ждать искру, хотя уже давно все используют спички и зажигалки. Тут самое главное — не отставать от «технологического поезда», который мчится с бешеной скоростью.
Для программиста очень важно логичность и краткость.
У вас 2 простые мысли очень запутанно изложены в несколько тысяч слов.
Может это действительно не ваше?
Да, я что-то не осилил до конца.
> Для программиста очень важно логичность и краткость.

И ещё принцип DRY:

> Написал множество сайтов, пару-тройку веб-сервисов, несколько интернет-магазинов
> В итоге имею свою систему, на основе которой разработал уже несколько десятков сайтов
> Так вот я остановился на том, что разработал свой движок, на платформе которого в инете несколько десятков, созданных мной, сайтов.
> На моей платформе в нете сейчас работает несколько интернет-магазинов

Хотя если:

> в качестве SEO –специалиста

то это многое объясняет)
Да блин, берете и вписываетесь в опенсорс проект любой, сразу подтянете уровень и пинать вас не будут как на собеседованиях.
Часто встречаю подобные советы, но мне сложно представить что я, junior php могу предложить сообществу.

Вот как влиться, с чего начать? Какой-нибудь пример лояльного сообщества.
насчет php ничего не скажу, не пишу на нем и уже никогда писать что-то серьезное не стану, а вот на плюсах например есть KDE, где с радостью примут.
По-моему, суть вопроса в том, что надо делать, чтобы приняли? По своему опыту могу сказать, что вариант «у вас всё написано неправильно, давайте по науке перепишем всё с той же функциональностью» обычно не работает. Даже если так не говорить, но исподволь это продвигать, скажем потихоньку в процессе правки багов выделяя доступ к данным в один слой.
Всё проще чем кажется, везде есть баги, и есть список этих багов в трекере. Вы же пользуетесь часто cms какой-то, фреймворком или библиотекой какой. Вот зайдите в баг трекер её и гляньте на список багов, могу поспорить что парочку вы способны залатать, а там втянетесь.
Или свой пример, использую node-dev, это штука которая перезапускает процесс node.js во время изменений в файлах. Изначально там только под маком были pop-up о ошибках и удачных перезапусках, это супер удобно и я сделал себе вариант под линуксом. Автор увидел и добавил мои изменения, и теперь я там в readme «Sergey Ovechkin (libnotify support)», приятно чёрт побери =)
никак это не называется, кроме как се ля ви.

По себе скажу, что ничего страшного не случится, если вы просто расслабитесь на полгодика-годик и не будете об этом париться. У вас практический склад ума и для вас неестественно что то делать без практической необходимости. Я в этом плане с вами солидарен, для меня чисто рефакторинг ради рефакторинга — бесполезная трата времени. Рефакторинг призван не улучшать архитектуру, а решать проблемы, улучшая архитектуру — почувствуйте разницу.

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

И вот я уверен, что у вашей CMS найдется пара тройка проблем, которые вы давно хотели решить, но откладывали — это отличный простор для возможностей поднатореть. Я бы в вашей ситуации начал бы развивать свою CMS наслаивая на нее полученный знания. Непонятно, похоже ли это на MVC? Если вы как гуру в своей системе сразу не можете четко ответить на этот вопрос, значит не MVC ну или по крайней мере не совсем. Посмотрите нужен ли вам MVC. Ответьте на вопрос почему. Решит ли паттерн какие то проблемы в вашем коде? От этого и отталкивайтесь.
Нет ничего идеального. Писать красивый код ради красивого кода — глупо.
Для владельца любого проекта главное результат, а не то какая у вас там модель.
У меня тоже переодически возникают мысли что-нибудь переделать, оптимизировать, но я пытаюсь себя стараюсь это делать для умственной зарядки и не более того — совмещаю приятное с полезным.
Тратьте драгоценное время на полезные вещи, а не на «самобичевание»…
По моему у вас всё круто! Удачи! :)
Как раз задавался недавно этим вопросом. В данный момент интересуюсь NLP, там ужасно много сложных алгоритмов, которые я не понимаю. Начал читать книгу «Введение в информационный поиск», в начале книге написано: «для первых трех глав вам нужно знать основы структур данных и алгоритмов», вот черт подумал я и начал читать книгу «Структуры данных и алгоритмы», а там все так написано, что нужна дискретная математика. Такое ощущение что мне нужно начинать с таблицы умножений, что-бы решить задачу. Хотя лично я представляю как ее решить в голове и какими инструментами, но вот боюсь взять и сделать потому что хочется сделать правильно, расширяемо, красиво. Хочется делать что-то большее, чем просто сайты, а для этого нужно придумывать что-то новое или совмещать то, что никто еще не совмещал.
Да, я как раз его прохожу, правда только видео могу смотреть, не успел записаться раньше. Первую половину я осилил, потом пошли сложные алгоритмы :)
Вы так в рекурсию уйдете :)

Забейте на все, беритесь за «Введение в информационный поиск», это захватывающее чтение, и никаких особых требований к читателю у этой книги нет. Может быть она подогреет в вас интерес к алгоритмам, и тогда вы с большим интересом возьметесь за их изучение.
Да мне в принципе интересно, только вот для их изучения нужна математика. Некоторые конечно понятны и без нее, я обычно понимаю алгоритм, только тогда когда сам его на руби напишу :)
Напомнило одну историю про проектировщиков:
Стандартные детали не описываются в каждой схеме. Если на каком-либо предприятии когда-то разработали хитрый винт, то во всех последующих чертежах просто ссылаются на чертеж, где этот винт уже был описан. Наверное это сделано для уменьшения количества ошибок при переносе или для экономии бумаги…
Суть истории в том, что понадобилось какому-то конструкторскому бюро делать очень дорогой заказ (чуть ли не для космической промышленности). И нужно было им указать точные размеры какой-то шайбы с умопомрачительной точностью. В проекте, как обычно, было написано: «шайбу взять такую же как в проекте №ХХХХ от ДД.ММ.ГГГГ». Подняли нужный проект, а там такая же отсылка на еще более раннюю работу. А в более ранней работе еще одна отсылка…
После 18-й итерации нашли таки исходный документ, в котором эта шайба была впервые упомянута. Открывают страницу с ее описанием и читают: «шайбу вырезать по размеру/по месту».
Так и летают космические корабли с деталями отмерянными «на глаз».

На правдивость истории не претендую. Байка, она и на хабре — байка.
Это, наверно, типичная история php-программиста-самоучки-одиночки. Это когда у тебя нет знаний, но зато есть безлимитный интернет и непреодолимое желание сделать сайт. У меня ситуация 1 в 1.

Сделал себе сайт лет 5 назад, не зная php вообще и черпая поверхностные знания из интернета. Потом все 5 лет допиливал его в «боевых условиях», правя код по F4 прям с FTP. Код движка жутко не красивый, линейный, всё на инклудах и if-ах. Но возможностей море (рейтинги, репутации, комменты и т.п.). И сайт пашет, держит солидную посещалку и приносит такой доход, что отпадает любая потребность в работе на «дядю».

Что интересно, про MVC тоже только недавно узнал (на хабре в комментах), после этого с энтузиазмом сел за изучение Yii =)
Разрабатывал дизайн, верстал, ваял флешки, программировал и т.д.
я занимаюсь многими аспектами разработки под веб – в качестве верстальщика, дизайнера, контент-менеджера, флешера, программиста, SEO –специалиста и т.д.

Википедия: Разделение труда
Википедия: Специализация

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

Хотите заниматься программированием — надо заниматься программированием, и бежать от эникейства — как от огня.
Не научился? Не знаешь, где и как учиться? www.class-central.com/ в зубы и учиться, учиться и еще раз учиться. Ныть можно долго и нудно.

Если все равно считаешь, что не твое, становись менеджером. Вменяемых менеджеров в IT, которые имеют хоть какой-то опыт программирования, не хватает.
Автор, читайте книги.

Например, начните с этого:
1. Научитесь программировать за десять лет (это короткая статья)
2. Программист-прагматик: путь от подмастерья к мастеру.
3. Роберт Пайк. Практика программирования

От последних двух книг у вас мироощущение поменяется, уверяю вас.
Хочешь научиться — устройся Junior'ом в девелоперскую контору. Сениоры по рукам за что-нибудь да по-надоают :) Заодно и уровень подтянется. И поймешь в чем проблемы твои есть. Варись в кругу девелоперов. Поучавствуй в разработке OS проекта. Смени язык на что-нибудь другое.

Я достаточно долгое время писал на РНР и мне казалось, что пишу я сносно. Пока не устроился Junior'ом в девелоперскую контору и не отгреб люлей за некоторые моменты от сениоров. Так что пинки полезны. Очень полезны. Позволяет взглянуть на свою работы под другим углом. Это позволяет начать ссать кипятком чем потом срать кирпичами. Да и вообще, командная работа — это хорошо. Главное не воспринимать критику «в штыки» и быть готовым к ней.

Глядя на свой сегодняшний код я могу сказать: мой код все еще очень далек от идеала, но он на порядки лучше, чем был бы, работай я в одиночку. Так что успехов вам. Ну и Чистый код к прочтению не помешает ;)
Комната, стулья полукругом, на них сидят люди, толстые, тонкие, молодые, старые. Встает один.
— Здравствуйте меня зовут Дмитрий.
— Здравствуй Дмитрий.(хором)
— Я.......(подбородок предательски трясется) не программист
— Мы тоже, Дмитрий.
;) я когда был в рядах тех кто сидел на этих стульях.

Как сказал кто то из моих знакомых, если человек обращает внмание на такую хуйнюерунду, значит все у него в жизни хорошо. Вы рассуждаете как ребенок. Вы не хотели всю жизнь писать код, вы хотели делать сайты, вы их делали. Мы оба не стали программистами, только в отличии от меня вы не собирались им становиться. Но вам тупо не хватает статуса «Программист». Плашечки, надо что б общество сказало «ты программист». Как бы должно быть понимание, что программист не профессия и не должность, это образ жизни.
Отсутствие профессионального фидбэка на результат работы «заставляет» бросаться в крайности в оценке собственного профессионализма не только в программировании. И не термины важны, а именно результат. Но для программирования встаёт вопрос, что является результатом работы — качественный код или работающий проект. Заказчику/работодателю/клиентам всё равно насколько код в проекте качественен, если они не получают желаемого результата его работы. Верно и обратное, если получают, то им и на качество наплевать, если качество — как-то формализованное — не является желаемым результатом. Но вот формализовать его сложно, почти любая оценка будет субъективной или косвенной.

Самостоятельно оценить качество своего кода можно, наверное, только в сравнении с другими продуктами в той же нише. Оценивать, например, время необходимое для реализации той или иной фичи. в рамках своего движка и рамках другого хорошего и хорошо знакомого.
Ну и что, что не считаешь себя программистом? Ты — веб-предприниматель. Это ни плохо, ни хорошо. Ты просто добился успеха на другом поприще. Так гордись тем, в чем у тебя результаты. Добиться успеха в предпринимательстве тоже не просто.
По мере «роста» вы, как прогер, будете все меньше писать своего кода, и все больше будете пользоваться чьими-то наработками (порой своими).
Нужна БД — не mysql_pconnect, а use Doctrine\ORM\Mapping as ORM;
Нужны шаблоны — не preg_replace, а use Templates\Smarty или Twig;
Логи? Monolod! Кеширование — Memcache! и т.д.

Профи знает больше инструментов и может ими пользоваться в зависимости от необходимости. Напишите на бумаге сколько вы использовали сторонних наработок в своем последнем проекте. Посмотрите по Интернету чем могли заменить свой собственный код. Постарайтесь в следующий раз что-то из найденного использовать. Будет интересно!

И забейте на тесты =) Они лишь показывают на сколько ваши знания пересекаются со знаниями человека, написавшего вопросы.
Друг, все ОК! Сам такой же…
Уровней программиста, как уровней эльфа — их 80 =))
Просто есть пилоты F1 и мы простые автолюбители!
Пилотов F1 на работу берут в лучшие конторы, они побеждают на международных олимпиадах, Мы же просто садимся и едем!
Успехов и удачи!
Проскользнула фраза: профессиональный программист заглянет в код и будет плеваться…
А вы не когда не задумывались что возможно у вас просто стиль такой? ;-)

Со своей стороны хочу сказать человека который написал движок для нескольких проектов на мой взгляд недоучкой как то не поворачивается назвать.

"Не парьтесь" и удачи вам на вашем выбранном пути! ;-)
Читая ваш текст я раз 7 порывался бросить читать и написать длинный комментарий. Но, дочитав до конца, понял, что без бутылки разговор не пойдет )
А по существу, не парьтесь. Все такие, какой бы ни был дипломированный-сертифицированный программист, всё равно найдется тот, кто будет плеваться от его кода.
Автор, не пудрите нам мозг.
Невозможно писать супер-пупер код, заниматься дизайном, seo, таскать коробки с товаром и в перерывах писать свои конфигурации в 1С и все это делать одинаково хорошо.

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

В чем заключалась ценность инженеров, выпускаемых в СССР? В том, что у них был комплексный подход к решению задач.
Я обучался по специальности «Автоматизация производств», один из наших преподавателей нам говорил: «Моя задача — не набить в вас цифры и формулы, а научить анализировать данные и тому, что я называю „инженерным подходом“.
Что лучше — узкий спец или человек-оркестр? Полагаю что это зависит от задачи и условий, в которых ее необходимо реализовать. Тут универсальных решений нет.

Теперь к вашим вопросам.
А имеет ли вообще какое-то значение как называться — программист или не программист? На мой взгляд — нет. Главное — что вы умеете делать и как. Назовитесь лучше „Специалист по решениям“ или как-то так — возможно это поднимет вашу „стоимость“, можно идти к начальству и аргументированно просить повышения ЗП. Подумайте о собственном деле, возможно это получится лучше всего — чем черт не шутит. Например, описанная вами платформа для интернет-магазина — сейчас я просто сам ищу на чем реализовать мои задумки. Сейчас нет вообще нормальных, законченных решений. Есть куча открытых и закрытых поделок, которые при любом чихе в сторону приходится пилить, строгать, заколачивать сваи. Развивайте платформу, сделайте нормальный продукт за вменяемые деньги и похороните тот же Битрикс (так, к примеру). :-)

В любом случае, желаю вам удачи. Если у человека вообще возникают вопросы „кто я, зачем, куда идти“ — это уже хорошо, значит человек старается развиваться. И не является серой массой.
...A professional is a person who is paid to undertake a specialized set of tasks and to complete them for a fee…
Вы профессионал по определению. Недипломированный, без заверенной бумагой образовательной базы, но профессионал.
Эк, вас понесло, букв то сколько.
В общем из всего описания я так понял вопрос «кем себя называть?», это полностью ваше право, как вы себя назовете. А вот дальнейшим вашим планам я так и не понял, вы то ли не хотите ничего менять, а от нас получить какую то подпидку для своей гордости/совести, мол «чувак, не парься, ты программер...», то ли ждете совета как «соскочить» с этих 1С и маленьких сайтов. Здесь все просто у вас сейчас есть деньги, но не морального удовлетворения. Если это плохо — читайте книжки, учитесь делать что-нибудь посерьезней чем сайты, и идите на собеседование в IT контору. Если с деньгами не готовы расстатся, то значит не очень то хотелось и удовлетворение потерпит, тогда забейте.
UFO just landed and posted this here
Говорят, программист останавливается в развитии, когда признает, что он профессионал. А что говорят в вашем случае, я не знаю.
В любом случае, мне кажется, что ваша статья непонятная какая-то, непоследовательная. Может действительно это только ваше хобби, не больше?
Ваши сайты работают? Да! Ваши сайты приносят прибыль? Да! Но давайте на минуточку представим, что Вы сдали проект и по каким то причинам не можете его поддерживать в дальнейшем. Компания для которой был сделан сайт берет себе в штат программиста высокого уровня, а то и целую команду, если дела идут прям совсем хорошо и эти люди теперь сидят и часами вдумываются в логику работы ваших велосипедов. В какой то момент (а возможно и сразу) начинается рефакторинг кода, на который уходит куча времени и средств, при этом новые люди много курят и много матерятся (я бы даже сказал разговаривают матом). В это время заказчик скорее всего называет вновь нанятых программистов бездельниками, т.к. не видит внешне практически никаких изменений, разве что изменения производительности да различные глюки и баги…
Можно долго продолжать, но мораль одна: не пишите своих велосипедов! Вам кажется, что Вы придумали супер подход к решению проблемы, но скорее всего все это уже было реализовано в каком либо из фреймворков которые создаются сообществами, причем люди написавшие эти фреймворки уж наверняка не глупее Вас.
З.Ы. Большой и пламенный привет тов.Дорфману, чей код мы сейчас имеем «счастье» переписывать! Чтоб тебя девушки так любили как ты код пишешь!
Предлагаю термин — «наивный программист» :)

А если кроме шуток — то что у вас есть — это опыт самостоятельной работы — то есть вообще самостоятельной. Точнее даже не просто работы — а реального выполнения задач. Это то, чего нет у многих, кто работает в IT конторах.

А так — поддерживаю сказанное выше:
— читайте книги
— изучайте исходные коды
— выучите еще один язык (или не один)
— пойдите работать в IT компанию

И удачи!
UFO just landed and posted this here
А чего Вы вообще в итоге хотите?

— Быть гуру (во всяком случае, что-бы все так считали) программирования. Можно иметь огромный авторитет теоретика, но при этом не написать ничего работающего. Зато, много рассуждать о красоте кода.

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

Для себя, я когда-то решил, что совершенство — это не цель, а путь — всегда найдется тот, кто обоснованно сможет обосрать твой код. А работающий продукт нужен здесь и сейчас! Поэтому иногда стоит отключать самокритику, и боязнь критики со стороны, иначе так вся жизнь и пройдет в самосовершенствовании. А бабло будут косоть быдлокодеры ;)
Дружище, не парься. Еще в школе я тоже увлекся программированием. Basic, Visual Basic, Dark Basic, C, C++, причем, последний я изучал на курсах, первый просто на уроках, другие два дома. И вот что, C++ я потом изучал еще и в универе, и даже выигрывал олимпиады, но я не знаю этот язык, я совсем не гуру, я такой же недоучка, мой код коряв, но это не мешало решать поставленные передо мной задачи. И я не программист. Потом я пошел в веб, javascript, php, python + django, разрабатывал сайты, некоторые из которых до сих пор работают. Изучил C#, потому что мне он показался интересным, фрилансил (сейчас остановился, кстати, на C# для десктопных приложений, js и python с django для веба). Но я никогда не вникал дальше поставленных передо мной задач, всякие там паттерны и прочее для меня все еще страшные слова. А все потому что у меня совсем другая работа, не связанная ни разу с программированием (хотя, все-такие иногда можно накодить что-то, чтоб быстрее и проще работалось). И мне некогда вникать в какие-то некасающиеся моих задач аспекты программирования на том или ином языке. Любой, кто посмотрит мой код, может ужаснуться, но этот код тоже работает, приносит прибыль, сокращает трудовые и временные затраты, что еще надо? В общем, наши ситуации похожи, и меня тоже иногда парит то, что я плохой программист. Но если это не основной мой род деятельности, а среди моего окружения я чуть ли не гуру… в общем, меня это успокаивает.
Вы определитесь, что вам нужно — ехать или шашечки?

Набор знаний, способных удивить «тусовку», глубокие познания в архитектуре, умение на глаз точно определить RGB, понимание нейронных сетей и что вы ещё могли бы посчитать признаками настоящего программиста — это ок. Скорее всего у вас не будет проблемы с поиском работы.

Но, как мне кажется, главная черта, определяющая настоящего, даже не только программиста, а специалиста вообще — умение поставить задачу и, самое главное, умение решить её, довести до конца, до 100%-го результата. Вот вы, например, решили сайт написать — и написали. Решили, что надо бы к MVC привести — привели. Задачи решены, то есть. Если вы хорошо умеете их решать, у вас никогда не будет проблем с работой, а заодно и с самооценкой.
Знаете, если это глупо, но работает — это уже не глупо.
Может быть именно потому что вы не знаете тонкостей программирования вы и делаете замечательные вещи, полностью сосредоточившись на результате, а не на процессе.
Автор, отчего вы считаете, что в программировании задействованы только программисты? Программисты это лишь одно из звеньев цепочки. Ещё есть, по крайней мере, проектные менеджеры, различные аналитики и тестировщики. Если вы себя осознали как плохого программиста, вполне можно себя попробовать менеджером или аналитиком. Тем более что у вас много знаний из разных областей. И вам уже почти 30 — становиться хорошим программистом уже поздно имхо.
Кончай ныть — иди работать!
SICP
HtDP
TaPL
Язык программирования
опенсорс проекты
работа
успех
Я вот, к слову, наоборот считаю себя «переучкой», причем в плохом смысле этого слова, ибо единственное что я делаю, это бесконечно читаю-читаю-читаю-читаю. Опыта нет вообще, только библиотека за спиной.
Прошел тест. Набрал 121 бал. Я не программист. Особенно умилил вопрос: «кто был первым программистом?». Перед этим аналогично доставлял вопрос в другом тесте: «Кто владеет правами на Wordpress?». Автор не парься, совершенствуй кунг-фу и гни взглядом ложки.

Проблема всех тестов и прочей фигни в том, что они крайне субъективны и отражают лишь личное мнение автора-составителя. Т.е. некий гражданин который писал этот тест считает что ряд людей не программисты. Это нормальное утверждение, нормальный подход и это ровным счетом ничего не значит.
Хотелось бы ответить оратору, который предположил, что я через эту статью завуалированно пиарюсь. Т.е. продвигаю свою CMS. Неправда! Если вы заметили, то имена, пароли, явки я не называю. И не назову. Разработанный мной движок к сожалению не подойдет для коммерческих целей (к сожалению), т.к. сам черт сломит ногу в моих кодах. Кроме меня с ней никто не сможет обращаться. И к тому же тяжело в одиночку соревноваться с имеющимися на рынке. Это уже похоже на изобретательство велосипеда.
Моя статья это другое. И может, стыдно признаться, действительно это, как кто-то написал, «нытье», только для того чтобы узнать мнение людей, смотрящих на это со стороны и людей, кто сам находится в похожей ситуации.
Статья и комментарии хорошо иллюстрируют шаблоны поведения :) Хочешь, чтобы тебя заклеймили — похвастайся. Хочешь, чтобы посочувствовали и помогли — поругай себя. :)
Стимулов для развития и целей для достижения у вас хоть отбавляй. Я вообще не понимаю, в чём проблема :)
По секрету: я тоже очень плохой программист. Что не мешает мне решать поставленные задачи и зарабатывать деньги, а также регулярно слышать речи о собственной гениальности. Я не копаюсь в собственной ничтожности и не слушаю хвалебные речи — я просто делаю своё дело, это уже очень много, поверьте на слово.
Посидел я минут 15 над вашим тестом (точнее на который была данна ссылка в статье) и прошёл его. Набрал 197 баллов, после чего меня обрадовали надписью «Вы — хороший PHP-программист!». Теперь самое смешное — я вообще не знаю PHP, а при ответах опирался только на Google и интуицию. Мораль сей басни такова: если вы умеете использовать поисковые системы — то вы хороший программист! =)
У меня аналогичная проблема, за исключением того, что я не программист, точнее я программирую, но для себя, т.е. для своих нужд, а работаю я на данный момент руководителем отдела ИТ, куда шагнул с системного инженера, до которого дорос с системного администратора, кем стал после того, как решил быть больше чем эникейщиком.

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

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

Мне страшно рассматривать более серьезные вакансии, где встречается много неизвестных для меня слов и аббревиатур, где все очень красиво написано на английском языке с использованием большого количества терминов, но тем не менее, я принял для себя решение, что я хожу на подобные собеседования, и я без тени стеснения говорю о том, что я не знаю что это за термин (если я предварительно не успел почитать о нем в интернет), но, зачастую, я все это знаю, просто никогда не использовал подобную терминологию. Большинство работодателей адекватно относятся к подобным ситуациям.
Не читал комментов, может быть, повторяюсь, сорри.
Человеческая жизнь устроена так, что зачастую ищешь одно, а находишь другое. Причем, находишь там, где никогда не мог предположить найти. Автор, вы видите минусы в том, что вы недопрограммист. И при этом, даже не ощущаете, насколько сейчас высока востребованность в специалистах на все руки. Да, есть потребность в хороших программистах, она очень высока. Есть у профессии программиста ореол «творца». Перед программистами прекланяются, как перед языческими божками, они непонятные иероглифы и руны складывают в таком порядке, что возникает что-то новое. Но мы же с вами понимаем, что это не так. Да, есть элемент творчества, но это все-таки больше технология. Кто-то углубляется вглубь технологии, а вы — вширь. Всерукость ваша — это невероятное преимущество. Востребованность рынка в таких людях сейчас значительно выше, чем в хороших программистах, и она будет только расти. Ваше знание «верхов» в большом количестве тематик — это офигенное преимущество. Пользуйтесь этим. Мир открыт для всех, а не только для программистов. Ваша многорукость — это высоколиквидный товар. А тоску по кодингу — вполне можно заменить другим творчеством, поверьте.
А не подскажете по каким ключевым словам искать такие вакансии? :)
Узнаю себя 1 в 1. Все то же самое, разве что язык не PHP, а Perl (и еще с пяток брошенных на середине изучения). Тут правильно подметили — это называется кризисом среднего возраста (который нынче молодеет и молодеет). Мы начинаем задумываться: «Половина жизни прошла, а что я уже успел сделать?». И тут понимаем, что сосед твоих лет Вася ездит на порше, когда ты на потрепаной девятке, что твой друг Петя — крутой программер, а нынче уже и ПМ, а ты все так же временами делаешь сайты или программки на заказ и админишь на основной работе.
Казалось бы — есть солидный опыт и знания в ИТ (я, например, сисадмин), попутно можешь что-то написать для себя или на заказ, но ведь чего-то не хватает — и смена работы тут не помогает. Возможно, поможет смена рода деятельности, но это уже страшно — ведь за твоей спиной семья, которую надо кормить.
Вот и живем, мечтая о чем то лучшем…

P.S. Сугубое ИМХО.
Вообще ты можешь считать себя хорошим программистом если владеешь технологиями TDD, BDD и DDD. Знаешь и умеешь применять SOLID принципы, понимать что такое KISS, YAGNI, DRY и так далее. Когда результатом твоей работы является качественный продукт и когда заказчик доволен. Вот мне кажется такие вот простые составляющие хорошего программиста. А на каком языке ты программируешь не важно.
Насчет завалится на собеседовании, есть хорошая практика — ходите на собеседования. Вас за это никто не на ругает, но вы поймете где у вас пробелы и сможете их подтянуть. Но это в том случае если захотите стать профессионалом в ИТ-сфере.
Сложно понимать, когда вроде на всё ответил с ходу (то есть не гадая) а в ответ «мы вам перезвоним» и тишина…
Если ты стремишься к качеству, ты будешь расти, так как для получения качественного продукта, нужно стремиться к минимизации багов и рисков с ними связанными. Да и еще не всегда проект может интересовать тебя или может быть близок к твоим интерсам, но вот то что ты делаешь должно приносить удовлетворение. Мне очень нравится книга под названием «Идеальный программист» Роберта Мартина. Там очень все довольно ясно объяснено кто есть профессионал. Прочитав его, в себе находишь моменты которые нужно корректировать, чтобы стать настоящим профессионалом.
Более 70 проектов/сайтов на своей CMS (сейчас это CodeIgniter, smarty, а когда-то было на инклудах), из них более половины с моим дизайном и версткой. Как сказал один действительно хороший программер, покопавшись в моей CMS «Код, конечно, гавно, запросы ужасны, но логика работы системы понятна уже через 10 минут и за это тебе отдельное спасибо.»

Дык жешь, скучно все время кодить. Хочется разнообразия: порисовать, написать статью, разработать план рекламной кампании, порассуждать с клиентом о бизнес-процессах, написать себе свое десктопное CRM и т.д. Характер такой — от всего постоянного и монотонного я вешаюсь.
Заниженная самооценка — это самый деструктивный фактор из всех что есть. Я опробовал его на себе. Никому не советую. Трудно потом выкарабкаться. А чтобы не сомневаться в своей оценке, нужно быть уверенным в себе и своих знаниях. Москва — не сразу строилась :) Не все рождаются Биллами Гейтсами. Так что цените себя за каждую пусть маленькую но удачу!
Завышенная самооценка не менее губительна, чем заниженная.
Согласен — я имел ввиду адекватную оценку :)
Можно конечно закрывать глаза на плохой код, но от этого продукт лучше не станет. Придет время когда вносить изменения в него станет просто невозможно из за плохого проектирования.
Могла бы получиться неплохая реклама для книги Котерова ;)
Я тоже начинал с интернет-магазинов и практически не развивался профессионально. Тоже своя «CMS», тоже много магазинов на ней. Длилось это четыре года.

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

Мой совет — читайте книги.
Этим сейчас как раз и занимаюсь! Последнее время осознал всю ценность и важность самообразования. Раньше как-то просто шел по течению. Здесь кто-то писал уже о том, что существует в похожей ситуации и программирует только то что требует текущая задача. И вот и я так же. Всегда решал только поставленные конкретные задачи, не ввязываясь во что-то новое и сложное без надобности в качестве образования. Делал только то что нужно, чтобы заработать денюжку на хлеб. А писать что-то новое и сложное для саморазвития — это стороной обходил.
Тогда желаю удачи!
Читайте, осознавайте, применяйте.

P.S. еще можно подписаться на профильные блоги, чтобы быть актуальным. Но сперва надо «догнать», а потом уже поддерживать актуальность знаний в сфере.
У меня жуткие проблемы с производительностью и самоорганизацией.
Иногда просто надоедает что-то делать и я не могу продолжать на этим работать. Или сталкиваюсь с проблемой, для которой нет простого и аккуратного решения, и висну на оставшийся день).
А разработка даже самых простых вещей занимает жутко много времени, и быстро что-то сделать никогда не получается.
Лениво постукивающий по клавиатуре задумчивый программист.
Можно выделить ключевые моменты, из-за которых проблема:
1) отсутствие амбиции стать хорошим программистом;
2) работа в коллективах, где неоткуда было черпать опыт;

Я себя не считаю хорошим прям программистом, но в том же тесте получил 176 баллов. Это при том, что проработал только год в данной роли. Правда я и раньше кодил немного, но за это денег не получал )
Когда лет через 50-100 бабушки у подъезда будут с лёгкостью оценивать программистов, как сейчас, например, врачей или продавцов, будет легче определить свой профессионализм.
А пока можно спокойно заниматься любимым делом, и не особенно загружать голову вопросом: «Кто же я?».
И, кстати, про тест. Он уже не первый год «бродит по Европе» и является предметом гордости HR-юш, которые не в состоянии провести собеседование так, чтобы понять, подходят ли контора и сотрудник друг-другу.

Это как, если бы историков тестировали вопросами из серии «Сколько человек участвовало в битве при Фалкирке со стороны англичан? 3200, 3350, 2920 или 3740?»
Общий тренд в индустрии ИТ уже много лет — исключить программиста там где это можно, за счёт большей гибкости самой системы. Просто потому что программист-профессионал стоит дорого, и занимается только программированием.
Взять тиражируемую систему, лучше даже на основе свободных компонентов, привлечь человека из предметной области, который сколько нибудь понимает или может разобраться — и не платить дорогущей команде программистов.
У вас правильная ориентировка на результат, надо только понимать, что грамотная архитектура это тоже необходимое условие для достижения результатов, для создания надежных и расширяемых приложений. Не пытаетесь разделить чего не понимаете, как что-то умное «только для профи» изучите вопрос и подумайте в чем это вам поможет, если не поможет — нах и не надо. Тот же пример про MVC, нет смысла спрашивать вот мой проект он с МVС или без него, надо спросить, сможет ли секретарша подправить шаблон, без помощи программиста, если возникнет необходимость. МVС помимо прочего значит, что в одном файле у вас никогда не будет HTML рядом с PHP и любой человек знающий HTML сможет править шаблоны, не боясь сломать функционал. Аналогично и другие паттерны дают решения для каких-то реальных задач, их можно изучить, чтоб знать что придумали до тебя, и видеть заранее возможные проблемы в проекте, но задачу все равно надо будет решать используя мозг. Это как в шахматах, кто-то изучил заранее все дебюты, кто-то сел и играет как бог на душу положит, выиграет все равно тот кто умнее, но если соперники приблизительно равны, то тот, который сделал домашнюю работу и разыгрывает дебют изученный в заранее к мид-шпилю будет в более выгодном положении.
Меня вот этот момент тоже очень сильно парит. Я понимаю, что без меня никто ничего не сможет делать с этим проектом. С одной стороны радоваться надо — незаменим! С другой стороны, заболел я, уехал в отпуск, уволился или не дай бог еще что — кто будет разбирать этот бардак? Я могу развивать и поддерживать этот сайт, но сомневаюсь, что кто-то другой сможет, даже очень хороший программист. И вообще интересно как в таких случаях обычно поступают? Уволился я например. Новый человек будет сидеть с моими кодами или будет писать новый сайт?
Такая незаменимость по-моему очень краткосрочна, если никто кроме вас не в силах разобраться в вашем проекте, то через какое-то время и вы сам не сможете с ним разобраться, когда возникнет необходимость дописать что-то для модуля, с которым давно не работали.
Что будет зависит от человека и от кода, если оба хороши — допишет\поправит что надо сходу, если один из них плох — какое-то время потратит на рефакторинг и потом допишет, если один из них ужасен — начнет с нуля. Как правило бывает вариант второй, оба хороши бывают слишком редко, а переписывать с нуля не дает бизнес (правда если оказывается, что проблема действительно в коде, а не в человеке, то спустя какое-то количество долларов переписывать все же приходиться).
МVС помимо прочего значит, что в одном файле у вас никогда не будет HTML рядом с PHP

Неправда ваша. MVC означает, что в одном файле (и то условно, скорее в одной функции/методе/классе) не будет бизнес-логики, логики приложения и логики представления, что они будут разделены. А шаблоны вполне могут быть на PHP, PHP же шаблонизатор.
Формально вы правы, но фактически ваш комментарий не соответствует задаче, которую я поставил — дать секретарше знающей HTML возможность безопасно редактировать представление.
Формально для этого MVC не нужен, нужен шаблонизатор — Smarty, Twig, что-то ещё.
А потом вашу уникальную, посную фич и держащую трафик в 100 уников в день придет поддерживать настоящий программист и будет под ней умирать. В итоге бизнесу все равно придется вложиться в качественный код или умереть от конкуренции.
UFO just landed and posted this here
Вроде не пью, но пришлось проверять, не я ли автор этой исповеди.
Вот тоже себя узнал.
Правда я поработал Дизайнером / Флешером / JAVA программистом.
В итоге я рисую лучше чем большинство программистов и программирую лучше чем большинство дизайнеров. И это печально :)
Почему печально? По вашему программисты должны уметь рисовать а дизайнеры — программировать? :)
Так вот он наверное и иронизирует на эту тему, что «печально» для него самого! Т.е. печально не тем дизайнерам, которые не умеют программировать или тем программистам, которые не умеют рисовать, а печально именно ЕМУ!
Xaerom, очень четкий образ получился у вас с дизайнерами и программистами! жаль что я в этой своей статье не додумался так подытожить! Очень похоже на мою ситуацию!
Услышал много общего со своим недавним постом. Я, правда, от проблемы уже перешёл к конкретной цели, но пока к ней так и не приблизился. Выражаю автору солидарность, в общем.
Ага, ты очень прав! Твоя статья была одним из тех толчков, которые сподвинули меня к написанию своей!!!
Занятно ещё и то, что мы примерно ровесники. По ходу, проблема самоопределения наступает как раз годам к тридцати. То есть позиция «делай что делаешь пока за это хорошо кормят» — уже перестаёт устраивать, хочется не просто зарабатывать, а ещё и чувствовать себя профессионалом.
Очень странная стаття, мне кажется автор хочет чтобы его пожалели, сказали — «Вы хороший програмист, вот какую чудо ЦМС создали, Вы не ламер !!»

Скажу честно — ты частично прав! Я очень надеялся, скорее даже не на жалось, а на какие-то действительно грамотные и объективные доводы в пользу того, что зря я парюсь! Как видите услышал много мнений и очень разных и очень противоположных. Нашлось много людей, солидарных и находящихся в похожей ситуации. Кажется что не только удалось услышать успокоения в свой адрес и критику, но и своего рода подобный моему крик души у других людей.
хотите узнать мнение программистов — опубликуйте какой-нибудь проект (для которого это будет не критично) в open source. Хотя надо ещё как-то привлечь их внимание (например постом на хабре :)
Я сначала подумал, что это исповедь создателя Битрикс ;)
))))))))))) ЖЖешь asidorov! Че создатель битрикс тоже должен убить себя за свое творение??? ))) 5 баллов!
Походу у меня уже истерика…
обязан. без промедления :)
Не знаю с чем это связано, первые версии битрикса были очень неудобоваримыми (даже joomla и та дружелюбнее).
>Кто я: профессионал или недоучка?
Вы быдлокодер обыкновенный. Таких как вы — тысячи. Полагаю, вы можете перейти в разряд профессионалов, если устроитесь на работу именно программистом, с реальными проектами и задачами (которые требуют оптимизации, защиты и т.п.). Сейчас же вы эдакий эникейщик от веба (раз занимаетесь всем подряд, даже флешки делаете по вашим словам).

А кто такой эникейщик? Это совсем плохо?
Хороший эникейщик это тот, кого называют «генералист» (в противовес специалисту). Для решения узких задач это плохо, а вот когда задача толком ещё не сформулирована или однозначно требует знаний из разных областей, то даст фору специалисту или даже команде специалистов, которые не могут найти общий язык. Но важно понимать, что хороший эникейщик должен вовремя понять, что пора отдавать (под)задачу специалисту (или становиться им самому, если позволяют условия). На близком к посту примере: поднять LAMP на (V)DS, написать движок для визитки или бложика с БД во всех нормальных формах, сверстать простенький дизайн, зарегать и привязать домен, осуществить кое-какие SEO-мероприятия может любой эникейщик. Сайт будет работать, и даже быть в топе Гугла и Яндекса по низкоконкурентным запросам. Но вот когда начнётся DDoS сайта, или просто «хабраэффект», когда БД потребует оптимизации запросов, денормализации схемы, не говоря о шардингах и репликациях, вёрстки сложного дизайна, выхода в топ по высококонкурентным запросам и т. п., в общем чего-то требующего специальных знаний, то плохой эникейщик будет продолжать городить костыли, а хороший передаст эти задачи специалистам, может оставив над собой общую координацию, выступая в роли менеджера, который ставит специалистам задачи на понятном им языке, а может просто отказавшись от проекта и посоветовав заказчику кого ему искать и даже помогая найти и предлагая конкретные кандидатуры.

UFO just landed and posted this here
Именно так! И от этого печально!
UFO just landed and posted this here
Можно очень долго рассуждать о теории и приводить миллионы неоспоримых доводов, но при этом не иметь ни малейшего опыта. А можно просто что-то делать и зарабатывать деньги. И если кто спросить кто из двух профессионал, а кто недоучка, то очевидного ответа не будет.
В любом случае смысл в движении. Чем дальше мы идем, тем больше осознаем сколького мы еще не знаем. А если возник вопрос, поставленный в топике, то автор на правильном пути. Могу только пожелать не сворачивать с него :)
UFO just landed and posted this here
Если хочешь стать хорошим программистом, устройся на работу за 20т.р. пиши код, как за 120т.р. и при этом будь вежлив и ни каких косяков по проектам, и главное не гнать на начальника и зарплату. Ты будешь просто «золотым» программистом. Просто клад для работодателя, на тебя будут молиться, тебя будут уважать.
Могут не взять, подозревая, что этот «закидон» быстро пройдёт и ты в ультимативной форме потребуешь повышения зарплаты или вообще уволишься без объяснения причин. Переквалификация. И с уважением, кстати, большой вопрос. Молиться будут, бояться потерять тоже, но вот уважать… Не факт.
всегда можно не уважать их обратно
UFO just landed and posted this here
Енто ж ирония как я понял!
Мне кажется, что все программисти в какой-то степени самоучки. Просто один робко прячет, а другой смело достает.
И то верно, не слышал ни об одном институте, в котором действительно хорошо преподают программирование. Судя по лабам приятеля в Бауманке, там его вообще не преподают. Надеюсь есть такой институт
Я периодически готовлю себе пищу, но никогда не думал о том, чтобы назвать себя поваром или кулинаром.
Я периодически играю в баскетбол, но от этого я спортсменом не становлюсь.
Я умею оказывать первую помощь, но я не говорю, что я медик скорой помощи.
Я участвую в любительских сценках для разных мероприятий, но я не называю себя актером.

Так почему те, кто прикладывает руки к программированию начинают сразу называть себя программистами или же, как автор, задаваться вопросами программист ли он?
Скажите, а зачем вам собственно эта этикетка, «программист»? В конце концов кого вы считаете программистом: codemonkey(не знаю как по-русски) или архитектора проекта? Можно ли считать меня программистом только по версии этого теста с 189 баллами или только по проектам в разных языках?

Бросьте философию и развивайтесь. IT это постоянное движение. Знаете web, изучите java и попробуйте себя в appengine. Надоел web? Сделайте себе игру на android/iphone/j2me.

Все ваше уныние от того, как мне кажется, что вы остановились. Сам такой, чтобы не унывать вообще в авиамоделирование и arduino-технику кинулся.
оч. холиварная тема. Но мне кажется, что в WEB таких разрабов 70% точно есть. Сам такой. И ничего в этом плохого нет. Я профессиональный программист. Почему? Потому что «профессионал» от слова «профессия». А работаю я самоучкой, по профессии «программист», во вполне приличной конторе. Сегодня сайт пишу, завтра внешнюю среду управления Ардуиной какой-нить, а послезавтра отлаживаю локальную систему клиентской базы. Все это узкопрофильное программирование, и клал я на дипломы :)

UPD: Товарищ потратил 7 лет на получение 2-х высших образований по прикладному программированию. Уже 2 года не может устроится на работу по специальности, т.к. не хочет идти в ученики, а опыта нет, только теория и лабы. А учится мы начинали одинаково и на одном факультете. Вот только я ушел через полгода, а он остался :)
Вы правы, получить образования легко — ходи себе на лекции и лабы здавай (вообще напрягатся не надо). А вот научится чему-то это действительно сложно.
особенно легко на прикладной математике, знай себе вникай в математические тонкости(порой очень абстрактные), да теоремки на странички 3 и не напрягайся :)
А после екзамена из головы мгновенно вылетают )))
Ну не все же сразу, порой остаются очень полезные методы, которые применяешь. Кроме того высшее образование меняет мышление и в лучшую сторону.
Я не говорил, что легко. Я имел ввиду, что образование — отнюдь не определяющий фактор в будущем хорошего кодера. Достаточно и дипломных и самоучек…
вы не уточнили что
Есть индексный файл index.php, в котором простейший код принимает параметр «page» адресной строки (например index.php&page=main) и инклудит в index.php одноименную страничку из папки templates (страничку main)
так делать низя
открытая дыра в безопасности — потенциальное место запуска стороннего скрипта. Остаётся только найти способ залить скрипт, и можно будет запустить :)
Так у меня есть проверка. Во-первых, некий «список» названий страниц, которые могут быть подгружены таким образом. Если название, которое отсутствует в этом списке, то не прокатит.
Во-вторых, проверка URL на наличие всяких плохих комбинаций.
Я так думал, что способ внедрить посторонний скрипт — это только добавить его код непосредственно в сам шаблон main. Но это же уже другой вопрос.
Или я не прав?
В зависимости от того, как проверяете — это может вылезти боком или нет:
— если проверка из разряда if ( $page = 'pagetype' ) или switch ($page), то способов подкопаться я не вижу,
— если проверка а-ля $pages[$page], то в большинстве случаев безопасно (остаётся только удостоверяться, что не всплывёт какая-нибудь бага в самом php),
— если идёт проверка по регулярке, поиск в базе или ещё как-либо обрабатывается — тогда нужно быть уверенным, что вы пресекли весь потенциальный вред — SQL Injection, XSS, обход защиты с выплыванием на другой файл,…

Внедрение чужого кода в поток исполнения вашего важно только для одной цели — легко выловить подключение к БД, в противном случае важно только хоть как-то запустить данный код. Если при заливке файлов не проверяются все выполняемые файлы (на предмет расширений, т.к. веб-сервер mime-типы обычно определяет по расширению), то это почти гарантировано приводит к беде. Если же идёт отсев — тут и нужен способ внедрить код в ваш, или найти место, где он попадёт в eval.
Соответственно Chikey говорил как раз о том, что такой способ определения страницы опасен возможным подключением стороннего кода, ибо не всегда выполняется своевременная и полная проверка вводимых данных.
Хех… Вот что копипаст с людьми то делает.

Делать так можно, тут главное не забыть про защиту. Кто-то просто вырезает все что не является \w, а у кого-то есть список файликов которые можно инклудить и перед подключением они это дело проверяют. Опять таки, та же Django этим не брезгует. А это какой никакой, а показатель.
Кстати, тест абсолютно не показатель, я вообще получил «Вы — крутой PHP-программист!» (255 баллов), воспользовавшись Гуглом только для ответа на вопрос по машине Тьюринга (и то он не помог), и маном чтобы проверить создаёт ли memcache_increment() значение, если ключа в кэше нет (ну не пользовался я им) — оказалось не создаёт, хотя такое поведение мне кажется странным, ведь возникает потенциальное место для гонок и блокировок.
В начале года руководство поставило цель: до конца года довести размер команды, работающей над текущим проектом, с 3 до ~70 человек, включая тестеров, разработчиков, бизнес-аналитиков. Как ведущему разработчику мне было поручено проводить технические интервью новых кандидатов на должность программистов. Опыта проведения собеседований у меня не было, поэтому учиться приходилось на лету, благо в свое время прошел их сам не мало. И вот уже на протяжении нескольких месяцев я почти ежедневно общаюсь с новыми людьми, считающими себя талантливыми разработчиками. Учитывая срочность и нетривиальность задач на нашем проекте, кандидаты с уровнем Junior, нам не подходят. За все время с начала набора было проинтервьюировано около 50 программистов (резюме которых показалось интересным), из них в компанию было приглашено ~15 человек (четверо уровня senior), 2-3 отказались от предложенных условий, трое (в том числе двое senior) уже успели уволиться не выдержав нагрузки, еще несколько собираются выйти на работу в ближайшее время.

Да простит меня автор этой статьи, но скорее всего его навык программирования мной был бы оценен как Junior. И не только из-за моих субъективных ощущений. В нашей компании существует так называемая «матрица компетенций», в которой помимо строго определения какими именно навыками должен обладать разработчик определенного уровня, но также определено наличие опыта работы в команде, а это целый рой дополнительных технологий (UT, CI, VCS, CR и пр.) и паттернов поведения.
В другой компании может быть определен другой набор навыков, в чём-то более строгий чем ваш, в чём-то менее. А связывать опыт командной работы и знание и опыт использования технологий, по-моему, не корректно.
тема мне знакома, работал также в конторе в которой был и дизом и программистом (писал разные программы), при этом знал php (с подсказками интернета) и выполнял другую работу никак не связанную с программированием. долго искал работу где можно будет полностью уйти в программирование. мне повезло, спустя год, меня взяли в банк, где я работал с oracle db, а 2 года спустя получилось уйти в java. сейчас уже работаю 2.5 года в этой сфере, имею 2 ocp, работаю над собой. мне нравится! нисколько не жалею, что решился )
Если правда хочется быть Программистом с больший буквы, выделяйте время на исправление своей CMS, ведь это самое крутое, что у вас есть (мало у кого такое есть), приводите её в подобающий вид, чтобы не стыдно было показать кому-то нутро. В момент, когда станет не стыдно, все эти страхи и сомнения исчезнут!
Уважаемый ТС.
У вас не проблема в коде цмс, а проблема в голове. Причем типичная для «специалиста широкого профиля» будь то программирование или любая другая сфера.
Вы ищите сферу, в которой вы можете назвать себя профи и возможно жалеете, что время прошло, а чтото могло быть сделано лучше. «Повзросл и не состоялся».
Идите и поработайте в вэб студии! Готов поспорить, что вы даже не пытались ходить по собеседованиям так как боитесь что вас «раскусят». Вы хоть знаете сколько в зарубежные аутсорсинговые компании приходит зеленых новичков с едва годом опыта работы, студентов и какие они зарплаты заламывают на пустом месте?
Да, вам пришлось бы научится тому, что нужно работодателю, но ваш багаж знаний и опыт решения проблем без нытья и посторонней помощи, умение во всем разобраться самому дадут вам фору перед студентами.
А если не хотите работать программистом, то и не ищите похвал или оправданий тут.
Просто хватит вам быть спецом широкого профиля. Определяйтесь и копайте кудато в одну сторону.
Я бы мог подписаться под каждым словом этой статьи, только со здвигом лет 5 в прошлое. Тогда еще был php4 был новинкой. Для себя я тогда решил, что я не становлюсь крутым программистом не потому, что во мне чтото не так, а просто для меня красота кода ничего не значит. Я хотел быстрее увидить результат, решить проблему кастомера. В свое время я ушел из академической науки по тем же причинам. Там от начала до ощутимого результата проходили недели.
В итоге я стал ПМом. Опыт программирования очень пригодился. Теперь я воплощаю идеи в жизнь чужими руками, но могу сделать больше и быстрее.
Sign up to leave a comment.

Articles