Как стать автором
Обновить

Комментарии 79

Поддержу инициативу, но встану в оппозицию. Программирование — как литература. Книга — справочник, и нет лучшего учителя чем цель.
согласен, чтобы научиться писать код надо писать код, а дорогу осилит идущий…
Как говорил мой преподаватель по лиспу — вы пишите, а понимание придет позже само :)
НЛО прилетело и опубликовало эту надпись здесь
Скажу даже больше. Зачастую в университете преподают материал 10 летней давности и даже если студент охотно осваивает материал, то на практике толку от него будет мало. Сужу по себе, учусь на «Информационных системах» по специальности «Автоматизация в управлении ИС» и что? Методички 2000-2005 года, иллюстрации тех же годов, методика и теория оттуда же. Но все знания приходят, когда говорят что вам нужно на курсовую работу написать любую программу на любом ЯП. И тут начинается, читаешь кучу литературы с интернета, штудируешь чужие иходники и вникаешь.
Уже давно взял за правило: хочешь что-то освоить — осваивай сам! Покупаю актуальные печатные книги, регулярно читаю тематические форумы, порталы. И так капля за каплей приходит опыт и навык. Если что-то осваиваю с нуля, то для начала пишу для себя, как только понимаю что достиг азов, стараюсь сделать что-то в команде либо одиночный заказ. Вот так и учимся. А пока университеты будут придерживаться старых методик, то основная польза будет в получении корочки обо окончании. Хотя не спорю, некие базовые знания учебный процесс все же дает!
В принципе кардинальных отличий от других специальностей нет. В процессе обучения должны давать общую базу: алгоритмы, структуры. Другое дело, что очень желательно для налаживания стойких ассоциаций обучать и на конкретном примере. Например, как у механиков:

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

Обычно на курс подготовки дают какой-нибудь ЗИЛ 130 и ВАЗ-2101. Исключительно для понимания общих принципов построения машины в целом.

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

— О, смотри-ка, у них двигатель находится в задней части, а по выполняемым функциям тоже самое! А, всё дело в организации передающей цепи! Извернулись, да…

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

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

Посему всякие руководства по языкам, начинающиеся с традиционного «Hello World!» даются легко и просто тем, кто уже имеет хоть какую-то практику программирования. А вот наглядного, пошагового введения в какой-либо конкретный язык — практически не бывает.

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

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

Но как обычно, тут возникает другой вопрос: а на каком языке вести этот проект? На достаточно простом, чтобы въехало большинство, или на достаточно сложном, чтобы чётко дать понятие о важности чётком и внятном построении элементов программной системы? :)

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

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

