Pull to refresh

Comments 125

Ну очень самокритично. Прям крик души.

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

А в целом — я рассказов о том, что «закончил математический класс/унивеситет, а потом понял, что гуманитарий» — слышал много. Да я и сам такой :)
Мне до сих пор кажется, что гуманитарные науки мне дались бы легче, хотя в детстве любил электронику, разлюбил и учился на радиста, потом по направлению автоматизации производства. В итоге уже год как программирую.
Я гумманитарий и я только что открыл главу ООП. Знаю, что с первого раза не пойму, плюну на всё, но завтра на работе обязательно попробую снова в этом разобраться, просто нравится мне это, не могу бросить, даже, если это не моё. Это, как любимое хобби.
Можно обойтись без кофе. У меня Кормен лежал в туалете и за полгода я серьезно продвинулся в алгоритмах и струкутрах данных.
Особенно по вечерам, чтобы ночью потом не спать)
Вообще читать в туалете вредно.
Для других, которым приходится терпеть?
«Также развитию геморроя способствует долгое сидение на унитазе. Когда вы сидите на унитазе, ваш анус расслабляется. Вены в анусе наполняются кровью, что оказывает давление на них, а чрезмерное давление провоцирует развитие геморроя.»
Спасибо, люблю, знаете, за чашкой чая почитать как анус кровью наполняется.
За что люблю хабр, так это за то, что зашел почитать про программиста, а узнал про анус.
А у меня есть ООП, алгоритмы, структуры данных, математика, но пропал энтузиазм и от того я завидую вам.
Мне кажется, что от нагрузки коммерческих проектов, и начал спадать и мой энтузиазм тоже.
Энтузиазм — это когда «а интересно, если я эту хрень сделаю так и вот так» и вот у меня график нагрузки на каналы в curses.
Коммерция — это когда «плевать мне на то, интересна тебе эта хрень или нет, мне надо чтобы ее сделали вчера» и вот ты откладываешь дедлайны, т.к. эта хрень тебе не интересна. Так может стоит переключить интерес?
А разве это возможно? Взять и начать интересоваться чем-то другим?
Один из секретов жизни наслаждаться мелочами, возможно можно это использовать и в данном случае. Найти лайф-хак как себя заинтересовать.
Во мне подогревают энтузиазм мои собственные проекты. Недавно сделал знакомым бесплатно интернет-магазин, потому что до этого интернет-магазины не делал. Заодно проверил на практике всё то, что читал книгах.

Сейчас взялся полностью переделывать один, простите за выражение, стартап. Тоже бесплатно, за долю.

Ещё со знакомым сайтом задумали сделать смешной сайт. Задумал сделать его на ZF.
«со знакомым дизайнером» разумеется
А вообще я солидарен с автором. Я окончил 9 классов, с тех пор перебивался работой в техподдержке РЛС, потом крупный провайдер взял меня контент-менеджером/php-программистом, теперь я пишу на Python. Все дается очень трудно, но при этом дико интересно для меня лично, и я лично знаю чуваков которые могут решить мои задачи «сделать за неделю» не тратя больше 20 минут.

