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

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

Умею/когда-то учил/вывел сам и пользуюсь, а потом обнаружил что это уже изучено:
1. exe когда-то давно работал с 3D без движков, в т.ч. слегка участвовал в демосцене.
2. Когда-то на делфи писал клиент браузерной онлайн-игры с кэшированием графики, взаимодействием с топорными несовсем апи и т.д.
2. Издавна верстал на html/wml, знаком с css еще со старых версий (всегда, даже тогда уже верстал divами)
3. Раньше мог править php и js и писать простенькие вещи, недавно плотно и небезуспешно занялся изучением php
4. более-менее (мне так кажется) разобрался в ООП, httacces, шаблонах проектирования (в основном mvc, пока учился собрал небольшой фреймворк с шаблонами, контроллерами и т.д.), более-менее разобрался в наследованиях и прочем по теме, местами плаваю, но обычно до первого прецедента.
5. почти с зарождения этого дела в РФ занимался, онлайн платежами, премиум смс (МТ и MO), ussd, контентом, биллингами и т.д. понимаю протоколы общения платформ (кроме, разве что, smpp не особо пока)
6. Знаю довольно многих методов решения разных узконишевых, но сверхкритичных задач в контексте системы, где общепринятые методы бывают крайне дороги. (Вообще, в этом обычно заключается моя работа, но в данном случае, речь о различных цифровых машинках)

