Linux Want to be a UNIX expert. Please guide

Hello experts,
I am an experienced programmer in C++ on windows. I want to switch to UNIX/Linux operating system environment. How can I do this? Is it okey if I install Linux on my Windows PC and learn? Will this make me very good to crack UNIX interviews?
Please help me.
And let me know how much time will take for me to get a good grip on UNIX/LINUS programming environment?
 
buy the latest edition of Linux bible, good for a start, and install any *nix based OS. this is all you need.
 
Yup, first of all install Linux, there is no course which can help you learn better than use it regularly.

Join the respective forums of your distro, read wiki's or refer books if needed, and in some time you'll learn how to manage your OS(basics and some intermediate things).

Now buy a Linux Programming book or refer to net, because programming in linux has little difference to that of windows, like debugging and few other features.

As you are an experienced C++ programmer, you'll find Qt best and your way to go. :)

Enjoy Linux :D Or if you can't then read my siggy :P

PS : You'll need patience and DIY mentality to be build up, because everything won't be spoon feeded to you and you need to read manuals and wiki's to make your way out, sometimes IRC guys and forum guys may get angry on you, but be patient and don't loose hope, you'll succeed at the end. [Personal Experience]
 
anandkrishnantc said:
Hello experts,

I am an experienced programmer in C++ on windows.

Try hanging on comp.lang.c++ for a while and the ask yourself how much experienced C++ programmer you are :bleh:

anandkrishnantc said:
I want to switch to UNIX/Linux operating system environment. How can I do this? Is it okey if I install Linux on my Windows PC and learn? Will this make me very good to crack UNIX interviews?

Please help me.

And let me know how much time will take for me to get a good grip on UNIX/LINUS programming environment?

There is nothing call LINUS programming environment (if thats not a typo). Anyway Linux (speak Lee-nooks) is very good OS to use even for a daily use. Try starting with installation of Debian (never use Ubuntu and RPM based distros like Fedora, CentOS etc). Install Debian from netinstall CD and see how much you can learn. Later you can ask for more.

Don't buy those Linux Bibles or Linux Programming books you find on shelves of Indian bookstores. Just start reading about UNIX Nature and Hackerdom and UNIX Evolution. If you don't like any one of these articles, please install Ubuntu or Fedora. That will be better for you.

Good Luck :hap2:
 
krishnandu said:
Yup, first of all install Linux, there is no course which can help you learn better than use it regularly.

Join the respective forums of your distro, read wiki's or refer books if needed, and in some time you'll learn how to manage your OS(basics and some intermediate things).

Now buy a Linux Programming book or refer to net, because programming in linux has little difference to that of windows, like debugging and few other features.

As you are an experienced C++ programmer, you'll find Qt best and your way to go. :)

Enjoy Linux :D Or if you can't then read my siggy :P

PS : You'll need patience and DIY mentality to be build up, because everything won't be spoon feeded to you and you need to read manuals and wiki's to make your way out, sometimes IRC guys and forum guys may get angry on you, but be patient and don't loose hope, you'll succeed at the end. [Personal Experience]

Hi,

thanks for the answer. Let me know which version of the Linux I need to install (keepin in mind that my ultimate aim is to learn programming on Linux, not enjoying its applications and other stuff).
 
^ Then better install Red Hat Linux or Fedora. These are the best distros for learning programming lang's.
Go through with the architecture of linux, the storage system, what each system directory is meant for, the commands.

Unix is of best use with commands, not with GUI. The commands are the power-horse of UNIX. :D
 
download a linux vmware and start using it.

get used to the putty ;)

get vi cheet-sheet and type vimtutor at the command prompt.

c++ is pretty much same.

if you start working in xwindows environment you will be distracted. :P putty ftw.
 
Every distro has been developed with different sets of requirement, so just use one, that meet your needs or the one you like most.

Refer this to choose yours DistroWatch.com: Put the fun back into computing. Use Linux, BSD.

As you are new to Linux I'd have suggested Ubuntu / Linux Mint, this two distro's are most famous and renowned for their simplicity and max. member suggests this for newcomers to Linux.

As you are into programming I'd suggest Fedora, because, that's an intermediate distro, and you'll find yum most powerful among other package managers.

NOTE : Guys don't make this thread another Distro war thread :P That's why I put the link of Distro Watch, Choose yourself, otherwise every member will come up with every distro. But I'd say don't go with non-major distributions, using an major distro has lot more advantages.
 
Well, its quite simple.

All you need to do is install Linux on your system along with windows. You should make sure that whatever comes you'll use linux (unless there's a kernel panic ;)), because it is a general human tendency to do whatever is easier than to learn new things.

A lot of people will suggest Ubuntu for newbies, but if you really want to master Linux, I won't suggest Ubuntu, but Fedora. The thing is, Ubuntu is something like the Linux version of Windows, everything is click and do type. You don't have much scope to learn in it.

