ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am an utter novice when it comes to anything involving typing stuff that a computer will then read and try to make sense of. I have dabbled for a long time, but i am still at the stage where i need to get in there, do the stuff, and get out quick in case i mess something up, and if i can follow a tutorial letter for letter, so much the better.
Where this is leading is, i want to expand my field of knowledge so that i am comfortable with all the things i might need in a possible future career in system admin/system upkeep/something to do with systems.
I will need to familiarise myself with different hardware (no bother) and learn about a variety of existing systems (i'm on it) and probably learn some programming languages and how to use them (uuuuuuhhhh... <stony silence>)
So what languages will i need to learn, to what degree, and how?
I went to The Codesters Siteand downloaded one of Bruce Eckel's books, he seems to get good reviews.
Also i found this Introduction to C++ by B. Kernighan, which looks like a good jump in point...
I am a bit out of my depth here though,
is it all as daunting as it seems?
do i have to learn Perl, C, Java et c et c, or are there one or two i should learn, and then pick and choose as i like?
How much do i actually have to learn anyway? i'm not planning on ever being a pioneer program developer (although maybe it would be good to have another string to the old bow ) so do i need such a thorough knowledge of these languages?
i reckon i have a lot of good stuff on that Codesters site, but i think it's worth asking you guys because i've seen quite a few full and comprehensive answers here about a whole range of stuff, and i want to save a lot of fruitless searching around online if i can help it(less fruitless thanks to Google) and i thought you guys could help me avoid any wrong turnings and dead ends i may be about to make...
thanks a lot in advance for any replies that may appear here!
I would have to recommend java to anyone who wants to try programming. It is an extremely powerful language that is great for "high level programming" (fun stuff). C is mostly for "low level programming" which IMHO is not always so much fun.
Compiled Java code can run on any Java Virtual Machine, while c code normally has to be re-compiled for each specific computer operating system. Java has many high level constructs built in that are not built into c (for example, Java supports multiple threads of execution so your programs can do multiple things concurrently). Its hard to beat all the wonderful resources found here: http://java.sun.com
Maybe you also want to check out C#. It is a clone of Java, but with more features ( it can be argued that some of the extra features add needless complexity to your programs). Here is an open source project where you can download a compiler and runtime environment (or you can go the M$ route): http://go-mono.org/
I don't recomand java , if you would like to learn more abould programming it self. Java is very nice for RAD. I advice you to start with C++ if you would like to know more abould the the basic implementation of functions.
If you only want to writte a program en don`t realy care what heppends you best use Java or C#.
For example Java uses a garbige collector. This way it is harder to understand the use of pointers and references.
personally i say go for BASIC! picking a REALLY simple language to start off with makes understanding loops etc. so easy. Helo world in basic is one line, hello world in java is what, 10? i'd leave all the oop stuff until you're ready for it, having to wrap a simple print statement in a method, in a class without any real understanding of what the hell public static void main() is. after basic, i'd recommend c++ i guess. The only thing i'd recommend about java is that cos it's a monolithic bastard the API is very consistent and it is much easier to guess what functions will do etc, as opposed to using topolkits with c or whatever which can be a bit confusing.
thanks, chaps and chapesses, i have decided to make a stab at C++ first. i might start by reading about C to get a historical background feel for it all...
Not too keen on M$ so i shall be steering clear of any BASIC stuff...
I don't need to program, but it would be handy to be able to read programs and understand them,
what about Perl? am i letting myself in for a lot with that one? remember i'll be doing C++ first anyway...
Originally posted by Calum Not too keen on M$ so i shall be steering clear of any BASIC stuff...
Huh? you can't hold basic against microsoft just cos bill was involved in a port of it. BASIC was developed at dartmouth college in 1964, nowt to do with M$.
Treu
You could start with basic that`s nice to start with. I didn't realy think abould that option.
But you could start with c++or c on a very basic level and work your way up.
C an C++ alle have the same basic`s in it
Originally posted by acid_kewpie Huh? you can't hold basic against micro$oft just cos bill was involved in a port of it. BASIC was developed at dartmouth college in 1964, nowt to do with M$.
no, i don't hold it against them, but my thinking is that if i start of M$ centric, it may swallow me in, since that's what M$' business model appears to want to do. Since i believe the future of sensible computing to be UNIX based rather than DOS/Windows based, I am reluctant to use those technologies that M$ has an interest in in preference to UNIX technologies.
My feeling is that I am likely to imbibe enough M$ style knowledge to survive without making the effort (since that won't be my chosen field) so long as i do make a serious effort to learn some real computing skills.
I have long noticed that UNIX people seem to have little problem finding their way around and configuring a winDOS style system, whereas it is rarely if ever true the other way around...
Nothing personal against BASIC, mind, or even DOS, as it's in a similar boat, but you get my meaning, i'm sure...
I'd say Java, because if you want to learn good practices, really it is it.
I don't like C++ because it's too hackish and messy. C would be OK for a start, but it's got funny little things you need to know that really aren't necessary.
If you want to learn about logic etc, there's really nothing wrong with basic. You don't want to mess around with C++ just to learn principles and logic.
well all successful languages had very modest beginnings. Fortran was another college project in 1954. Back then the concept of programming still wasn't really off the ground, and to invent a 3GL was not a normal thing... most computer programers at the time maintained that assembly could never be surpassed. ok some people still say that, but they *really* meant it.
aI wouldn't bother with pascal. horrible name and a little obtuse i think. However if you are after obtuse, you want to have a go at a functional language like ML. that's freaky stuff when you start out. all that polymorphism makes your eyes hurt.
Code:
fun msort [] = []
| msort [a] = [a]
| msort L = let fun lpart(l, r, []) = merge(msort l, msort r)
| lpart(l, r, x::xs) =
let fun rpart(l, r, []) = merge(msort l, msort r)
| rpart(l, r, x::xs) = lpart(l, x::r, xs);
in rpart(x::l, r, xs) end;
in lpart([], [], L) end ;
it's hard to see that as anything but a weird looking 3GL, but it that the entire program is simply one vast equation. interestign if you're not narrowminded about procedural languages, like most of the people that took that course.
Well, this is all really interesting stuff but i'm still no wiser actually! i mean i have little to no knowledge of either systems or programming, but i have much more of an idea of my pursuit of systems knowledge than programming knowledge, since systems seems to be more of a passion for me.
As i say, i won't ever make a programmer, but i'm going to need to have familiarity with programming languages of some sort to be considered in future years as a system admin, so if anybody has any ideas or advice to this end, i would be most interested in hearing them.
Actually the stuff that's being said in this topic is really interesting so keep it up with this stuff, it's turning into "My Favourite Programming Language" corner!
well as a sysadmin you'll need a VAST knowledge of shell script, perl and awk. Also you'll possibly be required to program in python, ruby... And then on top of that there's the c/c++/java programming you may be required to do. you'll need to know a hellof a lot more languages than a normal programmer, and know them pretty danm well. An average 9-5 programmer will generally only use one language on a regular basis, but you'll be chopping and changing all the time, scripts for this, code for that... heh, you can't get by by just being able to "get by" I could be a programmer perfectly fine if wanted to, but i want to be a sysadmin as it's more of a challenge (amongst other reasons)
this is the sort of answer i was after!!!
great!
i am just looking for an idea of what to expect really, at the moment, this list of hefty stuff that you've posted is quite encouraging for me actually, since a lot of 'information sources' either seem to cover the same ground or assume you know something else already (and when you look up something else, you need to know something else again, ad infinitum) OR they're full of general fluff with no nitty gritty specifics!
I haven't been to university yet, but that is what i hope to do in the next year or two, and the way i see it, the more getting into the subject i do first, the more time i'll have once i'm actually studying to look at the specifics.
Thanks for the reply, Acid! (you seem to reply to all my posts, i take it you live on these forums? )
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.