LINUX.ORG.RU
ФорумTalks

Хочешь стать программистом? Спроси меня как!

 


3

1

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

10 Signs You Will Suck at Programming

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

Для всех кто раздумывает стать программистом, или у кого есть друзья, пристающие с вопросами «как ты стал программистом».

★★★★★

Ну ты вообще Ъ не уважаешь, да?
Мало того, что только ссылка, так еще и не на русском.

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

Специально для Ъ описал краткое содержание, хотя изначально не хотел.

Перевод есть где-то на хабре, но у меня ссылка затерялась.

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

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

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

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

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

phoen ★★
()

Спасибо, сохранил.

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

среднего программиста

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

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

Лучше б кто написал как и куда уйти из IT

У России три пути: вебкам, закладки и IT. ИМХО, для тебя выбор должен быть очевиден.

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

Я не знаю кто такой «средний программист». Рынок огромен, работу можно найти всегда, и далеко не везде определяющим фактором в этой работе является манагерский елдак.

Рынок огромен, поделён на отрасли, отрасли на специализации. С вероятностью овер 90 процентов бэкенд джавист из финтеха пойдёт работать бэкенд джавистом в другой финтех.

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

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

phoen ★★
()

Первые 7 ок;

восьмой плох тем, что начинающий не может правильно оценить себя с этой точки зрения, и пытаться обращаться к его self-reflection на самом раннем этапе - только путать;

девятый спорный;

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

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

вебкам, закладки и IT

А у тебя должно быть интересное резюме.

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

А если конкретно тебя не учили не переходить на личности

Это не был переход на личности. Под «ты» я имел в виду не конкретно тебя, а абстрактного собеседника. Я понятия не имею ни где ты работаешь, ни какая у тебя там ситуация. Но я вполне могу себе представить компанию с определяющей политикой «я начальник – ты дурак», сам работал в такой. Я просто не согласен с утверждением что это – норма для IT.

morse ★★★★★
() автор топика

Подобные требования подходят для любой профессии сложнее дворника.

RazrFalcon ★★★★★
()

Вопрос от тех, кто не читал, а просто просмотрел краткое описание этих десяти признаков. Достаточно одного совпадения, чтобы на карьере программиста поставить крест? Или нужно совпадение по всем десяти?

i-rinat ★★★★★
()
Ответ на: комментарий от morse

Это не был переход на личности. Под «ты» я имел в виду не конкретно тебя, а абстрактного собеседника. Я понятия не имею ни где ты работаешь, ни какая у тебя там ситуация. Но я вполне могу себе представить компанию с определяющей политикой «я начальник – ты дурак», сам работал в такой. Я просто не согласен с утверждением что это – норма для IT.

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

А качество? Качеством стало называться знание костылей и подпорок в миллионе фреймворков помогающих хоть как-то укладываться в сроки. И я не ярый противник всех этих аджайлов и скрамов - они эффективны при создании продуктов, но методы загоняют профессию разработчика… под шконку.

phoen ★★
()
Последнее исправление: phoen (всего исправлений: 2)
Ответ на: комментарий от i-rinat

Достаточно одного совпадения, чтобы на карьере программиста поставить крест? Или нужно совпадение по всем десяти?

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

theNamelessOne ★★★★★
()

10 Signs You Will Suck at Your Job

починил

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

восьмой плох тем, что начинающий не может правильно оценить себя с этой точки зрения, и пытаться обращаться к его self-reflection на самом раннем этапе - только путать

Я отношусь к этому скорее как к soft-skill (как, собственно, и ко всему там перечисленному). Ты либо имеешь привычку критически относится к собственным принятым решениям либо нет. Тут же задача не в том чтобы грамотно и компетентно оценить собственное решение, а в том чтобы хотя бы пытаться это сделать.

девятый спорный

Хорошо, давай поспорим :) для этого и принес. Мне кажется что этот пункт можно пересказать как «не полагайтесь на паттерны». Да они хороши (иногда), да они понятны (большинству), но они всего лишь одни из вариантов, и рассматривать надо не только их.

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

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

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

Я не сомневаюсь ни по одному из десяти пунктов. Просто про восемь я уверенно говорю, что они ко мне не относятся, а про два — что уверенно относятся. Ни капли сомнений.

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

Достаточно одного совпадения, чтобы на карьере программиста поставить крест? Или нужно совпадение по всем десяти?

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

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

Я отношусь к этому скорее как к soft-skill (как, собственно, и ко всему там перечисленному). Ты либо имеешь привычку критически относится к собственным принятым решениям либо нет. Тут же задача не в том чтобы грамотно и компетентно оценить собственное решение, а в том чтобы хотя бы пытаться это сделать.

Я не про суть описанного в пункте говорила. Там-то ладно, достаточно общего плана замечание.