А жаль. Хотелось бы быть более умным, знать больше, уметь больше… Но не судьба :)
нда, не простой у вас путь РЛС->менеджер->программист Python ). Я в принципе тоже учился на переводчика, выпустился радистом, работал на ТВ, а теперь программист встраиваемых систем )
Читаешь, и мысленно возвращаешься в Советы, где все были товарищи.
Идеология-то правильная была, руководство только все испортила =(

Вспомни Леннона, и его «Imagine», ведь правильные идеи были…
У самого такая же история с паттернами. «Нет, все понятно, но что конкретно?», — как говорил лирический герой одной популярной песни.

Мне обычно помогает общение с людьми, которые уже в теме и могут доходчиво и на примере объяснить тот или иной момент.
а когда ты работаешь по фрилансу в одиночку и подсказать тебе некому и команды никакой нет? гугл и книги не помогут так, как живые люди… иначе говоря в изучении, для меня, например, самое главное — это практика и практика на реальных ситуациях, в которой тебе подскажет реальный человек, а не статья и книга… так проходило мое обучение.
для этого и есть ресурсы вроде stackoverflow, habrahabr и другие тематические конференции
Ну не знаю. Мне например проще и понятнее разобраться самому по статьям, Q&A и прочему Google. Максимум, на что годятся разговоры с людьми это возникновение идеи в моей же голове.
Т.е. люди не подсказывают решение, но пока рассказываешь задачу слегка переосмысливаешь, переставляешь в голове… и раз. Идея которая в дальнейшем помогает найти решение. А вот так чтобы спросил и тебе прямо ответили да еще и реально помогли… не было такого.
брайан д фой забавно описал этот подход, не могу удержаться и не привести цитату:

"Разговариваете с медведем?

Проговорите проблему вслух. На самом деле, проговорите слова.

Я на протяжении двух лет имел удовольствие работать с очень хорошим программистом, который мог решить практически все. Когда я реально застревал, я шел к его столу и начинал объяснять свою проблему. Обычно я не заканчивал еще третье предложение без фразы: «Забудь, у меня уже получилось». Он почти никогда не пропускал этого.

Скорей всего вам это придется делать очень часто, советую выбрать в качестве Perl-терапевта что-то типа плюшевой игрушки и не досаждать коллегам. У меня на столе сидит маленький мишка и я объясняю ему свои проблемы. Моя подруга больше не обращает внимания, когда я разговариваю сам с собой."
источник на русском
Круто спасибо. :) Тоже пишу на Perl. Но до разговоров с игрушками пока не дошел…
У меня примерна та же история, только я на немного другом уровне застрял. Практики программирования у меня сколько-то есть, но заниматься rocket science проектами или хоть чем-то не очень близким к GUI на работе не удавалось. Никогда не участвовал в проектах, где высокая производительность приложения — важное требование. Поэтому алгоритмы и структуры данных я знаю довольно поверхностно (книги читал, а на практике только детские примеры для исследования). Такая же фигня с глубиной познаний технологий из используемого «стека» (.NET в моём случае). Ну не знаю я ни WPF, ни WinForms, ни ASP.NET, ни потрохов Windows в деталях, хотя стоило бы.

Я полагаю, что всё это достаточно типично. Сегодня понятие «программист» включает в себя массу различного уровня специалистов от «работяг» до мегамозгов, которые не столько программируют, сколько решают математические задачи. Не всем спутники запускать, верно? Другое дело, что не обязательно мириться с этим. Если прикладывать усилия, то всё получится. В своём зависании на среднем уровне мне некого винить кроме себя. И ещё. Я убеждён, что надо учиться получать удовольствие от того, что умеешь.

Желаю вам не мириться, раз вас беспокоит ситуация. Учитесь! И наслаждайтесь тем, что делаете. Да, я знаю, что это капитанство, но разве можно посоветовать что-то лучше?
Похожая ситуация. Все изучение PHP закончилось написанием мини-CMS, через такие костыли, что лучше не писать такого. Но, решил вплотную заняться версткой. Углубился в дебри. Дальше пошел дизайн, стал «рисовать сайты». Дальше все объединилось с умением разбираться в PHP коде и логике его работы в принципе, и вылилось в должность арт-директора, где мне не надо знать всех тонкостей ООП и т.п., чтобы управлять отделом разработки WEB, т.к. есть понимание дизайна, есть отличное знание верстки и хорошая логика для понимания как построить рабочий процесс создания сайта…
Хотя иногда проскакивают мысли: а что лучше? всего по чуть-чуть, или отлично, но одно?
Отлично управлять людьми и видеть концепцию, держать весь проект целиком в голове, хоть и абстрактные, но вполне реальные навыки.
от каждого по способностям. всякие нужны и глобалисты и узкопрофильники. у всех свои задачи
У меня точно такая же ситуация. Школа — физмат, ВУЗ по специальности программирование. С первого курса сайты. Но дальше написания собственной простенькой CMS не пошло. Пробовал выучить ООП, пробовал Java. Не понимаю и все. И в какой-то момент я это просто принял. Что программировать мне не дано. Можно и зайца научить курить, но зачем? Тру-программистом мне не стать. И я просто принял решение сменить род деятельности. Кардинально. Сменил и ни разу не жалею.
Как говорится, Кесарю — кесарево, слесарю — слесарево…
Если не секрет, на что именно поменяли сферу деятельности?

