LinuxQuestions.org
Go Job Hunting at the LQ Job Marketplace
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices

Reply
 
Search this Thread
Old 09-28-2005, 09:54 AM   #1
Neoxeekhrobe
LQ Newbie
 
Registered: Jul 2005
Location: Pakistan
Distribution: Redhat n ubuntu
Posts: 26

Rep: Reputation: 15
Want to be a linux developer but dont know where to start


Hi!

I have recently decided to start studying computers and would like to become a Linux developer but cant decide where to start. Should I first familiarize myself with linux and its softwares or should I start programming in some easy language like HTML or Perl.

Or is there something else I need to do?
 
Old 09-28-2005, 11:59 AM   #2
Hko
Senior Member
 
Registered: Aug 2002
Location: Groningen, The Netherlands
Distribution: ubuntu
Posts: 2,530

Rep: Reputation: 108Reputation: 108
Quote:
Should I first familiarize myself with linux and its softwares
It would be a Good Idea to that first.
Quote:
or should I start programming in some easy language like HTML or Perl.
I would suggest Python. But not everyone will agree. It's my humble opninion.

Suggested free downloadable books on python to read (probably in this order):
http://www.byteofpython.info/
http://python.org/doc/2.4.2/tut/tut.html
http://www.ibiblio.org/obp/thinkCSpy/
http://diveintopython.org/
 
Old 09-28-2005, 12:12 PM   #3
addy86
Member
 
Registered: Nov 2004
Location: Germany
Distribution: Debian Testing
Posts: 332

Rep: Reputation: 31
HTML is no programming language, but a markup language (like the name says). Good choices to start with are (after you learned to use Linux):
1.) C++ (the most widely used language)
2.) Java (also widely used; maybe a little easier than C++)
3.) Python (very easy to start with; has a promising future)
 
Old 09-28-2005, 12:30 PM   #4
smurff
Member
 
Registered: Sep 2004
Location: England
Distribution: Mandriva 2005LE / Whitebox
Posts: 48

Rep: Reputation: 15
Start by reading the net about what linux is. How it differs from other OS platorms. Get an old PC, something with about 256 MB RAM and only approx 10GB of hard disk. OR if you can find someone with vmware, you can also try that. Then get a linux distro from here or linuxiso.org
I recommend one of the easier ones such as Mandrive or Suse. Get it installed and play.

The thing about programming languages is that there are benifits for them all. My advice is either ANSI C, C++ or Java.

I baught a book e.g. "Dummies guide to..." but there are plenty of tutorials on the net.

Good luck and hope this helps

Smurff
 
Old 09-28-2005, 04:45 PM   #5
Neoxeekhrobe
LQ Newbie
 
Registered: Jul 2005
Location: Pakistan
Distribution: Redhat n ubuntu
Posts: 26

Original Poster
Rep: Reputation: 15
Ok, then should I join linux documentation project and write some guides or translations, that way I will learn what I need to learn and give back the community too. What do you say.

Last edited by Neoxeekhrobe; 09-28-2005 at 04:47 PM.
 
Old 09-28-2005, 06:07 PM   #6
jtshaw
Senior Member
 
Registered: Nov 2000
Location: Seattle, WA USA
Distribution: Ubuntu @ Home, RHEL @ Work
Posts: 3,892
Blog Entries: 1

Rep: Reputation: 66
Quote:
Originally posted by addy86
1.) C++ (the most widely used language)
[/B]
Not to start an argument here... but C is probably more used then C++ in the Linux world these days (the kernel, about 50% or more of the base system, X, and most things GTK are written in straight C, KDE and most things QT on the other hand are written in C++)... though they are both great for different things.

At any rate... I think it is important if you want to become a developer/programmer/software engineer to be flexible.

Learning a particular language is way less important then learning good design techniques and programming basics then to learn any particular language. Any of the languages mentioned will give you the appropriate tools to learn this stuff, just be careful not to hamstring yourself to one particular language.

Last edited by jtshaw; 09-28-2005 at 06:13 PM.
 
Old 09-28-2005, 06:38 PM   #7
bigfez
LQ Newbie
 
Registered: Mar 2005
Posts: 29

Rep: Reputation: 15
C

once you learn that, it's all gravy from there.
 
Old 09-28-2005, 08:45 PM   #8
Neoxeekhrobe
LQ Newbie
 
Registered: Jul 2005
Location: Pakistan
Distribution: Redhat n ubuntu
Posts: 26

Original Poster
Rep: Reputation: 15
How about C# with Python or C/C++. BTW how much difference is there between C and C++. I have read that C++ is an advanced form of C. If thats true then why do C, why dont just learn C++.

Last edited by Neoxeekhrobe; 09-28-2005 at 08:48 PM.
 
Old 09-28-2005, 08:48 PM   #9
jtshaw
Senior Member
 
Registered: Nov 2000
Location: Seattle, WA USA
Distribution: Ubuntu @ Home, RHEL @ Work
Posts: 3,892
Blog Entries: 1

Rep: Reputation: 66
There is little C# usage... but you could use it if you really wanted to....

C, C++, and C# are all different languages.

It so happens that a C++ compiler will (usually) compile C code. The same isn't true the other way around. There are various technical reasons for using one or the other... I typically use C++ when I'm doing anything involving a GUI because I think GUI programming lends itself well to an object oriented language. If I'm writing a network server I'm most likely going to use straight C because that will do just fine, and the network and thread API's are written in regular old C under linux.

Last edited by jtshaw; 09-28-2005 at 09:17 PM.
 
Old 09-28-2005, 10:28 PM   #10
primo
Member
 
Registered: Jun 2005
Posts: 542

Rep: Reputation: 34
It's better to start with the language that started it all: C

There's a C tutorial oriented to GNU here:
http://www.crasseux.com/books/ctutorial/


The GNU manuals:
http://www.gnu.org/manual/manual.html
Look at the glibc...

Learn to use the Unix/Linux command line, shell scripting, typically bash

Don't be afraid at the amount of information you see ahead in front of you sometimes. Take your time and enjoy each step. Keep learning
 
Old 09-29-2005, 04:00 AM   #11
smurff
Member
 
Registered: Sep 2004
Location: England
Distribution: Mandriva 2005LE / Whitebox
Posts: 48

Rep: Reputation: 15
Quote:
Ok, then should I join linux documentation project and write some guides or translations, that way I will learn what I need to learn and give back the community too. What do you say.
IMHO No not really. Install and play. I got a copy of vmware and it allows me to try distros with little impact to my system.

I dont know if you have any unix/linux skills but it is quite different to Windows. So get your head around what it is, how you can do your day to day stuff with it, and then start playing with your prefered language. There are plenty of onlne tutorials for nearly any language. I must admit, once I had got my head around one language, the others seemed easy, its just down to syntax.

Good luck
Smurff
 
Old 09-29-2005, 07:50 AM   #12
bwingate
LQ Newbie
 
Registered: Sep 2005
Posts: 16

Rep: Reputation: 0
I'm surprised to see all the recommendations for C, I thought that it would be considered a little old-fashioned by now. People seem to jump on the new-language bandwagon pretty quickly.

Anyway -- I will echo a lot of what people have said:

1) Get Linux on a system and play with it, break it, fix it, and re-install it. Play with different distros. My preference is Fedora Core 4, but I also have no experience with the other distros. Get comfortable with the OS so it doesn't get in the way of your coding.

2) Poke around the web looking for good tutorials on different languages. I would pick a language based on the quality and quantity of tutorials available. For a starting point of languages, I'd recommend C, then C++. I haven't looked at python yet, but have started investigating php (I find the syntax confusing, but I haven't taken the time to really dig in.)

3) Program. Write dopey little programs that don't do much at first, like most of the examples you'll see in the tutorials. Change them, break them, and fix them. Figure out how to output to the terminal window, a graphical window, a file, how to get user input, command line input, file input.

4) Program some more. Pick a simple task/program you'd like to have, break it into its component parts, write a "design document" which could just be a simple bullet point list of features, write the program, compare it to your "design document", debug it, and polish it up.

WRT Linux Documentation Project: Maybe join a mailing list and watch what's going on. It will probably confuse the crap out of you at first. If you want to get involved in the Linux community, there's always boards like this, and once you feel comfortable with your coding skills, sourceforge has "want ads"

Once you learn how to program, and can program well, switching between languages is mostly a matter of learning new commands and syntax and is relatively easy.

Bruce.
 
Old 09-29-2005, 10:24 AM   #13
addy86
Member
 
Registered: Nov 2004
Location: Germany
Distribution: Debian Testing
Posts: 332

Rep: Reputation: 31
Quote:
Originally posted by bwingate
I'm surprised to see all the recommendations for C, I thought that it would be considered a little old-fashioned by now.
I take it you mean "it's oldfashioned to recommend C as a beginner's language".
Well, although it's not the easiest language to start with, it has the advantage that as soon as you have mastered it, you master the all major concepts of programming (except for those that C lacks compared to C++). Compare this to starting with Python: when you have to make the transition to C/C++, you have to learn everything that Python does for you: static typing, memory management, pointers, etc.
 
Old 09-29-2005, 10:46 AM   #14
bigfez
LQ Newbie
 
Registered: Mar 2005
Posts: 29

Rep: Reputation: 15
for me, the recomendation for C is for two reasons.
first as some people have mentioned, once you understand C you will then understand how all other languages work 'under the hood'. having to manage your own memory and deal with pointers are great ways to understand programming. writing your own data structures and algorithms rather than relying on native linked lists or dynamic arrays and native sort functions will really teach volumes about programming.

secondly, if you are interested in being a Linux programmer for a job, rather than just as a hobby, you will likely need to know C to get a job. I'm a programmer for one of the largest credit decisioning companies in the US, we are a mostly Linux shop (a few old AIX boxes still kicking). if you can't put C on your resume, you won't get hired as a programmer here. Even if you are hired as a C++, PHP, Java, or PL/SQL programmer, you will not get an interview without knowing C at least a little.
 
Old 09-29-2005, 03:44 PM   #15
bwingate
LQ Newbie
 
Registered: Sep 2005
Posts: 16

Rep: Reputation: 0
Quote:
Originally posted by addy86
I take it you mean "it's oldfashioned to recommend C as a beginner's language".
Actually, its not that I'm surprised people are mentioning it for beginners because its hard, I was surprised it was recommended almost at all. Most people seem to promote the newer, more popular languages and treat C like it was old and dusty. Especially from a commercial/get-a-job viewpoint, its seems like its all perl, php or java.

Bruce.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
programs dont start davidleroux1 Mandriva 3 11-20-2005 10:20 PM
linux dont start and cant boot from Win98 or XP CD? zeejdeej Linux - Laptop and Netbook 12 09-19-2004 11:49 AM
fc2-gnome : Applications dont start / very slow to start nox104 Linux - Software 0 08-18-2004 09:53 PM
X and LILO DONT START zidane2010 Slackware - Installation 3 02-20-2004 11:42 AM
new to linux dont what distro to use dont no much command xman2007 Linux - Newbie 3 01-02-2004 06:32 PM


All times are GMT -5. The time now is 08:47 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration