LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
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 03-28-2002, 09:55 AM   #1
Calum
Member
 
Registered: Mar 2002
Location: London
Distribution: Red Hat 9
Posts: 302

Rep: Reputation: 30
Query: Programming for the complete novice


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!

Last edited by Calum; 03-28-2002 at 09:58 AM.
 
Old 03-28-2002, 03:55 PM   #2
Mara
Moderator
 
Registered: Feb 2002
Location: Grenoble
Distribution: Debian
Posts: 9,696

Rep: Reputation: 232Reputation: 232Reputation: 232
First : c, the most important thing.
 
Old 03-29-2002, 05:09 PM   #3
zmedico
Member
 
Registered: Feb 2002
Location: Mission Viejo, California, USA
Distribution: Gentoo
Posts: 707

Rep: Reputation: 30
Cool Java rules

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

Here is the docs\training section:
http://developer.java.sun.com/developer/infodocs/

I recommend starting with the Java Tutorial:
http://java.sun.com/docs/books/tutorial/

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/

Last edited by zmedico; 04-16-2002 at 05:47 PM.
 
Old 04-03-2002, 12:30 PM   #4
LabRad
Member
 
Registered: Apr 2002
Location: The Netherlands
Distribution: Slackware, openBSD
Posts: 106

Rep: Reputation: 15
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.
 
Old 04-03-2002, 12:49 PM   #5
acid_kewpie
Moderator
 
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417

Rep: Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985
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.
 
Old 04-07-2002, 12:39 PM   #6
Calum
Member
 
Registered: Mar 2002
Location: London
Distribution: Red Hat 9
Posts: 302

Original Poster
Rep: Reputation: 30
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...
 
Old 04-07-2002, 12:47 PM   #7
acid_kewpie
Moderator
 
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417

Rep: Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985
Quote:
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$.
 
Old 04-07-2002, 12:53 PM   #8
LabRad
Member
 
Registered: Apr 2002
Location: The Netherlands
Distribution: Slackware, openBSD
Posts: 106

Rep: Reputation: 15
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
 
Old 04-08-2002, 05:44 AM   #9
Calum
Member
 
Registered: Mar 2002
Location: London
Distribution: Red Hat 9
Posts: 302

Original Poster
Rep: Reputation: 30
Quote:
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...
 
Old 04-08-2002, 03:58 PM   #10
jISV
Member
 
Registered: Feb 2002
Location: England
Distribution: MDK8.2
Posts: 128

Rep: Reputation: 15
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.
 
Old 04-09-2002, 06:10 AM   #11
Thymox
Senior Member
 
Registered: Apr 2001
Location: Plymouth, England.
Distribution: Mostly Debian based systems
Posts: 4,368

Rep: Reputation: 64
Quote:
Originally posted by acid_kewpie
BASIC was developed at dartmouth college in 1964
I didn't know Basic was home-grown.

I'm not a programmer, but I can definitely vouch for basic's ease. My personal route would probably be:
Basic > Pascal > C/C++/Perl/Python/other
 
Old 04-09-2002, 07:42 AM   #12
acid_kewpie
Moderator
 
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417

Rep: Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985
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.
 
Old 04-10-2002, 09:11 AM   #13
Calum
Member
 
Registered: Mar 2002
Location: London
Distribution: Red Hat 9
Posts: 302

Original Poster
Rep: Reputation: 30
!!!!! !!! ! !!!!! !!

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!
 
Old 04-10-2002, 09:42 AM   #14
acid_kewpie
Moderator
 
Registered: Jun 2001
Location: UK
Distribution: Gentoo, RHEL, Fedora, Centos
Posts: 43,417

Rep: Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985Reputation: 1985
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)
 
Old 04-10-2002, 10:22 AM   #15
Calum
Member
 
Registered: Mar 2002
Location: London
Distribution: Red Hat 9
Posts: 302

Original Poster
Rep: Reputation: 30
wahey!

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? )
 
  


Reply



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
I'm a Novice danbinful Mandriva 4 04-14-2005 07:23 PM
Complete novice - step by step for Dlink 520 on AS2.1 blunder Linux - Wireless Networking 3 01-31-2005 06:37 AM
FreeBSD novice please help me configure. da_zombie *BSD 11 12-08-2004 04:00 PM
Novice questions. linux_faq Linux - Software 2 05-14-2004 02:40 PM
Excuse a Complete Novice?? fhbooker Linux - General 5 04-14-2002 07:36 PM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 03:47 AM.

Main Menu
Advertisement
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
Open Source Consulting | Domain Registration