P.S. извините, разошёлся. :)
По поводу учебного проекта. Учусь в «компьютерной академии ШАГ» на спеуиальности разработчика ПО, в данный момент изучается WinApi. Помимо обычного материала предложили вариант — написание поп3-клиента с последующим подключением SSL. И, если обычный урок воспринимается сложновато (с 8 до 17 работа, с 18 до 21 учеба), то этот проект затянул с головой — изучать что-то, что в программе даже не затрагивается (по крайней мере пока что), и в том, чего даже сам препод не особо знает — это захватывает…
Самое важное чему может и должен обучить ВУЗ — это читать документацию и методология разработки систем (систем в принципе, а не конкретных). А дальше работа и все сам учи.
НЛО прилетело и опубликовало эту надпись здесь
Все друзья и знакомые, которые работают по специальности знания получали на реальных проектах (кафедра, работа). А 5-6 лет нынче учиться надо ради корочки только, либо чтоб в аспирантуру пойти.
Наши преподы бы с удовольствием давали адекватное образование, но достаточно взглянуть на лабораторные стенды, чтобы понять всю грусть и печаль нашего образования :(
У нас на кафедре тоже жаловались, что денег им не дают, все старое и т.п., всё они, бедные, сами покупают. Тем не менее другие кафедры нашего факультета находили бабки на нормальные компы, мебель, стеклопакеты, выпуск методичек и даже на оплату практики своих студентов. Недостаток денег — это следствие некомпетентности кафедрального состава. Не знаю ситуации в вашем универе, но наша кафедра на 90% состоит из старперов-нахлебников, которые просто не секут ни в чем, а в своей жизни читали только собственноручно написанную в 80-м году методичку, по которой и продолжают вести все свои курсы.

Если на кафедре свое дело знают, то туда идут учиться и на платное очное, и на второе высшее. Кафедра должна зарабатывать бабки. Если она это делать не в состоянии, значит никто в этом не виноват, кроме сотрудников кафедры. Молодых специалистов, желающих преподавать, предостаточно. Только, как всегда все сталкиваются с тем, что свободных мест нет, типа все занято. А между тем качество образования на нуле. Зачем тратить бюджет университета на такую кафедру? Что со старыми лабораторными стендами, что с новыми, все останется по-прежнему фигово.
В случае информационных специальностей пожалуй соглашусь. В других же случаях все печальней. К примеру прибостроительная кафедра (то что я наблюдал), заказы на разработки есть, но их мало и они в подавляющем большинстве относятся лишь к нескольким узким направлениям. Те преподы, которые ведут эти направления имеют деньги на закупку оборудования и проведение собственных исследований. У них работают студенты и получают реальный опыт, озадачивая на экзаменах своими знаниями других преподов. Но число вакантных мест не безгранично. Это не значит что остальное просто не нужно, оно нужно и еще как, но не имеет сиюминутного и прямого интереса для потенциальных инвесторов\заказчиков. А многих направлений уже либо банально нет, либо они отмерли давным давно, хотя сейчас более чем актуальны. Ну и собственно кому спрашивается интересно заниматься стендами для студентов в данной ситуации? (да, еще момент, стеклопакеты стоят :) )
НЛО прилетело и опубликовало эту надпись здесь
Наверное это очень индивидуально. Я бы в самом начале очень хотела увидеть именно такую статью. Вот для таких, как я она и написана.
Единственный способ научиться программировать — это программировать.
Бесспорно. Но речь как раз о том, что нельзя просто сесть и начать программировать. Надо с чего-то начинать, от простого к сложному — и вот об этом-то и пост.
Можно) Когда устроился на текущую работу, PM сказал что у меня есть три дня чтобы стать хорошим кодером на яве (до этого ни строчки кода на яве не видел в глаза), SPE на вопрос «че делать» говорил «ну сделай… короче, сделай чтоб работало». При этом постоянно пинают по срокам. Спустя два месяца на мне уже два проекта, работать приходится часов по 10-11 плюс выходные, страницы из Блоха и Эккеля читаю даже во сне, лазая по английским форумам вспомнил английский. Времени почитать то что хочется почти нет (либо сил после работы), надо делать то что нужно прямо сейчас, но все же надеюсь через месяц или два уровень junior покрывать полностью. Образование у меня приборостроительное, ни разу не программист (в прочем я этому рад, ибо считаю пройденное обучение проектирования систем более качественным нежели его дают программистам). Ну и чтобы на работу мою бочку не катили, я занимаюсь нагрузочным тестированием, а java основной язык в этом деле, так как позволяет вести разработки под разные инструменты.
Экстремально:)
Это да. Но все это компенсируется удовлетворением от скорости собственного развития и кайфом от того, что мозг не простаивает (ощущение сравни кайфу после хорошей длительной физической тренировки). Да и компания создала комфортные условия для работы.
Можно сказать, вам повезло:)
'Чтобы понять рекурсию, нужно сначала понять рекурсию'(с)
есть более изящный вариант: «нет смысла использовать рекурсию там, где ее нет смысла использовать»
Что тут понимать? Рекурсия — это рекурсия.
Яндекс говорит, что больше спрашивают " как стать хакером", и всех посылают быть программистами
Надо искать свои потребности и пытаться их воплотить в коде. По-моему это лучшая мотивация что-то учить и делать.
У меня всегда был ответ… иди читай. Думаю хороших программер очень упертый, и если у человека есть нужные качества, то он дойдет сам.
На своем пример могу сказать, что иногда мне нужна информация именно из MSDN, но некоторую информацию мне нужно узнать из менее официального, и из более прикладного иточника. Ибо в книжках чаще пишется как это работает, а нужно узнать зачем и почему это работает…
Например начав изучать сокеты и ища информацию по сетевому программированию, я видел примеры лишь на запросы к веб-сайтам с реквестом отдать главную страницу. Сам же я писал поп3-клиент. И, немного разобарвшись, дошел до момента когда я конекчусь, получаю приветственное сообщение, но ничего дальше не могу получить от сервера… 3 дня я убил на поиск ошибок/проблем, и чисто случайно потом где-то увидел что запросы к поп3 серверу (или вообще все запросы к любому серверу) должны заканчиваться \r\n, но нигде в мануалах которые я читал (5-6 сайтов, MSDN, пара книжек по системному программированию) об этом не говорилось!
Прямо как по мановению волшебной палочки появился этот пост. Я себе еще в начале сентября поставил задачу с первого октября начать учить JS. И вот этот пост добавил еще одну ссылку в мою коллекцию! Спасибо и удачи мне.
Если ваше усердие будет таким же, как и самооценка, то вас ждет успех. =)
Так чем кончилось? Стала девелопером?
ещё не кончилось
Тогда удачи!
Пардон. Это не ты автор статьи)
Стану! надеюсь очень скоро. По крайней мере сложности меня уже не пугаю, наоборот нравятся! Но обедать я уже забываю :)
Прочитал на одном дыхании, хорошо написано.
Мне в изучении чего-либо нового помогает постановка и решение интересных задач.
Вот в постановке задач как раз и была вся проблема. Очень сложно, практически нереально, придумать хорошую задачу, совершенно не ориентируясь в предметной области. Находить задачи в интернете — тоже не вариант, т.к. многие из них затрагивали те области, до которых я еще не добралась.
По мне так главное понять основной… Даже не принцип, нет… А идею, вот. То, что в статье описано как «а как вот это (циклы, массивы, методы и непонятные слова) может помочь мне с вот этим (напишите напоминалку-будильник)?????». Поймете это — уже сложностей ни с одним ЯП почти не будет. Это что-то вроде «мышления по программистски» — без него программировать нормально никогда не научишься…
Кстати да. По поводу мышления. Одно время мне казалось, что у меня оно реально отсутствует. Потом, немного попрактиковавшись, как озарение пришло, честное слово) Так же у меня было, когда я линукс изучала. Мне никак не доходила структура файловой системы, а потом как то внезапно бац, и дошло! Правда инфы к тому моменту было перелопачено море.
Научиться программировать, так же как и научиться чему-то другому — это привыкнуть к тому, что для достижения результата надо напрягать мозги (разжеванный материал, когда будешь программировать за деньги, почти никтогда достать не удастся) и в какой-то момент начать получать от этого удовольствие.
У меня вот интересный случай был: в проекте, надо которым у немного работал была одна кросс-платформенная часть полностью собранная из кусков найденных на SO. Куски были приведены как есть, без модификаций :) И судя по опыту, далеко не все напрягают мозги.
Ну, это их проблемы :)
Вот и я во вчерашнем QA то же самое написал.
И тут, как на войне — все средства хороши. Материал доставать как угодно — из книг, статей, мануалов, с отладчиком, главное — чтобы мог ясно и четко понять, как устроено то или иное API, как лучше, эффективнее построить архитектуру, как работает железка. Программирование не терпит «примерного» понимания, там все точно.
Самое главное: основы построения алгоритмов. Это костяк. Остальное — дело времени.
Вот, к сожалению, именно этого полезного направления (как и дискретной математики, основ схемотехники итд) в универе и нет… Базу все равно приходиться нагонять, но потом уже эта трата времени, да и не всем легко дается штудирование книг.
Смотря какая университетская программа. У нас этот курс был.
Зачем схемотехника программисту?
Вот Вы не поверите, а у нас начался предмет посвященный созданию схем на CAD системах. Не очень интересно делать что-то, когда не знаешь как оно работает.
ну это уже другой разговор. Это недостаток вашей программы. Сама схемотехника программисту вряд ли будет полезна; без знания ТТЛ и прочего программисты живут замечательно.
Программирование шире нежели написание фронт эндов и различных приблуд под существующие системы, да и ПО для новых электронных устройств не появляется волшебным образом в момент припаивания ножек контроллера. Хз как и что напишет программист, если сможет понять только половину написанного в документации.
И пишут тем не менее, и продаются подобные продукты весьма успешно. Я, вообще, не очень часто встречаю людей, которые пытаются понять то, что они пишут. В лучшем случае поверхностное понимание, а чаще всего нет и его. Коллега подсказал, гугл помог — код готов.
Среди людей с которыми я работал лично, дай Бог, человек 10 наберется, которые смотрят в суть.
Мда, я отвечал на комментарий не к этому топику, явно. :)
Отставить предыдущий комментарий, он не к этому топику :)
По поводу схемотехники и программирования: я прекрасно понимаю, что области есть разные, но схемотехника нужна инженеру, основной задачей которого является схемотехника и платы. Пихать этот предмет программистам есть странное явление, т.к. предмет сложный и специфичный и считать его «для общего образования» странно, как минимум.
У меня был предмет «схемотехника» и микроконтроллеры были, при этом я ничерта не понимал в схемотехнике. Во мне «полевой транзистор» и «np-переходы» до сих пор вызывают священный трепет. Это мне никак не мешало понимать микроконтроллеры, где оперировали понятиями, которые несколько выше транзисторов.
В общем, я не вижу смысла преподавать его программистам. Другой вопрос конечно, где у нас учат на программиста? :) Наше образование универсально и ни о чем одновременно.
Просто рассказать про АЦП и компараторы можно за пару лекций, а дальше что? Пить с преподом пиво у фонтана?)
Причем тут АЦП, у Вас был курс схемотехники? Если нет, то ознакомьтесь. Если да, тогда я не понимаю Вашего вопроса. Если то, что я описал принадлежит к АЦП, то это всего лишь понятия, которые используются в схемотехнике, а не покрывают этот предмет.
Не вчитывайтесь в слова, вчитывайтесь в смысл.
Учиться надо было нормально, и вопрос «зачем оно» не возник бы.
Вот тоже с придумыванием практический задачек по ходу изучения языка у меня вечные проблемы =( так что я сейчас очень рад, что придумал свой домашний проект, когда стал изучать PHP :)
А вы молодец, нечасто девушки на хабре пишут, да ещё и так здорово)
Я в 12 лет писал серфинг систему с доп. контекстной рекламой на php, mysql, css, и гибридом вап и веб систем построения сайта. И все это я делал с siemens m55 на бесплатном хостинге через gprs… эх были времена.
НЛО прилетело и опубликовало эту надпись здесь
Теперь следующий квест — как перестать быть программистом :)
Такой квест практически невыполним. Если уже втянулся и это продолжает нравиться — то это неизлечимая болезнь. Когда начнут надоедать нормальные языки — потянет к эзотерическим и тогда это уже точно не излечить :)
Это лечится, например, когда интересней становится решать задачи, для которых писал до этого тулзы.
Или просто пялиться в студию или клипсу надоедает, как перед этим понравилось.
Я вполне сознательно перестал писать код.
отличные ссылки на сайты!
Знает кто-нибудь ссылки на подобные сайты по программирование на bash?
Самообучение и целеустремленность — это залог успеха.
В учебных заведениях дают только самые основы, дальше только самообучение поможет стать специалистом. И если раньше с модедом на 56к и дорогим инетом, самообучение было возможным только по книгам — то теперь еще и весь интернет в распоряжении. Все зависит только от желания учится.
Хочешь быть счастливым — будь им.
Хочешь быть программистом — будь им.

Главное интерес, одержимость, тогда на автопилоте копать будешь всё, что подвернется, чтобы освоить нужное направление. Я в 6-7 классе, а это был 93-94 год, заинтересовался Паскалем, так освоил его без книжек, по одному лишь хэлперу и примерам, не хуже, чем мой брат первокурсник в то же время.

Что самое сложное — это доказать работодателю в начале своего пути, что ты чего-то стоишь. Особенно непросто это дело, когда уже давно не студент и решил менять специализацию. На стажера идти, за мизерную зарплату, не всегда допустимо, например семью кормить надо. Но я сам убедился, что кто ищет — тот найдет.
Спасибо за ссылки. Обязательно буду использовать в учебном процессе.
Для таких языков как Java/С++ литературы начального уровня действительно мало. Ну не на паскале же учить… )
Если мы о том же самом Колисниченко, то это отвратительный автор. Очень поверхностное изложение без рассмотрения по-сути вопроса.
Его книги «Убунту для начинающих» и «Линукс-сервер своими руками» мне очень понравились.
Насчёт «ubuntu для начинающих» не знаю, там своя специфика восприятия, но вот эту про «линукс-сервер» я как раз могу сказать — пустое место. Человек, который её прочитал не будет отличаться от человека, который её не читал. Профанация в каждой главе — и ни в одной из них он не рассказал ничего о том, как это работает. А понять, как это работает — единственный метод изучения линукса, который не даст эффекта «шаг вправо/шаг влево — я больше не знаю, что делать дальше».
Шаги вправо и влево можно делать, читая документацию на оф сайтах. Я тоже не могу сказать, что эта книга дала исчерпывающие ответы на мои вопросы, но я так же не могу сказать, что жалею о времени, потраченном на эту книгу. Впоследствии свое знакомство с *nix системами можно продолжить по книге Лукаса «FreeBSD. Подробное руководство».
>Я обложилась книгами Колесниченко и Танненбаума, и стала постигать то, что прогуляла в универе!

Это знакомо!
Электроника сейчас для меня хобби и я очень жалею о пропущенных лекциях.
«Искусство схемотехники» Хоровица, Хила помогает придавить чувство вины ;)
Спрос рождает предложение — эта модель отлично подходит к получению навыков и знаний. Пока не будет потребности в скиллах для решения каждодневных задач, заучивание учебников — бесполезная трата отведенного на этом свете времени.
Пробовала онлайн курсы MIT?
Нет. Я прошла конкурс на стационарные курсы в одну из компаний нашего города.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации