27 вещей, которые вам стоит знать, если вы только начали программировать


Оглавление (нажмите, чтобы открыть):

Как учиться программировать: 6 вещей, которые я понял, учась на Хекслете

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

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

Какой язык программирования изучать первым? Неважно!

Не нужно тратить сильно много времени на выбор и мучаться этим. Берите Ruby, Python, JavaScript, PHP, Java, Lisp, да хоть паскаль — не ошибетесь. Для начала вам все равно нужно будет освоить базовые вещи, такие как циклы, условия, переменные, функции, объекты, рекурсию и т.п. Я когда-то в школе немного программировал на всяких бейсиках и C++, но к тому времени, как решил стать программистом, все это успешно забыл.

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

Новички так серьезно подходят к вопросу “Какой же язык программирования выбрать”, будто им предстоит подписать договор с дьяволом, и всю жизнь писать только на этом единожды выбранном языке. Лично для меня просветлением стало, когда я увидел профили высокооплачиваемых программистов на бирже Upwork, почему-то очень во многих из них было написано примерно следующее — могу Django, могу Rails, а еще Meteor и Angular, да и Spring тоже. И Joomla само собой.

Потом я порасспрашивал некоторых знакомых (и малознакомых) программистов об их карьере, и увидел некий паттерн, которого раньше не понимал. Человек может, например, год работать с PHP, потом уйти на Java, потом плюнуть и выучить руби, стать RoR разработчиком, и в итоге заняться Node.js или Clojure. Любой нормальный программист знает несколько языков хорошо и десяток поверхностно. Поэтому не ломайте голову, не пытайтесь выбрать Самый Лучший Язык и строчить для этого тысяча первый вопрос на тостере. Просто берите любой язык и прочитайте по нему хотя бы одну книгу/пройдите курс. Попытки выбрать Самый Лучший Фреймворк из той же серии.

Про первую работу.

Очень многие программисты начинают свою работу с весьма непрестижных компаний и крошечных зарплат. И это нормально. Но это сложно принять, особенно тем, кто решает “войти в айти” уже не в юном возрасте, имея семью и детей. Мифам об огромных зарплатах программистов зачастую способствуют школы программирования, которым нужно продавать свои курсы и в итоге на своих лендингах они крупным шрифтом пишут какие-то заоблачные цифры, вроде “средняя зарплата JavaScript программиста 150 000 рублей”, при этом часто забывают сказать, что такую зарплату получают люди с опытом в несколько лет (или даже десяток лет), которые могут решать реальные сложные задачи, а вам после их курсов на старте светит тысяч 30 на испытательный срок, и это в Москве. А то и вообще попросят бесплатно поработать. За опыт и еду. Не нужно бояться идти на непрестижную и малооплачиваемую работу, потому что как только вы официально начнете работать программистом, даже за 20 тысяч в месяц, ваша привлекательность в глазах других работодателей и HRов сильно вырастет. На старте работу никто не мешает менять хоть каждые 3-6 месяцев, каждый раз уходя на бОльшую зарплату и более интересные задачи.

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

Учиться программировать сложно.

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

Лично я долго (слишком долго) учился на всяких курсах из серии “посмотри на меня, делай как я”. Когда начал учиться на хекслете, у меня от некоторых заданий просто мозг кипел, да и сейчас кипит. Одно задание я пытался сделать 3 дня. Но в итоге я прокачался, и теперь могу решать более сложные задания, чем мог раньше. Мне кажется, именно в этом должна быть цель хороших курсов программирования. Не в том, чтобы натренировать вашу память на запоминание 1000 функций из какой-то библиотеки. А в том, чтобы заставить мозг напрягаться и с каждым днем решать все более сложные задачи.

Про code kata

На определенном этапе (почти сразу после изучения основного синтаксиса одного из языков программирования), нужно набить руку в решении простых (хотя бы простых, для начала), алгоритмических задачек. Есть десятки разных сервисов, где это можно делать — codewars.com, exercism.io, hackerrank.com и т.п. Проскочить этот этап не получится. Если вы зашли на codewars и просто не понимаете, что от вас хотят и как решать даже самые простые задачи первых уровней, срочно вливайтесь в какое-то сообщество, где есть программисты и единомышленники, изучающие программирование, и где можно будет задавать вопросы и получать помощь. Одно из таких мест — слак чат Хекслета. Если вы не научитесь решать эти простые задания, вероятность резиста того, что вы сможете решать какие-то реальные рабочие задачи, крайне мала.

Не нужно зубрить названия функций.

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

К примеру, если я знаю, что обычно в языках программирования есть возможность привести строку к нижнему регистру. C этим знанием общей концепции, если я захочу например, писать на COBOL, просто загуглю — tolowercase in Cobol. И вуаля Lower-case(Item-1) . Если я буду много писать на каком-то определенном языке, я загуглю основные функции по 100 раз, и на каком-то этапе уже их запомню.

Кстати, это очень полезная штука и для изучения иностранных языков, я лично просто ненавижу делать какие-то списки, карточки и зубрить слова. Особенно у меня вызывают желание ругаться матом наборы слов, вырванные из контекста, типа “100 прилагательных на тему Погода”. Это просто нереально запомнить, а даже если и зазубрил сегодня, через месяц 80 процентов забудешь. Гораздо эффективнее просто читать/смотреть интересный тебе контент на языке и искать незнакомые слова в словаре каждый раз, таким образом через какое-то время самые употребительные слова запоминаются естественным образом.

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

Тупить — это нормально. (с) Елена Малышева.

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

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

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

Программирование для себя: почему всем нужно научиться писать код

Nastya Nikolaeva

Навык программирования может пригодиться не только тем, кто хочет создавать программы или сайты профессионально. О том, как умение писать код может облегчить жизнь, рассказал Илья Щуров, доцент кафедры высшей математики ВШЭ и преподаватель Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ. T&P публикуют конспект его лекции «Программирование как новый английский, или Почему программирование не только для разработчиков».

