Форум сайта python.su
Leadwar
И тогда вопрос : Сколько Вы времени отдаете/отдавали - изучению Python ?
Офлайн
4kpt_IVТак а какие тут обиды могут быть, все так и есть…. тут только если мидлу интересен сам процесс обучения как таковой, но думаю что в программировании большинство людей “индивидуальные игроки”, нежели учителя.
Офлайн
renz72Я сначала написал вопрос, а потом понял что ответ я и так знаю ) Все верно , чем больше времени этому отдавать, тем быстрее можно достичь желаемого.
Офлайн
LeadwarНет никакого быстрого способа изучения программирования. Чтобы понимать, где хорошие книги или документация, надо прочитать и плохие и хорошие книги и документации. Опыт надо иметь. А с программами обстоит всё ещё хуже. Чтобы писать хорошие программы, нужно написать много плохих программ, которые даже не работают вообще. И вот потом, когда ты пишешь программу, ты видишь, что если ты напишешь какую-то строчку, то свалишься в свою очередную плохую программу, повторится старая история, где ты нахлебался. Вот пример полной фуфлени. Я вот такие тоже когда-то писал и сегодня перечитываю их спустя годы, смотрю, что я не знал тогда и насколько продвинулся. А почему с программами хуже дело обстоит, чем с книгами, - потому что они используются для мотивации. Если у тебя программа получается, то хочется ещё больше научиться делать, чтобы ещё больше всего написать. И тогда ты можешь ещё больше материалов прочитать, потому что есть смысл. Так вот программы не получаются никогда поначалу, поэтому заниматься не хочется. Я вот писал морской бой и написал за три месяца два поля с кораблями (с расстановкой через стрелочки на клавиатуре), а потом пришло время писать интеллект компьютера, чтобы он корабли искал, и на этом всё закончилось, это оказалось неподъёмной хренью. Я думал о графах, а графов я не знал. А как ещё принимать решение, бить в такую-то пустую клетку или нет, можно же проиграть из-за тупого перебора или рандомного поиска? Это же не интеллект, а фуфло, которое обыграть легко каждый раз, считай, его нет, если он такой. Надо делать какую-то весовую систему для областей, что мол вон та область оптимальнее для поиска корабля. Это сейчас я представляю примерный путь и графы реализую спокойно, если ещё они понадобятся там. А тогда я просто знал, что нужны графы, которые я не знаю. Так я её и повесил на замок. Три месяца - результат нулевой. Это сильно бьёт по мотивации и её надо заново выстраивать, наращивать. А с книжками проще - там ты просто её читаешь и что-то узнаёшь всё время и тебя прямо из книжки автор постоянно домотивирует, чтобы ты её ещё дальше читал и читал. Но с книжками ты ничего никогда не пишешь, только учебные задачки, которые на практике не используются никак, непригодны. Ну, знаешь там, мухобойка бьёт по мухе, которая перелетает из квадратика в квадратик и дальше там этих квадратиков N штук и прочие детали. Или там несколько гномиков делят шоколадку, гномиков три, а в шоколодаке пять клеток и прочие вещи. Ты их нигде не применишь, это всё только для набора опыта делается.
Начал читать книгу, вроде все ясно и понятно. И получается отвечать на все вопросы верно. И прочитал 400 страниц. Но теперь закралось сомнение. А с того ли я начал?
Отредактировано py.user.next (Дек. 31, 2016 21:32:33)
Офлайн
py.user.nextСпасибо большое ! Очень полезный совет. Про сроки понимал изначально, что это не стих выучить, тут можно и в года не уложиться. Про структуру так же понял, недавно, для интереса, решил посмотреть простенький код на js. И на удивление, я немного понимал происходящее. Сразу вспомнил как все говорят, изучив 1 язык, остальные будут легче даваться. Просто изначально боялся потратить 2-3 года на один из языков, а потом понять что нужен другой. Почитал мнения, советы и успокоился, так как мне в любом случае будет нужен более чем 1 язык.
Офлайн
LeadwarЭто точно, у меня есть проекты, где несколько языков задействованы одновременно, включая DSL'ы. Вот если пример рассмотреть, то можно представить себе, что есть какая-то часть на Go, например, потому что на нём легко писать многопоточные программы. И многопоточное ядро программы может быть написано на Go, потому что это удобно, быстро и оптимально (хотя я не любитель Go, но это ладно, всё равно ты его будешь знать, если он может в чём-то помочь, например написать в сто раз быстрее программу и тому подобное). Этой частью на Go управляет скрипт на питоне, потому что на нём можно много чего написать (выразить легко и многие средства есть, вроде того же argparse, где за пять минут полноценную командную строку можно сделать с множеством ключей). А скриптом на питоне уже из операционной системы управляет скрипт на shell'е (Bash или просто sh), потому что shell для этого и создавался, поэтому содержит множество средств для лёгкого взаимодействия между программами в системе. При этом всё автоматическое версионирование внутри проекта, это когда нужно в десяток исходников одним действием записать новую версию программы (которая может обновляться по несколько раз в день), выполняется с помощью мощного препроцессора m4, сделаного во времена начального развития C. Вот этот язык программы m4 - это и есть DSL, который тоже нужно знать, иначе ничего не напишешь на нём и версионировать не сможешь автоматически, в то время как нужно чтобы у тебя каждый скрипт самодокументировался. И будешь это делать руками, а потом и вовсе перестанешь это делать и уберёшь важную информацию из исходников (и не только из исходников, версия и информация об авторе используется и пользователем программы, например, чтобы сообщить автору о баге, найденном в такой-то версии программы).
так как мне в любом случае будет нужен более чем 1 язык.
Отредактировано py.user.next (Дек. 31, 2016 21:20:40)
Офлайн
py.user.nextОтличный вектор. Рад что написал сюда и получил множество полезных советов. А то прям как в темном лесу )) иду и не верю что дойду )
Офлайн
Интересный опыт получил. Для разнообразия представлений, решил почитать учебник Майкла Доусона - Программируем на Python. Много комментариев было под книгой. Были те кто говорил что лучше учебника нет, и те кто говорил, что по нему не возможно ничего выучить. После Лутца, был удивлен скорости прохождения материала. Но весь материал, очень поверхностный. По сути, Доусен вообще ничего не объясняет. Просто показывает как это работает. Единственное, порадовало у Доусона много простых задач. У Лутца, к сожалению, я дошел до функций, но так и не смог без шпаргалок выполнить его упражнения.А так, конечно же Лутц лучший. Разбирает все до атомов.
И ко мне пришло озарение. По сути ведь любую программу сначала нужно представить в виде алгоритма.А потом уже можно переложить на любой язык. Т.е. не обязательно знать какой то язык программирования, для того что бы составить алгоритм программы.Как я понимаю, это достаточно большая часть работы. После чего выбираются способы реализации этого алгоритма ? Я правильно понимаю ?
Офлайн
LeadwarВот здесь писал про этапы разработки. Суть в том, что до конечной реализации есть несколько классических этапов представления программы. На каждом этапе проводится свой ряд действий, чтобы сделать программу лучше. Когда это всё выполняешь, программа получается идеальной с первого раза. Если же ты пренебрегаешь этим, то программа у тебя есть в конечном итоге, но потом её надо переделывать. А если времени на переделку нет (а его нет обычно), то она остаётся в таком виде и потихоньку ведёт весь проект в тупик. Там класс дерьмово написал, тут класс дерьмово написал - и у тебя в итоге целая программа из дерьмовых классов, которая в целом становится тоже дерьмовой. Это как автоваз, почему их называют тазами или вёдрами с болтами - потому что у них везде что-то отваливается постоянно и нельзя взять и просто починить что-то, потому что она вся так сделана.
По сути ведь любую программу сначала нужно представить в виде алгоритма.А потом уже можно переложить на любой язык.
Отредактировано py.user.next (Окт. 29, 2020 23:16:18)
Офлайн
py.user.nextПрочитал этапы.Взял на вооружение.
Офлайн