How should i go about learning what i need to know about programing

Posted on 2004-04-15
Last Modified: 2010-04-01
I am industrial & Communications Technology Major and i am trying to learn to prgram but i don't know much about it i am looking to teach myself a bit over the summer and want to know how you all (people who know what they are talking about lol) learned and with what and how and what can you do with the different languages and which one is best to know.
Question by:WhlGyro

Accepted Solution

guntherothk earned 29 total points
ID: 10833818
Learning to program is much more than memorizing the syntax of a programming language. You must also study algorithms (because problems fall into typical categories), data structures (because they affect performance), and even some theory. Most peple think it takes a four year college degree and 2+ years of full time practice to become proficient. Although there are self-taught programmers, they often lack the background knowledge to build first-rate software.

For the non-software-engineer wanting to program simple tools in support of their area of concentration, I'd recommend a scripting languages like perl or python, because they're not too complex. If you really wanted to learn to develop applications, and want to learn on your own, I'd recommend java, because you can get a full suite of java tools and books online for free. I'd specifically steer away from C++. It's the most powerful extant programming language, but the learning curve is both steep and long. I would also not bother with C, BASIC, or any other non-object oriented language if I wanted to code anything even reasonably complex.

Good luck.

Assisted Solution

leflon earned 27 total points
ID: 10834158
Hi WhlGyro,

you should answer some questions for yourself (and for us to give an advise)

- which platform will i work on (windows, linux, mac etc.)?
- will there be a certain field i program for (text parsing/analysing, graphics, math etc.)?
- is a certain language prefered (cause it is used at work/college, a friend or co-worker uses it - as an expert at hand, etc.)?
- will it be just a hobby or a more serious task (i know hobbies are serious fun)? some languages are easy to start with, some take a certain time to get used to.
- which tolls are available (some are free, some cost a whole bunch of money)
and maybe some other questions too.

when you have decided about environment, language, tools etc.
- grab a good book
- try to get your hands on the code of someone else (don't steal it :-) ), you can learn a lot from other people, but keep being suspicious
- start with your own simple prog

LVL 44

Assisted Solution

by:Karl Heinz Kremer
Karl Heinz Kremer earned 27 total points
ID: 10834518
The most important thing you can do (after you get the basics of C++ down): Read code, read as much as you can get your hands on. These days it's pretty easy to download projects of any size and have access to all sorts of sources. Try to understand why things are done in a certain way. Try to come up with better solutions. Try to learn anything that you don't understand.

If you need a book, look into Thinking in C++ by Brucke Eckels - it's a free download:
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Assisted Solution

Cayce earned 27 total points
ID: 10835962
Well, I'm a self taught programmer. I learn first to doing batch files in DOS (amazing what you can do with ANSI escape sequences), then (very promptly) moved to C then to Delphi, then learned OOP with C++. Later on I went for Java, Perl, PHP, etc. Then I went to college and learned all the important stuff such as algoritms, data structures, software engineering, etc.

The truth is you can grab most of all this knowledge by getting some books and looking in the web. (However, you'll need to practice, practice, practice).

I don't think the language you choose should really be that important. But if I were a begineer now, I'd love to learn Java. Why?

1) It's available on all platforms.
2) There's a helluva of information on the internet.
3) There's a ton of books about Java.
4) The SDK is free.
5) There's either very cheap IDE's or the wonderful open source eclipse (
6) It's object oriented.
7) It's easy to learn C/C++ once you learn Java (You could say "and viceversa", but I don't think so).
8) It's a managed language. Meaning that you cannot render (that easily) your computer unusable with a Java program.

I could go on and on, and I'm sure every other language has an advocate who could come in here and post 1000 reasons why you sholdn't use Java and use another language. Anyway, I don't even use Java for work (I work 90% of the time in C++ projects), however it's my hobby language, and it sounds to me that you're looking to learn how to program so you can have your own software pet projects, so I'd like to recommend it to you.

Here's some links for you:
Java Tutorials and more java tutorials: 
This is college stuff:
MIT programming basics:
Some books:
Algorithms (This is mostly math, I've got this book on print. It's the best, not for the weakly-hearted):
More Computing Theory:
Data Structures in Java:,

Expert Comment

ID: 10843380
leflon's advice is sound; determine what you want to use programming for. That will help you understand both what language you'll need to learn and what extent of learning is appropriate. You might also want to consider how much time you have to invest in learning to program.

If you want a career programming, then the college degree is your path. I've actually sat and watched HR folks do a first sort on resumes by trashing every one with no college degree. It's an easy way to turn 300 resumes into 50 for further study. You maybe throw away some gems, but also a gtreat deal of trash. It is "possible" to be successful without making this investment, but you won't get the best assignments at the best companies any other way. There are people who think they are programmers because they can type raw HTML. Don't listen to them; they have no clue.

If you just think you'll need to do a bit of coding in support of another career path, then I'd go for something you can download for free and avoid investing too much time and money before you've tested your motivation to learn on your own. I recommend java for this purpose.


Expert Comment

ID: 11091065
hi tinchos,
as  WhlGyro never seems to return to any of his Qs and as everyone gave some valid input i would recommend a 4 way split.


Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Unlike C#, C++ doesn't have native support for sealing classes (so they cannot be sub-classed). At the cost of a virtual base class pointer it is possible to implement a pseudo sealing mechanism The trick is to virtually inherit from a base class…
Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question