Меня, например, не отпускает желание учить детей программированию (факультатив). Цели такие: а) дать некоторым подросткам возможность понять, что это не их. Очень печально, когда ребята бросали ВУЗ, т.к. им «в лом» заниматься неинтересным; б) научить подростков чему-то, что могло бы их кормить; в) показать не только императивные языки, а их многообразие, а то моя послевузовая зашоренность — большой стыд.

Пока не решаюсь делать курсы. Не уверен, что умею хорошо объяснять/учить. Да и года два-три надо будет вести «проект», быстрее не расскажешь основательно.
Я полностью посвятил себя фотографии.
Немножко поделюсь опытом.

Преподавал в своё время курс ООП студентам 3-го курса своего ВУЗа. Не знаю как насчёт умения объяснять, но мне просто нравился процесс. Главное, что внезапно начинаешь понимать то, что ты знаешь (и это просто знание), а что понимаешь (и можешь доступно и легко объяснить).
Думаю тебе стоит попробовать, если есть желание. Ведь именно желание и играет роль.
Если сомневаешься в том, что сможешь правильно составить план занятий, то рекомендую посмотреть аналогичные курсы в западных ВУЗах. Так можно прикинуть, сколько знаний влезает в одну лекцию с поправками на отвлечения и пояснения.
Если есть проблемы с выступлениями, то мне помогла «Камасутра для оратора» Гандапаса. Коротко и по делу.

Дети, на мой взгляд, достаточно сложная публика. Но тут каждому своё.

PS. А самое главное и приятное потом – отзывы. Когда слышишь от преподавателя «Эта группа так хорошо программирует», или «я сейчас работаю программистом благодаря этому курсу» от студента, то такие слова не просто греют, а по-настоящему радуют.
Есть мнение, что программирование это скорее ремесло.
Есть мнение, что у всех по-разному.
Да я не против! Правда как-то непонятно, что в таком случае считать произведением искусства? Поможете примерами?
Вот знаете, бывает, откроешь какой-нибудь код… Хороший…
Смотришь — и радуешься, и любуешься. И понимаешь, что фиг бы сам так написал.
И поражаешься воображению и искусству автора сих чудных строк.
Так вот это искусство.

А если читаешь код и зеваешь — это ремесло.

А если при чтении материшься, то это уже даже не знаю как назвать…

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

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

Проектирование — да, процесс творческий, а программирование — ремесло.

Я надеюсь, что вы не оцениваете другие предметы искусства по принципу: «Ван Гог (например) — молодец, я бы так написать не смог»!
Увы, Вы не совсем правильно меня поняли.

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

А что до паттернов и тп — ну так и музыканты учат сначала аккорды и музыкальную теорию. А потом уже что-то делают, что можно причислить к искусству.