Илья Щуров

доцент кафедры высшей математики ВШЭ и преподаватель Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ

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

Опрос профессиональных программистов этого года показал, что 81% из них программируют в качестве хобби. Это означает, что программирование доставляет удовольствие, что это не просто работа, но и развлечение. Вы можете пользоваться готовыми программами, и в 95% случаев вы будете это делать, даже если вы профессиональный программист. Но в любой области есть задачи, которые никто до вас не решал, и умение программировать позволяет решать их гораздо эффективнее. Однажды я был в , и меня попросили объединить две таблицы. Человек, который поручил мне эту задачу, ожидал, что я начну по одной копировать ячейки из первой таблицы во вторую. Я перенес пару записей, мне надоело, и я написал короткий скрипт, который брал данные из одной таблицы и вместо меня заполнял гугл-форму, что не очень сложно. Мне это понравилось, но больше всего мне понравилось то, что коллеги смотрели на меня так, будто я владею какой-то магией.

Писать код интересно, но, с другой стороны, это испытание. Ты взаимодействуешь с компьютером, и очень часто это взаимодействие, особенно если ты осваиваешь новую технологию, новый язык, выглядит так. Ты пишешь код, считаешь, что написал его верно, а компьютер говорит, что у тебя ошибка синтаксиса. Действительно, забыл точку с запятой, исправил, запустил заново. А компьютер говорит: «Закрой скобку». Через несколько таких итераций программа начинает работать, и становится ясно, кто в доме хозяин. Дело в том, что и у навыка программирования, и у процесса обучения ему есть некоторые побочные (в том числе положительные) эффекты.

1. Экстремальный опыт руководства

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

2. Новый подход к информации

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

3. Профессиональная коммуникация

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

Почему уметь программировать может быть опасным? Первая причина — «тыжпрограммист». Если вдруг кто-то узнает, что вы умеете программировать, на вас начинают сыпаться запросы: «Переустанови мне операционную систему, пожалуйста, ты ж программист», «Почини чайник, ты ж программист» и так далее. Это не самая страшная проблема, есть пострашнее. Например, в 2001 году на первом курсе, когда интернет еще был медленным, я решил, что нужно сделать какую-то штуку, чтобы быстрее обмениваться информацией с друзьями. Я подумал: есть почта, и она работает. Тогда я завел отдельный почтовый ящик для нашей тусовки и написал скрипт. Робот заходил в этот ящик, брал письма, которые туда пришли, и пересылал их всем, кто был подписан на эту штуку. Так сейчас работают гугл-группы. Если я хотел написать всем, я отправлял письмо на этот общий ящик; если кто-то хотел ответить, он отвечал на него же, письмо попадало ко всем, и можно было что-то обсуждать.

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

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

Как научиться?

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

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

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

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

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

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

3. Не беспокойтесь по поводу математики. Желательно знать, что такое остаток от деления числа на другое число, но все зависит от задач, которые перед вами стоят. Конечно, если вы хотите хитро обрабатывать данные, то вам нужна математика в том объеме, который нужен для такой обработки.

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

Есть мнение, что на фоне развития искусственного интеллекта и машинного обучения программисты скоро будут не нужны: компьютеры сами научатся себя программировать. Но мне кажется, что это не так. До тех пор, пока есть задачи и пока нужно объяснять, как их решать, программирование будет существовать. Безусловно, программирование сильно эволюционирует, за последние 20 лет оно изменилось очень сильно. Но от того, что компьютеры стали умнее, разработчиков меньше не стало — наоборот, их стало гораздо больше. И мне кажется, что дальше будет происходить то же самое.

Ломаем стереотипы: 46 мифов о программировании

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

Оглавление

  1. Общие мифы о программировании (15).
  2. Мифы об обучении программированию (12).
  3. Мифы об ограничениях (3).
  4. Мифы о возможностях программистов (2).
  5. Мифы об инструментах разработчика (8).
  6. Мифы о карьере программиста (6).

Общие мифы о программировании

1. Надо быть очень умным

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

2. Нужно хорошо знать математику

Распространенное заблуждение, что для программирования нужно хорошо знать математику. На самом деле, успех в программировании не зависит напрямую от математических способностей, а на начальных порах хватит и школьных знаний алгебры. Формально, программирование — это написание подробных инструкций компьютеру для выполнения определенных задач. Это как создание рецепта для приготовления торта. Нужно уметь взвешивать, считать калории, отличать круглую форму от прямоугольной, описывать последовательность действий. Никакой высшей математики, никаких интегралов и сложных формул!

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

3. Программирование не для творческих людей

Хотя многие люди не подозревают об этом, программирование — это своего рода искусство. Программисты погружаются в создание сайтов, игр и приложений, как писатели погружаются в написание романов, эссе и рассказов. Программирование позволяет выразить свою творческую идею, мысль, акцентировать внимание на интересных вам вещах, подобно живописи или музыке. К тому же, технические навыки позволяют творческим людям расширить собственные возможности. Так, профессиональный дизайнер Антон Любушкин, уставший от несовершенства Photoshop, создал для него линейку расширений на языке JavaScript, которые сделали его работу более эффективной. В общем, программирование — творческая деятельность, способная значительно расширить возможности человека практически в любой сфере его деятельности.

Мастер Йода рекомендует:  Как скрыть свой IP-адрес, чтобы избежать хакерских атак и отслеживания

4. Программирование для “ботаников”

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

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

Программист Вячеслав Бахмутов после занятий тайским боксом. Разработчик в Dropbox. Ранее работал в Яндексе.

5. Нужно иметь особый талант

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

6. Программирование – это скучно

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

7. Вы перестанете общаться с людьми

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

