D&C Lug - Home Page
Devon & Cornwall Linux Users' Group

[ Date Index ][ Thread Index ]
[ <= Previous by date / thread ] [ Next by date / thread => ]

Re: [LUG] Learning a language with linux




I'm not an educationalist so maybe someone else can describe what I am
trying to say a little better, but I think the question is about reward.
If you are trying to learn something then it helps if your learning is
rewarded by results - feedback loops start occurring.  The problem with C,
is that you have to learn so much before you can start writing code which
will give you some really interesting results. I admit that this opinion
is open to question but personally, as an amataur, I have never found the
write code - get reward/result cycle to be anything like fast enough for
my limited brain.

To learn anything in programming it is much much better if you have a 
realistic task you wish to achieve. If you just attempt to learn a language 
for the sake of learning it you probably won't achieve anything and just 
confuse your self. I have done this myself and my biggest acheievements have 
been when i have had a target and had to fight my way through the problem to 
get results.

I would not say that you need to learn that much in C to start achieving 
things. The key to C and many other languages is to have a good feel for the 
basic language then know what libraries are available and where to find 
documentation on those libraries. The libraries contain all the real power 
especially under Linux/GNU where there are more that you can count available 
for every possible task. 

I tried Visual Basic long ago.  With that you can get rewarded without
having to write any code at all.  Drag and drop and - "cool, I have a user
interface" - but then you have to start actually writing code and things
get a lot harder (insert fav. vb hate story here).

Yes it is true, you can program with VB with zero experience and achieve 
something and well it may look impressive for a first time programmer to 
create a window with lots of buttons and text boxes etc you haven't really 
achieved anything.

I will admit i do a lot of programming on the "Dark Side" (BUT we are heading 
down the GNU open source code route :-)) and I will use VB for quick and 
dirty tasks.  If i need to to anything serious I do it it C/C++.

After that, I gave up on GUI stuff and tried Python.  The tutorial that
came with it was excellent, although I got a bit lost about 3/4 the way
through, but then it was intended as a tutorial to the whole language and
not a beginners guide.  

Don't get caught up in the "it has a GUI so it is better". Linux has some 
amazing console based applications that are far more efficient and to the 
point than the GUI stuff.

The thing about GUI programming is you waste more time programming the GUI 
checking things can't be pressed at the wrong time, updating displays etc 
than you do doing any serious programming and I find it the most boring part.

My advise would be get some console apps working first, you may even wish to 
look at the ncurses library for fancy console stuff. Once you have programs 
running and doing stuff then try adding some "front ends" to those programs 
then you can concentrate on the GUI side knowing you have some working code 
to use.

The other tip is planning, don't do zero planning of what you want to acheive 
(thats my technique!) and don't over plan! 

Regards and appoligies for bad quoting

Robin

Attachment: pgp00023.pgp
Description: signature


Lynx friendly