Задать вопрос
  • Как уйти с распутья технологий?

    @0x131315
    Стратегию уже подсказали: найти любую работу, чтобы кушать, и тем самым выиграть время на изучение чего-то, что поможет зарабатывать больше, и тем самым выиграть еще больше времени, и в конце концов изучить то, благодаря чему будешь работать не на зарплату, а на удовлетворение.

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

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

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

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

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

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

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

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

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

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

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

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

    С третьим - придешь, когда поймешь, что тебе это нужно. Из-под палки не учатся.

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

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

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

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

    Сложность задачи не особо влияет на мотивацию, а вот факт решения/нерешения - влияет сильно. Не решил - значит не осилил, не осилил - значит не достоин, не достоин - значит иди ко дну и не рыпайся. Это как импотенция: импотент - значит не мужик, не мужик - значит никто, ничего не достоин и об тебя можно ноги вытирать. Подсознание портит всю малину, так что не следует давать ему шанса - лучше решить задачу попроще, чем не решить по сложнее.
    Ответ написан
    7 комментариев
  • Действительно ли важно правильное питание для мозга программиста (с точки зрения науки)?

    @0x131315
    Интеллектуальным спецам нужно не только правильно питаться, но и правильно жить:
    1 - шум отвлекает, "выключает" мозг. Шум - это радио, телевизор, и родня.
    Нужна отдельная комната, желательна отдельная хата.
    Дети в доме - конец работе, комната не спасет.
    Единственное тихое время - ночь, но она слишком коротка.
    2 - без четкого распорядка дня работа неэффективна, без распорядка внимание с удовольствием поглощают всякие "срочные" дела, мозг ищет любую возможность убежать от работы. С точки зрения эволюции и выживания - работа мозга самая тяжелая по ресурсам организма, вот организм и пытается эти ресурсы экономить, выключая мозг. Сюда же относятся раздражители и рассеиватели внимания - интернет, телефон, родственники.
    Можно тренировать силу воли, но проще приучить себя к определенному порядку действий, например в рабочие часы блокировать средства связи: смарты в беззвучный режим и с глаз долой, роутер режет все, кроме справочных сайтов, справочные сайты можно заменить оффлайн-книжкой. В общем стараться выводить себя в оффлайн. Ночные часы почти автоматом оффлайновые - никто не побеспокоит.
    3 - когда работаешь головой, требуется постоянно учиться, но к концу рабочего дня мозг "протухает", так что учиться нужно в первой половине дня.

    По питанию:
    Заметил, что чувствую себя гораздо лучше, если не ем сахар, мясо, жирное, и не злоупотребляю водой, и вообще немножко голодую.
    Впрочем, когда чем-то увлечен, голодуешь автоматом - тупо забываешь покушать. Но если совсем не есть - быстро теряешь силы, быстро выдыхаешься, появляется слабость, истощение. В общем еда в прямом смысле заряжает.
    В то же время если пить слишком мало, или слишком много, есть плотно, обильно, употреблять много сладкого и жирного - обязательно будет хуже, сразу или отложено, в течении нескольких дней.
    Вода с жиром вообще не сочетаются: если ты имеешь лишний жирок, излишек воды тебя "раздует" как бегемота, заметно увеличив обьемы жирка, зато когда вода выйдет (а выходит она быстро, в течении 2-3 дней) - также быстро "похудеешь". Так что жир - настоящая подкожная емкость, способная питать водой в течении нескольких суток напрямую, и еще несколько суток - по мере выгорания жира.
    Таким образом нужно есть и пить чуть больше минимально необходимого уровня.
    На счет худобы - слишком много жира в теле это плохо, и болезни всякие, и просто тяжело, но в то же время жир - отличный источник энергии, и когда надо много работать, но кушать нечего/забываешь - жир желателен.

    Вот что нагуглил:
    1 - действительно, недостаток жидкости смертельно опасен, вода жизненно-необходима, переизбыток надувает клетки жира, и вызывает отравление водой. Посему пить нужно, но по норме - присмотритесь к своим ощущениям, каково минимальное количество воды в сутки для вас комфортно, и пейте чуть больше этого. Учтите - недостаток жидкости не только ведет к замедлению обменных процессов, но и к отложенным проблемам с туалетом.
    2 - глюкозу тело может синтезировать само, из жиров. Избыток глюкозы превращается в жиры.

    Вообще с энергоснабжением организма все очень забавно: нативное топливо клеток, в которое конвертируются все другие топлива - молекулы АТФ, это что-то вроде маленьких химических батареек, весь организм пропитан этим веществом, но мгновенная масса его ничтожна - около 250гр. Фокус в том, что эти батарейки производятся организмом в огромных количествах, и тут же потребляются. В магазинах продают порошок АТФ для спортсменов, рекомендуют принимать по полграмма в сутки - это на самом деле звучит смешно, если учесть, что в сутки организм производит около 40кг(!) АТФ (и тут же их поглощает) - эти полграмма погоды не сделают никак. Избыток в 250гр - это именно что оперативный (АТФ - "мгновенное" топливо, может потребляться сразу по потребности) резерв, как конденсатор, на случай если возникнет скачок энергопотребления: пока будет расходоваться этот резерв, в работу успеют включится дополнительные механизмы синтеза. А этих механизмов у нас много.

    Главный цикл энергообмена: АДФ + фосфорная кислота + энергия <=> АТФ + вода.
    Т.е. цикл замкнутый: сколько поглотилось, столько и выделилось. Но можно заметить, что без фосфора и воды процесс не идет.
    Фосфор - в рыбе, значит нужна рыба в рационе, и побольше: мозг требует активного энергообмена.

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

    Основные механизмы синтеза АТФ:
    1 - гликолиз: С6Н12О6(глюкоза) + 2Н3РО4 + 2АДФ = 2С3Н4О3(ПВК) + 2АТФ + 2Н2О. Для превращения сахара/углеводов в глюкозу нужен инсулин, который синтезирует поджелудочная.
    ПВК в мышцах превращается в муравьиную кислоту - та, что вызывает жжение в мышцах.
    2 - кислородный гликолиз: 2С3Н6О3(молочн.кислота) + 6О2 + 36Н3РО4 + 36АДФ = 6СО2 + 42Н2О + 36АТФ
    3 - расщепление жиров, липолиз - дает много тепла, выделяется 131АТФ и много воды. Инсулин тормозит липолиз - глюкоза не дает сжигать жиры. Жировой реактор позволяет греться зимой, и "пить" без воды - поэтому мишки набирают жирок перед спячкой, для отопления, а верблюды запасают жир в горбах - чтобы пить.

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

    Для того, чтобы увеличить подачу энергии в мозг в 20 раз, нужно сьесть углеводов(сахара например), поработать мышцами и активно дышать (ага, секас считается).
    Для того, чтобы увеличить подачу энергии в мозг в 65 раз, нужно наличие жира в организме (в принципе обычное питание и так обеспечивает до 100гр жира в сутки, так что всегда есть что сжигать) и час физ.нагрузки на воздухе (требуется очень много кислорода), отсутствие инсулина: после тренировки 2 часа ничего не есть и 12 часов не потреблять углеводов, можно потреблять только продукты с низким гликемическим индексом, иначе углеводы запустят синтез инсулина, который погасит липолиз.

    Таким образом главных источника энергии два: кислородный гликолиз и липолиз.
    Гликолиз - "быстрый", запускается сразу, как начинается работа в мышцах.
    Липолиз - "медленный", но чрезвычайно мощный, разжигается час, зато горит 12 часов, и обеспечивает вчетверо большую мощность, чем первый - позволяет переносить большие нагрузки, и переносить долго.

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

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

    Ссылки любопытствующим: 1, 2, 3, 4, 5, 6

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