8. Нужно много запоминать

К счастью, язык программирования не иностранный язык, в котором для понимания базовых вещей нужно помнить минимум 2000 слов. Большинство языков программирования имеют похожий синтаксис, содержащий около 50 управляющих конструкций, которые при частой практике не требуют целенаправленного заучивания. То, что вы не можете запомнить, вы всегда можете найти в Сети или в официальных руководствах. Помнить все не только не обязательно, но и не рационально: некоторые знания будут забываться или искажаться в памяти. Даже известные программисты признаются в том, что не всегда могут вспомнить простейший алгоритм. Кроме того, современные интегрированные среды разработки имеют всплывающие подсказки, помогающие вспомнить те или иные инструкции.

Подсказки в IDE PyCharm от JetBrains

9. Нужно знать все алгоритмы

Алгоритмы — основа программирования. Некоторые из них простые, другие для понимания требуют особых знаний. Тем не менее вы не должны знать их наизусть. Когда я учился программированию, я мог записать алгоритм сортировки 5-6 способами и указать различия, преимущества и недостатки каждого. Сегодня я вспомню от силы 2-3 названия алгоритмов сортировки, не говоря уже о реализации, но это не значит, что я стал хуже программировать: без практики материал быстро забывается.

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

10. Мне не хватит усидчивости, чтобы писать столько кода

Профессиональные программы содержат десятки тысяч строк кода, что пугает начинающих программистов. Тем не менее для написания программ разработчики используют одни и те же языковые конструкции. Это как в иностранном языке: для понимания 80% происходящего, достаточно знать 2000 слов (а не 50 000, которые есть в языке). Комбинируя различные слова и фразы, вы сможете разговаривать с любым человеком. В программировании похожий принцип, поэтому программы, будучи составленными из одного множества управляющих конструкций, могут решать широкий класс задач.

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

11. Программирование – это не серьезно

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

12. Мне нужен мощный компьютер

Многие новички считают, что для программирования нужен мощный компьютер и 5 мониторов. Это не так. Получить начальные навыки программирования можно и на обычном компьютере, которым вы располагаете, а если на нем можно запустить игры, то и для программирования он подойдет. Компьютерные игры или браузер требует больше ресурсов, чем программы для запуска исходного кода, такие как компилятор и интерпретатор. Они так же не требуют большого экранного пространства, поэтому N мониторов вам ни к чему.

Гилфойл и его 7 мониторов. Комедийный сериал «Кремниевая долина».

13. Компьютерный код слишком сложный для понимания

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

14. Я создал веб-сайт, значит, я программист

На самом деле, нет. Создание сайтов зачастую не требует знания ни HTML и CSS, ни основ программирования вообще. Профессиональные веб-разработчики владеют множеством технологий и языков программирования. Вопреки слоганам веб-курсов, получить такие знания не удастся за один месяц, не говоря уже о прочих мифических сроках. HTML, CSS, PHP, JavaScript, клиентская оптимизация, базы данных, клиент-серверная технология, SQL, Apache, системы контроля версий — это лишь небольшая часть технологий, с которыми веб-разработчики сталкиваются ежедневно. Однако, не нужно пугаться: стоит только приложить к этому усилия. Свой первый сайт я создал в 2002 году на HTML и CSS, когда учился в 11 классе. И это было захватывающе. Если и вы имеете азарт к созданию красивых и удобных веб-сайтов, то статья о цвете в веб-разработке поможет сделать это занятие более интересным.

15. Программисты все пишут с нуля

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

Мифы об обучении программированию

16. Обучение заканчивается после прохождения курсов

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

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

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

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

18. Сначала нужно выучить весь синтаксис

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

19. Я смогу научиться программированию, посмотрев несколько уроков

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

20. Стать программистом легко

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

21. Это слишком долго

Написать первую программу вы сможете уже через 2-3 дня после начала обучения. Конечно, эта программа будет иметь мало пользы, и вы не сможете на ней заработать, но, возможно, она решит какую-то вашу простейшую проблему. Это уже что-то. Очевидно, писать осмысленные программы вы начнете не сразу, но это время исчисляется месяцами, а не годами. Если уделять программированию много времени и сил, то можно начать зарабатывать гораздо раньше чем через 5 лет, как это принято в вузах.

22. Я никогда не догоню крутых программистов

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

23. Есть лучший курс или сайт для обучения программированию

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

24. Я научусь программированию, быстро сделаю приложение и разбогатею

Стать миллионером — отличная цель. И программирование сможет помочь, но не стоит обольщаться. Билл Гейтс, Марк Цукерберг, Павел Дуров или Сергей Брин — все они не стали миллиардерами за один день. Им потребовались годы учебы и упорного труда. Если вы ожидаете через 2 недели обучения написать свою MMORPG, крутой сайт и мобильное приложение, то вынужден вас разочаровать: так это не работает. Программирование не место для быстрых и легких денег. Тем не менее программирование открывает огромные возможности как для карьерного роста, так и в создании собственного бизнеса.

25. Начинать лучше со сложных языков

Когда вы приходите в первый класс, никому в голову не придет сразу начинать с интегралов, даже умножение вы изучите только во втором классе. Так же и с программированием: хотите сохранить мотивацию и быстрей получить результат — начинайте с простых языков, как Python. Как только вы освоите основы программирования, вы легко перейдете на более сложные технологии и языки программирования вроде C++ или Objective-C.

26. Все курсы по программированию одинаковы, можно выбрать любой

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

27. Чтобы стать программистом, необходимо тратить 30 минут в день

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

«На пике своего обучения я проводил за компьютером по 16 часов в день. Для этого приходилось прогуливать институт и на время забросить спорт. Но это того стоило», — Никита Шультайс

Мифы об ограничениях

28. Я слишком стар для программирования

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

29. Он слишком молод для программирования

