15 Связанный вопрос
Похоже, на этот ответ уже есть много хороших технических советов, поэтому я просто расскажу вам свою историю, которая, надеюсь, вдохновит вас. Это не должно быть какой-то саморекламой, но это повествование о моем собственном опыте и обо всех разочарованиях, которые у меня были на моем пути программирования.
Как бывший графический дизайнер, изучивший основы Flash в колледже, я впервые попробовал написать код в 2005 году на языке Macromedia Flash ActionScript 2.0, чтобы сделать что-то действительно простое: переместить положение оси x изображения.
Это был не столько код, сколько отдельная инструкция и выглядела примерно так:
Буквально это была всего одна строка, но код не компилировался, и продолжали появляться ошибки, которых я не понимал. Тогда я не мог знать, что (по запутанным причинам) мой код был правильным, но был помещен в неправильную область.
Flash был инструментом анимации кадров на временной шкале, и код можно было написать и затем поместить в определенные кадры, которые выполняли его, когда ползунок временной шкалы продвигался мимо этого кадра. Мой код, по-видимому, не был назначен ни одному фрейму, который я не понимал в то время.
Это очень расстраивало, потому что у меня не было возможности узнать, что я делаю, никто не научил меня делать это правильно, и я не был уверен, с чего даже начать понимать эзотерические сообщения об ошибках. Я даже не стремился научиться программировать, я просто хотел, чтобы мое изображение переместилось в положение 350 по горизонтали на экране, но даже это не удалось.
За несколько лет до этого я потерпел неудачу и в конце концов бросил базовый курс компьютерного программирования, который проходил в старшей школе, что помешало мне на год окончить школу с достаточными кредитами. Меня также перевели с математических классов на математический класс, где я выучил математику, необходимую для работы кассиром в McDonalds. Я думал, что у меня просто не хватает ума, чтобы изучать математику и программирование, и вместо этого посвятил себя тому, чтобы стать графическим дизайнером.
После того, как я не смог правильно написать даже одну инструкцию во Flash и полагая, что я не годился для программирования, я фактически отказался от любых мыслей о попытках написать даже простой код.
Вероятно, это было бы концом моей недолгой карьеры программиста.
Тем не менее, я посещал бесплатные ежемесячные Flash-встречи в моем городе, наполненные профессионалами в области рекламы, которые создавали Flash-сайты для крупных товарных брендов. По сути, они пришли продемонстрировать группе свои впечатляющие работы, и я поразился тому, что они построили. Они использовали тот же самый Flash, что и я, но они могли создавать произведения искусства, которых я не мог достичь с моими базовыми знаниями Flash.
Я уже достиг технических пределов основных возможностей графического дизайна Flash. Чтобы сравнить это ограничение, представьте, что вы можете использовать только HTML и CSS для создания веб-сайтов без каких-либо возможностей Javascript.
Мне стало ясно, что если я хочу выйти за рамки основ, мне придется изучить ActionScript.
В 2005 году YouTube тогда еще не было. Видео еще не было широко распространено в сети. Я не слышал о Википедии еще несколько лет, а руководств по ActionScript было не так много, кроме того, что мало что было найдено на
Поэтому я пошел в местный книжный магазин и купил книгу Flash ActionScript для начинающих за 60 долларов. Тогда для меня это были большие деньги.
Тогда я не мог этого знать, но это будет первая из большой коллекции различных книг по программированию, информатике и математике, которую я в конечном итоге соберу и прочту в течение следующих 15 лет.
Моя первая книга была лучше случайных интернет-руководств, потому что она была хорошо структурирована и давала базовый синтаксис программирования и знания с небольшими приращениями. Изучение базового синтаксиса было далеким от информатики, но я постоянно обращался к книге и искал, как что-нибудь сделать.
Разве это помогло мне решить все мои проблемы, когда я застрял? Нет.
Я в отчаянии стучал по клавиатуре много-много раз.
Я никогда не считал себя умным парнем и, конечно, не гением, но в конце концов я обнаружил, что у меня есть суперсила: упрямая способность не сдаваться.
Я также обнаружил еще один факт: никто не умирает, если ваш код не компилируется. Для написания кода вам даже не нужна лицензия или какое-либо специальное оборудование. Если вы допустили ошибку, пробуйте снова и снова и снова, пока не исправите ошибку.
Я считаю, что успех не в том, родились ли вы умным от природы. Это больше о том, чтобы не сдаваться, когда вы застряли.
Каждый учится в своем собственном темпе, но года может быть недостаточно.
Мне потребовалось еще одно
У меня был крошечный бизнес по веб-дизайну для местных предприятий, и я создавал небольшие Flash-приложения и веб-сайты, которые имели очень, очень, очень базовую функциональность с помощью ActionScript, но самым важным было то, что я постоянно совершенствовался, даже если это было очень медленно.
Я до сих пор помню свой самый ранний код. Забудьте об объектно-ориентированном программировании. До 2008 года мой код был полностью процедурным, без функций и без отступов кода. Это буквально выглядело как длинный список отдельных инструкций, выполняемых последовательно. Я даже не знал о существовании концепции ООП до 2009 года.
Однако я заметил интересную тенденцию, которая, кажется, верна для многих людей: знания увеличиваются.
Это означает, что в период с января 2005 года по декабрь 2005 года я выучил и понял гораздо меньше, чем я узнал в период с января по февраль 2020 года, потому что у меня не было предыдущего опыта или знаний, которые можно было бы использовать, когда я начинал полностью с нуля.
Точно так же я, вероятно, узнал и понял больше в 2019 году, чем мои первые три года в период с 2005 по 2008 год, потому что мне больше не нужно беспокоиться об изучении базовых идей и я могу сосредоточиться на изучении узкого круга знаний.
Когда вы начинаете учиться, ваша кривая знаний изначально линейна или хуже. Вы накапливаете одно знание за раз и изо всех сил пытаетесь его понять. Постепенно, как и сложный процент, он становится логарифмическим, если вы продолжаете его придерживаться. Вы можете относиться к другим концепциям и предыдущим знаниям, которые вы уже понимаете. Первые несколько лет самые разочаровывающие, и именно здесь большинство людей сдаются.
В те годы, когда я начал изучать программирование, я пополнил ряды профессиональных Flash-разработчиков в рекламной индустрии и постепенно перешел в индустрию программного обеспечения, где стал старшим разработчиком, работающим над множеством интересных программных проектов: безопасность, рендеринг графики, Android. разработка приложений и создание сервисов потокового видео для таких брендов, как Showcase и Univision, среди многих других. Я даже видел, как мое приложение Roku работало по телевизору в Центральной Америке на пляжном курорте, где я случайно отдыхал.
Flash уже давно умер, но я смог легко перенести все, что я узнал из своих дней Flash, в Javascript.
Это два моих проекта Javascript, основанных на концепциях математики и информатики, которые я изучил при кодировании с помощью ActionScript. Это тот же код Javascript, который может написать любой. Я использую те же циклы, массивы и переменные, что и все остальные. Просто мне потребовалось много времени, чтобы научиться этому.
Я не считаю себя умным парнем и уж тем более гением. Я провалил компьютерное программирование и математику в старшей школе, потому что бросил это прежде, чем решил попробовать еще раз. У меня нет степени по математике или информатике, но это не мешает мне изучать программирование, математику и информатику самостоятельно.
Я снова и снова сталкивался с отказом. Несколько лет назад я провалил собеседование с разработчиками игр Ubisoft на рендеринг компьютерной графики после первого раунда технического собеседования, но они побудили меня продолжать практиковаться и не сдаваться. Я не скажу вам, что это не ужасно, когда вас отвергают, вы терпите неудачу или совершаете ошибки.
Но стать хорошим разработчиком программного обеспечения - это не навык, которым могут обладать только мировые Эйнштейны. Я верю, что почти каждый может сделать это с упорством.
Я все еще учусь каждый день. Я никогда не узнаю всего, что нужно знать, но я знаю, что не сдамся и буду учиться всю оставшуюся жизнь.
Я знаю, что это тоже не сексуально слышать, но не стремлюсь и не ожидаю создания больших ярких приложений после года программирования. Делайте детские шаги. Мне потребовалось три года, чтобы освоить основы для циклов и массивов. Улучшение происходит за счет крошечных шагов на протяжении многих лет, а не за счет резких скачков вверх, которых мы привыкли ожидать от просмотра голливудских фильмов.
Моя единственная суперсила - это упорная способность не сдаваться и искать альтернативные пути решения своих проблем. Я считаю, что если вы сможете мотивировать себя продолжать, независимо от того, насколько это неприятно, вы тоже сможете достичь этого в один прекрасный день.
Ошибка, которую я совершил при изучении программирования:
Я начал с простого языка программирования VB 6.0, основанного на графическом интерфейсе. Было весело и интересно запустить программу в считанные минуты, но теперь я понял, что трачу много времени на детские вещи. Я хотел заниматься программированием как карьерой, а не как хобби. Я был даже опустошен позже, когда Microsoft выбросила самый известный VB6.0. Не начинайте с простых языков, которые будут тратить ваше время зря. Лучше начните с языков, которые дадут вам хорошую основу для будущих технологий, которым еще только предстоит родиться!
Я бросился к практической, прежде чем приступить к теоретической части. Сначала изучите принципы программирования и получите хорошее понимание построения логических алгоритмов. Такие инструменты, как блок-схемы и псевдокод, очень полезны. Причина в том, что решение проблем и отладка отнимают 80% вашего времени как программиста, а фактическое кодирование занимает 20% (принцип 80/20).
Я никогда не беспокоился об инструментах для программирования, таких как IDE, компоновщики, компиляторы и т. Д. Я никогда не уделял времени изучению того, зачем они нужны и как они работают. Это привело к тому, что я не смог полностью использовать их потенциал.
Для меня свободное владение языком программирования - это конец всего. Теперь я узнал, что языков миллионы, и каждый день рождается много хороших. Важнее всего изучить конструкции программирования: циклы, принятие решений, хранение в стеке и куче, правила языка. Короче говоря, принципы программирования никогда не умрут, но языки умрут.
Оборудование и сети никогда не были важны. Это универсальный грех упущения для большинства начинающих программистов. Программисту необходимо понимать архитектуру оборудования, в которое будет скомпилирован язык программирования: системная плата, ЦП, ОЗУ, хранилище. Изучите основы работы с сетью, чтобы при программировании сетевых приложений, таких как веб-сайты, веб-приложения, вы понимали такие протоколы, как https, ftp и т. Д.
Операционные системы для меня ничего не значили, все, что я хотел, это писать код и наслаждаться u2018Hello World '. Знаете ли вы, что все языки программирования высокого и нижнего уровня взаимодействуют с ОС?
Решение проблем [логика] было тем, что я теперь понял, что должен был хорошо освоить. Логическая математика, логика как предмет хороши для привлечения программиста к архитектуре эффективных библиотек или общих модулей.
С чего же начать изучать программирование, если вы хотите отличаться от других и добиться успеха? Избегайте 7 ошибок, описанных выше. С какого языка начать? Вот моя последовательность: а) сборка, б) в, в) c ++ г) ржавчина д) любой язык, на котором вы хотите специализироваться.
Почему бы не начать с Python или Java, поскольку большинство людей будет показывать рейтинги TIOBE? Переход с C на другие языки проще, чем наоборот. Языки появляются и исчезают, приходят и уходят, но C всегда использовался больше всего при создании других языков. Очень эффективный Java / C # требует JIT-оптимизации для конкуренции. Однако для создания систем или использования в критически важных приложениях и программировании небольших устройств следует использовать C / C ++ или Rust.
Критики скажут, что есть успех, если не нужно учиться на собственном горьком опыте. Помните, что рынки тоже разные, но в конечном итоге успех в долгосрочной перспективе сведет ваши задачи программирования к C.
Ты редко
Вам всегда нужно будет адаптироваться и учиться, так что сделайте это навыком сам по себе. u201cНаучимся учиться
Проще говоря, нет.
Чтобы начать изучать программирование, вам не понадобится ноутбук за 3 000,00 долларов США. Я кодирую 14 лет на компьютерах среднего уровня (до 900.00)
Я помню, как в колледже писал COBOL и у меня был старый 386, и на обработку кода у меня уходила целая вечность, но я все равно выжил. Я помню, как писал это же программное обеспечение на высокопроизводительной машине в школе, и обработка занимала секунды вместо минуты или зависала / зависала. Но это не помогло мне научиться лучше. То же самое с паскалем (интересно, почему я называю такие старые языки? Я перестал программировать после колледжа на 10 лет, прежде чем снова начал зарабатывать деньги 14 лет назад)
Даже при разработке аналитического или графического программного обеспечения мне никогда не требовалась высокопроизводительная машина в 2006, 07, 08, 09, 10 u2026 2019.
Будет ли новый 8-ядерный, 12-ядерный, 4k-дисплей, 2050 ГП или Quadro среднего уровня сделать его лучше? Конечно, доказано, что мы работаем лучше, когда видим новые мощные блестящие игрушки (по крайней мере, на какое-то время). Можете ли вы работать над дизайном быстрее, чувствовать себя гладкими и безупречными? Ага! Однако обучение программированию - это изучение основ и построение оттуда.
К тому времени, когда вам понадобится машина 3000.00, вы будете достаточно далеко продвинуты в учебе и сможете себе ее позволить, не моргнув глазом, потому что тогда у вас должно быть приличное портфолио и несколько небольших контрактов на апворк и т. Д. И т. Д. , возможно, выступая на начальном уровне.
При этом для работы я использую машину более высокого класса, и у меня есть два высокопроизводительных ноутбука, один с xeon и asus pro с двумя экранами, но я могу использовать свою старую модель Zbook 2, если захочу, и до сих пор часто использую.
В детстве я любил играть в Лего. Я бы строил дома, автомобили, самолеты и многое другое, что приходит мне в голову. Сначала я представляю, а потом пытаюсь построить из тех блоков, которые у меня есть. Мне было приятно видеть, что мне удается придумать. Как только я получаю больше блоков, я переделываю части Lego для создания более новых и улучшенных моделей. Это дало мне больше счастья.
И какое отношение Лего к тому, чтобы быть инженером-программистом? Я считаю, что программные платформы следуют тому же открытому и гибкому шаблону проектирования, что и Lego.
Подходы к проектированию программного обеспечения по сравнению с конструкцией из блоков Lego:
Разработать или использовать гибкую структуру, которая может создавать и принимать основные требования конечных пользователей.
Разрабатывайте открытые дизайнерские решения поверх структуры, чтобы облегчить спонтанное повторное присвоение во множестве новых контекстов.
У меня все еще есть тот же энтузиазм и воображение, что и в годы моей работы с Lego, когда я сейчас разрабатываю программное обеспечение. Я верю, что это то, что заставляет меня так сильно любить свою инженерную работу.
Я дал те же блоки Lego своему сыну. Купил ему еще несколько дополнительных коробок. Он играет слишком религиозно. Я не знаю, станет ли он отличным инженером-программистом, но я надеюсь, что однажды он сможет вообразить творческие решения реальных проблем.
Я использовал ttk для графических интерфейсов, тематический слой поверх tkinter, который входит в стандартную комплектацию Python. Документация отстойная, но с ее помощью можно создавать великолепно выглядящие приложения без особых накладных расходов.
Очевидный ответ - выбрать свои языки и фреймворки и овладеть ими. Выбирайте с умом, потому что сосредоточение внимания на языке, который скоро станет нерекомендуемым, - не самая лучшая трата вашего времени.
Но есть менее обсуждаемый набор навыков, которые есть у большинства опытных программистов).
Мягкие навыки. Улучшение некоторых ключевых мягких навыков приблизит вас к тому, чтобы стать отличным программистом, чем изучение другого языка.
Как генеральный директор
Лучшее умение, которое может иметь каждый, - это умение учиться, а великие разработчики овладели навыком самообучения. Великие программисты имеют возможность самостоятельно изучать новые технологии и не боятся этого. У них есть способность извлекать разрозненные фрагменты информации и обрабатывать информацию на лету. Великие программисты найдут разные ресурсы, поговорите с нужными людьми и найдут решение, несмотря ни на что.
Благодаря доступу к онлайн-курсам вам не нужно ходить в школу, чтобы стать отличным разработчиком. Однако многие великие программисты учились в хороших школах и специализировались на информатике. Получение степени в области компьютерных наук помогает лучше понять архитектуру и дает вам целостный взгляд на мир компьютерного программирования. Быть в курсе последних достижений технологий помогает оставаться в курсе последних событий. Читайте множество статей и блогов о последних тенденциях в технологиях, пробуйте новые игрушки в свободное время, следите за сообществами, посещайте конференции и повышайте ценность сообщества, написав.
Делая то, что вам нравится, автоматически поможет вам стать лучше. Лучшие программисты любопытны, любят создавать вещи и просто обожают влияние технологий на мир. Это поможет вам проявить больше творчества и приобрести разные навыки.
Если вы полны энтузиазма, вы воспользуетесь возможностями, которые не могут быть недоступны другим. Начиная работу, не беритесь за работу только потому, что она хорошо вам платит. Возьмите работу, которая поможет вам получить значительный опыт за короткий период времени. Даже если это почти бесплатно. Создайте этот опыт. Попробуйте поработать в стартапе. Работа в крупной компании. Работайте в разных отраслях. Однако не будьте наивны, работа бесплатно - это не долгосрочная стратегия.
В какой-то момент вашей карьеры вы столкнетесь с проблемами. Не позволяйте страху неудачи сбить вас с толку, а вместо этого встречайтесь с каждым препятствием с готовностью учиться, чтобы решать любые возникающие проблемы.
Если вы хотите быть хорошим - а еще лучше - отличным разработчиком, необходимо позитивное отношение. Он будет отражать вашу страсть к работе, вашу преданность проекту и команде, а также вашу готовность идти на все ради создания качественного продукта.
По-настоящему великий разработчик помогает другим становиться лучше. По возможности предложите помощь однокласснику или коллеге. Вы будете добавлять в свою команду или сообщество, а также укреплять свои собственные знания. Мы прилагаем все усилия, чтобы укрепить это отношение в
Приходите вовремя и будьте надежными. Это будет способствовать развитию сильной и организованной рабочей этики, а также установит хорошие отношения между вашими сверстниками или товарищами по команде. Важным навыком для всех программистов является способность оценить количество времени, необходимое для выполнения задачи, сообщить об этом и выполнить ее. Исключительные разработчики отлично умеют управлять своими клиентами или руководителями.
Отличный вопрос и, конечно, по теме для этого Космоса! Я думаю, что важно получить разные точки зрения, поэтому я просто задал этот вопрос одному из наших ведущих разработчиков, Черте. Вот что он сказал:
u201c На мой взгляд, это можно сделать за 2 пункта:
Надеюсь, это ответ на ваш вопрос! U201d
Что важно и нужно знать, чтобы выучиться на программиста:Уметь работать в команде. ... Понимать, что такое приоритет и как правильно его расставлять. ... Обладать феноменальной усидчивостью. ... Не бояться совершенствоваться и учиться новому. ... Любить свой компьютер.4 нояб. 2020 г.Кто может стать программистом? - Компьютерная школа Hillelhttps://blog.ithillel.ua › kto-mozhet-stat-programmistomhttps://blog.ithillel.ua › kto-mozhet-stat-programmistomИскать: Что нужно для того чтобы стать программистом?
Если вам 30, 40, 50 лет — учиться программированию уже поздно На самом деле это не так. Учиться никогда не поздно, более того — многие новички в профессии делают успехи в зрелом возрасте. ... Икона программирования, Дональд Кнут, разработал первый вариант системы TeX вовсе не в 20 лет.6 нояб. 2020 г.После 30 уже поздно, гениальность и математика: разрушаем мифы ...https://tproger.ru › articles › programming-mythbustershttps://tproger.ru › articles › programming-mythbustersИскать: Можно ли в 30 лет стать программистом?
Как уже говорилось ранее, стать Python программистом с нуля самостоятельно несложно, ведь у языка низкий порог вхождения и понятный синтаксис. Пайтон рекомендуется к изучению в вузах в качестве базового языка.28 мая 2021 г.Как стать программистом с нуля в 2021 - Tprogerhttps://tproger.ru › articles › kak-stat-programmistomhttps://tproger.ru › articles › kak-stat-programmistomСохраненная копияИскать: Можно ли стать программистом с нуля?
Основной задачей программиста является разработка и отладка компьютерных программ. ... Прикладные программисты — создают программное обеспечение для решения различных задач (редакторы, игры, бухгалтерские программы, CRM-системы и т. д.).Программист - БудуГуруhttp://buduguru.org › professionhttp://buduguru.org › professionИскать: Что может делать программист?
Что должен знать новичокнавыков написания программ на 2−3 популярных языках (оптимальными для начинающего специалиста считаются Python, JavaScript, HTML);знания и понимания алгоритмов, баз данных, паттернов программирования;изучения фреймворков (программная среда под разные операционные платформы — Windows, iOS).4 июл. 2017 г.Что должен знать и уметь программист - Университет ...https://synergy.ru › education_articles › speczialnosti › ch...https://synergy.ru › education_articles › speczialnosti › ch...Искать: Что должен знать каждый программист?
Обучение программированию в вузе02.03.01 Математика и компьютерные науки;09.03.02 Информационные системы и технологии;09.03.03 Прикладная информатика;09.03.04 Программная инженерия;10.03.01 Информационная безопасность;38.03.05 Бизнес-информатика.27 окт. 2018 г.Как стать программистом: вузы, специальности, карьераhttps://propostuplenie.ru › article › kak-stat-programmistomhttps://propostuplenie.ru › article › kak-stat-programmistomИскать: Какие факультеты для программистов?
Проходные баллы№ВузБалл1МГУ им. Ломоносова4252МГТУ имени Н. Э. Баумана2683НИЯУ МИФИ2754СПбГУ259Ещё 6 строкВ каком вузе лучше учиться на программиста - Edunews.ruhttps://edunews.ru › spisok › vuzy-dlya-programmistovhttps://edunews.ru › spisok › vuzy-dlya-programmistovИскать: В каком вузе лучше учиться на программиста?