Кроме того, проектирование для меня неотделимо от программирования. Тут возникает вопрос терминологии, каждый все эти термины воспринимает по-своему. Для меня, к примеру, программирование — это и проектирование, и реализация. А кодирование — как раз именно то «ремесло», о котором Вы говорите.
Ну в таком разрезе (синтез проектирования и кодирования), соглашусь. Увы непонимание часто возникает из-за разнящегося представления о тех или иных терминах, используемых в дискуссии.
Присоединяюсь к сказанному выше: после четырех лет учения в радио-техническом факультете ТГУ не вынес ничего, кроме навыка добывать навыки. Никогда до этого не понимал программирования + был друг с ФПМК, делавший всю начинку для наших поделок. Я делал только дизайн и курировал верстку. Все мои просьбы перенести макет более точно (рюшки-плюшки) натыкались на обиды, непонимание моего критического взгляда на его труд. А потом был скандал — больше мы вместе не работаем.
Зато программировать стал я. Ничего не зная из этого мира (я про научные знания — кустарных валом, технарь до мозга костей), заставил себя начать писать вэб-код.
Теперь веду уже 3 проекта, на очереди еще 2. Ни одного еще не завершил (но все в процессе).
Написал простенький редактор страниц для бухгалтерии и отдела оптовых продаж — теперь девочки смогут сами редактировать почти любой контент на сайте (да, CMS-велосипед), добавлять меню, делать таблицы и все прочие + имеют виртуальный «word-lite-edition».
И все начало приносить доход еще толком не работая. ----> Не унываем, учимся, учимся… радуемся нашим поделкам, самой жизни!
ТГУ — Томск? Там же учился на факультете музейного дела, сейчас занимаюсь frontend разработкой.
Да, Томск ;) Хех — сейчас одного товарища уговаривал заняться тем же (учится на библиотекаря).
Но он далек от реалей мира — считает, что диплом решает все. Отказался от моего «обучения».
Ваш пост можно разбирать на цитаты.

Если вам это нравится, и умения кому-то нужны — просто получайте удовольствие, и не парьтесь.
Всегда будет кто-то умнее, и кто-то глупее, не всем нужно быть гуру, просто держите планку, и постепенно, хоть и не быстро, двигайтесь вверх по ступенькам знаний.
UFO just landed and posted this here
Вот тут согласен. Пока я не начал пытаться использовать ООП в реальных проектах, а не только в качестве примеров из книги — вообще ничего не понимал.
Всегда мечтал научиться рисовать закорючки :)
Я себя характеризую ёмким «script-kiddy». Делаю макеты, верстаю их сам. Могу разобраться в простенькой программе. Но вот сортировку пузырьком сейчас без шпаргалки не сделаю ни на одном известном мне языке программирования. :)
Это похоже на мой случай, описанный комментом ниже. Ну я правда хочу постараться совместить углубление знаний по программированию в рамках веб-разработки на php и смежных технологиях с управленческой деятельностью.
Не переживайте, со временем думаю придут знания.
Я вот тоже получил не программистское образование — Специалист по защите информации (управленец-организатор по сути, с небольшими тех. знаниями). Но хотел стать программистом еще со школы, и сколько родители не отговаривали — стал им.
То что образование было больше гуманитарным накладывает свои плюсы и минусы. Хоть у меня и есть пробелы в базовых программистских знаниях, зато есть представление об организации рабочего процесса, о том что хороший чистый код не цель, а средство и т.д.
Я думаю при таком раскладе легче вырасти в управленца в технической сфере — у вас будут и понимание области и гуманитарные знания, позволяющие лучше справляться с организационной работой.
Да я уже немаленький, 27 лет как никак. Надо поскорей расти! )
Гради Буч мне внезапно открыл глаза на ООП. До того я никак не мог понять: что это и зачем?

После прочтения «ООП» Буча мои волосы стали мягкими и шелковистыми, и пришло понимание основ. С этого момента я начал жонглировать объектами. Сначала, как и в цирковом училище, лишь парой-тройкой. Затем больше и больше.

Потом появилась мания, всё перевести в объекты, и я заплутал в трущобах высотных конструкций из этих самых объектов.

Тут пришло время для паттернов, т.е. о том, как организовать (!) свою работу с объектами. Не всё сразу. Один-два примера. Практика. Практика. Ещё парочка. Практика. Практика.

И так далее.

Ну и самое главное: не паниковать. :)
Не паниковать, и взять с собой полотенце
Речь идет о книге «Гради Буч: Объектно-ориентированный анализ и проектирование»?
Очень хорошо, что у вас есть такой энтузиазм!!! Это, на мой взгляд, часто помогает компенсировать недостаток академического образования.

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

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