Часто родители используют возраст ребенка как сдерживающий фактор для начала обучения программированию. Конечно, существует разница в модели обучения детей и взрослых, но сам по себе возраст не должен быть помехой для начала занятий программированием, как он не является помехой, чтобы отдать своего ребенка на хоккей или гимнастику. Уже с 8-9 лет дети отлично понимают базовые концепции программирования и создают свои первые программы, например на языке Scratch. Кстати, о языках и средах программирования для детей вы можете узнать здесь поподробнее.

Школа детского программирования на Scratch

30. Женщинам не место в программировании

Конечно, мужчин-разработчиков гораздо больше, чем женщин, но это не означает, что женщины не могут или не должны программировать, особенно при наличии интереса. Есть много успешных женщин-разработчиков. Интересный факт: первым программистом в мире была как раз женщина — Ада Лавлейс. А Марисса Майер одной из первых присоединилась к команде программистов Google. Однако, многих женщин не привлекает программирование, как мужчин не привлекает парфюмерная промышленность. Тем не менее это связно не со сложностью профессии, а, скорее, с социально-экономическим давлением и личными интересами женщин. Нет никаких объективных причин женщине не становиться программистом. У мужчин и женщин варианты и пути развития карьеры одинаковы.

Мифы о возможностях программистов

31. Все программисты — хакеры

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

32. Все программисты обязаны уметь чинить технику

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

Мифы об инструментах разработчика

33. Один язык лучше, чем другие

Программисты любят хвалить язык, на котором программируют. Часто можно услышать о том, что тот или иной язык лучше остальных. Но правда в том, что каждый язык служит определенной цели, и нельзя однозначно сказать, что один язык лучше другого. Это все равно что спросить какой язык лучше: итальянский или французский? Зависит от страны, в которой вы находитесь. Тем не менее есть языки, которые лучше подходят для начинающих — например Python. Но вы можете начать и с Java, C# или даже C++. Некоторые языки лучше подходят для математических расчетов, для управления ресурсами компьютера. Исходя из этого, пользу конкретного языка программирования можно определить лишь в рамках определенной задачи. И часто задачи требуют знания нескольких языков. Поэтому языки работают вместе, а не друг против друга.

34. Все языки программирования одинаковые

Часто считают, что все языки программирования — это лишь вариации решения одной и той же задачи. Но это не всегда так. Разные языки программирования используются для решения разных задач. Python хорош для обучения, создания сайтов и обработки данных, JavaScript используется для создания динамических веб-сайтов, на C++ пишут сложный софт, для которого важна производительность, PHP — самый популярный язык для разработки сайтов, на Swift создают приложения под iPhone. Как видите, разные языки подходят для решения разных задач, и профессиональные программисты часто владеют сразу несколькими из них.

35. Крутые инструменты тормозят процесс обучения

Программисты пишут классные и полезные программы не только для других, но и для себя. Одной из таких программ может являться конкретная IDE, интегрированная среда разработки, которая предоставляет пользователю (программисту) удобный интерфейс для работы с кодом. Они сами завершают синтаксические конструкции, а также помогают отслеживать ошибки и опечатки. Может сложиться впечатление, что эти программы пишут код за вас, но это не так. То, что вы управляете автомобилем с усилителем руля, не означает, что автомобиль сам поворачивает. Так и с редактором кода: он лишь помогает, а основную работу делает программист. Иногда профессиональные программисты будут пытаться склонить вас к использованию “жестких” редакторов, вроде блокнота или даже Vim. Однако, использование блокнота или Vim не сделает из вас хорошего разработчика, так же как и использование IDE не сделает из вас плохого программиста.

36. Нужно изучать молодые языки

Python появился в 1991 году, а С++ в 1983, но это не значит, что они устарели, и нужно изучать новые или модные языки. Языки программирования постоянно обновляются, в них добавляют новые синтаксические конструкции, расширяются библиотеки. Это как автомобили: первый Mercedes создали более 100 лет назад, но новые модели выпускают каждый год. Изучайте тот язык, который будет решать поставленные задачи. Хотите начать программировать, то посмотрите на Python; хотите делать сайты — то PHP или JavaScript; интересует мобильная разработка — Swift (iPhone) или Java (Android).

37. Настоящие программисты пишут на C++

А настоящие водители пользуются только механикой и раз в неделю перебирают двигатель автомобиля в гараже. «Элитные» программисты считают некоторые языки программирования отстойными. Например, долгое время так относились к PHP, а сейчас то же самое говорят JavaScript при попытке использовать его на стороне сервера. Тем не менее PHP мощный и популярный язык, на котором был написан Facebook, Вконтакте и миллионы других сайтов. Нет крутых или отстойных языков, есть языки, которые решают конкретные задачи. Всё остальное — это вкусовщина и предубеждения. Выбор языка программирования не должен навешивать на программиста ярлык “недокодера” или какой-либо другой.

38. Я программист, так как освоил HTML И СSS

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

39. Веб-программист не напишет ничего серьезного

Посмотрите на Facebook, Вконтакте и тысячи других сайтов. Их создали веб-разработчики.

Веб-разработчик и предприниматель Марк Цукерберг. Создал самую популярную в мире социальную сеть.

40. Чтобы стать профессионалом, достаточно освоить один язык

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

Мифы о карьере программистов

41. Я быстро смогу заработать много денег

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

42. Я еще не скоро начну зарабатывать

Многие начинающие разработчики думают, что смогут зарабатывать, только когда станут профессионалами. Однако, это не совсем так. Опытные разработчики с портфолио много зарабатывают, но это не повод несколько лет набивать руку в ожидании первых денег. Есть много небольших проектов на сайтах вроде fl.ru, где начинающие разработчики могут попробовать свои силы. Профессионалам там неинтересно, а вы сможете получить опыт и заработать свои первые деньги. По мере роста навыков, опыта и портфолио, вы сможете брать более сложные проекты и больше зарабатывать. Альтернативным вариантом является устройство на работу стажером или юниором, где вы сможете работать над реальными проектами и быстро учиться.

