What's new

best way to learn programming languages (1 Viewer)

Kevin T

Screenwriter
Joined
Jul 12, 2001
Messages
1,402
i'm currently a student in college majoring in information systems. right now i'm taking a class in java and this is really the only programming language my college focuses on. i just started school in august so i'm gonna be here for close to 4 or 5 years (advanced master's program). my personal career goal is to work in network administration but for now i think it's imperative that i learn as much as i can about everything. in my spare time, i'm fidgeting with sql but i'd also like to learn c++ and/or visual c++. basically i want to learn as much as possible so that when i graduate i'm not a one trick pony, but fairly well versed in the most commonly used platforms. of course, becoming a master of all these will be quite impossible but i've got 4 or 5 years to try. what would people in the know here recommend as a way of learning these other programs and languages. i've seen books and cd-roms on ebay but how effective are these really? just wondering as i'm taking a break from a program i'm working on. thanks guys.
kevin t
 

Kevin P

Screenwriter
Joined
Jan 18, 1999
Messages
1,439
As a programmer who's been at it for so long it's scary
wink.gif
I can tell you that the first language is always the hardest to learn. This is because you're not just learning the syntax of the language, you're also learning the programming concepts and techniques that are used in many languages.
My advice is to concentrate on one language to start with, perhaps Java in your case. Get good at it, become comfortable with the style and structure used in Java (object oriented programming concepts in particular), and once you're comfortable with coding in Java (and in creating code in general) and are halfway decent at it, you can more easily dive into other languages like C++ and Visual Basic.
The most important thing to get the hang of isn't the language itself but the process of programming, and how to do it in such a way that you don't make a mess of it. Break the problem down into smaller pieces, code each piece separately (and test them separately if possible), and use comments. Imagine that someone else is going to have to maintain or make changes to your code down the road, you don't want to make their lives too miserable (I speak from experience there--I've rewritten entire modules written by others because they were so badly written that they were impossible to maintain).
And don't forget to have fun! :)
KJP
 

Kevin T

Screenwriter
Joined
Jul 12, 2001
Messages
1,402
thanks. i appreciate the input. this is my first forray into the world of programming so i'm quite green at it. i guess i should wait a little before trying to jump into a new language. right now our class is just getting to methods and we should be starting arrays within the next few weeks. i think object oriented comes later in the class and is more in depth in the next course in the series. the best way i've learned to do everything is pretty much for every line or block of code that does something different. i'll put in a //comment so i know what's going on. so far so good though as i have an "a" in the course and at least 5 people have dropped since it began. thanks.
kevin t
 

Steven K