Так что, я Вам искренне желаю, чтобы перед Вами стояли интересные задачи, а Вы не шли на компромисы при их решении!!!
Странно. Все гуманитарии (дизайнеры, писатели, филологи и т.д. ), которым я пытался объяснить, что же я делаю на работе, быстро схватывают теорию. Объяснить ООП им не сложно и набросать архитектуру (модель) решения пробных задачек им самим, порой, удаётся без труда. А вот осилить переход от модели к коду уже проблема. Человек понимает, что есть объект и свойства, но как «вот это вот всё» выразить языком всего из десятка операторов — ступор. Вполне естественно для человека с «более лучше» развитым правым полушарием творить и оперировать идеями и концептами.
У меня такая проблема с функциональным программированием.
Два раза пытался писать на Коммон Лиспе, и оба раза «срывался» на Питон. Не могу догнать, как прикрутить функциональщину к продакшен-системе. Видимо, как и в вашем случае, нужно время, чтобы осколки сложились в общую картину.
Хоть у меня и лучше с пониманием технической части, но я вас понимаю.
А вы попробуйте прочитать книгу в целом, а потом перечитать, может даже, фрагментами. Мне иногда помогает, когда совсем где-то нипанятна.
А по паттернам порекомендую вот эту книгу:

Она классная :)
Я совершенно теряюсь в книгах из серии Head First. Не могу привыкнуть к такому стилю изложения.
Тоже было сложно по началу, но после 50 страниц адаптировался. Читать приятно )
Нету электронной версии, почему-то… обыскался :(
На рутрекере есть английский PDF и русский Djvu
Ну я под электронной версией понимаю fb2 или что-либо, что подойдет для конвертации в киндл :)
Ну я вообще с трудом представляю, как техническую литературу можно в fb2 перенести :) Там же всё-таки код, таблицы, графики. А в fb2 просто текст.
Почему это? Нормально и графика вставляется в fb2 :)
Ну тогда ищите нормальный конвертатор PDF -> FB2 :) Я пока не нашел.
По-моему, для такой книжки, как эта, которая на 90-99% состоит из картинок, делать из нее fb2 смысла просто нет :) Плюс слишком много работы, а данное творение не относится даже близко к классике CS, вот и не нашелся свой энтузиаст, скорее всего.
Ничего не понял в этой книжке. Начало тошнить после десяти страниц. Очень невнятный стиль изложения, ненужные иллюстрации и проч. Хотя некоторым, по их утверждению, очень понравилось. Не знаю только, насколько хорошо они осознали материал данного продукта.
Я читал ее после GoF, поэтому не могу сказать, что остается в голове, если читать ее начисто.
UFO just landed and posted this here
Если у топикстартера беда с пониманием паттернов, то с GoF начинать не стоит, имхо.
UFO just landed and posted this here
Всё сознательную жизнь учился физике: в школе, в универе, в мастерате, в докторантуре. Физику не очень любил, но всегда её уважал и старался понимать. После окончания универа, понял, что быть преподом физики и информатики мне не судьба. Не потому что мне не хочется, а просто немного поработав в этой области, понял, что не умею учить людей «из-под палки», а по другому очень редко получается.

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

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

Прошел ещё год, и по семейным обстоятельствам сменил работу на менее стрессовую. Сказали надо писать код, под ARM процессоры, на Сях. И 1, и 2, и 3 звучали для меня как китайская грамота, но…

Увидел с чем придется столкнуться: микроось с тулчейнами, кучей софта и без документации и меня сначало обуяла паника. Но прошло пару месяцев и я уже во всю писал простые шелл-скрипты (из-за размеров дистрибьютива, кроме С и Bash там ничего не было). Прошел ещё год и уже скрипты стали солидными, научился компилять софт под ARM, собирать несобираемые компоненты, начал изучать С.

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

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

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