In interviews, if you want to crack, you need to know the internal working of the things. I initially started off with Fedora in 2007, then moved to Arch Linux in 2009 and now Gentoo two months ago.

Once you get used to the Linux way of things, you can start programming. The programming on Linux is not alien, the same C, C++ is there, but unlike windows. There are certain things that work in Windows which will never work in linux. One of them is the function getch() from conio.h as taught in 99.9% of the C/C++ courses. This is because Linux strictly conforms to ANSI standards and conio.h is not an ANSI standard. It has been explicitly added by microsoft in dos and above.

As a C++ programmer, you could try Qt which has a great C++ interface to write GUIs. GTK also has a C++ interface called gtkmm. There are some other GUI toolkits as well like wxGTK (no this not affiliated with GTK).
 
nileshgr said:
Well, its quite simple.

All you need to do is install Linux on your system along with windows. You should make sure that whatever comes you'll use linux (unless there's a kernel panic ;)), because it is a general human tendency to do whatever is easier than to learn new things.

A lot of people will suggest Ubuntu for newbies, but if you really want to master Linux, I won't suggest Ubuntu, but Fedora. The thing is, Ubuntu is something like the Linux version of Windows, everything is click and do type. You don't have much scope to learn in it.

2 very good advices given by you :hap2: . I recoomend OP to follow them. I did not advise Fedora because Fedora is a testing version of RHEL and I neve found RPM to be good at all, practically I found it worse than setup.exe on Windows. Problems of RPM may give wrong impression of Linux to OP. Debian is rock solid OS and thats why I suggested it. I myself used Fedora for 3 months before switching to anything else :)

nileshgr said:
In interviews, if you want to crack, you need to know the internal working of the things. I initially started off with Fedora in 2007, then moved to Arch Linux in 2009 and now Gentoo two months ago.

You stole the path I walked upon :P

nileshgr said:
Once you get used to the Linux way of things, you can start programming. The programming on Linux is not alien, the same C, C++ is there, but unlike windows. There are certain things that work in Windows which will never work in linux. One of them is the function getch() from conio.h as taught in 99.9% of the C/C++ courses. This is because Linux strictly conforms to ANSI standards and conio.h is not an ANSI standard. It has been explicitly added by microsoft in dos and above.

This is what I call Getting Basics Right. Very important advice by you again :)
 
arnuld said:
2 very good advices given by you :hap2: . I recoomend OP to follow them. I did not advise Fedora because Fedora is a testing version of RHEL and I neve found RPM to be good at all, practically I found it worse than setup.exe on Windows. Problems of RPM may give wrong impression of Linux to OP. Debian is rock solid OS and thats why I suggested it. I myself used Fedora for 3 months before switching to anything else :)

I have no ill-will against Debian, but let me tell you that, after using Arch Linux, Fedora, and Gentoo... even FreeBSD! what I feel is Debian configuration is the most weirdest!
 
I would suggest reading up the following books for UNIX programming:

1) Advanced Programming in the UNIX environment (Stevens)

2) Advanced UNIX programming (Rochkind)

3) Single Unix Specification/man/info pages for reference

C is the the programming language of choice for systems programming on UNIX, so try improving your C skills as well.
 
Off Topic: @perfektionist - hey dude, your spelling of your username isn't so perfect now is it??? :P :D just kidding!
 
The topic itself looks vague to me how can one say how much of time it would take for you to learn a language , frankly i would advice to learn Solaris since it deals more on system level than Linux.

The books which i would advise is only one.

Unix Power Tools.
 
To know Linux better, ensure to work solely in Linux.

Use both Redhat /Fedora & Debian, don't take sides :)

First preference for Redhat /Fedora /CentOS considering easiness and industry wide acceptance.

For basics, 'hackiness' and adventure go with Debian.

Try QT programming... its even coming to Ubuntu.
 
perfektionist said:
I would suggest reading up the following books for UNIX programming:

1) Advanced Programming in the UNIX environment (Stevens)

2) Advanced UNIX programming (Rochkind)

3) Single Unix Specification/man/info pages for reference

C is the the programming language of choice for systems programming on UNIX, so try improving your C skills as well.
Books are right but the order is wrong. Here is the correct order that OP needs to master. WARNING: It will take 10 years to master the concepts in these books:

1) The UNIX Programming Environment

2) Advanced UNIX Programming

3) Advanced Programming in UNIX Enviromnment.

4) The Design and Implementation of 4.4 BSD Operating System

5) Make sure you have the experienceing of installing all BSDs (at least once): OpenBSD, FreeBSD, NetBSD and DragonFly BSD

NOTE: Make sure you hang on comp.lang.c. , comp.lang.c++ , BSD mailing lists for 10 years, at least 3 years 24x7. Read the GNU software and also hang onto different kinds of hardware Newsgroups.
 
Back
Top