Supporting Actor
Joined
Jan 10, 2000
Messages
830
Hey Kevin
Welcome to the world of programming. Nothing quite like spending 60-70 hours a week in front of a screen looking at code! Actually I love programming and I love my job, so I'm actually excited when I go to work each day.
I agree with Kevin #2; learning your first language is always the toughest, as you have to learn HOW to program before you learn how to program in a certain language. Learning syntax is fairly trivial.
My favorite language by far is CC++. I find it to be the most diverse language out there. VB, Java, etc... all have advantages, but CPP is the most rounded of them. You can do basically anything in C.
Some people say that C is the toughest language to learn, and maybe it is. But, it's also the easiest to program in once you master the language. Rarely do I ever touch Java anymore, and only VB when I have to incorporate some Active X wrapper into something.
My advice: learn C and especially C++ as much as you can. Cram yourself... learn the 3 basic tenents of OOP: encapsulation, polymorphism, and inheritance. Learn as much about different data structures as you can: linked lists, binary and AVL trees, big-Oh notation, etc... really cram yourself. Then, try to learn a little of the Windows API (which is alot of fun actually) and also, learn how to use DLLs (surprisingly few people even know what a DLL is, much less how to use one). Then, time permitting, try to learn the basics of COM (Microsoft's Component Object Model). Then you can learn MFC (Microsoft Foundation Classes).
Necessities:
a good C++ book
a good ANSI C book
"Programming in Windows" by Charles Petzold
Microsoft Visual C++
 

Paul Jenkins

Supporting Actor
Joined
Jan 4, 2000
Messages
965
well, i guess i'll chime in and disagree with the previous postings on how to learn in this area. while all the advice given so far seems like a great way to go about it, in reality it is the slowest and worst way to go about learning programming if taken on its own. the best way, imho of course, is to work on projects where there is a dedicated mentor that can lead and guide you through the learning process. you still have to read, understand, etc., but having someone more experienced in a dedicated mentoring role will allow you to concentrate on the areas that aren't language syntax related, and that, truthfully, make up most of what a good 'programmer' is. Too many of the books, and classes for that matter, stress syntax and take a very simplistic view of problems, as they have to to remain brief. There is no substitute for *good* experience, where you are learning and growing under the care of someone who has 'been there, done that' and knows how to make you into a great programmer.
so my advice, find a project that meets the above criteria and start spending that 50-70 hours per week learning and doing. and, btw, this is harder than you may think, as i would say that 80% or higher of people in the profession can code, but they shouldn't be considered competent programmers, and 80% or higher of projects are not interested in training people in the way they need to be trained to properly learn how to be a competent programmer...
 

DaveF

Moderator
Senior HTF Member
Joined
Mar 4, 2001
Messages
28,753
Location
Catfisch Cinema
Real Name
Dave
I'm not a professional programmer, but I've been doing it as a hobbyist, student, and scientist for many years.
You asked, "How to learn new languages?" I think some of the responses answered a different question, "How to learn how to program?" That's a good question, but let me try and answer the one initially posed.
learning a computer language is like learning to juggle, drive a car, play tennis, speak French, or what have you. Apply yourself so that your interests and desires are satisfied, and thus enable you to stay the course and learn the language.
- If you self-motivated and enjoy knowledge for its own sake, then just learning about lanugage constructs may work for you.
- If you need a reason to learn something (goal-oriented), then you might be better off tackling a project of interest, and using a language you don't know as the tool (forcing yourself to learn it).
- Do you learn from others? Then enroll in summer courses, or extra classes where different languages are used.
Having said all that, I find the best way to learn a language is to use it for a project. I need a problem to solve, so that I can start to learn the tools. I picked up MySQL and PHP this way -- working on a website project for fun.
If you've got math or physics classes, there will be opportunities to solve problems via computer programs. Solve them in a language of interest.
In you Java class, set aside particularly interesting assignments, to re-solve in some different language.
Get a summer job programming, using some language you haven't used before (that's how I learned C some years ago).
Good luck!
 

Philip_G

Senior HTF Member
Joined
Nov 13, 2000
Messages
5,030
back when I was an engineering major I took a C class or 2, and I LOVED the way they taught programming. It was 2 classes, lecture and a lab. The lecture focused on the flow and design of the project, and the lab focused on the syntax and making it work.
so the first week you'd turn in an outline of a program, the next week in lab you'd hand in the working program.
I think this works nicely because you can get the program organized, then if you know multiple languages use the one that fits the best, and keep adding language after language.
 

Marshall Alsup

Second Unit
Joined
Jul 9, 2001
Messages
497
The best way to learn is in a class. However as you said, your school focusses on Java. This is too bad (IMO) because I feel that c is the best language to learn. I highly recomend the series of books by Harvey Dietel and son. Their c book is called C: How to Program. You may want to look it up on amazon.com and read the customer reviews. This book is geared toward a true beginner and I think it would work wonderfully as a self studdy book. Programming is a lot of fun, and a lot of headache. I thoroughly enjoy it and I hope you do too.
Good Luck
Marshall
 

Kevin T

Screenwriter
Joined
Jul 12, 2001
Messages
1,402
that's interesting you say that because the textbook we use in class is the 4th edition of java: how to program by deitel. i find the book to be pretty useful but it would also help if there were more real world examples of programs. i don't really care about using a for loop to sum all numbers from 1 to 5. other than that, i find the book to be very good. definitely a keeper.
kevin t
 

Users who are viewing this thread

Sign up for our newsletter

and receive essential news, curated deals, and much more







You will only receive emails from us. We will never sell or distribute your email address to third party companies at any time.

Forum statistics

Threads
357,016
Messages
5,128,457
Members
144,239
Latest member
acinstallation111
Recent bookmarks
0
Top