Проблема в том что спроси любого честного нуба (и не только) о его коде, он всегда скажет - «абсолютно disorganized, кошмар да и только». Это вопрос наличия совести у программиста а не наличия навыка.

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

Мне кажется что этот пункт можно пересказать как «не полагайтесь на паттерны»

Ну а я бы сформулировала анти-пункт - «ищите красивое aka верное (right) решение, а не просто рабочее». И имхо это очень важный навык - ценить техническую красоту решения, и вырабатывать интуицию в том какое решение считать «правильным» и «красивым» среди десятка возможных.

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

А если ты хочешь чтобы программирование тебе доставляло удовольствие

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

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

i-rinat ★★★★★
()
Ответ на: комментарий от phoen

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

Как будто что-то плохое. Разработать эффективную запчасть – тоже вполне себе челлендж. Когда я впервые пришел джуном в здоровенный проект, моя первая задача была «нагенери тестовых xml-ек на основе интерфейсной схемы». Так я даже там нашел себе интересную задачу на подумать. И только спустя два года, случайно, узнал что оказывается мои старания в ее решении были оценены сверху, и это реально помогло проекту. А тогда это просто выглядело как если бы я просто делал два дня задачу на два часа (джуну такое простительно :).

А качество? Качеством стало называться знание костылей и подпорок в миллионе фреймворков помогающих хоть как-то укладываться в сроки.

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

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

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

Я не додумываю, я отвечаю на сообщение, в котором было написано «программирование тебе доставляло удовольствие» а не «программирование тебе доставляло и удовольствие». Не замечаешь разницы?

i-rinat ★★★★★
()
Ответ на: комментарий от alpha

спроси любого честного нуба (и не только) о его коде, он всегда скажет - «абсолютно disorganized, кошмар да и только»

Ну это значит это какой-то очень неуверенный в себе нуб (и не только). Безусловно в каждой программе можно найти проблемы. Но если ты в процессе решения задачи преодолел какие-то значительные трудности, и если ты уверен в работоспособности своего решения, ты будешь горд за результат. Оба ответа: и «все идеально» и «все говно», в равной степени означают неспособность человека здраво оценить собственный труд.

У начинающего этого опыта нет. Поэтому не надо его этим восьмым пунктом бить по голове.

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

вырабатывать интуицию в том какое решение считать «правильным» и «красивым» среди десятка возможных

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

morse ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Если в конце дня программист не устал думать, а думал ли он?

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

morse ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Не замечаешь разницы?

Не замечаю. Ну точнее замечаю, что второе как-то странно звучит.

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

alpha ★★★★★
()

На швабре кажись была эта статья.

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

Твой первый абзац про челлендж делит на 0 второй абзац про «просто очередное хорошее решение». Или я не прав?

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

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

Там сказано не так:

If you see the end goal of programming as finding the right solution, rather than a spectrum of solutions, you will never truly be successful as a programmer

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

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

Хотя вообще я не программист, да.

Я - искатель решений, причём пришедший из матана, поэтому в этом пункте могу сильно не сходиться с «профессионалами».

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

Когда в конце полового акта ты устал от полового акта

Однозначно надо поменять партнера. Вы уже не сексом занимаетесь, а мешки с цементом грузите.

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

Не замечаю.

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

i-rinat ★★★★★
()
Ответ на: комментарий от phoen

Твой первый абзац про челлендж делит на 0 второй абзац про «просто очередное хорошее решение». Или я не прав?

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

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

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

Зато можешь остаться с выпаданием из сроков со всеми вытекающими и в поисках обоснований для ответа на вопрос «нафига всё это с фичей Х когда У подгорает!?».

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

Есть ещё вариант попытаться объяснить. Я попыталась если что.

Я думаю, что понял. Ты декодируешь фразу «программирование приносит удовольствие» примерно так:

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

Обычные люди декодируют эту же фразу примерно так:

Хотя бы 30% времени, потраченное на программирование за день, приносит удовольствие.


Дискуссия требует попыток понять с обоих сторон. Если одна сторона только пытается донести свою точку зрения, не пытаясь понять точку зрения другой стороны, она не разговаривает. Она вещает.

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

Зато можешь остаться с выпаданием из сроков со всеми вытекающими и в поисках обоснований для ответа на вопрос «нафига всё это с фичей Х когда У подгорает!?».

Какая-то искусственная ситуация. А действительно, нафига? Какую фичу тебе выдали, в той и ищешь челленджи. Плюс, когда уже подгорает то тут уже не до выпендрежа, надо действовать быстро. А если у вас в проекте постоянно что-то подгорает, то тут надо серьезно задуматься о компетентности ПМа. Вообще-то, каждое подгорание – это его косяк.

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

А если у вас в проекте постоянно что-то подгорает, то тут надо серьезно задуматься о компетентности ПМа. Вообще-то, каждое подгорание – это его косяк.

