LINUX.ORG.RU

Выбор первого проекта


0

0

Да, заголовок темы очень пафосный, на самом деле всё проще.

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

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


Лучше писать то, чем сам будешь пользоватся: jabber-клиент, аудиоплеер, редактор, торрент-клиент... и т.п.

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

> А что ты знаешь, и на каком уровне?..

C, C++, Python, Qt, Pascal/Delphi (это можно не считать :-), Scheme (в процессе), Haskell (в процессе).

Но это всё почти только "книжные" знания, кроме разве что Python/Qt (потому что на этом писал курсовую). Мне как раз нужна практика, больше практики.

ml
() автор топика
Ответ на: комментарий от imp

> Лучше писать то, чем сам будешь пользоватся: jabber-клиент, аудиоплеер, редактор, торрент-клиент... и т.п.

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

ml
() автор топика
Ответ на: комментарий от ml

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

val-amart ★★★★★
()
Ответ на: комментарий от ml

А вообще подумай немного, какого софта тебе не хватает, или какой не устраивает, и будет тебе идея для первого проекта. Если ничего такого нету, то начинай помогать другим проектам. Лично я набирался (и набираюсь) опыта, когда писал (пишу) программы (в основном j2me) для личных нужд, или делаю по чьим-либо просьбам, если проект меня заинтересует, плюс еще в технаре практика. Ковыряние и изменение исходников других программ тоже дает не мало опыта.

JN
()
Ответ на: комментарий от val-amart

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

А это не будет ли с ходу слишком сложно (чужие исходники)? А то я тоже об этом подумал, взял тарболл SMPlayer'а, посмотрел и почти что испугался: мне показалось, что я в жизни не смогу разобраться, какая часть кода за что отвечает. Наверно, надо было просто дольше сидеть над этим...

Насчёт отчётов об ошибках я тоже думал. Тогда ещё вопрос: где взять баги? :-) У меня Debian (testing). В sid'е есть баги, нужен experimental или вообще брать из транка?

> Главное, если в середине код - дерьмо, то лучше и не помогать, просто найди другой проект

Тут наверно нужен опыт, с ходу у меня вряд ли получится определить...

ml
() автор топика
Ответ на: комментарий от JN

> Сделай нормальный фронт-энд к wget, а то та морда которая на gtk написана, никуда не годится.

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

ml
() автор топика
Ответ на: комментарий от ml

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

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

> А то я тоже об этом подумал, взял тарболл SMPlayer'а, посмотрел и почти что испугался: мне показалось, что я в жизни не смогу разобраться, какая часть кода за что отвечает. Наверно, надо было просто дольше сидеть над этим...

конечно. а еще SMPlayer, афаик, просто обертка над довольно сложным mplayer'ом. лучше возьми более понятный простым смертным проект (разве что ты шаришь в видеообработке).

> Насчёт отчётов об ошибках я тоже думал. Тогда ещё вопрос: где взять баги? :-) У меня Debian (testing). В sid'е есть баги, нужен experimental или вообще брать из транка?

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

>> Главное, если в середине код - дерьмо, то лучше и не помогать, просто найди другой проект

> Тут наверно нужен опыт, с ходу у меня вряд ли получится определить...

возможно. тогда выбери что-то известное, с гарантированно хорошим кодом.

val-amart ★★★★★
()
Ответ на: комментарий от val-amart

> ... SMPlayer, афаик, просто обертка над довольно сложным mplayer'ом.

Насколько я понял из man-странички mplayer'а, он умеет запускаться в slave(?)-режиме, то есть встраиваться в чужие окна и слушать от него команды. Поэтому я и подумал, что эта фронт-энд не должен быть особенно сложным.

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

Не главное, но второе по значимости, наверное. А то уже как год пользуюсь, и ещё ни одного отчёта не отправил. Нехорошо, тем более что возможность есть.

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

Понятно, спасибо. Как разберусь с делами, обязательно возьму что-нибудь интересное.

ml
() автор топика
Ответ на: комментарий от ml

дерзай!
> Насколько я понял из man-странички mplayer'а, он умеет запускаться в slave(?)-режиме, то есть встраиваться в чужие окна и слушать от него команды.

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

val-amart ★★★★★
()

О! Было бы ОЧЕНЬ круто, если бы вы наисали редактор XSD в духе XML Spy. Как ни странно, конкурентов у него адекватных не много, а свободных нету ВООБЩЕ. Приходиться пускать его под вином, а он не дёшев и под вином работает посредственно. Я уверен, большое число людей бы сказали вам большое спасибо. Даже готов подключиться, ибо насущно.

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

Что бы было понятно что это - вот скрин - http://www.altova.com/images/shots/xml_schema_editor.gif. Интерфейс у него страшненький, и полно своих косяков и очень недостаёют тривиальной функциональности. Знаю и других его пользователей =)

theos ★★★
()

Если хочешь натаскатся в c++ и qt то прими участие в разработке веб браузера arora.

PS: Я бы сам занялся но пока у меня проект срочный.

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

Если хочешь натаскатся в с и gtk то прими участие в проекте midori. Но лучше в проекте arora:))

Devix
()

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

Corey
()

Вот "iostat -x 1" показывает загруженность дисков (определяется как процент времени, который диск был занят.

Хочу чтобы в кде был рядом с индикатором загрузки проца и памяти индикатор загруженности диска. В первой версии диски/устройства задам сам. Исходные данные пусть берет оттуда же откуда их берет iostat.

gods-little-toy ★★★
()
Ответ на: комментарий от ml

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

urxvt ★★★★★
()
Ответ на: комментарий от gods-little-toy

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

theos ★★★
()
Ответ на: комментарий от gods-little-toy

>в качестве первого проекта? ну-ну :-)

И немало важно, что не велосипед. Ибо блин плееров и недоделаных ИМ-клиентов дохренища, а насущный продуктов нету. Это бы могло перарсти в реальный OSS, всё таки нужность проекта - важный критерий.

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

> Рекомендую начинать работу на фрилансе (Python). Плюсов много: поднятие уровня англ., опыт реальной работы с заказчиком.

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

ml
() автор топика
Ответ на: комментарий от ml

Дык там полно всякой дополнительной ереси вплоть до бетономешалки. Я про простой редактор XSD с таким же деревом. Я для своего проекта такой редактор за три дня не напрягаясь написал.

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

Просто там можно разные проекты искать, можно и функцию/баг_поправить, а можно и большие и серьезные. Соответственно и уровень разный. Просто я бы посоветовал браться за то что не горит заказчику, чтобы было время на ходу учится. А на счет уровня переживать не стоит, там и не такие еще есть ;)

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

>> Рекомендую начинать работу на фрилансе (Python). Плюсов много: поднятие уровня англ., опыт реальной работы с заказчиком.
> Я опасаюсь, что меня просто пошлют подальше вместе с моей кривой программой. Какой уровень в среднем там нужен?

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

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