[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hello Sirs



On Tuesday 06 November 2007 04:22:46 Omkar Raut wrote:
> Its my pleasure to be part of Debian community. I joined this list
> recently. I started using debian one year back. It has been a great
> experience! I wish to extend my relationship with debian. Till now I
> have been using this OS as a normal user.

There are two basic ways to help with Debian. One is to directly help Debian 
itself, by packaging and/or maintaining software for Debian, or by writing 
Debian-specific documentation, doing Debian-specific translation, or by 
doing Debian-specific bug triaging and fixing.

If you want to get started doing these kinds of things within the Debian 
organization, a good place to start is <http://www.debian.org/devel/>. In 
particular, you'll want to read <http://www.debian.org/devel/join/> to get 
an overview, and then start with <http://www.debian.org/doc/maint-guide/> 
if you want to package software.

Honestly, being an amazing programmer isn't critical for contributing to 
Debian. But with few exceptions, Debian is almost completely composed of 
software written not by Debian Developers themselves but by the large Free 
Software community, composed of numerous individuals and groups. Debian is 
an important part of this overall community, because Debian contributors 
help and improves software by packaging, bug reporting, bug fixing, etc. 

Given that most of Debian's software exists as it's own project, the other 
way to help--indirectly--with Debian is by contributing to the development 
of the software that Debian contains. See below for more.

> I am a good C and C++ 
> programmer. I wrote small programs under gcc which were part of my
> academic course. I am conversant with linux shell. Learning curve in
> linux is very steep and I consider myself stuck in the midway. I have
> no clues about how development of sophisticated softwares takes place,
> especially using GUI(Qt,gtk etc.). I seek guidance from you on how to
> start off with the development. Please advice me. Any suggestions for
> using particular books, online tutorials, tools will greatly help me!

Programming is an art. It takes knowledge, skill, creativity, and good 
taste. Knowing a language is part of programming, but becoming a good 
programmer takes a lot of time, practice, and usually a lot of 
slowly-assimilated niche knowledge about particular fields, protocols, 
methods, etc. Everyone learns best in different ways, but one good way to 
get started is to just start contributing: find a program that you use and 
like and are interesting in, and start contributing. Fix a minor bug that 
has been annoying you. Add a simple new feature that would be helpful. To 
get your fix to others, work directly with the community of whatever 
program you are focusing on, or--if you prefer--just submit your fixes 
through the normal Debian bug reporting channels.

If you are interested in particular technologies maybe you just need to play 
and practice by writing some fun program on your own. Often you just need 
to do a little research to find out what software libraries or programs are 
out there that do what you want, then you need to go learn about them 
either so you can use them, or do something similar. For instance you 
mentioned GUI toolkits. Okay, for example, install Qt4 (libqt4-dev), and 
then head to <http://doc.trolltech.com/4.3/tutorial.html> and you'll be 
walked through how to make a simple game using C++ and Qt4. (Or better, use 
Python (python-qt4) 
<http://www.riverbankcomputing.com/Docs/PyQt4/pyqt4ref.html>.)

Anyway, there is no "catch-all" way to go about starting, but if you are 
interested in some particular software, it's easier to give advice about 
where to start. The links about are one way to start learning Qt4, which is 
in my opinion one of the very best GUI toolkit in existance. There are lots 
of other good and popular GUI toolkits, however. Here is a list of a few:

Qt4  -- http://trolltech.com/products/qt (e.g. used by KDE)
GTK+ -- http://www.gtk.org/ (e.g. used by GNOME)
FOX  -- http://www.fox-toolkit.org/
Wx   -- http://www.wxwidgets.org/

However, keep in mind that--like programming languages--the important thing 
about GUI programming is not just to learn one specific toolkit, but to 
learn the principles of GUI applications, which includes branching off into 
understanding other topics and concepts such as event-driven programming, 
callbacks, polymorphism, human-interface style, etc.

Anyway, hope this gives you some good ideas. I'm sure others will chip in 
with more advice, especially if you ask some more specific questions. 

-- 
Wesley J. Landaker <wjl@icecavern.net> <xmpp:wjl@icecavern.net>
OpenPGP FP: 4135 2A3B 4726 ACC5 9094  0097 F0A9 8A4C 4CD6 E3D2

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: