Новичок, изучающий самостоятельный Python, что еще мне следует изучить?[закрыто]

StackOverflow https://stackoverflow.com/questions/805720

  •  03-07-2019
  •  | 
  •  

Вопрос

Я новичок в программировании.У меня был 1 семестр информатики (мы использовали Java).За курс я получил пятерку и смог выполнить все задания, однако не уверен, что действительно понял это.Я проигнорировал текст и учился, просматривая примеры программ, а затем методом проб и ошибок.Я был впереди всех, за исключением двух парней, которые пришли со знанием Java или другого ООП-языка.

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

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

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

Я не собираюсь учиться за «30 дней», «1 неделю» или что-то еще.Так что начинать с самого базового уровня меня вполне устраивает.

Заранее спасибо.Я поискал и не нашел того, что искал.

ОБНОВЛЯТЬ:Спасибо за отличные советы.Я нашел этот сайт на работе и не смог найти его на своем домашнем компьютере, поэтому сейчас только читаю.

Это было полезно?

Решение

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

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

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

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

Д'А

Другие советы

Специально для Python-части вашего вопроса я очень рекомендую http://www.diveintopython3.net/ Марк Пилигрим.Это бесплатно и довольно хорошо структурировано.

Python — хороший выбор, вам будет весело!

http://www.pythonchallenge.com/

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

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

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

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

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

Чтобы узнать о различных типах структур данных, см.: http://en.wikipedia.org/wiki/List_of_data_structures.Обычно каждая структура данных полезна для определенной цели (например,двоичные деревья поиска хороши для поиска отсортированной информации).К сожалению, у меня нет рекомендаций по книгам (в нашем классе книга не использовалась).Поиск в Google «Структуры данных» должен стать хорошей отправной точкой.

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

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

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

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

Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать.Удачи!

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

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

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

Я начал использовать Python (как мой первый язык программирования) несколько месяцев назад.Я бы посоветовал «Изучение Python», Марк Лутц начать с.Но имейте в виду, что ключ к хорошему обучению — это быть непредубежденным, терпеливым и готовым работать и искать вещи, которые вы не понимаете.

Веселиться!

Я бы посоветовал посмотреть онлайн-книгу по адресу http://www.diveintopython.org/ изучить питон.

Что касается проектов Python, я бы попробовал изучить Django Framework.Это основа для создания веб-приложений.У них отличный руководство для того, чтобы начать с этим.Это также даст вам опыт создания веб-сервера на Linux.

расширить свои знания о компьютерах

Ну, что именно ты имеешь в виду?Python, как и любой другой язык высокого уровня, создан так, чтобы скрывать все неприятные детали.Это одна из причин, почему он подходит для непрофессионалов, например (например,ученый).

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

Короткий ответ: все они

Длинный ответ:

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

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

Когда вы перестанете считать один язык своим родным, вы сможете учиться на примерах на других языках, даже если вы никогда не программировали на них.Лично я написал всего несколько программ на Haskell, но имея возможность читать Haskell открыл мне множество идей, которые я мог бы использовать в более практичных программах на Scala и Python (о да, после того, как вы изучите Python, просмотрите Scala, и вы, вероятно, никогда больше не будете использовать Java).

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

Потребуется много лет, чтобы прийти к тому, что ни один язык программирования не станет полностью иностранным (или, по крайней мере, иностранным для более чем одного дня взлома), но я думаю, что это очень здоровый и реалистичный долгосрочный план — попытаться завоевать представительного образец каждой грубой категории.Удачи!

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

  1. На что был способен Python
  2. Идиоматический, «питонический» способ что-то сделать.

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

Если вы собираетесь начать с азов.Это, конечно, наиболее рекомендуемая отправная точка.Это долго, но оно того стоит. http://www.diveintopython.org/

Поскольку вы немного разбираетесь в Java, это может быть даже лучше для вас. http://www.swaroopch.com/notes/Python.Запустите Python 2.x или 3.0.Лично я фанат Python 3.Но для начала может быть сложно найти образцы и ссылки на программы в Интернете.Так что для вас 2.x может быть лучше.Но я оставляю это на ваше усмотрение.

Как будто я начал «Написание программ..».Вы можете начать здесь.

  1. http://www.spoj.pl/ - сайт задач по программированию, где вы можете выбирать из широкого спектра тем, в основном алгоритмов, и имеет огромную базу данных вопросов.Конечно, выбор языков программирования остается за вами.
  2. http://projecteuler.net/ - сайт математических вопросов, здесь нужно просто отправить ответ, здесь разрешено жульничество, так что смело заимствуйте логику у других, но попробуйте написать программу самостоятельно.

После того, как вы решите, что приобрели достаточный уровень владения Python, вы можете попробовать рецепты из этой книги. Поваренная книга Python. http://www.amazon.com/Python-Cookbook-Alex-Martelli/dp/0596007973.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top