Угу, ПМ не расчитал что у него в команде есть N+1 превозмогатор которому на 2ух часовую задачу нужно 2 дня.

Было бы круто будь по твоему, но обычно разработка - это про сроки при приемлемом уровне качества. Там очень редко бывает место для каких-то неординарных решений в ущерб основному процессу.

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

Давай я попробую продолжить физиологические аналогии :)

В какой момент тебе приносит удовольствие процесс поглощения пищи? Можно ли сказать что процесс еды приносит тебе удовольствие в 30% своего времени? Вот я не могу сказать что мне приносит удовольствие ни процесс орудования вилкой в тарелке, ни процесс жевания, ни момент глотания. Однако по окончании я чувствую что остался доволен. Точно так же и тут. Непосредственно во время решения задачи я ощущаю целую гамму эмоций, и произношу очень много нецензурных слов, однако по окончании чувствую эйфорию. И хотя я уставший, и совершенно не жажду немедленного повторения, в будущем с неизменным удовольствием возьмусь за сложную задачу, потому что знаю что ее решение мне будет приятно.

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

Угу, ПМ не расчитал что у него в команде есть N+1 превозмогатор которому на 2ух часовую задачу нужно 2 дня.

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

Там очень редко бывает место для каких-то неординарных решений в ущерб основному процессу.

Если неординарное решение идет «в ущерб» основному процессу, то оно безусловно нахрен не сдалось (хотя всякое бывает). Идея в том чтобы найти неординарное решение которое пойдет во благо основному процессу. Это и есть настоящий челлендж. А эстимейты – они всегда берутся с запасом, время на поразмышлять всегда найти можно. Вон мы с тобой трендим тут на ЛОРе в рабочее время, и ничего.

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

процесс орудования вилкой

Нравится. Особенно когда текстура еды хорошая.

процесс жевания

Если еда хорошо приготовлена, её приятно жевать.

момент глотания

Отдельно — вряд ли приятно. Но обычно сильно пересекается с пережёвыванием, так что не заметно.

Давай я попробую продолжить физиологические аналогии

Кстати, зачем? Я вижу, что твоё толкование по большей части совпадает с моим. При этом оно не очень совпадает с толкованием «нормальных» людей. И не совпадает с толкованием @alpha.

Однако по окончании я чувствую что остался доволен. Точно так же и тут.

Существенная разница состоит в том, что решение задачи может занимать неделю-две, в течение которой радости от завершения конечно же нет. А вот процесс потребления еды занимает минут 10-15, если не торопиться. За день моментов завершения потребления еды может быть до пяти раз.

i-rinat ★★★★★
()

да, начинающий программист должен читать по-английски, как минимум :)

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

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

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

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

Если неординарное решение идет «в ущерб» основному процессу, то оно безусловно нахрен не сдалось (хотя всякое бывает). Идея в том чтобы найти неординарное решение которое пойдет во благо основному процессу. Это и есть настоящий челлендж. А эстимейты – они всегда берутся с запасом, время на поразмышлять всегда найти можно. Вон мы с тобой трендим тут на ЛОРе в рабочее время, и ничего.

В моем случае - параллельно ищу работу всё таки :) Как и говорил выше - задолбался.

phoen ★★
()
Ответ на: комментарий от i-rinat

Я вижу, что твоё толкование по большей части совпадает с моим. При этом оно не очень совпадает с толкованием «нормальных» людей. И не совпадает с толкованием alpha.

Я этого не вижу. Для меня это все – вопрос мотивации. Как делать что-то от чего ты устаешь. Как получать от этого удовольствие.

Существенная разница состоит в том, что решение задачи может занимать неделю-две

Ну во-первых две недели – это уже все-таки перебор. Если ты долбишься куда-то две недели абсолютно безрезультатно, то тут уже пора признать поражение. А если успехи есть, то значит уже и есть чему порадоваться. А во вторых, да, самодисциплину никто не отменял. Спроси любого писателя/художника/композитора: каково это – писать книжку/картину/композицию. Года может занимать. Однако поди ж ты, получают от этого удовольствие.

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

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

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

Хотя бы 30% времени, потраченное на программирование за день, приносит удовольствие.

А вот это рандомное число вообще непонятно откуда берется, поэтому я сильно сомневаюсь что это общепринятое прочтение.

Если одна сторона только пытается донести свою точку зрения, не пытаясь понять точку зрения другой стороны, она не разговаривает. Она вещает.

Ну хорош уже, я с тобой не воюю. Подели степень самоуверенности комментов на ЛОР-коэффициент перед прочтением, и не принимай близко к сердцу.

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

If you see the end goal of programming as finding the right solution, rather than a spectrum of solutions, you will never truly be successful as a programmer

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

А мне вот кажется что я именно что правильно понял идею автора статьи. Там даже дальше по тексту есть выделенная фраза

Any answer can be “right” if you can justify it given the circumstances.

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

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