Лучшие способы учить новичка к программе? [закрытый]

Что такое NullPointerException?

Хорошим местом для начала является JavaDocs . Они охватывают это:

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

  • Вызов метода экземпляра нулевого объекта.
  • Доступ или изменение поля нулевого объекта.
  • Выполнение длины null, как если бы это был массив.
  • Доступ или изменение слотов с нулевым значением, как если бы это был массив.
  • Бросать нуль, как если бы это было значение Throwable.

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

blockquote>

Также, если вы попытаетесь использовать нулевую ссылку с synchronized, который также выдаст это исключение, за JLS :

SynchronizedStatement:
    synchronized ( Expression ) Block
  • В противном случае, если значение выражения равно null, NullPointerException.
blockquote>

Как это исправить?

Итак, у вас есть NullPointerException. Как вы это исправите? Возьмем простой пример, который выдает NullPointerException:

public class Printer {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public void print() {
        printString(name);
    }

    private void printString(String s) {
        System.out.println(s + " (" + s.length() + ")");
    }

    public static void main(String[] args) {
        Printer printer = new Printer();
        printer.print();
    }
}

Идентифицирует нулевые значения

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

Exception in thread "main" java.lang.NullPointerException
    at Printer.printString(Printer.java:13)
    at Printer.print(Printer.java:9)
    at Printer.main(Printer.java:19)

Здесь мы видим, что исключение выбрано в строке 13 (в методе printString). Посмотрите на строку и проверьте, какие значения равны нулю, добавив протоколирующие операторы или используя отладчик . Мы обнаруживаем, что s имеет значение null, а вызов метода length на него вызывает исключение. Мы видим, что программа перестает бросать исключение, когда s.length() удаляется из метода.

Трассировка, где эти значения взяты из

Затем проверьте, откуда это значение. Следуя вызовам метода, мы видим, что s передается с printString(name) в методе print(), а this.name - null.

Трассировка, где эти значения должны быть установлены

Где установлен this.name? В методе setName(String). С некоторой дополнительной отладкой мы видим, что этот метод вообще не вызывается. Если этот метод был вызван, обязательно проверьте порядок , что эти методы вызывают, а метод set не будет называться после методом печати. ​​

Этого достаточно, чтобы дать нам решение: добавить вызов printer.setName() перед вызовом printer.print().

Другие исправления

Переменная может иметь значение по умолчанию setName может помешать ему установить значение null):

private String name = "";

Либо метод print, либо printString может проверить значение null например:

printString((name == null) ? "" : name);

Или вы можете создать класс, чтобы name всегда имел ненулевое значение :

public class Printer {
    private final String name;

    public Printer(String name) {
        this.name = Objects.requireNonNull(name);
    }

    public void print() {
        printString(name);
    }

    private void printString(String s) {
        System.out.println(s + " (" + s.length() + ")");
    }

    public static void main(String[] args) {
        Printer printer = new Printer("123");
        printer.print();
    }
}

См. также:

Я все еще не могу найти проблему

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

324
задан 34 revs, 8 users 58% 24 November 2011 в 00:03
поделиться

81 ответ

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

1) FizzBuzz. Запускаются с программ командной строки. Можно записать некоторые забавные игры или инструменты, очень быстро, и Вы изучаете все функции языка очень быстро, не имея необходимость изучать инструменты GUI сначала. Эти ранние приложения должны быть достаточно простыми, что Вы не должны будете использовать реальные средства отладки, чтобы заставить их работать.

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

Некоторые проекты:

  • Привет Мир!
  • Занимают год моего рождения и вычисляют мой возраст (просто (теперь - тогда) никакие исправления месяца). (простая математика, вход, вывод)
  • Просят направление (вниз, оставленный, право), затем говорят пользователю их судьбу (падение дыры, найдите пирог, ect). (Булева логика)
  • FizzBuzz, но количество один раз во второй. (Циклы, таймеры и больше логики)
  • В зависимости от их возраста некоторые действительно как приложение, которое называет пользователей случайным оскорблением в некотором интервале. (Циклы, массивы, таймеры, и случайный при создании интервала случайным)

2) Простой Проект , Как только у них есть хорошее схватывание функций языка, можно запустить проект (простая, забавная игровая хорошая работа.). Необходимо попытаться иметь первый проект быть в состоянии быть завершенными в течение 6-12 часов. Не проводите время для проектирования его рано. Позвольте им разработать его, даже если это сосет. Если это разваливается, разговор о том, что произошло и почему это перестало работать, то выберите другую тему и запуститесь снова.

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

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

Некоторые проекты:

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

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

Некоторые проекты:

  • Тетрис
  • основанный на текстовом файле механизм блога
  • Более усовершенствованная работа робототехники
118
ответ дан 4 revs, 4 users 94% 23 November 2019 в 00:53
поделиться

существует wikibook, который довольно хорош для изучения python.

я не знаю, как Викиучебник для других языков, но я лично узнал о Python из wikibook, как это было в феврале 2007

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

2
ответ дан Jiaaro 23 November 2019 в 00:53
поделиться

Если у Вашего брата есть доступ к iTunes, он может загрузить видео лекции вводного курса информатики, данного Richard Buckland в Университете Нового Южного Уэльса. Он - привлекательный преподаватель и покрывает основные принципы вычисления и языка C. Если ничто иное, скажите Вашему брату играть vids в фоновом режиме, и некоторые понятия могли бы впитаться через осмос.:)

COMP1917, Выше Вычислительный - Сессия 2008 года 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

, Если ссылка не работает, вот путь:

Домашний-> iTunes U-> Разработка-> COMP1917, Выше Вычислительный - Сессия 2008 года 1

2
ответ дан CodeCurious 23 November 2019 в 00:53
поделиться

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

Меня, я предпочитаю запускаться с большого изображения и выполнять развертку в основные элементы. Первая вещь, которую я хотел знать, состояла в том, как все это совмещает тогда всю эту Объектно-ориентированную напыщенность речи, затем о классах & экземпляры и так далее. Мне нравится знать базовые понятия и немного теории, прежде чем я изучу синтаксис. У меня было определенное преимущество, потому что я записал некоторые игры в ОСНОВНЫЕ 20 лет назад, но ничего особенного с тех пор.

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

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

2
ответ дан CAD bloke 23 November 2019 в 00:53
поделиться

Я раньше преподавал программирование, и у Вашего брата есть одно основное преимущество перед большинством моих студентов, которых он хочет изучить:)

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

Лично я думаю, Python и Ruby сделали бы большие первые языки.

РЕДАКТИРОВАНИЕ: список распределений работы по программированию новичка казался ночным, мог бы быть, что Вы ищете.

2
ответ дан 2 revs 23 November 2019 в 00:53
поделиться

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

2
ответ дан Anton 23 November 2019 в 00:53
поделиться

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

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

2
ответ дан Brandon Wood 23 November 2019 в 00:53
поделиться

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

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

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

Редактирование: [Justin Standard]

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

4
ответ дан 3 revs, 2 users 53% 23 November 2019 в 00:53
поделиться

Если ему интересно, разве незначительные детали не являются хорошими частями? Используя Python, Вы уже отключили GUI его так, чтобы беспорядка не стало. Почему бы не выбрать проект, игру или что-то и реализацию это. Классическая игра предположения числа Хило может быть просто реализована из командной строки в 20-30 строках кода (в зависимости от языка, конечно) и дает Вам переменные, условия, циклы и ввод данных пользователем.

4
ответ дан jj33 23 November 2019 в 00:53
поделиться

Это - фантастическая книга, которую раньше изучали мои маленькие братья:

http://pine.fm/LearnToProgram/

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

5
ответ дан Jarin Udom 23 November 2019 в 00:53
поделиться

http://tryruby.hobix.com/"> Пробует Ruby (В Вашем Браузере)

7
ответ дан CodingWithoutComments 23 November 2019 в 00:53
поделиться

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

, Если тот импульс существует тогда, все остальное - просто незначительные детали.

11
ответ дан DrPizza 23 November 2019 в 00:53
поделиться

Начинаются с Графики с относительными командами в Python.

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

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

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

12
ответ дан dyoung 23 November 2019 в 00:53
поделиться

Пакет Python VPython - 3D Программирование для Обычного Смертного ( видео учебное руководство ).

Пример кода:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

прыгающий мяч VPython http://vpython.org/bounce.gif

12
ответ дан jfs 23 November 2019 в 00:53
поделиться

Хорошим курсом Python является MIT А Нежное Введение в Программирование Используя Python . Это все бесплатно онлайн, и Вы не должны быть MIT uberstudent для понимания его.

Редактирование [ Justin Standard ]

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

15
ответ дан 4 revs, 2 users 59% 23 November 2019 в 00:53
поделиться

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

После Логотипа, переместитесь в Python или Ruby. Я рекомендую Python, поскольку он основан на ABC, которая была изобретена в целях обучения программирования.

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

Теоретически, можно придерживаться Python, поскольку Python может сделать почти что-либо. Это - хороший механизм, чтобы преподавать объектно-ориентированному программированию и (большинству) алгоритмы. Можно запустить Python в интерактивном режиме как командная строка для получения ощущения того, как это работает или выполняет целые сценарии сразу. Можно выполнить сценарии, интерпретируемые на лету, или скомпилировать их в двоичные файлы. Существуют тысячи модулей для расширения функциональности. Можно сделать графический калькулятор как тот связанным Windows, или можно сделать клиент IRC или что-либо еще.

XKCD описывает питание Python немного лучше: "You're flying! How?" "Python!"

можно переместиться в C# или Java после этого, хотя они не предлагают много, которое уже не имеет Python. Преимущество их - то, что они используют синтаксис C-стиля, который многие (смеют, я говорю больше всего?) использование языков. Вы еще не должны волноваться об управлении памятью, но можно привыкнуть к наличию немного большей свободы и меньшего количества handholding от интерпретатора языка. Python осуществляет пробел и расположение с отступом, которое хорошо большую часть времени, но не всегда. C# и Java позволяют Вам управлять своим собственным пробелом, оставаясь со строгим контролем типов.

Оттуда, стандарт является C или C++. Свобода на этих языках является почти экзистенциальной. Вы теперь отвечаете за свое собственное управление памятью. Нет никакой сборки "мусора" для помощи Вам. Это - то, где Вы преподаете действительно усовершенствованные алгоритмы (как сортировка с объединением и quicksort). Это - то, где Вы изучаете, почему "отказ сегментации" является словом проклятия. Это - то, где Вы загружаете исходный код ядра Linux и вглядываетесь в Пропасть. Запустите путем записи кольцевого буфера и стека для обработки строк. Тогда проложите себе путь.

28
ответ дан 3 revs, 2 users 95% 23 November 2019 в 00:53
поделиться

Вы могли попытаться использовать Alice. Это - 3D программа, разработанная для использования во вводных классах программирования.

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

  • синтаксические ошибки
  • мотивация (пишущий что-то значимое и забавное, а не изобретенное)

Alice использует интерфейс перетаскивания для построения программ, избегая возможности синтаксических ошибок. Alice позволяет Вам создать 3D миры и иметь Ваш контроль кодом (простые) 3D символы и анимация, которая обычно намного более интересна, чем реализация связанных списков.

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

Правовая оговорка: Я работал над Alice.

30
ответ дан 2 revs 23 November 2019 в 00:53
поделиться

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

1
ответ дан David 23 November 2019 в 00:53
поделиться

Я рекомендовал бы также наблюдать некоторые экранные демонстрации - они обычно создаются в контексте определенной технологии не язык, хотя, если будет отображенный код Python, это сделает:). Точка - они создаются некоторыми хорошими программистами и смотрящий, как хорошая программа программистов является хорошей вещью. Вы и Ваш брат могли сделать некоторый одноранговый узел, программирующий также, который мог бы быть еще лучшей идеей. Просто не забывайте объяснять, ПОЧЕМУ Вы делаете что-то этот путь и не тот путь. Я думаю лучший способ узнать, что программирование от хороших примеров, и попытайтесь даже не видеть плохие.

