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? |
Quote:
Quote:
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/ |
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) |
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 |
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.
|
Quote:
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. |
C
once you learn that, it's all gravy from there. |
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++.
|
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. |
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 |
Quote:
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 |
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. |
Quote:
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. |
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. |
Quote:
Bruce. |
All times are GMT -5. The time now is 05:14 PM. |