43. Я быстро найду работу, так как на программистов большой спрос

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

44. Работодатель сам меня найдет

Многие выпускники вузов и курсов считают, что раз на программистов большой спрос, то работодатели сами их найдут и предложат лучшие условия, поэтому они сидят сложа руки и ждут. И пока они ждут, другие разработчики активно рекламируют себя, отправляют резюме в интересующие их компании, создают личные сайты, заполняют профиль с социальных сетях, подключаются к проектам на GitHub. GitHub — это социальная сеть для программистов, где каждый разработчик может опубликовать свой исходный код, чтобы его видели другие люди. Вы можете присоединиться в любому проекту и улучшить его. Работодатели очень ценят такую работу.
Не важно, какой крутой ВУЗ или курсы вы закончили, нужно быть очень активным в поиске работы.

45. Все программы уже написаны

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

46. Навыки программирования нужны только программистам

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

50 вещей, которые я хотел бы знать на своей первой работе в качестве разработчика. Часть 2.

Перевод статьи «50 Things I Wish I’d Known at My First Developer Job (Part 2)».

26. Соответствие культуре опасно

Соответствие культуре может быть одной из самых опасных идей любой процедуры найма.

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

Мастер Йода рекомендует:  Архитектура ПО — всё по этой теме для программистов

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

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

27. Языки программирования не делают вас умнее

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

Я думал, что программисты, пишущие на Rust и Go, занимают самые топовые позиции в индустрии, а люди, пишущие на PHP, вероятно, застряли в этом языке и страдают от этого.

Это токсичные и ошибочные установки.

Люди используют те инструменты, которые работают, а сами эти инструменты не служат показателями ума или способностей. Есть программисты мирового класса, пишущие на PHP, Java и всякого рода других «нежелательных» языках.

28. Фреймворки отличаются гибкостью

На своей первой работе я попал в команду Ruby-on-Rails. Пока я учился, я воспринимал Rails как закон, как нечто, высеченное на камне.

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

Если бы я раньше понял, что фреймворки это нечто гибкое, я бы, может, намного раньше стал контрибутором Rails.

29. Ваш стек это не самое важное решение

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

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

30. Ваша сеть знакомств это ваш самый ценный актив

Важно не то, что вы знаете, важно то, кого вы знаете. Это правда.

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

31. Вы ценный сотрудник

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

На самом деле на рынке труда вы являетесь очень ценным кадром уже благодаря вашему умению создавать базовый UI при помощи HTML/CSS и вкраплений JavaScript.

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

32. Разработка программного обеспечения требует времени

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

Учитесь оценивать время и силы. И обязательно учитывайте закон Хофштадтера:

«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера».

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

33. Ваше умение решать проблемы со временем возрастет

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

Когда я начинал, меня очень беспокоило то, что я так плохо себя чувствую после работы. Я приходил домой в 5-30 и проваливался в сон на 12 часов. Я думал, что вся моя дальнейшая карьера будет просто чередованием сна и работы, до самой смерти.

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

34. Whiteboarding токсичен

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

Менеджеры! Не заставляйте людей проходить через это!

Кандидаты! Отказывайтесь писать код на белой доске!

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

35. Написание плохого кода не делает вас тупицей

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

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

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

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

36. Оставляйте какое-то время для себя

Сам я по-прежнему испытываю с этим сложности, но тем очевиднее эта проблема.

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

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

Не нужно работать по 90 часов в неделю в надежде, что это сделает вас более продуктивным. Могу судить по своему опыту: не сделает.

37. Читайте художественную литературу

Это идет рука об руку с резервированием времени для себя.

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

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

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

38. Слушайте активно

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

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

Кстати, сделайте себе одолжение и почитайте книгу «Как завоёвывать друзей и оказывать влияние на людей». Пригодится.

39. Ваше мнение имеет значение

Когда я был начинающим разработчиком, я был уверен, что мое мнение — наименее важное.

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

40. Тайтл сеньора это еще не все

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

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

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

41. В медленном усвоении информации нет ничего плохого

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

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

42. Разработка программ требует выносливости

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

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

Именно поэтому я не люблю термин «спринт».

Москва не сразу строилась.

43. Разработка программ это командный спорт

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

Все выдающиеся программы созданы командами людей, явно или неявно.

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

Построить Москву самостоятельно тоже нельзя.

44. Используйте свои любимые инструменты

Мало что так будоражит разработчиков, как тема инструментария.

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

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

Когда я понял, что мне нравится Emacs, я начал куда тщательнее изучать все, что касается моего рабочего окружения. Простая увлеченность инструментом очень способствовала моему профессиональному росту.

45. Используйте инструменты, которыми пользуется ваша команда

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

46. Оболочка — ваш лучший друг

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

Чтобы привыкнуть к работе в оболочке, у меня ушло много времени, но когда я с этим справился, я стал чувствовать большую близость с моей машиной. Это помогло мне понять свою ОС. Вместо того чтобы ограничиваться графическими интерфейсами инструментов, я чувствовал, что работаю бок о бок со своей машиной.

47. Гуглить это нормально

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

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

48. Сеньоры не всегда правы и они не все знают

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

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

49. Самый громкий человек в комнате не всегда прав

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

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

50. Разнообразие идет на пользу всем

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

Разношерстная группа людей принимает лучшие решения, чем однородная, причем всегда.

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

Путь в мире программирования: 25 вещей, о которых стоит знать

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

Разработчик с пятнадцатилетним стажем, а ныне технический директор образовательной онлайн-платформы для программистов Firehose Кен Мазаика (Ken Mazaika) рассказал на Quora о тех вещах, которые он хотел бы знать до начала изучения программирования. Мы подготовили небольшой список советов на основе его текста и делимся им с вами.

Обучение происходит через действие. Единственный путь совершенствоваться в программировании – постоянно программировать. Не позволяйте аналитическому параличу останавливать вас в самом начале.

Облегчать себе задачу – приветствуется. Регулярно гуглите ответы на возникающие у вас вопросы, так делает большинство программистов. Тут главное не заиметь привычку бездумно копипастить со Stackoverflow.

Самообучение – тяжелый труд. Особенно, если вы не общаетесь с другими программистами. Старайтесь находить пути для общения и обсуждения кода с более опытными специалистами, это поможет учиться быстрее.

Не нужно быть гениальным математиком. Если вы с математикой не на «ты» – это еще не значит что из вас не выйдет хорошего программиста.

Изучение программирование – это не подготовка к тесту. Заучивание разных штук вам не сильно поможет (см. п. 1).

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

Разница между Заглавными и прописными знаками – огромна. Начинающих программистов иногда вгоняет в ступор, что казалось бы, одинаковые символы – на самом деле разные.

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

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

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

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

Делайте так, чтобы компьютер действовал как человек. Многие думают, что программисту нужно мыслить как машина. Но должно быть ровно наоборот.

Правка плохого кода – часть развития. Даже если вы пытаетесь делать каждую часть кода безукоризненно с самого начала, вносить изменения в код – нормально. Вы не пишите книгу, изменить которую нельзя сразу после публикации.

Пытаться понять все – безнадежно. В начале. Не пытайтесь найти ответ на вопрос «почему?», когда возникает каждая новая проблема. В самом начале в этом нет необходимости, многие ответы придут позже сами, без дополнительного поиска.

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

Делать большие ошибки – нормально. Ошибка автора этого списка, Кена Мазаика, однажды стоила компании, где он работал 10 тысяч долларов. И это был самый важный урок в его программистской карьере.

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

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

Предоставьте все детали того, что вы видите (код, логи ошибок, скриншоты etc.)

Объясните, что точно по-вашему должно происходить

Объясните, что точно по-вашему происходит

Объясните почему так происходит по-вашему мнению

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

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

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

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

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

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

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

27 вещей, которые я бы хотел узнать перед тем, как начал программировать

Существует правильный способ попросить о помощи. Всем иногда требуется помощь. Когда вы хотите о чем-то спросить, вспомните об этих советах:

— детально опишите, что видите
— объясните, что должно происходить
— объясните, что происходит
— объясните, почему это должно работать по-другому.

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

Как поддерживать мотивацию для занятий программированием?

Залог успеха в программировании — это регулярные занятия. Но, недостаток мотивации часто приводит к тому, что находятся более “важные” дела, а программированию уделяется всё меньше времени. Многие новички забрасывают занятия, так и не получив ощутимых результатов.

Мы собрали самые полезные советы пользователей Quora, среди которых много практикующих программистов, о том, как побороть прокрастинацию и мотивировать себя в обучении:

Nathan Burchfield, IT Administrator and Developer

  • Окружите себя контентом, связанным с программированием. Подпишитесь на тематические блоги и Twitter.
  • Поделитесь своими идеями с близкими друзьями или семьей. Иногда, когда вы получаете положительные отзывы от других, это мотивирует настолько, что потом сложно оторваться от экрана компьютера.
  • Программируйте не отвлекаясь в течение 2-х минут. Скорее всего, произойдет эффект снежного кома и вы продолжите кодить.
  • Покажите свой код другим. Если вы знаете, что люди могут его видеть, то, как правило, будете держать его актуальным и чистым.
  • Я поставил на заставку рабочего стола такую картинку. Это первое, что я вижу, когда сажусь за компьютер, отлично помогает направить свою деятельность в нужное русло:

Juan Gallardo, Ruby programmer

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

Nikith Shetty

Посмотрите какую-то научную фантастику или фильм про секретных агентов наподобие “Миссия невыполнима”, где видно, на что способны хакеры. Или “Социальную сеть” и вдохновитесь тем, как Марк Цукерберг за одну ночь укладывает сервера Гарварда.

M.Santhosh Kumar

По моему опыту, новички начинают программировать по двум причинам:

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

Laveena Bachani, CS graduate

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

Abir Bhattacharyya, Software Engineer and Statistical Data Analyst

Я бы всё время валялся на диване, ел мороженое, пиццу и леденцы. Почему я, всё таки, выбираю программирование? Потому что, занимаясь им, я могу заслужить любовь, заработать деньги, наслаждаться созданием крутых вещей, радоваться тому, что люди используют мои крутые вещи… и обеспечить своим кошкам счастливую жизнь.

Vemprala Chaitanya

  • Устанавливайте сроки.
  • Читайте качественные коды, знакомьтесь с хорошими open source проектами.
  • Беритесь за такое количество проектов, на которое вы только способны.

Raghav Yadav

Любопытство — это ключ.
Думаю, что будущее за программированием. Не могу представить мир без него. Я часто пишу код большую часть рабочего дня и потом программирую в свободное время для себя. Это моя мотивация. Один из примеров — я написал приложение для настройки субтитров во время просмотра фильма на тот случай, если они не соответствуют звуковому ряду. Похожие небольшие утилиты помогают решать надоедливые проблемы.
Программирование это прекрасно!

Puneet Khanduri, Platform Engineer at Twitter

Программирование — это возможность воплотить идеи в реальность. Это самая сильная мотивация для большинства программистов.

Christopher Reiss

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

Raphael John

Скажу только одно: “Мастерство начинается с небольших шагов”.

Hridesh Kumar

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

Jaime López, Programmer, Code Designer

Меня мотивирует создание собственных видеоигр в качестве развлечения.