Собственно паттерны и есть кусочки кода, шаблоны для него, вернее. Когда я в первый раз открыл книгу по паттернам, то они делились у меня на два вида «о, что-то похожее я уже делал, оказывается это паттерн, и вот тут я делал излишне сложно, а вот прям как написано» и «нифига не понятно зачем это». На самом деле «учить паттерны» смысла нет, надо просто время от времени перечитывать хотя бы список задач/целей, которые они решают, чтобы когда такая задача встретится на практике, вспомнить что есть такой паттерн (название вспоминать необязательно, просто «где-то я это видел»), посмотреть как он реализуется и реализовать так же. Несколько раз таким образом употребив паттерн уже начнёшь узнавать его в чужом (или своём старом, что почти одно и то же, просто за чужой не стыдно) коде, где намёков типа имени класса SmthFactory или комментариев типа // This is Singleton pattern и близко не будет. А не понадобятся/не встретятся, так и бог с ними, можно считать что повезло :)
А у меня наоборот, легко шло программирование и математика, но всегда тянуло в гуманитарные науки… рассказ о себе я изложил у себя в профиле)
UFO just landed and posted this here
UFO just landed and posted this here
ты вступил на путь дзен. он тернист и глютеуснен. но это пройдет(переверни)
Я тоже начинал в школе, но пошел в гуманитарный вуз. В школе с друзьями «делали» игру, я кодил движок. Так пришло какое-то понимание структур данных (хотя книг/статей читал мало). Помню, как я дико радовался, когда узнал о структурах (или records в delphi), т.к. до этого юзал только переменные и массивы. А потом открыл для себя еще и классы. Тогда, в 9ом классе, я и краем уха не слышал о линейной алгебре, поэтому все внутренности 3д-движка оставались непонятными, но пытался разбираться, смотрел код и т.д.

Потом, на 1ом курсе, перешел на C# и мне открылись глаза на наследование и всякие ООП-приблуды. Потом пытался использовать Python, а затем попробовал Ruby и метапрограммирование. На нем пока и остановился.

Вообще, начинать никогда не поздно. Лично мне было более-менее просто понять ООП, т.к. я применял его в контексте игр, а там есть явная связь класс-объект-методы: юнит стреляет, ракета взрывается, дверь открывается и т.д. Так что не унывайте, читайте книги, смотрите скринкасты и общайтесь на StackOverflow :)
А я в школе вроде изначально математиеский ума склад имел, потом гумунитарный (но по математике соображал) и все равно мне нравится программирование, изучение чего-то нового в кодинге, паттерны, ооп и все такое =)

Предыдущий пост был написан из-за глюков оперы, извиняюсь
*вытирает слезу*
на таких как вы программирование земля держится
А я вот гуманитарий (истфак), но прихожу к мысли, что моё призвание — делать софт :-). Но я не программист совсем, работал тестировщиком, был вроде на неплохом счету. Но — не программист. И непонятно, как взять и в структуру софтодельства влиться…
А тебе в приницпе интересны структуры данных, алгоритмы, паттерны? Ты видишь, где мог бы их применить?

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

Недавно меня потянуло на умные алгоритмы, data mining, AI. Вот тут оно конечно туго пошло, в основном из-за математики. Но теперь в контексте интересных проблем она обретает смысл.
Не подскажете где почитать что-нибудь толковое про highload и кэширование именно в вэб-разработке? Я даже ниодного нормального туториала не нашел.
Знаю только на английском. Хороший блог High Scalability, по MySQL есть отличная книга High Performance MySQL.
Главное это не пропускать идеи маркетологов и продакт-менеджеров, если для них не удается найти масштабируемого решения.
Ещё попробуй почитать «Распределённые системы» Таненбаума.
В каментах — прямо клуб анонимных программистов-гуманитареиев какой-то.
Тю, знакомьтесь. Учитель английского, программирую (ну на самом деле, только мелкие php-инклуды в в свой html). Но когда в очередной раз сажусь за самоучитель по php, то получаю неимовернейшее удовольствие.
Хобби есть хобби.
А тот, у которого энтузиазм пропал — то ж у вас работа. Ну отпуск хотя бы возьмите. Только чур без ноутбука.
А у меня другая проблема. Я вроде схватываю всё на лету, но увы всё сам. А это долго и бесплатно. Долго потому, что приходится головой пробивать кирпичные стены, хоть я и опираясь на статьи и отзывы в интернете, а бесплатно потому, что любая моя интересная задумка зиждится на голом энтузиазме, и ни заказчику, ни начальству, вроде как и не нужна :)