1
ответ дан martinsb 23 November 2019 в 00:53
поделиться

Мне преподавали путем изучения, как решить проблемы в способе агностика языка использовать блок-схемы и PDL (Язык Проектирования программы). После, пару недель которого, я учился преобразовывать PDL, который я записал в язык. Я рад, что узнал, что путь, потому что я потратил большинство своих лет, программируя, решив проблемы, не будучи связанным с языком. Какой язык, который я использую, всегда был деталью реализации и не частью дизайна.

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

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

1
ответ дан bruceatk 23 November 2019 в 00:53
поделиться

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

1
ответ дан DanV 23 November 2019 в 00:53
поделиться

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

1
ответ дан Lea Cohen 23 November 2019 в 00:53
поделиться

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

Некоторые возможные проекты (в произвольном порядке):

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

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

    Вот пример расширенного преобразователя с той же идеей: http: // pastebin. org / 6541

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

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

  • Возьмите некоторое (предположительно большое) количество пенни и конвертируйте его в более крупные достоинства. Например, 149 пенни = 1 доллар, 1 четверть, 2 дайма и 4 пенни.

  • Создайте простой менеджер списков. Уметь добавлять / удалять списки и добавлять / удалять записи в этих списках. Вот пример менеджера рождественских списков: http://pastebin.org/6543

  • Создайте программу, которая будет строить, а затем проверять, образуют ли введенные числа магический квадрат (с двумерным массивом). Вот пример кода, но он действительно должен распечатывать квадрат на каждом шаге, чтобы показать, где находится пользователь с точки зрения построения квадрата: http://pastebin.org/6544

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

org / 6544

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

org / 6544

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

2
ответ дан 23 November 2019 в 00:53
поделиться

Просто повеселитесь!

Удивительно, но Scala может оказаться самым простым, если вы попробуете Kojo

2
ответ дан 23 November 2019 в 00:53
поделиться

Если ваш брат любит головоломки, я бы рекомендовал Python Challenge. Я бы не стал использовать его в качестве формального учебного пособия при обучении 1 на 1, но это то, что он может делать, когда вы не вместе, чтобы бросить вызов самому себе и немного развлечься.

2
ответ дан 23 November 2019 в 00:53
поделиться

Мой фаворит "начинает учиться кодировать" проект, Игровые Змеи или Рынок , потому что это позволяет Вам запускаться медленный (переменные для хранения текущего "положения червя", массивы для хранения положений червя, если червь более длинен, чем одна "часть", циклы, чтобы заставить червя переместиться, если/переключатель позволить пользователю изменять направление червя...). Это также позволяет включать все больше материала в проект в конечном счете, например, объектно-ориентированное программирование (один червь является одним объектом с шансом иметь двух червей одновременно) с наследованием (перейдите от "Змей" к "Рынку" или наоборот, где червь немного изменяет поведение).

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

0
ответ дан BlaM 23 November 2019 в 00:53
поделиться

Я рекомендовал бы в первом обучении самых основ, которые используются почти на каждом языке, но выполнении так без языка. Обрисуйте в общих чертах все фундаментальные понятия Если еще Если еще, Циклы, Классы, Типы переменных, Структуры, и т.д. Все, что является основой большинства языков. Тогда перейдите на реальное понимание булевской переменной, сравнений и сложных операторов AND OR, для надевания чувства, что результаты для более сложных операторов.

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

0
ответ дан Tanerax 23 November 2019 в 00:53
поделиться

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

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

я думаю одна из самых больших точек, которые я гарантировал бы, то, что они понимают базовое понятие платформы. Я знаю, что Вы работаете в Python (который у меня нет подсказки о), но например, с ASP.NET, заставляя людей понять, что страница/код позади модели может быть реальной проблемой, но очень важный , что они понимают его. Как пример, у меня недавно был вопрос на форуме о" , куда я помещаю свой код доступа к данным в 'cs' файле или 'aspx' файле ".

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

Удачи!

0
ответ дан Rob Cooper 23 November 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: