Мой младший брат хочет начать программировать. Ему 14 лет, и он технически склонен, но не имеет реального опыта программирования. Он обращается ко мне за руководством, и я не чувствую, что мой опыт достаточно, поэтому я решил спросить здесь.
Он больше интересуется веб-программированием, но также интересуется настольными / мобильными / серверными приложениями.
Каким будет хороший путь обучения для него? Я собираюсь купить ему кучу книг на Рождество, чтобы он начал; вопрос в том, чему он должен научиться и в каком порядке?
Как я понимаю, ему нужно изучить теорию и код. Я хотел бы начать его с Python или Ruby или PHP. Если он хочет войти в сеть, ему также необходимо изучить HTML, CSS, Javascript и т. Д.
Какой из этих трех доменов (Языки, Теория, Разметка / И т.д.), в каком, как вы думаете, лучшем порядке выучить? Кроме того, я что-то упустил?
Благодарность!
Ответы:
Зарегистрируйте его учетную запись для StackOverflow.com и Programmers.StackExchange.com
и заставлять его просматривать разные вопросы, когда ему скучно . Начните с горячих / самых популярных вопросов.
Также
Помогите ему придумать цель чего-то, что он хочет создать, что находится за пределами его досягаемости, простая игра, приложение, которое может отправить твит? Это должно быть что- то захватывающее . Это поможет ориентироваться в темах, которым он подвергается, и даст ему мотивацию через ощутимый результат, который он создает.
И
По возможности , не покупайте книги в физической форме, если он хорошо работает с цифровой печатью. Уверен, у кого-нибудь из вас есть Android, iPhone, BlackBerry или iPod Touch? Получить ibooks или разжечь приложение и купить цифровые версии .
Необходимость иметь дело с физической книгой замедляет процесс приобретения знаний; инструменты, встроенные в цифровые считыватели, обеспечивают много преимуществ для технического чтения.
Примечание: как уже упоминалось в комментариях, у цифровых и печатных книг есть недостатки, поэтому рассмотрим этот момент с недоверием
источник
Мне действительно нравится то, как я пришел в программирование; единственное, что я могу себе представить, - это доступ к книгам. У моей семьи не было денег на все книги, которые я мог поглотить, а в нашей маленькой сельской библиотеке точно не было технических пособий. По большому счету, это маленький придира.
Я искренне не согласен с теми, кто говорит, что вы не можете изучать теорию в 14 лет. Чем раньше вы изучите теорию, тем лучше. Я прочитал «Искусство компьютерного программирования» в 14 лет, хотя некоторое время уже писал.
Лучшее, что вы можете сделать для своего брата, это дать ему инструменты для реализации его интересов и, по возможности, включить его в сообщество хакеров / программистов, чтобы он мог выучить мышление великого программиста.
Удаляйте его от фирменных инструментов везде, где это возможно. В мире открытого кода ему доступно гораздо больше. Я получил столько же, сколько и во многом благодаря руководству, полученному от более опытных людей из сообщества открытого кода.
Если вы можете себе это позволить, закажите ему учетную запись Safari или помогите купить книги, когда это необходимо. Даже кредитование того, что у вас уже есть, может помочь.
Убедитесь, что у него есть доступ к приличному настольному компьютеру или ноутбуку и серверу или VPS для экспериментов. Если его интересуют мобильные приложения, убедитесь, что у него есть телефон или демонстрационное устройство для работы.
Покажите ему, как найти IRC-каналы, списки рассылки и т. Д. Для вещей, с которыми он заинтересован работать / включается.
Убедитесь, что он знает, как задавать умные вопросы и, наоборот, подробности о пиявке поддержки, чтобы он знал, что не делать.
Его первый язык программирования не самый важный фактор. Совокупность языков программирования, которые он изучает, чрезвычайно важна. Одноязычные кодеры никогда не проходят определенный (относительно низкий) уровень кодирования-foo.
источник
Я бы пошел с обучением для мобильных телефонов, это первоклассная недвижимость. Настройте его с помощью IDE, в которой есть эмулятор телефона, и предоставьте ему телефон, на который он может отправлять приложения .
Установите его для использования в реальном мире и взлома, дополненного некоторой теорией из ваших книг, чтобы направлять его. Убедитесь, что у них есть хорошие образцы.
источник
Я бы пошел в школу, если бы в колледже. Я бы взял это в старшей школе, если бы старшеклассник.
У меня была миссия, и я корректировал бы учебный план соответственно в 14.
многие откажутся от меня за это, но Visual Basic .NET кажется некоторым проще, просто говоря о людях. Похоже, это так для многих, кто не в посвященном.
источник
Начинать с веб-разработки - хорошая идея. Вы можете получить результаты, даже если вы настоящий новичок, и если вы все испортите, это не будет иметь большого значения.
Я бы сказал, HTML / CSS + Php. Как сказал Джефф в своем комментарии, размещение его сайта будет иметь значение, а хостинг Php не дорогой, часто даже бесплатный.
Что касается теории, я бы просто на мгновение забыл об этом. Насколько я понимаю, он в основном хочет повеселиться, и давайте посмотрим правде в глаза, теория не очень забавная. Кроме того, если он любит программировать, у него его будет много в школе.
Очевидно, мы все заботимся о хорошем коде, но если он просто собирается поиграть, какое это имеет значение, если его код запутан?
источник
веб / настольное / мобильное / серверное программирование? Похоже на меня, он интересуется всем. Проблема, однако, он должен начать с чего-то.
Многие не согласятся, поскольку, конечно, нет «правильного» ответа на этот вопрос, но я бы купил ему книгу по Python ( Изучение Python достаточно толстое и тщательное, чтобы занять его надолго), и это определенно язык, который даст ему хорошее соотношение вещей, которые я выучил, и глазных конфет (то есть, чего можно достичь с его помощью). Это также хорошая отправная точка для многих из вышеперечисленного.
После этого посмотрите, что он одобряет больше всего вышеупомянутого, и направьте его дальше с советами в этом направлении.
источник
Предлагает ли его старшая школа уроки информатики? Например, в Соединенных Штатах в программе Advanced Placement есть урок информатики, который изучает базовые концепции информатики (управление, базовые объектно-ориентированные методы разработки, циклы и т. Д.).
Я был в состоянии посещать среднюю школу, которая предлагала курсы информатики в основном все 4 года (от вводного курса до базовых LIPS, MIPS и Open GL). Я закончил тестирование по основам в колледже, а затем переучил много других языков и тем на курсах высшего уровня. Я могу вам сказать, что у мозга 14-17 лет было намного больше трудностей, связанных с теорией, чем у мозга 18-22 лет. Такие темы, как рекурсия, арифметика с указателями, низкоуровневое программирование, топография сети и функциональное программирование, заняли у меня много времени, чтобы поступить в старшую школу, но во второй раз в колледже я обнаружил, что они очень просты, возможно, потому что я '
Несмотря на то, что это было трудно, продумывать КС, начиная с 14, чрезвычайно полезно. Делать это без учителей кажется сложным. Я бы потратил время на разработку веб-страниц для развлечения, потому что это то, чем я любил заниматься тогда (и сейчас), но я бы никогда не научил себя указателям, рекурсии и LISP для развлечения в то время.
источник
Я лично не начал бы с теории хардкора. Я бы начал с практического программирования, смешанного с некоторыми элементами теории. Это может удержать человека гораздо более мотивированным и не отпугнуть его.
Это, например, случай с музыкальными школами. Огромная часть студентов бросает учиться, потому что им становится скучно с теорией, и они теряют интерес.
Кроме того, теория не так хороша, когда ее изучают до того, как вы испачкаете руки от практики. Вы не будете знать, когда и как его применять.
Но если у вас были некоторые теоретические знания, то много практиковался, после этого серьезный курс в области ИТ вывел бы вас на другой уровень. В противном случае годы, проведенные в университете, просто теряются на глухой год.
В этой последовательности:
Некоторая базовая теория об оборудовании, компьютерной архитектуре и программировании этого оборудования. Просто основной.
Затем развивайте практические вещи. Основные приложения для поддержания интереса. Сначала местный, потом что-то с графикой. Веб-страниц еще нет, поскольку вы хотели бы продемонстрировать программирование на стороне сервера, и оно часто бесполезно без баз данных.
Оставьте ему немного знаний базы данных
Интерфейс вашего локального приложения с базой данных. Тогда попробуйте веб-разработку.
Отрегулируйте курс, как вы идете.
источник
Мои логические предпочтения основаны на том, что я знаю сейчас:
Выяснить, как все работает сейчас. Пока вы утверждаете, что он технически склонен, насколько хорошо он понимает, как работает компьютер в данный момент? Например, понимает ли он разницу между разметкой и сценариями? А как насчет написания небольших сценариев для того или другого? Это было бы моим предложением для отправной точки, поскольку демистификация того, что у нас есть вокруг, является хорошей отправной точкой, учитывая все вещи, которые можно исследовать довольно свободно.
Выберите язык, IDE и систему контроля версий. Теперь, хотя это может показаться чем-то вроде броска на кого-то, это довольно простые инструменты, которые, немного потренировавшись, он вполне может затем перейти к более крупным вещам. Выяснить, как сделать "Hello World!" веб-страница с сообщением, встроенным в JavaScript, не является плохой отправной точкой, если здесь нужно что-то более конкретное.
Теперь начните добавлять некоторые более сложные вещи. Как сделать петли или условия? Это пока что не так уж и красиво, но мы все еще находимся на стадии разработки строительных блоков. Наконец, представьте идею классов и какие идеи стоят за этой концепцией.
Это было бы тем, с чего я мог бы начать, если бы кто-то хотел получить некоторые основы моего набора навыков.
источник
Я никогда не думал, что скажу это, но получить его Алиса 3.0 .
Я ненавижу Алису с пылающей яростью в тысячу солнц, но она определенно хорошо справляется с обучением основам программирования (циклы, операторы, функции и т. Д.) В сочетании с приличным учебником.
Как только он усвоит основы, перейдите к более практичному текстовому языку.
источник
Это кажется разумным. Передайте некоторые базовые навыки и помогите ему воплотить в жизнь идею для сложного, интересного проекта.
Его первые переживания не обязательно должны быть идеальными, на самом деле это поможет, если он сделает кучу ошибок рано. Вы просто хотите убедиться, что он по-прежнему заинтересован в расширении своих знаний. Когда он преодолеет свои ограничения, он будет просить о помощи, и вы можете указать ему правильное направление, если он еще не расширился, чтобы ссылаться на материал.
источник
Принесите ему книгу о разработке, управляемой тестами. Это сделает твердые юнит-тесты второй натурой для него. Я бы хотел, чтобы тестирование стало основой моего программирования с нуля.
источник
Я бы начал его с языка на основе Си. Я обнаружил, что есть более полезные ресурсы для них. Вы также можете найти книгу о том, как разработать и отформатировать ваш код, чтобы он начал с хороших принципов кодирования. У меня был класс, посвященный этому, и мы использовали книгу «Чистый код», а другую - «Разработка программного обеспечения: принципы проектирования», если я правильно помню. Я также хотел бы, чтобы я был представлен на этом сайте раньше, ха-ха.
Больше всего мне помогло прохождение стажировки в начале моей карьеры в колледже. Я пошел на ярмарки вакансий в качестве новичка и получил стажировку на втором курсе. Я также пытаюсь создать проект, над которым я все время работаю, и мне нравится делать то, чего я никогда раньше не делал, чтобы я мог продолжать учиться. Прямо сейчас я работаю над использованием Raspberry Pie и реализую Siri от Apple для системы домашней автоматизации.
Хотя, в принципе, делайте все возможное, чтобы это было весело. Не расстраивайся. Делайте перерывы. Не слишком увлекайтесь книгами. Иногда лучший способ научиться - просто пойти на это и использовать метод проб и ошибок.
Ох ... и научись гуглить :)
источник
уровни следуют
не забывайте модульные вещи, когда вы учите, понимайте, что он не поймет javascript, пока он не знает c / c ++ или python и т. д.
Добавлено 07.04.2013
в возрасте 14 лет, когда вы хотите вначале попробовать свои силы в программировании, вам необходимо понять, какой ресурс мне нужен, чтобы выполнить задачу, проект или базовые рекомендации, а также, как я уже упоминал в моем посте, сначала изучите основы программирования, это поможет вам чтобы понять, как программы или программное обеспечение работают с циклом и условием, когда в следующий раз вы думаете, что я все понимаю, но я не знаю, как получить доступ к мыши или что-то сделать, когда я щелкаю куда-то, вы попробуете некоторые библиотеки, такие как графика и мышь, чтобы вы понимали как это работает, следующий вопрос придет вам в голову, как разместить мои кнопки и добавить события, чтобы они могли взаимодействовать с моим кодом, так что вы захотите изучить программирование событий, а затем, когда вы завершите этот этап, возникнет следующий вопрос, который я сделаю очень большим. код, и я не знаю, как вызвать функцию немного сложнее,тогда вы попробуете модульность, объект и классы для приложения,
после этого вы будете думать, что я знаю, как создать базовое приложение, но я хочу создать приложение для базы данных, затем приходит на ум база данных, вам нравится учиться, но проблема в том, что вам трудно связываться с кодом, поэтому вы будете работать с базой данных командная строка,
это программный подход, верьте, я делаю и учусь одинаково, и мои основы совершенно ясны, поэтому я могу понять, как работают подпрограммы или программы, как
только вы поймете и будете достаточно уверены в том, что приложение для настольного компьютера сможет попробовать те же навыки для HTML
Когда вы попробуете html, вы почувствуете, что это намного проще, чем то, что вы узнали раньше, просто потому, что вы потратили много времени на основы.
в html разберитесь в структуре и в том, как работает код, как только вы это узнаете, вам понравится проверять и подключать базу данных для приложения, пытаться и вы добьетесь успеха за день, вы можете легко собрать кнопки формы и выполнить валидацию с помощью javascript, тогда вы зададите вопрос себе, я все сделал, но как насчет того, что это не совпадает с тем, что я вижу в Интернете, так что постарайтесь с CSS, я очень уверен, что если вы посвятите себя поиску CSS с лучшей IDE или Dreamweaver, то вы это сделаете быть влюбленным с html / css.
Вам достаточно создать простое приложение или веб-сайт с HTML,
в определенный момент вы зададите себе другой вопрос, как сделать его динамичным, когда вы знаете, что гиперссылки работают хорошо, тогда что делает динамический, давайте подумаем о базе данных, которую вы изучите заранее ,
да, это моя точка зрения: показывать записи, вставлять записи, удалять записи и играть с базой данных локально с помощью JavaScript и программирования на стороне сервера, тогда вам автоматически придет в голову другая концепция: создание пользователя, проверка, сеанс, история пользователей, интернационализация и т. д.,
и вы будет идти без руководства, потому что ваша база ясна, и вы знаете, что делать и какой ресурс вам нужен для выполнения задачи
вот и все этапы. основы очень важны и правильные шаги также. если вы знаете основы, вы можете легко выучить другой язык или перейти с одного языка на другой,
спасибо за чтение
Добавлено 07.04.2013
Progarme - это не что иное, как набор инструкций и процедур, например, наша повседневная жизнь, мы просыпаемся, принимаем ванну, обедаем, работаем, обедаем, ложимся спать.
но если мы не справляемся ни с одной из задач, которые мы чувствуем себя некомфортно, то есть, если день воскресенье, когда у вас нет работы или в отпуске, условие меняется, а также распорядок дня, так что вы получаете соответствие с другими вещами, то есть с подходом программирования, учиться из практического, а не из того, что говорят вам книги, книги хороши для справки, но понимают, как мы реагируем естественным образом, работаем с помощью выражения if-else, например: предположим, у нас есть две работы, и обе очень важны, но мы можем делать только один за другим, вы выбираете 1-й и завершаете, затем вы можете идти домой, если вы выбираете второй, то вам нужно работать в течение следующих 5 часов, в противном случае, если вы завершите обе работы, вы получите 1-дневный отпуск, вот о подходе программирования
источник