На моём жизненном пути пока не встретилось такого человека, который был бы наставником и тыкал меня лицом в неправильные подходы, нарушение принципов паттернов, говнокод и пр… Человек, который бил бы линейкой по рукам и давал мудрые советы, мог бы ускорить профессиональный рост в разы. Посему я завидую ребятам из Москвы, Питера и др. крупных регионов, где есть конторы, которые решают действительно сложные задачи, и где сидят головастые парни. Эх…

Казалось бы, можно попробовать уйти во фринланс. Я сам пока толком не пробовал, но судя по многочисленным отзывам, заказчики рассматривают фрилансеров только как чёрнорабочих, которым нельзя доверять, а посему поручают им самые простые задачи. Я не дезинформирован? :)
А вот с другой стороны баррикад: я бы не прочь помочь кому-то поднять свой уровень. Обожаю объяснять, показывать как что-то можно улучшить. Но только так получается, что никому это не нужно.
А я на собственном опыте прочувствовал и проблему faiwer, и проблему alisey.
И хочу вам сказать одно — коммуникации решают всё!
Найти ментора и ученика — проблема, но она решается за счёт коммуникаций. Своих учителей я искал через знакомых. Своих учеников я искал через знакомых :)
Благодаря совету друга, который «где-то что-то услышал» я нашёл курсы, которые буквально решили мою судьбу. Благодаря совету «заведи группу вконтакте — может кому-нибудь понадобится» я нашёл ученика.

Главное — не считать, что все кругом «глупы и не поймут мою тонкую натуру».
Если у вас есть предложение знаний, у кого-нибудь обязательно найдётся спрос ;)
Нравится смотреть на свой код, который хоть и простой и непродуманный, но зато MVC

MVC, не MVC — не очень важно; главное — здравый смысл и принцип «разделяй и властвуй», а MVC — его частный случай.

Продуманный — важно, хотя некоторая непродуманность вполне допустима при TDD и инкрементальном улучшении.

Простой — очень важно. Всегда. Сложность очень тяжело лечится.

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

Наверняка есть некоторые исключения.
Вкачал Харизму? В реактор!
В классе десятом читал Александреску.
Понимал как код работает. Не понимал зачем. Можно же проще!
Лет через 10 внезапно узнал что есть патерны проектирования, а синглентоны это не технология, а прием.
Год назад читал Александреску.
Понимал зачем, не понимал код.
UFO just landed and posted this here
UFO just landed and posted this here
Не было мысли получить образование преводчика?
Мелькала мысль, да. Но как-то нет возможности всё бросить и пойти учиться.
Да может и не надо изучать эти паттерны и ооп в рамках изготовления сайта. Сайт ведь делает веб-мастер, и он не обязательно должен быть программистом. А программист не обязательно сделает сайт, так как сайт ему просто не интересен, ему подавай стройные построения кода. Только за это мало где платят.
Вобщем понять бы, что для чего нужно.
Я бы на вашем месте не мучил себя и не заморачивался этими умными книжками. В книжках надо искать решение проблем. Если неразрешимых проблем с вашими проектами нет, так и не надо их придумывать. Вы — ремесленник. В хорошем смысле этого слова.
У меня пример обратный. Отличником никогда не был из-за невыполнения домашних заданий, но физику и математику списывали обычно именно с меня. Впрочем, хорошим математиком я себя назвать никогда не мог, просто в школе были низкие требования.
Пытался программировать. Ходил на курсы Qbasic, Pascal. То, что задавали сделать, я делал лучше всех до определённого момента. А потом… потом всё как-то расползалось, я не мог удержать в голове модель создаваемого. Когда знакомый с куда меньшим опытом и знаниями написал змейку, а я понял, что не могу не то что написать такое сам, но и вместить в голову то, как его код работает, мне стало ясно: программирование — не моё. То есть, не совсем ясно — я потом и за Java, и за Ruby брался — но до этого я видел себя как программиста, после этого я понял, что надо искать другой путь. Нашёл.
Кстати, сейчас наблюдаю схожий эффект в замечательной игре Space Chem: пока сборочная линия не включена, я не могу понять принцип её работы, даже если её сделал я сам полчаса назад.
Скажите, а у вас есть друзья/знакомые, с которыми вы часто общаетесь, и которые знают и понимают что такое ООП, MVC, паттерны проектирования, знают и используют хотя бы пару языков программирования? И которые знают по этим вопросам _больше_ вас?

