LINUX.ORG.RU
ФорумTalks

Как научиться программировать?

 , , , ,


3

5

Как научиться прогать? Как учились вы? Как учились раньше олды я уже нашел тему и прочитал.

Господа, у меня такая проблема, что в общем и целом подступиться пытаюсь к теме уже 2 года. Начинал я еще в 2009, купили книгу по питону и я ее не осилил. Вот так. Там начались логарифмы(или я их где-то усмотрел, потому что сейчас перечитываю и не могу найти их), а с матаном тогда было совсем туго. Ну я и подумал, что матан == программировать = не мое. На следующий год склепал для игры на ucoz сайтец, немного размял html, потом был следующий сайт уже на гугл конструкторе. В итоге тоже похоронил это дело, т.к. пошел учиться на истфак и информации было очень много. Где-то в 2018 году решил вернуться к вопросу.

Начал с objective-C, начал с основ, буквально неделю подолбился и понял, что дела иметь с аппл и прочим я не хочу, тогда еще свифт начал набирать популярность так что я и вовсе забил. Далее был php. В пхп вникнуть не смог - не знаю кто там говорит за легкость, но мне мешанина из html кода и пхп буквально взрывает мозг. На пхп максимум правил какие-то штуки в шаблонах всяких CMS и забил на это дело. Потом начал javascript, потом забил. Начал изучать Java - было интересно поднять свой сервер для ММОРПГ. Но в итоге как-то забил. Да, здесь вы можете сказать что моя проблема в том, что я забиваю, но читайте пожалуйста дальше эту простыню :)

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

Когда забивал - в основном работал, естественно, не по специальности. Пердолил бубунту, потому что в моем манямирке прогать не на линухе не тру. Да и вообще неудобно. Опять же, вернулся к основам. Читал Лутца, читал A Byte of Python 2 раза, читал Грокаем Алгоритмы Бхаргава. Потом высрал еще пару ботов на питоне, почти схожим с предыдущим примером образом. Я не умею взять и сесть начать писать программу, я буквально не знаю с чего мне начать.

Изучал питоновские фреймворки, пытался делать вот вообще буквально все, куда питон можно приткнуть. Потом принялся изучать Lua, потому что мой друг на С пишет движок для игры и ему нужно было в помощь какой-то чел, умеющий в луну. На ней я скопипастил игрульку, кое-что в ней изменял, кое-что сам додумывал, но вцелом это все не в те ворота.

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

Но проблема в том, что я абсолютный 0. Нет, не так. Дырка от 0. Вот установил wm awesome ради Lua. И то снес, хоть и жалко, не успел я напердолиться. Непонятно как именно строить программу на моем этапе.

Я могу взять чей то код, могу даже починить его и заставить работать - НО НА ЭТОМ ВСЕ.

Сначала, когда писал первого бота на питоне я проклинал все, эти ошибки, трейсбеки, все это уже давно поборол, отношусь нормально и к ошибкам времени компиляции на С.

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

У меня цель простая, хочу писать ПО для микроконтроллеров и вебом как-то на хлеб зарабатывать. А еще надо семью каким-то образом кормить. Просто жесть, неужели я должен столько пролитой крови на этом программировании спустить в унитаз и заняться чем-то другим? Ведь мозг можно обучить буквально всему. Но у меня не идет. Сейчас сижу просто над очередным проектом буквально сутки и не сдвинулся ни на шаг. Когда уже оно пойдет, кто знает? Что делать, как практиковаться?

Ответ на: комментарий от Xintrea

Поправил, спасибо. Теперь так

continue – продолжает выполнение программы;

Jurik_Phys ★★★★★
()

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

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

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

AnonymUser
()
Ответ на: комментарий от shnnmnn

ТЗ выставляет заказчик, требования пишут аналитики исходя из тз. Код и тесты пишутся по требованиям.

aiqu6Ait ★★★★
()

c интересом преодолевающим внезапные трудности

qulinxao3 ★★
()
Ответ на: комментарий от seiken

Это как бы два сильно разных проекта, кмк.
1) «рулить удаленно питанием» (т.е. фактически нужна ферма умных розеток, судя по описанию) - относительно просто;
2) «понимать что за трафик гуляет в сети» - это уже NGFW получается, требующий совсем других компетенций и трудозатрат. Но можно стать конкурентом Cisco, Juniper и прочим Fortinet. Главное, не родить в процессе очередной уродский UserGate...

DummyBoy ★★
()
Последнее исправление: DummyBoy (всего исправлений: 1)
Ответ на: комментарий от crutch_master

но тебя всё равно с кодинга почему-то прёт.

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

тебя тяжело эмоционально.

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

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

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

делание великов всячески порицается в виду огромного искушения таки сделать велик

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

Я думаю, ты просто тяжело переносишь «пустоты»

в корень зришь.

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

тоже согласен, свеобразное искусство. Прежде чем вносить правки надо хорошо понять, что делает чей то код, вчитаться в него, сидеть разбираться. У меня кстати такая проблема, что пока заканчиваю разбираться с функцией, забываю что делает предыдущая, результат который дергает в конце та, с которой разбираюсь. Мысль как бы не всегда может далеко идти у меня. Чтобы было понятнее, я это воспринимаю больше как некоторого рода «стим», «течение». Когда ты ментально находишься в потоке и вроде бы последовательно можешь разбираться с программой. Такое большая редкость.

Берешь и кодишь. Что угодно.

принято. понятное дело, что по мере поступления задач придется разбираться с новыми технологиями для меня. на данный момент вникаю в асинхронность в питоне, хоть уже и отказался от питона, но блин, как инструмент для написания ботов который я хоть как-то освоил - годится. Жалко переходить на другой язык и бросать питон, наверное все время буду к нему возвращаться, что то из него брать и стараться его «не забывать». Хоть и забывать там немного, но после двух месяцев с С++ я знатно офигел с питона, не мог понять как же переменную глобально объявить, пришлось гуглить.

спасибо за советы.

NorthernBlow
() автор топика

Как учились вы?

изучил основы html, css, js и php. совсем-совсем основы, вообще почти нулём был. устроился на работу, там уже по ходу решения задач с помощью гугла осваивал. курсы не проходил, учебники не читал

el-d ★★
()
Последнее исправление: el-d (всего исправлений: 1)
Ответ на: комментарий от el-d

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

NorthernBlow
() автор топика
Последнее исправление: NorthernBlow (всего исправлений: 1)
Ответ на: комментарий от NorthernBlow

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

это точно к этому топику относится?)

про концентрацию как раз писал тут Беды с башкой и работа

el-d ★★
()

У меня похожая история, но я точно не такой упорный. И вообще понял, что для кодинга нужна концентрация, нельзя скакать с места на место и отвлекаться на посторонние задачи. Недаром столько анекдотов про потерянные ошибки в коде. Суда по вашим высказываниями вы тоже мечетесь и бросаетесь на разные задачи, поэтому и не выходит что-то. Может это вам и не нужно. Сейчас столько профессий внутри айти кроме программирования, где можно преуспеть, да и за пределами айти тоже. Вон корпорации тысячами айтишников сокращать начали. Может вообще всему капец ))).

poshat ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.