Gene Sewell, Programmer, designer, wanderer

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

Yu LongYing, c++ programmer

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

Deepankur Singh

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

Douglas Walter, Full Stack Developer

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

Резюмируя, можно сделать вывод, что все блестящие достижения в программировании — это результат кропотливой работы шаг за шагом. Возьмите курс на нечто большее, чем обучиться программированию, и день за днем, следуя этому курсу, мотивируйте себя делать небольшие шаги. Вам будет гораздо проще, если слово «работа» заменить на «развлечение». Сложно назвать работой или учебой то, что всецело захватывает, как любимая игра. Линус Торвальдс, создатель Linux, утверждает: “большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования”. Научитесь получать удовольствие — это лучшая мотивация.

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

Залог успеха в программировании — это регулярные занятия. Но, недостаток мотивации часто приводит к тому, что находятся более “важные” дела, а программированию уделяется всё меньше времени. Многие новички забрасывают занятия, так и не получив ощутимых результатов.

Мы собрали самые полезные советы пользователей Quora, среди которых много практикующих программистов, о том, как побороть прокрастинацию и мотивировать себя в обучении:

Nathan Burchfield, IT Administrator and Developer

  • Окружите себя контентом, связанным с программированием. Подпишитесь на тематические блоги и Twitter.
  • Поделитесь своими идеями с близкими друзьями или семьей. Иногда, когда вы получаете положительные отзывы от других, это мотивирует настолько, что потом сложно оторваться от экрана компьютера.
  • Программируйте не отвлекаясь в течение 2-х минут. Скорее всего, произойдет эффект снежного кома и вы продолжите кодить.
  • Покажите свой код другим. Если вы знаете, что люди могут его видеть, то, как правило, будете держать его актуальным и чистым.
  • Я поставил на заставку рабочего стола такую картинку. Это первое, что я вижу, когда сажусь за компьютер, отлично помогает направить свою деятельность в нужное русло:

Juan Gallardo, Ruby programmer

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

Nikith Shetty

Мастер Йода рекомендует:  Classmates.Com обвиняют в мошенничестве

Посмотрите какую-то научную фантастику или фильм про секретных агентов наподобие “Миссия невыполнима”, где видно, на что способны хакеры. Или “Социальную сеть” и вдохновитесь тем, как Марк Цукерберг за одну ночь укладывает сервера Гарварда.

M.Santhosh Kumar

По моему опыту, новички начинают программировать по двум причинам:

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

Laveena Bachani, CS graduate

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

Abir Bhattacharyya, Software Engineer and Statistical Data Analyst

Я бы всё время валялся на диване, ел мороженое, пиццу и леденцы. Почему я, всё таки, выбираю программирование? Потому что, занимаясь им, я могу заслужить любовь, заработать деньги, наслаждаться созданием крутых вещей, радоваться тому, что люди используют мои крутые вещи… и обеспечить своим кошкам счастливую жизнь.

Vemprala Chaitanya

  • Устанавливайте сроки.
  • Читайте качественные коды, знакомьтесь с хорошими open source проектами.
  • Беритесь за такое количество проектов, на которое вы только способны.

Raghav Yadav

Любопытство — это ключ.
Думаю, что будущее за программированием. Не могу представить мир без него. Я часто пишу код большую часть рабочего дня и потом программирую в свободное время для себя. Это моя мотивация. Один из примеров — я написал приложение для настройки субтитров во время просмотра фильма на тот случай, если они не соответствуют звуковому ряду. Похожие небольшие утилиты помогают решать надоедливые проблемы.
Программирование это прекрасно!

Puneet Khanduri, Platform Engineer at Twitter

Программирование — это возможность воплотить идеи в реальность. Это самая сильная мотивация для большинства программистов.

Christopher Reiss

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

Raphael John

Скажу только одно: “Мастерство начинается с небольших шагов”.

Hridesh Kumar

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

Jaime López, Programmer, Code Designer

Меня мотивирует создание собственных видеоигр в качестве развлечения.

Gene Sewell, Programmer, designer, wanderer

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

Yu LongYing, c++ programmer

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

Deepankur Singh

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

Douglas Walter, Full Stack Developer

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

Резюмируя, можно сделать вывод, что все блестящие достижения в программировании — это результат кропотливой работы шаг за шагом. Возьмите курс на нечто большее, чем обучиться программированию, и день за днем, следуя этому курсу, мотивируйте себя делать небольшие шаги. Вам будет гораздо проще, если слово «работа» заменить на «развлечение». Сложно назвать работой или учебой то, что всецело захватывает, как любимая игра. Линус Торвальдс, создатель Linux, утверждает: “большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования”. Научитесь получать удовольствие — это лучшая мотивация.

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

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

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

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

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

ВОПРОС 1: ВАМ НРАВИТСЯ РЕШАТЬ ПРОБЛЕМЫ?

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

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

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

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

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

ВОПРОС 2: ЧТО ВЫ ХОТИТЕ СОЗДАТЬ?

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

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

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

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

Прежде, чем начать учиться кодить, нужно задать себе вопрос – а что хочется сделать? Если интересно, как создаются сайты, то лучше сосредоточиться на изучении JavaScript. Если хочется создавать приложения для OS X, то стоит выучить язык программирования Swift. Тем, кому хотелось бы создавать видеоигры, стоит присмотреться к C# и Unity.

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

ВОПРОС 3: ПРОГРАММИРОВАНИЕ ЭТО ХОББИ ИЛИ ПРОФЕССИЯ?

Начинающему программисту также стоит ответить еще на один вопрос – зачем он хочет писать код. Для того, чтобы работать над личными проектами в свободное время? Или для того, чтобы получить востребованную профессию и начать зарабатывать? Ответ на этот вопрос позволит понять, что следует изучить, в каких объемах и задаст вектор всему процессу обучения.

К примеру, новичку может прийти в голову оригинальная концепция для видеоигры и он хотел бы посмотреть, как это все будет выглядеть в реальности. Но при этом у него есть профессия и есть любимая работа, с которой не хочется уходить. В таком случае можно писать код в выходные – было бы желание. Интересно изучать языки, движки, графику? Отлично, не стоит останавливаться. Если процесс приносит удовольствие, то все в порядке. Это же хобби.

Но все меняется, если человек хочет сделать карьеру в индустрии видеоигр. Тут потребуется совершенно другой уровень знаний. Нужно хорошо разбираться в таких вещах, как C++, Unreal Engine 4, Java, LibGDX. Если новичок изучает Ruby или Gosu, то вряд ли он получит работу в этой области.

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

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

ВОПРОС 4: КАК СИЛЬНО ВАМ ХОЧЕТСЯ СТАТЬ ПРОГРАММИСТОМ?

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

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

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

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

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

ПРОГРАММИРОВАНИЕ НЕ ДЛЯ ВСЕХ

Если ответив на эти 4 вопроса начинающий кодер чувствует, что программирование идеально подходит для него, то все в порядке. Вполне возможно, что все получится. Если же появилось чувство, что создание кода далеко не такая привлекательная вещь, как казалось ранее, то тоже все в порядке.

Все дело в том, что большинство людей просто не созданы быть программистами. И это абсолютно нормально.

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

10 самых распространенных ошибок начинающих программистов

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

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

1. Выбор платформы и языка программирования

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

Что же делать? Все гораздо проще, чем кажется. Зайдите на любой сайт фриланса и посмотрите, какие специалисты требуются на данный момент. Скорее всего, вы сможете увидеть общую картину и понять, какие навыки вам нужно освоить. Если вы хотите сесть на красный трактор и уехать в другую страну, то попробуйте посмотреть на ситуацию на зарубежных сайтах фриланса.

Еще один более трудоемкий способ – это ходить на собеседования. Там вы не только сможете понять, нужны ли вы вообще хоть кому-нибудь с тем объемом знаний и навыков, которыми вы обладаете на данный момент. А еще вы поймете, какие требования есть у работодателей.

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

2. Слишком много сомнений

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

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

3. Слишком высокое самомнение

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

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

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

4. Не знать английский

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

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

5. Слишком много комментариев

Конечно, никто не недооценивает важность комментариев в коде. Особенно в специфических моментах комментарий необходим. Ну а если вы работаете над одним проектом в команде, то комментарии становятся неотъемлемой частью кода.

Но вот что вам не стоит делать, так это оставлять комментарии вроде этого: “score += 5; // добавляет 5”. Это очевидно, и нет нужды еще раз писать об этом в комментарии. Конечно, комментировать каждую линию – это отличное упражнение для вашей первой программы. Но это не то, к чему вы должны привыкать.

6. Не доучиваться до конца

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

7. Учить один язык за другим

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

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

8. Пренебрегать дебаггерами

Если вы работаете с такими языками как Java, C# или ActionScript3, то вам стоит пользоваться дебаггером. Он не только облегчит вашу работу, но и обнаружит то, что вы можете не заметить.

9. Не делать бэкапы своей работы

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

10. Писать код без плана

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

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

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

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

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

Путь в мире программирования: 25 вещей, о которых стоит знать

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

Разработчик с пятнадцатилетним стажем, а ныне технический директор образовательной онлайн-платформы для программистов Firehose Кен Мазаика (Ken Mazaika) рассказал на Quora о тех вещах, которые он хотел бы знать до начала изучения программирования. Мы подготовили небольшой список советов на основе его текста и делимся им с вами.

Обучение происходит через действие. Единственный путь совершенствоваться в программировании – постоянно программировать. Не позволяйте аналитическому параличу останавливать вас в самом начале.

Облегчать себе задачу – приветствуется. Регулярно гуглите ответы на возникающие у вас вопросы, так делает большинство программистов. Тут главное не заиметь привычку бездумно копипастить со Stackoverflow.

Самообучение – тяжелый труд. Особенно, если вы не общаетесь с другими программистами. Старайтесь находить пути для общения и обсуждения кода с более опытными специалистами, это поможет учиться быстрее.

Не нужно быть гениальным математиком. Если вы с математикой не на «ты» – это еще не значит что из вас не выйдет хорошего программиста.

Изучение программирование – это не подготовка к тесту. Заучивание разных штук вам не сильно поможет (см. п. 1).

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

Разница между Заглавными и прописными знаками – огромна. Начинающих программистов иногда вгоняет в ступор, что казалось бы, одинаковые символы – на самом деле разные.

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

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

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

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

Делайте так, чтобы компьютер действовал как человек. Многие думают, что программисту нужно мыслить как машина. Но должно быть ровно наоборот.

Правка плохого кода – часть развития. Даже если вы пытаетесь делать каждую часть кода безукоризненно с самого начала, вносить изменения в код – нормально. Вы не пишите книгу, изменить которую нельзя сразу после публикации.

Пытаться понять все – безнадежно. В начале. Не пытайтесь найти ответ на вопрос «почему?», когда возникает каждая новая проблема. В самом начале в этом нет необходимости, многие ответы придут позже сами, без дополнительного поиска.

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

Делать большие ошибки – нормально. Ошибка автора этого списка, Кена Мазаика, однажды стоила компании, где он работал 10 тысяч долларов. И это был самый важный урок в его программистской карьере.

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

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

Предоставьте все детали того, что вы видите (код, логи ошибок, скриншоты etc.)

Объясните, что точно по-вашему должно происходить

Объясните, что точно по-вашему происходит

Объясните почему так происходит по-вашему мнению

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

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

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

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

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

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

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

Добавить комментарий