Я имею в виду не виртуальное общение на хабаре или через форумы, а реальное общение.

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

В этом смысле молодым людям легче. Если у них есть круг общения, то какой бы тупой молодой человек не был, просто за счет реального общения «по теме» он будет знать и понимать гораздо больше вашего. Я это вижу везде на каждом шагу. Куча молодняка виртуозно жонглирует в рамках модных и изученных ими технологий, при этом не знают базовых вещей, не знают и не чуствуют истории развития используемого ими инструмента, и это им никак не мешает.
Умение рисовать абстрактные квадратики UML и проч. вместо реального программирования при непонимании низкого уровня — как раз признак гуманитарщины и «отсутствия нужного гена» в ДНК. Технарю же уровень команд процессора, тока в проводах — родная стихия. Гуманитарий не понимает физики процессов, и не хочет понимать. Встречал такой пример гуманитарного мышления: хостинг на windows лучше потому что windows платный, поддержка, бла-бла, а Linux — это несерьзно. Без комментариев…
Развелось тут нытья.

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

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

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

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

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

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

Можно конечно забить на «фундамент» и учить что-то дальше, но по аналогии с музыкой — вы станете не известным музыкантом, а ведущим местного радио-канала.
Да furyk, понимаю Вас в этом вопросе.

В силу своей гуманитарности и сангвинистичности не могу осилить ни одной книги дальше 10%.
Программистом по профессии также не являюсь, но на своих сайтах допиливаю, исправляю или же пишу с нуля некоторые плагины (Wordpress, Xenforo), которые упрощают мне процессы работы с сайтом или же добавляя не достающий функционал.
Но, если нужно будет проект написать с 0, я его отдам в руки специалистов, так как не располагаю достаточным временем, дабы свободно творить чудеса, но вот контролировать процесс исполнения и его качество мне уже намного проще =)

Успехов! Их достигает только тот, кто что-то делает =)
Знаете, я вас хорошо понимаю. У меня, отчасти, тоже гораздо бОльшая склонность к гуманитарным наукам — они у меня всегда получались как-то сами собой: это и чувство языка, и лёгкость освоения иностранных языков и т.п. Олимпиадные задачи по программированию и математике как-то никогда особо не получались, и, наверное, оттого были неинтересны.
Лучшая мотивация в работе для меня — удовольствия от очередной порции полученного результата: работающая программа, система, которой пользуются люди. Наверное поэтому я стал Web-разработчиком, так же, как и вы — наша работа во многом ориентирована непосредственно на конечного пользователя — на человека. А Тот же ентерпрайз — в основном на интеграцию и взаимодействие систем. Меня всегда окружали люди (как мне казалось), которые все алгоритмы за 2 секунды составляют.

В моём понимании есть две полярно разные области: научное и прикладное программирование. В первом больше математики, во втором — меньше. Я себя отношу ко вторым и совсем не страдаю. Совет — больше общаться с людьми из своей области. Например, съездите на РИТ, Highload++ или на надвигающуюся YaC от яндекса. Пообщайтесь, посмотрите на людей, которые также как и вы постепенно посигают всё. не сразу, а постепенно ваш уровень будет выше, аббревиатуры все раскроются и вы станете Архитектором :)
Sign up to leave a comment.

Articles