17 Responses to Обучение программированию

  1. VokApp:

    И вот тут-то многословная простыня с кучей пояснений и прочего, заранее сорри, сначала сократил, но потом решил вернуть как было в виде «потокак сознания», это, на мой взгляд, отсечет некоторых кто посмотреть да поржать зайдет, а те, кто идейно близок, надеюсь, поймут с первых строк (и да, пост пишется во время 3х часового ожидания, так что времени и мыслей было много, буков тоже много):

    Хотелось бы:
    1. подраскачать скилы программирования сначала на php/js, параллельно, по возможности haskell, после чего выходя на perl/lisp или сразу на java/python.
    2. научиться наиболее оптимально реализовывать задачи, где не совсем очевидны способы решения.
    3. Подучившись хочу перейти на java/python/(местами, как писал выше, для части экспериментальных вещей планирую использовать haskell, но т.к. он больше для работы с морфологическими штуками, а у меня планируется сементика — вряд ли его использование уйдет дальше внутренних экспериментов и отработки алгоритмов)
    4. дальше начать использовать все вышеописанное в плотной связке с globaldb и некоторыми другими nosql (быть может, как трамплин для обучения буду использовать, mongo и редис(насчет нужности не уверен), пока не знаю)
    5. а далее, в основном предполагается пользоваться графовыми базами данных (пока что, лидирует, наверное, globaldb, но, возможно, считаю так по незнанию и есть что–то другое, что более мне подходит)
    В
    6. Так же, подозреваю, что необходим некоторый админских скил, понимание никсов, умение создания (а не только умения описать админу что мне нужно), потому как исторически я виндовод (была даже версия 2.0 рабочая, 1.0 тоже была, но в то время мне не хватило то ли мозгов, то ли спектрума ее завести), с линуксом общаюсь мало, не совсем понимаю *nix архитектуру, сейчас вот полностью перешел на маки, потихому что-то разбираю, но того уровня, который был в общении с виндой, естественно, нет и да него далеко (до перехода на nt знал все наизусть и, конечно, как один мой давний коллега Олег, exe, com и библиотеки прямо в редакторе не правил вручную, но отлично работал прямо руками с разворачиванием софта в памяти и мог завести на машинке в 33 мгц с 4мя мб памяти 95ю винду, 97 офис и требовательные досовские игры вроде парка юрского периода где часть уровней была в 3d и жрала неимоверно много ресурсов. так же, несколько раз в одной команде делал неплохие демки), в то время как издавна взгляд на кеды/гном или подобное вызывает ощущение наебалова, не знаю почему. Из оболочек, кстати, единственная линуксовая, но и ее я использовал на винде в связке с samurize — blackbox, по сути, из-за высшей степени гибкости обеих, на выходе был преотличнейший интерфейс с интерактивными помощниками, украшательствами и панельками, как сейчас в макоси (После прочтения книжки Лукьяненко про глубину даже была попытка прикрутить базу и часть dll от распознавалок голоса от горыныча, которая сейчас dragon dictation и до voice pilot, но не увенчались успехом, потому как и алгоритмы распознавания были довольно топорные тогда, софт довольно своеобразный и базы которые было проще дополнить или собрать с нуля (а это сложно и дохуя времени нужно), вместо выучивания единственно-верных произношений или продолжительная калибровка под каждого отдельного человека — все эти факторы, к сожалению, очень повышали порог входа в решение этой задачи и никак не желали меняться, в то время как я, в свою очередь менялся очень даже ввиду пубертатного возраста, что не могло не посеять некоторые зерна сомнения и пошатнуть уверенность в том, что оно того стоит для личного пользования, а о коммерческой составляющей и перспективах я особо не думал больше думая о девушках, сексе, сиськах и список (он был большой, но конечный ибо я из очень маленького города) «самых в моем вкусе девушек нашего города» именуемый «книжка-блядуница 1.0» в конечном итоге оттянул одеяло/время/мысли/выбросы серотонина, а особенно, внимание — на себя ежедневно напоминая и заставляя продумывать, отрабатывать в теории и на практике оптимальные варианты решения задач, больше связанных с психо/социо/физио логиями, сопроматом, конспирацией и основы теории смазки трущихся частей механизмов.

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

    Как вы, наверное, и сами знаете, такие задачи самому себе бывает сложновато ставить, а т.к. по роду деятельности я занимаюсь кризис менеджментом и «консультированием по общим вопросам» с ненормированым графиком, я не могу взять и устроиться на пол годика быдлокодером–падаваном куда–нибудь на небольшую ставку только для обучения. Да и доходы от программирования и других услуг за которыми обращаются слабо соизменимы.

    Отсюда получились такие вопросы:
    1. Хотелось бы разбираясь в каких–то вещах иметь возможность найти не сферические задачи в ваккууме, а что–то из живых проектов, параллельно реализуемое каким–то профи, дабы после реализации сравнивать результат, получать подзатыльники и намеки на лучшие решения.
    2. Что более важно — хотелось бы видеть какие–то нетривиальные задачи из ниши «нарочно не придумаешь» которые тоже бывает нужно решать и находить оптимальные алгоритмы.
    3. Иногда, ввиду того, что оптимально я обучаюсь только на практике, плохо запоминая статичные данные и термины, бывает, что возникают идиотские затыки, где нужен малюсенький пинок или намек размером в одну фразу, но самому дойти до этого — нужно время, а его тратить не хочется ибо снижается КПД.
    Ну и 4. просто советоваться с кем–то, когда не могу найти более совершенный алгоритм, а чувствую, что он есть, просто не знаю каких–то вещей из мат части или каких–то неочевидных, но эффективных методов, передаваемых из уст в уста прогерами.
    И 5. маловероятно, но вполне реально: для отработки повседневных вещей, готов на очень демпинговых, но, вменяемых по цене и срокам условиях реализовывать какие-то небольшие проекты (на крайняк для гарантий, правда, с изначальными гонорарами несколько повыше, можно заключать договор и если по неопытности я вдруг что-то где-то в коде профакаплю, мне могут помочь, либо оперативно переделать под ключ профессиональные прогеры нашей студии) в комплекте, естественно, может быть диз, верстка, написание мной ТЗ, если проект на уровне идеи и даже менторство для стартапов. Стартапы, так сказать, даже предпочтительнее, потому как, обычно им нужно а. новые технологии, б. в них есть что-то нетривиальное, что мне будет полезно научиться делать.

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

  2. VokApp:

    Вообще, понимаю странность просьбы и не могу сказать, что очень ожидаю результата, но в то же время, крайне на этот результат надеюсь.
    Абсолютное большинство тех, с кем я это свое хобби обсуждал, предлагали замену слова «хобби» на «мечта» да еще еще и несбыточная/идиотская/детская или, как уже не один год говорят некоторые приятели (которых принято называть друзьями) «Сиваков, сидя на кухне и не имея … тут огромный список из денег/человеческого научного ресурса/технологий/масштабного бизнеса/связей которые мне пока недоступны… это сделать нельзя и ты, конечно, молодец, но смешно и глупо без поддержки надеяться, что тебе это удастся». Когда-то один человек даже пытался снять обо мне документалку в серию «мои странные знакомые» в которой были еще сектанты, наркоманы и некоторые творческие люди живущие в своем мире, на монтаже все провалилось, потому как со слов режиссера, понимание проходит и не возвращается уже на 2-3й фразе и с этим невозможно работать. Можно, конечно, им ответить на такие высказывания что-то, но обычно не вижу смысла, а потому просто молчу. Благо, несколько уважаемых мной и многими другими люди среди которых и талантливые математики и инженеры и технари и другие люди имеющие возможность оценить, не столь критичны в выводах и попытках «отмести невозможное, потому что так не может быть никогда», некоторые даже активно содействуют и консультируюсь в некоторых вопросах, особенно, когда сталкиваюсь с нехваткой знаний матчасти в какой-либо из необходимых областей науки. Как-то так. Благо, до прошлогоднего срыва эмоций у меня почти не было, да и сейчас, от появившихся я стараюсь методично отвязываться — зубоскалы, фанатично-прагматичные зануды, те, кто просто поржать над «вечноупоротым кухонным мечтателем-социопатом» или как говорил знакомый начитавшись лурка «сумрачным гением» (это вроде что-то обидное там значится за этим) — если не сложно, на засирайте, плз, пост, пишите посты, мне будет не сложно ознакомиться и, при наличии какой-либо аргументации у вас и времени у меня, подискутировать.

    жепки:
    java[x] python[x] PHP[x] js[x] эффективные алгоритмы[x] нейронные сети[x] ИИ[x] globaldb[x] lisp[x] mongodb[x] perl[x] семантика[x] теория графов[x] секреты и хитрости мира IT[x] haskell[x] хобби[x]

  3. RetMega:

    1) Я правильно понимаю, что «haskell, после чего выходя на perl/lisp» — это чистое хобби? Никто в здравом уме на них коммерческие проекты не пишет, т.к. программисты получаются дорогими и труднонаходимыми. Так что я бы лучше фокусировался на php/js и java.

    2) Как специально научиться нетривиальные задачи — это вопрос тысячелетия. Не уверен что есть какой-либо ответ кроме постоянно набивать шишки и ломать голову.

    И наконец, думаю мы по разному понимаем в чем бывают сложности в программировании. Они практически никогда не бывают в области «не можем найти оптимальный алгоритм». Обычно основная сложность — 1000 страниц труднопереваримых спецификаций или вообще их отсутствие, код со следами 15 лет разработки где не все разработчики умели программировать, и рутина.

  4. VokApp:

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

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

  5. PeeZlo:

    По поводу «решать нетривиальные задачи».
    * Если ты хочешь разобраться в алгоритмах, пройди usaco. Там тебя довольно последовательно и ненапряжно прокачают до вполне достойного олимпиадного уровня понимания.
    * Если хочешь разобраться в стандартных решениях аля ООП, почитай любую книжку с заголовком «object-oriented patterns» еще можешь, возможно, «enterprise integration patterns».
    * Если тебя волнуют эвристические методы, почитай что-нибудь с «heurostic optimization» или «metaheuristics» в заголовке.

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

  6. VokApp:

    1 — спасибо, ознакомлюсь
    2 — эти скилы набиваются очень быстро, по факту первого прецедента.
    3 — не совсем, но полезно. просто штука как раз в практике, а не прочтении мат.части

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

  7. Kr0Blank:

    После хаскеля у тебя будут эстетические сложности в писании на яве. Я предупредил. Дважды.

  8. VokApp:

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

  9. Kr0Blank:

    да. много на чем будет неприятно писать после хаскеля.

  10. AkhSpb:

    умение грамотно применять паттерны по факту первого прецедента — ну хз. Тут, мне кажется, без набитых шишек не обходится.

  11. PeeZlo:

    Без матчасти во всех трех пунктах с практикой будет туго.

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

  12. VokApp:

    ну, хз, но ведь это не повод им не заниматься.

  13. VokApp:

    матчасть, естественно, важна, просто лучше ее изучать сразу в контексте реализаций.

  14. PeeZlo:

    Это уже специфика подбора учебника или преподавателя. Нормальные материалы примерами не чураются.

  15. Kr0Blank:

    нет, конечно. это как раз повод им заниматься 🙂

  16. AkrSwet:

    Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода — PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше — тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.

  17. 01pSpb:

    двачируешь, говно?

Добавить комментарий